Disputes
ZendFi supports a customer-to-merchant dispute flow with optional admin resolution.1) Request Dispute OTP (Public)
Request Body
Customer email associated with the payment.
Response
2) Create Dispute (Public)
Request Body
Customer email for identity matching and OTP validation.
Optional customer wallet used as alternate ownership proof.
One of:
duplicate, unauthorized, product_not_received, other.Customer dispute description.
Optional evidence object.
OTP from the request-otp step.
3) List Merchant Disputes
Query Parameters
limit(default50, max100)offset(default0)status(open,under_review,resolved_merchant_favor,resolved_customer_favor,closed)dispute_type(duplicate,unauthorized,product_not_received,other)start_dateandend_date
4) Get Dispute Detail
5) Merchant Respond to Dispute
Request Body
Merchant response text.
Optional structured evidence payload.
6) Merchant Issue Refund From Dispute
Request Body
Refund amount to issue.
Refund reason.
Optional metadata forwarded to the refund request.
7) Admin Resolve Dispute
Request Body
merchant_favor, customer_favor, or closed.Optional admin notes.
Dispute Statuses
| Status | Meaning |
|---|---|
open | Dispute created, pending merchant action |
under_review | Merchant responded / evidence review in progress |
resolved_merchant_favor | Final decision in merchant favor |
resolved_customer_favor | Final decision in customer favor |
closed | Dispute closed without favor designation |
Dispute Lifecycle Events
DisputeOpenedDisputeRespondedDisputeResolved