Open one
not_received, not_as_agreed, damaged and incomplete; the seller’s is buyer_unresponsive; either side can use other. You get dispute.opened.
Settling without KetaPay
While a dispute is open, either side can back down:- the buyer can release the milestone;
- the seller can refund it with
POST /disputes/{id}/concede; - whoever opened it can withdraw it with
POST /disputes/{id}/withdraw.
Evidence
The buyer and the seller each submit statements and files (photos, videos, documents, chat screenshots), in the dispute room at the dispute’surl or through your UI:
- Upload each file with
POST /files. - Submit them with
POST /disputes/{id}/evidence, with the customer’s token.
awaiting_evidence_from and evidence_due_at say who and by when, and you get dispute.evidence_requested so you can prompt them in your app.
Evidence is only visible to the two parties and KetaPay. Your key alone cannot read it.
Outcome
You getdispute.resolved with the outcome: released to the seller, refunded to the buyer, partially_refunded, or withdrawn. Refunds go back the way the money came (see Refunds).