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. Fund the buyer’s wallet (staging helper)

On staging you can top up a customer’s wallet once per day to simulate a deposit:
This helper credits the wallet directly, so it skips the deposit path entirely.
Virtual accounts are deprecated and POST /v1/payment/virtual-account now returns 410. CBN rules require inflows to arrive as a direct escrow payment, so collect with the Checkout SDK rather than by issuing an account to pay into.

4. Pay the escrow

Fund the escrow from the buyer’s wallet. Payluk charges the escrow amount plus the buyer’s share of the fee.
The escrow now moves to state: OPENED; funds are held.

5. 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.