Escrows
Escrows are automatically created when a buyer pays through a payment link. You don't create escrows directly — they are the result of a successful payment. Escrows protect both buyers and sellers by holding funds until delivery is confirmed.
Escrow lifecycle
PENDING → ACTIVE → AWAITING CONFIRMATION → COMPLETED
↘ DISPUTED → COMPLETED / REFUNDED
↘ REFUNDED
↘ CANCELLEDStatus descriptions
| Status | Description |
|---|---|
pending | Escrow created, awaiting payment |
active | Payment received, funds locked |
awaiting_confirmation | Seller marked as delivered, waiting for buyer confirmation |
disputed | A dispute has been opened, funds locked until resolved |
completed | Delivery confirmed, funds released to seller |
refunded | Full refund issued to buyer |
cancelled | Transaction cancelled |
Fee structure
Fees are added on top of the transaction amount at payment time. The buyer pays the base amount plus fees; the seller always receives the full base amount on release.
- Platform fee— Kashia's fee on every transaction (default 1.5%, minimum ₦100, cap ₦50,000)
- Marketplace fee — optional commission for marketplace merchants (0–20%, optional cap). Single-vendor merchants charge 0%.
- Fees are snapshotted on the escrow when payment is received
- Example: ₦1,000,000 item + ₦15,000 platform fee + ₦100,000 marketplace fee → buyer pays ₦1,115,000, seller receives ₦1,000,000
- On refund or cancellation, the buyer receives the base amount only — fees are non-refundable. See Fees for details.
Endpoints
/api/v1/merchant/escrowsList escrows for the authenticated merchant. Requires Merchant JWT from dashboard login.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No (default: all) | Filter by escrow status |
page | integer | No (default: 1) | Page number |
per_page | integer | No (default: 20) | Items per page |
/api/v1/merchant/escrows/:idReturns full escrow details including buyer, seller, status history, and linked dispute.
Escrow actions
These endpoints accept Merchant JWT or User JWT depending on the action. Marketplace apps can also use hosted action links — see Action Links.
/api/v1/external/escrows/:escrowId/deliverMark as shipped via API key with optional shipping_details.
/api/v1/external/escrows/:escrowId/confirmConfirm receipt via API key.
/api/v1/escrows/:id/deliverMark escrow as shipped. Seller or merchant. Optional shipping_details body.
/api/v1/escrows/:id/confirmConfirm delivery and release funds. Buyer only.
/api/v1/escrows/:id/cancelCancel escrow. Merchant only.
Request example
{ "reason": "..." }/api/v1/escrows/:id/refundIssue a full refund. Merchant or admin.
Request example
{ "reason": "..." }