Keepable
Sender API

Going live

Moving from the sandbox to production means clearing three gates (an approved KYB, an accepted Sender Agreement, and a funded prepaid wallet) before you can mint a live key.

The sandbox needs an organisation name and a work email. Production is gated, because a live send reaches a real, identity-anchored recipient. Three requirements stand between a sandbox tenant and its first kp_live_ key, and they are worked in this order:

  1. Sender Agreement: you accept the current terms. This comes first: an application is a request to become a sender on those terms, so agreeing to them is part of applying rather than something collected after approval.
  2. KYB approval: your organisation passes a know-your-business check.
  3. A funded wallet: a live send debits prepaid credit.

All three are acts of a person with authority in your organisation, so all three happen in the portal. None of them is an API call, and that is deliberate: a minute reading "key kp_live_5179 accepted your terms" is not evidence that anybody accepted anything.

You can build and test everything in the sandbox while you work through them.

1. Accept the Sender Agreement

You can read the Sender Agreement before you apply, and you do not need an account to do it. Accept it from the portal; the dashboard shows which version is current and whether your organisation holds it.

If we revise the agreement, you will need to accept the new version before minting a new live key. Existing keys keep working.

2. Clear KYB approval

Submit your registered business details and two identities, then track the review to a decision. You clear this in the portal; approval flips your tenant's status to approved.

What you need: your CAC registration number with its series prefix (RC1234567, or BN, IT, LP, LLP; every register may apply for a sender account), your registered legal name, your own NIN and the NIN of a director, a contact we can write to, and the mandatory documents (CAC status report and tax clearance certificate).

No TIN is asked for. Under the Nigeria Tax Administration Act 2025 a company registered from January 2026 uses its CAC number as its Tax ID and is issued no separate TIN, so the field was retired. Your tax clearance certificate is still a required document: the evidence of your standing with the revenue service is the certificate that service issued.

Your director has to agree, and this is what usually holds an application

A company's CAC record names its directors but carries no identifier for them, so a name alone cannot tell us that the director you name is the person we reached, because Nigeria has a great many people who share a name. So we ask them. The person holding that NIN gets a request in their own Keepable, and until they answer it, the application cannot be approved.

Two things about that surprise people:

  • We ask even when you say you are the director. Typing a NIN proves the number exists; it proves nothing about who typed it. If the confirmation were skipped for anyone who claimed to be the director, anyone holding a director's NIN could open an account in that company's name and the director would never hear about it. So the request goes out either way. It just reads differently, and lands in your own Keepable.
  • A director with no Keepable account is the commonest stall. A NIN is a hold key: the request waits for them rather than failing. If your application is sitting at awaiting, the thing that unblocks it is usually getting that person registered.

If they decline, the application returns to you so you can name the right person and submit again.

What we keep

We record the last four digits of each NIN, the verified name the registry returned, and a reference to the check. We also retain the numbers themselves, encrypted, so that if a sender account is ever used to impersonate a business there is a person we and the authorities can identify. There is no routine access to it. This is set out in the Sender Agreement you accepted above.

3. Fund the wallet

A live send debits a small prepaid charge; an empty balance blocks the send with 402 Payment Required (code: insufficient_funds). Check your balance:

GET https://api.keepable.co/sender/v2/wallet
Authorization: Bearer {{KEEPABLE_TOKEN}}
{ "balance_kobo": 0, "currency": "NGN" }

Amounts are in kobo (minor units of NGN). Top up, then review movements any time through the ledger:

GET https://api.keepable.co/sender/v2/wallet/ledger
Authorization: Bearer {{KEEPABLE_TOKEN}}

Each ledger entry is a credit (a top-up) or a debit (a send), always positive, with the running balance_after_kobo. Sandbox sends never appear here; they are free.

Mint your live key

Once the agreement is accepted, your organisation is approved, and the wallet is funded, mint a live key from the portal. Minting is deliberately not an API call (see Authentication), and the dashboard refuses it while any of the three gates is still open, naming the one that is.

The new key is prefixed kp_live_. Swap it in, and the same calls you tested in the sandbox now reach real recipients. See Environments for switching cleanly between the two.

On this page