Skip to main content
This guide takes you from zero to a funded, settled escrow on the staging environment. You’ll need a sk_test_ secret key from your Payluk dashboard.
Set the API Reference server to Staging (https://staging.api.payluk.ng) and paste your sk_test_ key into the Authorization field to run any request live from the docs.

1. Create an escrow

Generate a payment link. The seller is the owner of the API key.
The response contains a paymentToken; this is your shareable payment link reference.

2. Create a customer (the buyer)

Most buyer-side actions act on behalf of a merchant customer, identified by the customer-id header. Create one first:
Send phone as digits only, with no leading +. countryId is optional: omit it and the customer inherits your merchant account’s country. It takes either an ISO code like NG or an id from Get countries.

3. Collect the buyer’s payment

Every payment comes in as an escrow payment through the Checkout SDK. Payluk has no direct deposits and no card payments: Checkout generates a temporary virtual account for the escrow and the buyer pays it by bank transfer. From your frontend, pass the escrow’s paymentToken (returned in step 1) to pay() with your publishable key:
The buyer is charged the escrow amount plus their share of the fee. When the transfer lands, the escrow moves to state: OPENED and funds are held.
On staging the checkout window shows a Pay from Payluk Test Bank button, so you can complete a payment without real money. See Payluk Test Bank.

4. Confirm delivery

When the buyer is satisfied, confirm the payment. This releases funds to the seller and completes the escrow.
🎉 That’s a full escrow lifecycle. Next, read how the escrow lifecycle and fees work in detail.