Salami Gateway is a unified API platform built for businesses operating in Kenya and East Africa. It consolidates payments processing, SMS and messaging, and KRA tax compliance into a single developer-friendly interface -- so you integrate once and access everything.
Whether you need to collect M-Pesa payments, send bulk SMS, validate KRA PINs, or submit eTIMS invoices, Salami gives you one set of credentials, one consistent API style, and one dashboard to manage it all.
Process and disburse funds through Kenya's major mobile money and banking rails.
| Capability | Description |
|---|---|
| STK Push | Prompt customers to pay from their phone (M-Pesa, Airtel Money) |
| C2B / B2C / B2B | Customer-to-business, business-to-customer, and business-to-business transfers |
| Balance inquiry | Check your float or account balance in real time |
| Transaction status | Query provider systems for definitive transaction outcomes |
| Reversals | Reverse erroneous transactions |
| Airtime top-up | Send airtime directly to any mobile number |
| Callback handling | Receive and process payment notifications from providers |
Supported providers include Safaricom M-Pesa, Airtel Money, MTN Mobile Money, Equity Bank (EazzyPay), Kopokopo, and more.
Send and receive messages at scale through 130+ global providers.
| Capability | Description |
|---|---|
| Single & bulk SMS | Send to one recipient or millions |
| Two-way messaging | Receive inbound SMS and reply programmatically |
| Group messaging | Organise contacts into groups and message them together |
| Inbox & outbox | Query message history with full delivery status |
| Android gateway sync | Use an Android phone as an SMS gateway via SMSSync / MSync |
| Delivery reports | Real-time DLR callbacks from the carrier network |
Two sub-modules cover the full spectrum of KRA integration.
| Capability | Description |
|---|---|
| PIN checker | Validate a KRA PIN or look it up by ID number |
| Tax obligation checker | Retrieve a taxpayer's registered obligations |
| TCC validation | Verify Tax Compliance Certificates |
| Invoice & declaration lookup | Check KRA invoice numbers and customs declarations |
| Exemption checks | IT exemption, VAT exemption, import certificates, excise licences |
| PRN generation | Generate Payment Reference Numbers for IT, rental, and VAT withholding taxes |
| PIN registration | Register new individual KRA PINs |
| Tax returns | File TOT and NIL returns |
| TCC application | Apply for a Tax Compliance Certificate |
| Capability | Description |
|---|---|
| Device management | Initialize and query your OSCU device |
| Sales & purchases | Submit, retrieve, cancel, and list invoices |
| Credit notes & reverse invoices | Issue corrections against previous sales |
| Item management | Register, update, and query stock items |
| Stock movements | Record stock-in, stock-out, and adjustments |
| Customers & suppliers | Maintain your trading partner registry |
| Code tables | Download countries, currencies, payment types, and tax types from KRA |
| Notices | Retrieve and acknowledge KRA notices |
| Reports | Sales, purchases, stock, and sales summary reports |
| Invoice verification | Verify the authenticity of eTIMS invoices |
KRA API reference → | eTIMS API reference →
Centralized biometric attendance data collection and distribution to multiple consumer systems.
| Capability | Description |
|---|---|
| Device sync | Receive biometric scan data from on-premise ZKTeco sync agents |
| BioTime cloud | Pull attendance data from ZKTeco BioTime cloud API |
| Scan storage | Store all raw scans with full audit trail |
| Webhook fan-out | HMAC-signed delivery to registered consumers (Hub, HimaHR, etc.) |
| Device management | Register devices, manage API tokens |
| Agent downloads | Distribute sync agent binaries with per-OS setup instructions |
Salami is multi-tenant. Every organisation gets its own subdomain:
https://{tenant}.salami.dgl.co.ke/api/
Replace {tenant} with the subdomain you were assigned when your account was created. All examples in this documentation use the placeholder yourtenant.
| Module | Base path |
|---|---|
| Payments | /api/pay/... |
| SMS | /api/sms/... |
| KRA Portal | /api/kra/... (checkers, payments, compliance, registration, returns) |
| eTIMS OSCU | /api/kra/etims/... |
| Attendance | /api/attendance/... (scans, devices, agent downloads) |
Full example:
https://yourtenant.salami.dgl.co.ke/api/pay/apps
https://yourtenant.salami.dgl.co.ke/api/sms/apps/1/send
https://yourtenant.salami.dgl.co.ke/api/kra/checkers/pin
https://yourtenant.salami.dgl.co.ke/api/kra/etims/sales/submit
The current API is v1 and is served at the base URL above with no version prefix. If a breaking change is introduced in the future, it will be served under a /v2/ prefix and the existing endpoints will continue to work unchanged. Deprecation notices will be published at least 90 days in advance.
Non-breaking additions (new fields in responses, new optional parameters, new endpoints) are shipped continuously and do not require a version bump.
Every endpoint returns JSON with a consistent envelope:
{
"success": true,
"data": { },
"message": "OK"
}
On failure:
{
"success": false,
"error": "Human-readable error message"
}
See Error Codes for the full reference.
| Resource | Link |
|---|---|
| Getting started | getting-started.md |
| Authentication | authentication.md |
| Error codes | error-codes.md |
| Payments API | api/payments-api.md |
| SMS API | api/sms-api.md |
| eTIMS API | api/etims-api.md |
| FAQs | faqs.md |
| Channel | Detail |
|---|---|
| support@dgl.co.ke | |
| Documentation site | https://docs.salami.dgl.co.ke |
| Status page | https://status.salami.dgl.co.ke |
| PHP SDK | https://github.com/deadangroup/salami-sdk |
Built and maintained by Deadan Group Limited.