SMS API Reference

Send transactional and promotional SMS messages globally through the CashPay sovereign network.

Introduction

The CashPay SMS API allows developers to programmatically send messages for notifications, One-Time Passwords (OTPs), and marketing alerts. Our network ensures high delivery rates by connecting directly to major operators.

Costs are debited in real-time from your partner fleet account balance. We recommend maintaining a sufficient balance to avoid delivery interruptions.

Authentication

All API requests must include your API Key in the Authorization header. This identifies your partner account and authorizes the debit.

Header Format

cURL
Authorization: Bearer <YOUR_API_KEY>

Detailed SMS Rates (USD)

Below are the current rates per SMS for the Democratic Republic of Congo and Kenya.

Democratic Republic of Congo (DRC)

MCCMNCOperatorRate
630*All Operators$0.0360
6301Vodacom Congo$0.0360
6302Airtel Congo$0.0360
6303Orange RDC$0.0360
6305Africell RDC$0.0360

Kenya

MCCMNCOperatorRate
639*All Operators$0.0300
6390Landline/Fixed$0.0300
6392Safaricom PLC$0.0300
6393Airtel Networks Kenya Ltd$0.0300
6394Mobile Pay Ltd$0.0300
6396Finserve Africa Ltd$0.0300
6397Telkom Kenya Ltd$0.0300
6398Webtribe Ltd$0.0300
6399Homelands Media Ltd$0.0300
63910Jamii Telecoms Ltd$0.0300
63911Jambo Telcoms Ltd$0.0300
63912Infura Ltd$0.0300
63913Hidiga Investments Ltd$0.0300

Bulk Pricing (per 1,000 SMS)

DR Congo Pack

$36.00 / 1,000 SMS

Vodacom, Orange, Airtel, Africell

Kenya Pack

$30.00 / 1,000 SMS

Safaricom, Airtel, Telkom, Jamii & more

API Integration

POST/api/v1/b2b/sms/send

Sends a single SMS message. Requires your API key in the header.

Node.js using Fetch

JavaScript
const apiKey = 'YOUR_API_KEY';
const url = 'https://api.cashpay-all.com/api/v1/b2b/sms/send';

const data = {
  to: "+243812345678",
  message: "Your CashPay verification code is 123456",
  senderId: "CashPay"
};

fetch(url, {
    method: 'POST',
    headers: {
        'Authorization': `Bearer ${apiKey}`,
        'Content-Type': 'application/json'
    },
    body: JSON.stringify(data)
})
.then(res => res.json())
.then(result => console.log(result))
.catch(err => console.error(err));

Quick Browser Testing

For debugging, you can also use a simple GET request directly in your browser. This is useful for verifying that your API key is active.

Response Models

Success (200 OK)

JSON
{
  "success": true,
  "messageId": "msg_9988776655",
  "status": "SENT",
  "cost": 0.036,
  "currency": "USD"
}

Error (401/400)

JSON
{
  "success": false,
  "error": "Insufficient balance",
  "code": "ERR_BALANCE_LOW"
}

Ready to start?

Get your API keys from your developer dashboard and ensure your fleet account is funded to start sending messages.