Pays couverts
| Pays | Code | Devise |
|---|---|---|
| Côte d’Ivoire | CI | XOF |
| Bénin | BJ | XOF |
| Togo | TG | XOF |
| Rwanda | RW | RWF |
URLs
| Type | URL |
|---|---|
| Portail dev | momodeveloper.mtn.com |
| Sandbox API | https://sandbox.momodeveloper.mtn.com |
| USSD client | *133# |
Credentials requis
À renseigner dans Settings → Stores → MTN :| Champ | Type | Description |
|---|---|---|
sub_key_collection | password | Collection Subscription Key — depuis votre dashboard MTN Developer, section Collections subscription. |
api_user | text | UUID v4 généré via le portail (par ex. 11111111-2222-3333-8444-555555555555). |
api_key | password | Généré une seule fois après création de l’API User. Non-récupérable. |
Particularités
- Double authentification : MTN exige à la fois la
Ocp-Apim-Subscription-Key(en-tête) et un token OAuth bearer obtenu viaPOST /collection/token/en Basic auth (api_user:api_key). - Token caché en mémoire avec marge de sécurité de 60 secondes avant expiration.
- L’en-tête
X-Target-Environment: sandboxest obligatoire pour le mode sandbox. - L’en-tête
X-Reference-Id(UUID) doit être unique par requête — SandPay en génère un automatiquement. - Les
msisdnsont envoyés sans le+dans le payload (partyId).
Codes d’erreur natifs mappés
Les codes natifs MTN sont traduits vers les statuts canoniques SandPay (SUCCESS, PIN_INVALID, INSUFFICIENT_FUNDS, ACCOUNT_BLOCKED, …). Consultez frontend/lib/operators/_errors.ts côté repo pour la table complète.