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}}
Content-Type: application/json

{
  "filename": "payslip-march.pdf",
  "media_type": "application/pdf",
  "content_base64": "JVBERi0xLjQK..."
}
HTTP/1.1 201 Created

{ "document_id": "doc_01J8ZQ4T", "filename": "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/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" }
  ]
}
HTTP/1.1 201 Created

{
  "correspondence_id": "cor_01J8ZQ4T",
  "kind": "letter",
  "status": "delivered",
  "participants": [
    { "participant_id": "par_01J8ZQ4T", "ref": "EMP-4471", "state": "delivered" }
  ]
}