Send it once.Know it arrived.Prove it later.
Statements, payslips, notices, agreements. Send them to your customers and staff by NIN, email, CAC number, or a claim code if a name is all you have. Keepable tells you when each one is delivered and opened, and keeps a sealed record for when NDPC or your auditors ask.
Start with the quickstart, or go straight to the API reference.
Put the file in, once.+−The id that comes back is reusable. Reference it wherever the document is needed instead of re-posting the bytes per recipient.
POST https://api.keepable.co/sender/v2/documents
Authorization: Bearer {{KEEPABLE_TOKEN}}
Idempotency-Key: 3204bd75-fbb5-4e20-8190-53a7f22083dc
Content-Type: multipart/form-data; boundary=----keepable
------keepable
Content-Disposition: form-data; name="file"; filename="payslip-march.pdf"
Content-Type: application/pdf
%PDF-1.4…
------keepable--HTTP/1.1 201 Created
{ "document_id": "doc_01J8ZQ4T", "name": "payslip-march.pdf", "size_bytes": 184320 }Then address it to a person.+−That id goes in document_ids. This one is addressed by NIN; email, CAC number, and claim codes take the same shape.
POST https://api.keepable.co/sender/v2/plans/pln_01J8ZQ4T/runs
Authorization: Bearer {{KEEPABLE_TOKEN}}
Idempotency-Key: 5f3c1e02-9b7a-4a11-8c2e-6d0f4b8a1c93
Content-Type: application/json
{
"subject": "Your March payslip",
"document_ids": ["doc_01J8ZQ4T"],
"recipients": [
{ "addressing": { "type": "nin", "nin": "12345678901" },
"display_name": "Musa Bello",
"ref": "EMP-4471" }
]
}HTTP/1.1 202 Accepted
{
"correspondence_id": "cor_01J8ZQ4T",
"plan_id": "pln_01J8ZQ4T",
"kind": "letter",
"status": "live"
}