Skip to content

Introduction

Nablr for Business lets your website or app take payments in naira. Your customer pays by card, bank transfer, USSD or Pay with Nablr. You get a webhook, check the payment with one API call, and the money settles to your balance.

These docs cover everything you need to integrate: the guides walk through each step, and the API reference lists every endpoint.

How a payment flows1. Clicks Pay. 2. POST /v1/payments (secret key). 3. checkout_url and checkout_token. 4. Redirect to checkout_url, or open it inline. 5. Pays: card, transfer, USSD or Pay with Nablr. 6. Webhook: payment.succeeded. 7. Back to your callback_url?reference=…. 8. GET /v1/payments/{reference}: verify. 9. Give valueCustomerYour website and serverNablr for Business1. Clicks Pay2. POST /v1/payments (secret key)3. checkout_url and checkout_token4. Redirect to checkout_url, or open it inline5. Pays: card, transfer, USSD or Pay with Nablr6. Webhook: payment.succeeded7. Back to your callback_url?reference=…8. GET /v1/payments/{reference}: verify9. Give value
  1. Your customer clicks Pay on your site.
  2. Your server initialises the payment: POST /v1/payments with the amount, a reference and the customer’s email, using your secret key.
  3. We answer with a checkout_url and a checkout_token.
  4. You send the customer to the hosted checkout at checkout_url, or open the same checkout over your page with the inline script.
  5. The customer pays. The checkout handles card details, one-time codes, transfer accounts, USSD codes and Pay with Nablr approvals, so your site never touches them.
  6. We send a payment.succeeded webhook to your server.
  7. The checkout sends the customer back to your callback_url with ?reference=….
  8. Your server verifies the payment: GET /v1/payments/{reference}.
  9. Only when the status is succeeded and the amount is right do you give value: ship the order, top up the account, issue the ticket.

Steps 6 and 7 can arrive in either order, and either can fail to arrive (a customer closes the tab; a network drops a webhook). Your server must act on whichever comes first, and verify every time.

EnvironmentAPI base URLKeys
Productionhttps://api.paywithnablr.com/v1sk_test_… and sk_live_…
Pre-launch test serverhttps://pwn-api.142-93-42-70.sslip.io/v1sk_test_… from the test dashboard

The key decides the mode, not the URL: a test key only ever sees test data and moves no money. Until launch, build against the test server with a test key from the test dashboard.

Refunds, payouts, virtual accounts, subscriptions and SDKs are coming soon.