The test bank exists only on staging. On production, virtual accounts are issued
by the real bank and every one of the routes below returns
404.Before you start
You need:- A
sk_test_secret key from your Payluk dashboard. - A merchant customer whose country is Nigeria. Virtual accounts are Nigerian-only.
1. Generate a virtual account
Call Generate virtual account with the customer’s id in thecustomer-id header:
bank reads Payluk Test Bank, and
accountNumber always begins with 99. The account is valid for 24 hours and
accepts amount (₦100) or more.
2. Pay the account from the test bank
Open the test bank in a browser:- Pick a source account under From. Three are provided, funded with ₦1,000,000, ₦250,000, and ₦100. The last one is there so you can test an insufficient-funds rejection.
- Paste the
accountNumberfrom step 1 into To account number. The name resolves under the field once it matches an issued account, and the amount the account expects appears beneath Amount. - Enter an amount and select Send money.
3. Confirm the wallet credited
The transfer credits the customer’s wallet through the same path a real deposit takes. Read the balance back with Get customer wallet:?type=transfer, with status success.
A wallet top-up does not send a webhook to your callback URL. Payluk sends
webhooks for escrow events, not for deposits. Poll the wallet or the payment
history instead.
What is and is not simulated
Simulated on staging
Virtual account issuance, the inbound transfer, the credit notification, and
the wallet settlement that follows.
Not simulated
Payouts, bank lists, and account name enquiry against real banks. Those still
run against the provider’s sandbox.
Troubleshooting
The account number does not resolve in the test bank
The account number does not resolve in the test bank
The test bank only knows accounts it issued. Check that
bank in the
generate response read Payluk Test Bank and that the number begins with
99. An account issued more than 24 hours ago has expired: generate a new
one.The transfer succeeded but the wallet did not credit
The transfer succeeded but the wallet did not credit
The receipt reports whether the credit notification was delivered. If it
reports a failure, the money moved inside the test bank but the notification
did not reach Payluk. Retry the transfer, and if it keeps failing, send the
session id from the receipt to your Payluk contact.
Every test bank route returns 404
Every test bank route returns 404
You are either on production, where the test bank does not exist, or you are
calling the merchant API host rather than the checkout host. Use
https://staging.live.payluk.ng.