Salami Gateway

API Documentation
Back to Dashboard

Frequently Asked Questions (FAQs)

Common questions and answers about the Salami Gateway API.

Table of Contents

  1. General Questions
  2. Authentication & Tokens
  3. Payments
  4. SMS
  5. eTims
  6. Troubleshooting
  7. Billing & Pricing

General Questions

What is Salami Gateway?

Salami Gateway is a unified API platform for payments, SMS, and eTims (tax compliance) integrations in Kenya and East Africa. It provides a single interface to multiple payment providers, SMS services, and KRA's eTims system.

Which countries are supported?

Currently supported:

Is there a test/sandbox environment?

Yes! All payment apps and SMS apps support test mode. You can:

Note: eTims does not have a sandbox - it uses real KRA credentials.

What programming languages are supported?

Salami Gateway is a REST API that works with any programming language. We provide:

How do I get support?

Authentication & Tokens

How do I create an API token?

  1. Log in to your Salami dashboard
  2. Navigate to AccountAPI Tokens
  3. Click "Add New Token"
  4. Select the scopes (permissions) you need
  5. Optionally set an expiration date
  6. Click "Save" and copy the token (shown only once!)

I lost my API token. What should I do?

API tokens are only shown once for security. If you lose it:

  1. Revoke the old token (if still active)
  2. Create a new token with the same permissions
  3. Update your application with the new token

What are API scopes?

Scopes control what an API token can access:

Use the principle of least privilege - only grant necessary scopes.

Can I use the same token for multiple applications?

While possible, it's not recommended. Best practice:

How long do tokens last?

Recommendation: Rotate tokens every 90 days for security.

What happens if my token is compromised?

  1. Immediately revoke the token in your dashboard
  2. Review recent API activity for suspicious calls
  3. Create a new token with fresh credentials
  4. Update your application with the new token
  5. Investigate how the token was exposed and fix the vulnerability

Payments

Which payment providers are supported?

Kenya:

Uganda:

Tanzania:

Rwanda:

Ghana:

Global:

What's the difference between C2B, B2B, and B2C?

How does STK Push work?

STK Push (Lipa Na M-Pesa Online) triggers a payment prompt on the customer's phone:

  1. You call the requestPayment endpoint
  2. Customer receives M-Pesa PIN prompt on their phone
  3. Customer enters PIN to complete payment
  4. You receive callback with payment result
  5. Transaction is reconciled automatically

Timeout: 30 seconds if customer doesn't respond

Why did my payment request fail?

Common reasons:

Check the response_description in the API response for details.

How do I know when a payment is completed?

Two methods:

1. Webhooks (Recommended)

2. Polling

Can I reverse/refund a payment?

M-Pesa: Yes, within 24 hours using the reverseTransaction endpoint.

Other providers: Limited support. Contact support for assistance.

What are the transaction limits?

Limits vary by provider and account type:

M-Pesa Kenya (typical):

Airtel Money:

Contact your payment provider to increase limits.

How long do transactions take to process?

What are the transaction fees?

Fees vary by provider and are typically deducted from your account balance:

M-Pesa Kenya (approximate):

Airtel Money:

Check with your provider for exact fee structure.

SMS

How do I send SMS?

  1. Create an SMS app in your dashboard
  2. Get an API token with sms:write scope
  3. Call the /api/sms/apps/{app_id}/send endpoint

See the SMS API documentation for details.

Can I use my own phone to send SMS?

Yes! With the Salami SMS Gateway Android app:

  1. Install the app on your Android phone
  2. Configure it with your SMS app credentials
  3. The app uses your SIM card to send/receive SMS
  4. No per-message costs (uses your carrier plan)

Benefits:

Drawbacks:

How much does SMS cost?

Using SMS providers (coming soon):

Using Android app:

Can I receive SMS replies?

Yes! Configure your SMS app to:

How long can an SMS be?

Cost: You pay for each part. A 200-character message = 2 SMS.

Why aren't my messages being delivered?

Common issues:

Check message status via the outbox endpoint.

Can I schedule SMS for later?

Yes! Use the scheduled_at parameter when sending:

