Open a dispute
Either side can open one, with their customer token, about one milestone or the whole escrow:
- The buyer, when something was not delivered or not as agreed.
- The seller, when they delivered but the buyer won’t release or respond
(
buyer_unresponsive). This matters most whereauto_release_hoursis null.
The affected milestones freeze: their auto-release pauses and the normal release and
cancel calls are refused until the dispute ends. Only one dispute per milestone can be
open at a time. Evidence and the discussion happen in the dispute room at the returned
url, or through POST /disputes/{id}/evidence. Sends dispute.opened.
Authorizations
Authorization: Bearer <secret key>. Secret keys belong to your organisation, are shown
once when created in the dashboard, and are scoped (see x-required-scope on each
operation). Keep them on your server. Live keys are issued after your business is
verified. Publishable keys (pk_) are only for @ketapay/checkout and don't work here.
Proof that your customer approved this call, from POST /customer_sessions/{id}/verify.
Sent together with your secret key. Valid for 15 minutes, for that customer's escrows
only.
Headers
Unique key for this operation. Retries with the same key return the first result.
255"7f3e2a10-6c4d-4b8e-9a1f-2d5c8e7b6a40"
Path Parameters
Body
Buyer reasons: not_received (goods or work never arrived), not_as_agreed (differs
from what was agreed), damaged, incomplete (only part was delivered). Seller reason:
buyer_unresponsive (delivered, but the buyer won't release or respond). Either side:
other.
not_received, not_as_agreed, damaged, incomplete, buyer_unresponsive, other 10 - 2000The milestone in question. Leave out for the whole escrow.
First evidence, as ids from POST /files with purpose dispute_evidence
10Response
Dispute opened
"dispute"Null when the dispute covers the whole escrow
buyer, seller open: the buyer and seller are trying to agree. under_review: a KetaPay mediator
is deciding. resolved: ended, see outcome.
open, under_review, resolved Buyer reasons: not_received (goods or work never arrived), not_as_agreed (differs
from what was agreed), damaged, incomplete (only part was delivered). Seller reason:
buyer_unresponsive (delivered, but the buyer won't release or respond). Either side:
other.
not_received, not_as_agreed, damaged, incomplete, buyer_unresponsive, other Null until resolved. withdrawn: the buyer withdrew the dispute and the deal
continues. partially_refunded: split between buyer and seller.
released, refunded, partially_refunded, withdrawn, null Who ended it. A party can only end it against themselves (conceding) or by withdrawing their own dispute.
buyer, seller, ketapay, null The dispute room, where the buyer and seller add evidence and talk to KetaPay
"https://app.ketapay.com/disputes/8e2f4a6c-1d3b-4c7e-9a5f-0b2d4f6a8c13"
Who KetaPay is waiting on for evidence, if anyone
buyer, seller, both, null Deadline for the evidence KetaPay asked for
How many evidence submissions both sides have made
x >= 0For refunded and partially_refunded, the amount returned to the buyer
x >= 045000000