Lifecycle
1
Funded
The buyer paid. The plan is now fixed: amounts and milestones can’t change. You get
escrow.funded.2
Delivered
The seller marks the current milestone delivered, with an optional note and files (a tracking number, a link to the work, a signed document). You get
milestone.delivered.3
Released
The buyer releases it and the seller is paid for that milestone. You get
milestone.released, then payout.sent when the money lands.4
Completed
When every milestone is settled, the escrow is
completed and you get escrow.completed.Release methods
Set on the checkout session withrelease.method: buyer_confirms (the buyer releases after delivery) or release_code for in-person deals. See Release codes and Milestones.
Acting for a customer
Cancel and refund
POST /escrows/{id}/cancel refunds the buyer every milestone not yet released; released milestones stay paid. It needs a customer token:
- Seller’s token: any time (the seller gives up the rest of the deal).
- Buyer’s token: only before any milestone is delivered or released. After that the buyer reports a problem instead.
escrow.refunded. Money only ever goes back to the account that paid. KetaPay’s buyer fee and VAT are not refunded once the escrow is funded.
Flag for review
If you remove a listing as fraudulent or ban a user,POST /escrows/{id}/flag asks KetaPay to review the escrow. KetaPay decides what happens, which can include holding releases while it looks into it. The buyer and seller are not told who flagged it.
Statuses
Milestones move through
funded, delivered, released, and can end refunded, or sit disputed until a dispute closes.
Find an escrow
Every escrow keeps yourexternal_reference and metadata from the session. List with GET /escrows?external_reference=order_7781, or fetch by id.