{
  "to": "+254712345678",
  "message": "Your message",
  "scheduled_at": "2024-01-25T10:00:00Z"
}

How do I send bulk SMS?

Use the /api/sms/groups/{app_id}/send endpoint with a list of recipients:

{
  "recipients": ["+254712345678", "+254723456789"],
  "message": "Bulk message"
}

Best practices:

eTims

What is eTims?

eTims (electronic Tax Invoice Management System) is KRA's system for electronic tax invoices in Kenya. All VAT-registered businesses must use eTims-compliant systems.

Who needs to use eTims?

Penalty for non-compliance: Up to KES 1 million or 2 years imprisonment.

How do I get started with eTims?

  1. Register with KRA - Get your device credentials (BHFID, serial number)
  2. Configure in Salami - Enter your KRA credentials
  3. Initialize device - Call the initialize endpoint
  4. Register items - Add your products/services
  5. Start submitting - Submit sales to KRA

See the Getting Started guide.

Is there a test environment for eTims?

No. eTims only works with real KRA production credentials. There is no sandbox.

For testing:

How often should I submit sales to KRA?

Within 24 hours of the sale. Best practice:

Can I edit or delete a submitted sale?

No. Once submitted to KRA, you cannot edit. You can:

Always verify data before submission!

What happens if I submit incorrect data?

  1. Before submission: Edit freely
  2. After submission:
    • Cancel the invoice
    • Issue a credit note
    • Submit correct invoice
    • Document the reason

How do I handle returns and refunds?

  1. Cancel original sale via the API
  2. Issue credit note (if required)
  3. Specify refund type:
    • Cash refund
    • Credit note
    • No refund

What's a CU Invoice Number?

CU (Control Unit) Invoice Number is the unique identifier assigned by KRA to your invoice. It's returned when you submit a sale and must be shown on the printed receipt.

Format: CU2024123-001

Can I integrate my POS with eTims?

Yes! Salami Gateway provides a complete eTims API for POS integration:

What items need to be registered?

All products and services you sell must be registered with eTims before first use. Include:

Troubleshooting

I'm getting "Unauthorized" errors

Possible causes:

  1. No API token - Include Authorization: Bearer YOUR_TOKEN header
  2. Invalid token - Token may be revoked or expired
  3. Wrong token - Using token from different tenant

Solution: Verify your token in the dashboard and ensure it's active.

I'm getting "Forbidden" errors (403)

Cause: Your token doesn't have the required scope.

Solution:

  1. Check which endpoint you're calling
  2. Verify the required scope (see API docs)
  3. Create a new token with correct scopes

I'm getting "Rate limit exceeded" errors

Cause: You've exceeded 200 requests per minute.

Solution:

My webhook isn't receiving callbacks

Checklist:

  1. ✅ Webhook URL is publicly accessible (not localhost)
  2. ✅ Webhook URL uses HTTPS (not HTTP)
  3. ✅ Server is responding with 200 OK
  4. ✅ Firewall allows incoming requests
  5. ✅ URL is correctly configured in app settings

Testing: Use a service like webhook.site to verify callbacks are sent.

Transactions are showing as "pending" for too long

Normal duration:

If stuck longer:

  1. Check transaction status with provider
  2. Review error logs
  3. Contact payment provider
  4. If 24+ hours, contact support

How do I debug API issues?

  1. Check response - Read the message and error fields
  2. Review logs - Check your application logs
  3. Test with cURL - Isolate the issue
  4. Verify credentials - Ensure API token is valid
  5. Check status page - https://status.salami.dgl.co.ke
  6. Contact support - If issue persists

Billing & Pricing

How am I charged for using Salami Gateway?

Platform Fees:

Provider Fees:

Can I try Salami Gateway for free?

Yes! Free tier includes:

Perfect for testing and small projects.

What payment methods do you accept?

Do you offer volume discounts?

Yes! Contact sales@dgl.co.ke for:

Can I cancel anytime?

Yes! No long-term contracts:


Still have questions? Email us at support@dgl.co.ke

Back to Documentation Home


Need help? Contact us at support@dgl.co.ke
© 2026 Deadan Group Limited. All rights reserved.
⚡ API Explorer
LIVE
// Response will appear here...