Keepable
Sender API

Billing

Keepable is prepaid. Read your balance and ledger, and pull invoices as PDFs, so reconciliation happens in your systems rather than in a browser tab.

Every send debits a prepaid wallet at send time, whatever the kind. Sandbox sends are free by construction. A send that would take the balance below zero does not happen, so watching the balance is part of running an integration rather than an afterthought.

Balance

GET https://api.keepable.co/sender/v2/wallet
Authorization: Bearer {{KEEPABLE_TOKEN}}
{ "balance_kobo": 4120000, "currency": "NGN", "promo_kobo": 9000000, "promo_expires_at": "2026-10-01T00:00:00Z" }

Needs wallet.read. Alarm on it: a low balance is a thing to fix on a Tuesday afternoon, not at the moment a payroll run stops. promo_kobo is signup credit if you hold any, with the date it lapses; it spends before your own money does.

wallet.debited fires on every debit if you would rather subscribe than poll.

Ledger

GET /wallet/ledger?cursor=...

Every credit and debit, newest first. Each entry carries an entry_id, its kind (credit or debit), the amount_kobo (always positive), the running balance_after_kobo, and a ref_type / ref_id naming what it was for. That last pair is the reconciliation surface: join it to your own send records by correspondence id.

Invoices

GET /invoices
GET /invoices/{invoice_id}/pdf

The trailing twelve months, newest period first, and the PDF for any of them. Needs invoices.read.

Funding the wallet is not in this API. Paying money into an account is an act of somebody with authority over the organisation's money, so it happens in the portal. What is here is everything that comes after: what you have, what you spent it on, and what you were charged.

On this page