eSMSAfrica
Mobile money & fintech · Zambia

OTP and payment SMS for fintech in Zambia

Zambian fintech apps live or die by the one-time code that arrives in seconds. Whether you run a wallet, a digital lender or a merchant payments app, SMS carries sign-up codes, receipts and fraud warnings to customers on Airtel, MTN and Zamtel. Here is how teams in Lusaka structure those flows, and what the Bank of Zambia e-money rules mean for your messages.

MTN, Airtel, Zamtel Delivery reports From ZMW 0.2101 per SMS
KwachaPayOTP
Your KwachaPay code is 482913. It expires in 5 minutes. KwachaPay staff will never ask for this code.
101 chars · 1 segment · GSM-7
Zambia context

What makes mobile money & fintech messaging different in Zambia

  • Airtel Money, MTN MoMo and Zamtel Kwacha are the everyday rails for paying school fees, buying airtime and sending money home. Fintech apps that sit on top of these wallets need their own SMS layer for codes and receipts under their own brand.
  • The Bank of Zambia issued e-money directives in 2023, and in September 2024 it directed e-money issuers to stop charging for things like deposits, balance enquiries, failed transactions and electronic statements. Messages that mention fees must reflect those rules.
  • A new National Payment Systems Act was passed in 2026 but is not yet in force, so check with the Bank of Zambia before relying on any provision of it in your onboarding or notices.
  • Zambian networks reject generic sender IDs such as OTP or VERIFY, so a code sent from an unregistered or generic name may be delayed or replaced. Register your app name before launch.
What to send

Messages mobile money & fintech teams in Zambia send

Sign-up and login OTP

Use eSMS Verify to generate, send and check a six-digit code. It rate-limits repeat requests per number, which blocks most SMS pumping attempts that target new apps in their first weeks.

Payment and transfer receipts

Confirm every payment with the amount, the recipient name and a transaction ID. Customers forward these receipts as proof of payment to landlords, schools and suppliers, so keep the format stable.

Failed payment follow-up

When a wallet pull fails, send a short note explaining what happened and that no fee was charged, then a link back to retry. It reduces support tickets about money that never left the wallet.

New device and limit change alerts

Alert customers whenever the account is opened on a new phone, the SIM changes or a transaction limit is raised. Include a number to call if they did not make the change.

Loan disbursement and due dates

Digital lenders confirm the disbursed amount, the repayment total and the due date in one message, then remind the borrower before the date without threatening or shaming language.

Sample messages

Copy-ready templates for Zambia

Character counts and segments are calculated with the same GSM-7 and Unicode rules used for billing. Replace the example brand and values with your own.

Login OTP OTP
Your KwachaPay code is 482913. It expires in 5 minutes. KwachaPay staff will never ask for this code.
101 chars · 1 segment · GSM-7
Payment receipt Transactional
KwachaPay: You paid ZMW 450.00 to Chilenje Market Traders on 03/12 14:05. Ref KP7H2Q91. No fee charged. Bal ZMW 1,120.40.
121 chars · 1 segment · GSM-7
New device alert Transactional
KwachaPay: Your account was opened on a new phone at 21:14. Not you? Call 0977 000 000 immediately to lock it.
110 chars · 1 segment · GSM-7
Loan due reminder Transactional
KwachaPay Loans: Hi {name}, ZMW {amount} is due on {date}. Repay in the app or via MTN MoMo. Need more time? Call us before the due date.
143 chars · 1 segment · GSM-7
Rules that apply

Compliance for mobile money & fintech SMS in Zambia

A practical summary with sources, not legal advice. Check the regulator's current text for edge cases.

  • E-money issuers are supervised by the Bank of Zambia. Its September 2024 directive lists charges that are no longer allowed, such as wallet deposit and balance enquiry fees, so do not describe these as chargeable in any message.
  • OTP and receipts are transactional and can go out at any hour. Cross-selling credit or cashback offers is promotional: get consent, include an opt-out and keep it inside daytime hours.
  • Phone numbers, balances and transaction histories are personal data under the Data Protection Act No. 3 of 2021. Register with the Data Protection Commissioner and keep OTP logs only as long as you need them for fraud checks.
  • Never put the full code in a URL or reuse a code across sessions. Pair SMS OTP with device binding for high-value actions so a SIM swap alone cannot drain an account.
Send it

From your system to MTN and Airtel in one call

  1. 1Create an account and copy a test key (esms_test_...) to try the integration without spending credit.
  2. 2Request your sender ID for Zambia. Until it is approved you can send from the eSMS default sender.
  3. 3Call the send endpoint from your app, or upload a CSV in the dashboard with merge fields like {{name}}. Delivery reports arrive by webhook.

Need one-time codes? eSMS Verify generates, sends and checks them in two calls. Full reference in the API docs.

curl -X POST https://sms.esmsafrica.io/api/messages/send \
  -H "Authorization: Bearer $ESMS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+260971234567",
    "text": "Your KwachaPay code is 482913. It expires in 5 minutes. Never share it.",
    "sender_id": "KwachaPay"
  }'
Live pricing

SMS pricing in Zambia

Per-SMS rates for one segment, updated live. Pay as you go with no monthly minimum; volume rates apply automatically by monthly spend.

Basic
ZMW0.2101
per SMS· USD 0.0104
Monthly spend USD 1 - USD 1,000
Business
ZMW0.1939
per SMS· USD 0.0096
Monthly spend USD 1,001 - USD 4,999
Enterprise
ZMW0.1798
per SMS· USD 0.0089
Monthly spend USD 5,000+

Estimate a campaign with the SMS cost calculator or compare all countries in the Africa SMS pricing index.

FAQ

Mobile money & fintech SMS in Zambia: common questions

Should I build my own OTP logic or use Verify?

If you only need codes, eSMS Verify is quicker: one call starts a verification and a second checks the code, and eSMS handles code generation, expiry and rate limits. Build your own only if you need a custom code format or must store codes in your own system for audit reasons.

What sender ID should a fintech use in Zambia?

Use your app or company name, up to 11 characters, and register it before launch. Generic names such as OTP, INFO or VERIFY are rejected by the networks, and messages from them may arrive from a number instead. While registration is in progress you can test on the eSMS default sender.

Can I mention fees in a receipt?

Yes, and you should be precise. If a fee was charged, show it as a separate amount. If the Bank of Zambia directive means a transaction type is free, saying 'No fee charged' builds trust and matches what customers see in their wallet history.

What happens if an OTP does not arrive?

Offer a resend after 30 to 60 seconds, then a voice call or email as a fallback. Verify rate-limits resends so a stuck user cannot trigger dozens of paid messages, and delivery reports show whether the network accepted the code.

Get started

Start sending mobile money & fintech SMS in Zambia today

Free account, test keys, sender ID registration handled for you, and pay-as-you-go pricing in ZMW or USD.