| Create escrow | POST /v1/escrow/create | Generates a standard escrow link. multipart/form-data (up to 5 images). Required: amount (min 1000, two decimal places), purpose, whoPays, maxDelivery (1 to 365), deliveryTimeline. Returns id + paymentToken; state: AWAITING_PAYMENT. customer-id = seller. Omit the header only if your business account is the seller itself. |
| Edit escrow | PUT /v1/escrow/edit/{paymentToken} | Replace amount/purpose/delivery/images. Same required fields as creation, even when unchanged. Allowed only while AWAITING_PAYMENT and only by the seller. New images are appended. |
| Update additional fee | PUT /v1/escrow/additional-fee/{paymentToken} | Sets your own charge (delivery, handling) on top of the escrow. Merchant super-admin only, no customer-id, standard escrows only, and only while PENDING. Paid to your merchant wallet on completion as a delivery transaction. |
| Delete escrow | DELETE /v1/escrow/delete/{paymentToken} | Removes an unfunded escrow. Allowed only while AWAITING_PAYMENT. |
| Verify payment token | GET /v1/escrow/verify/{paymentToken} | Resolves a link to its full escrow details, used by the buyer to preview before paying. |
| Claim funds | GET /v1/escrow/claim-funds/{paymentToken} | Seller releases funds to themselves. Allowed only when OPENED and the delivery window has elapsed. Closes as CLAIMED. |
| List escrow transactions | GET /v1/escrow/transactions | Paginated escrows for the caller. type (sales or buy) is required. Optional status, categoryId, page, limit. |