Introduction
Keepable is a secure digital mailbox for Nigeria. Deliver documents to verified people, route files desk to desk for approval, run signature ceremonies, ask for consent, and collect answers back, over one API.
Keepable is a secure digital mailbox. Businesses and government agencies deliver mail, run signature ceremonies, route work for approval, and collect answers back from people identified by their NIN or email, from companies by their CAC registration number, and from somebody you hold only a name for, via a single-use claim code you hand over yourself. Recipients read it all in one inbox, on the web or on their phone.
You integrate over the Sender API: an API-key-authenticated,
server-to-server interface at https://api.keepable.co/sender/v2.
Start here
The model
Two primitives carry the whole API. Read this first.
API reference
The generated request and response reference for every endpoint.
The shape of an integration
Authenticate. Mint a key in the portal (start free in the sandbox) and send it as a bearer token. Its prefix picks the plane. See Authentication.
Upload your documents. A PDF is uploaded once and referenced by id wherever you need it, so you never re-post bytes per recipient. You can also pull a file straight out of your organisation's own drive. See Documents.
Create correspondence. One endpoint sends a letter, runs a signature ceremony, routes an approval, asks for consent, or publishes a form. See Correspondence.
React to webhooks. A participant acted, a file sealed, a claim was redeemed. Do not poll. See Webhooks.
What you can do
| Job | Examples | Guide |
|---|---|---|
| Send | Letters, payslips, invoices, statements, notices | Correspondence |
| Get it signed | Signature ceremonies bound to a NIN and a passkey | Correspondence |
| Route it | Desk to desk, with quorums, on a hash-chained ledger | Routing |
| Ask | Consent decisions with a verifiable receipt on both sides | Correspondence |
| Collect | Answers and documents back, sensitive ones masked by default | Responses |
| Reuse | Write the route and the questions once, run them repeatedly | Plans |
| Reach anyone | A declared name and a single-use code, no links | Claim codes |
A 60-second taste
POST https://api.keepable.co/sender/v2/correspondence
Authorization: Bearer {{KEEPABLE_TOKEN}}
Idempotency-Key: 5f3c1e02-9b7a-4a11-8c2e-6d0f4b8a1c93
Content-Type: application/json
{
"kind": "letter",
"subject": "Your March payslip",
"content_type": "payslip",
"document_ids": ["doc_01J8ZQ4T"],
"recipients": [
{ "addressing": { "type": "nin", "nin": "12345678901" },
"display_name": "Musa Bello",
"ref": "EMP-4471" }
]
}If Musa is on Keepable, it lands in his inbox. If he is not, it is retained:
sealed, held, and delivered the day he verifies his NIN. Either way the call
answers 202 with a correspondence_id: the file exists and the send is
queued, and correspondence.send_completed tells you the run drained while
participant.acted tells you it moved.