Create an escrow
Authorizations
Secret API key. Use sk_test_... for sandbox data or sk_live_... for live data (after verification and live mode). Do not use pk_ keys.
Headers
Body
reference, amount in naira, currency, parties (one payer and one payee; payer may use guest), optional debitPayer, optional checkout, and optional description.
Your unique reference. Duplicate values are rejected.
"order_12345"
Agreed hold amount in naira. 400 = ₦400.
400
ISO currency code.
"NGN"
Must include one payer and one payee. Payer may be a registered customerId or a guest object. Payee must be a registered customerId.
Short note shown on the escrow and in webhooks.
Optional merchant surcharge in naira. Added on top of provider and Demat fees at checkout. Credited to your settlement balance when funding completes.
0
If true, debit the payer's available balance now. The payer must be a registered customer with a wallet and available balance of at least amount, otherwise the request fails. Not allowed for guest payers. Default false: the hold is created as awaiting_funding. Cannot be combined with checkout.
false
If true, start hosted checkout for this hold and return the checkout session on the create response. Only when the hold is awaiting_funding. Cannot be combined with debitPayer. Omit to create the hold only. You can still POST /checkout/sessions later.
true
Checkout channels when checkout is true. Allowed: card, bank, bank_transfer, ussd. If omitted, the channels enabled on your Demat dashboard are used (card only until you turn others on). Ignored unless checkout is true.
card, bank, bank_transfer, ussd Browser return URL after checkout when checkout is true. Must be https with a public domain. If omitted, the merchant account callbackUrl is used. Ignored unless checkout is true.
"https://yourapp.com/payments/callback"