AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Africa Mobile Money

skill-builderced-agent-skills-africa-mobile-money · by BuilderCed

Integrate M-Pesa, Orange Money, Wave, and MTN MoMo payment APIs with proper error handling, reconciliation, and multi-operator patterns.

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-builderced-agent-skills-africa-mobile-money

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-builderced-agent-skills-africa-mobile-money)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
5mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Africa Mobile Money? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

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:

  1. Fetch transaction report from operator API (daily)
  2. Compare with your local records
  3. Flag mismatches: received but not recorded, recorded but not received
  4. 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)

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.