Stop rebuilding bank Direct Debit in every billing release

The problem is not your product — it is the integration surface. TAPA exposes server-to-server APIs at /api/v1/dd for mandate creation, bank status polling, and debit submission. API key or JWT auth; amounts in KES minor units.

Current endpoints

MethodPath
POST/api/v1/dd/mandates
POST/api/v1/dd/mandates/{id}/status/refresh
POST/api/v1/dd/mandates/{id}/debits
GET/api/v1/dd/debits/{id}

Postman UAT collection

End-to-end flows for mandate create, bank status refresh, and debit submission — ready for your team's UAT sign-off.

Read docs →

Implementation docs

Request shapes, error codes, env setup, and reconciliation patterns for subscription billing and recurring debits.

Read docs →

Quick start

curl -X POST https://api.example.com/api/v1/dd/mandates \
  -H "X-TZD-API-Key: tzdk_..." \
  -H "Content-Type: application/json" \
  -d '{"customerReference":"001","payerName":"Jane W.","currency":"KES",...}'