Africa mobile money
Skill BuilderCed/agent-skills/skills/africa/africa-mobile-money
31 cross-platform AI agent skills for regulated industries & underserved markets. EU compliance (AI Act, NIS2, DORA, GDPR), French professional (accounting, tax, notary, real estate), security audit, agent evaluation, Africa mobile money, offline-first.
npx -y skills add BuilderCed/agent-skills --skill africa-mobile-moneyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Integrate M-Pesa, Orange Money, Wave, and MTN MoMo payment APIs with proper error handling, reconciliation, and multi-operator patterns.
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.9 KB, as published. Nobody here has run it
Africa Mobile Money Integration
DISCLAIMER: This skill provides integration patterns only. It does not constitute financial advice. Payment processing is regulated — verify compliance with local financial authorities in each market.
When to Use
- Accepting payments from African mobile money users
- Building multi-operator payment flows
- Implementing reconciliation for mobile money transactions
- Designing payment UX for feature phones (USSD) and smartphones
Supported Operators
| Operator | Markets | API | Auth |
|---|---|---|---|
| M-Pesa (Safaricom) | Kenya, Tanzania, DRC, Mozambique | Daraja 2.0 | OAuth2 |
| Orange Money | Senegal, Mali, Cote d'Ivoire, Cameroon, 10+ | OMAPI | API Key |
| Wave | Senegal, Cote d'Ivoire, Mali, Uganda | REST | API Key |
| MTN MoMo | Ghana, Uganda, Rwanda, Cameroon, 10+ | Open API | OAuth2 + Subscription Key |
Common Payment Flow
1. Customer initiates payment (app, USSD, or web)
2. Your server calls operator API (STK Push / Payment Request)
3. Customer receives prompt on phone → enters PIN
4. Operator processes → sends callback to your server
5. Your server verifies callback signature
6. Update order status + send confirmation
Key Patterns
Multi-Operator Detection
Detect operator from phone number prefix:
Kenya:
07XX, 01XX → Safaricom (M-Pesa)
0720-0729 → Safaricom
0733-0739 → Safaricom
Senegal:
77X → Orange Money
78X → Wave
76X → Free Money
Idempotency
Mobile money callbacks can arrive multiple times. Always:
- Use a unique transaction ID per request
- Check if transaction already processed before updating state
- Store callback raw payload for reconciliation
Timeout Handling
Mobile money transactions have long confirmation times:
- M-Pesa STK Push: up to 60s for customer PIN entry
- Orange Money: up to 120s
- Design for: pending → success/failed/expired states
- Never assume failure on timeout — always check status API
Reconciliation
Daily reconciliation is critical:
- Fetch transaction report from operator API (daily)
- Compare with your local records
- Flag mismatches: received but not recorded, recorded but not received
- Investigate and resolve within 24h
Error Handling
| Error | Cause | Action |
|---|---|---|
| Insufficient balance | Customer lacks funds | Show clear message, suggest lower amount |
| Wrong PIN | Customer entered wrong PIN | Allow retry (max 3) |
| Timeout | Customer didn't respond | Check status API, don't retry automatically |
| Duplicate | Same transaction sent twice | Return existing result (idempotent) |
| System unavailable | Operator maintenance | Queue and retry with exponential backoff |
Security
- Never log full phone numbers (PII) — mask middle digits
- Verify callback source — check IP whitelist or signature
- Use HTTPS for all API calls
- Store API keys in environment variables, never in code
- Amount validation — server-side, never trust client
What This Skill Does NOT Do
- Does not handle operator onboarding/KYC (business process)
- Does not manage currency conversion (use forex APIs)
- Does not implement USSD menus (see
africa-ussd-development) - Does not handle regulatory compliance per country (varies widely)