Objet du service
CUA Pay permet aux citoyens de régler leurs redevances municipales depuis leur téléphone mobile, sans déplacement au guichet. Le service est utilisé par plusieurs applications de la Commune :
| Application | Usage | État |
|---|---|---|
| IFPB | Impôt foncier sur la propriété bâtie — paiement de l'avis d'imposition | En préparation |
| Marchés | Redevances des places de marché communales | En préparation |
Une seule intégration opérateur est mutualisée entre ces applications, ce qui garantit un traitement identique des paiements et une piste d'audit unique pour la Commune.
Opérateurs
| Opérateur | Préfixes | API | État de l'intégration |
|---|---|---|---|
| MVola (Telma) | 034, 038 |
Merchant Pay v2 | Onboarding en cours |
| Orange Money | 032, 037 |
À confirmer | Onboarding en cours |
| Airtel Money | 033 |
À confirmer | Onboarding en cours |
| Espèce (guichet / terrain) | — | — | Opérationnel |
L'ouverture des comptes marchands et les conventions avec les opérateurs relèvent de la Commune. Les intégrations techniques sont développées et testées à mesure que les accès sont délivrés ; tant qu'un opérateur n'est pas actif, il est présenté comme indisponible aux agents plutôt que de produire une erreur.
L'opérateur est déterminé automatiquement à partir du préfixe du numéro saisi. Un préfixe ne correspondant à aucun opérateur est rejeté : aucune requête n'est envoyée « au hasard ».
Parcours d'un paiement
Deux parcours coexistent selon que le paiement est engagé par le citoyen lui-même ou par un agent de la Commune. Dans les deux cas, seul le citoyen valide le débit, sur son propre téléphone et avec son code secret : ni l'agent ni la Commune ne peuvent confirmer un paiement à sa place.
A — Paiement engagé par le citoyen (en ligne)
- Le citoyen consulte le montant dû sur la plateforme municipale (IFPB, Marchés, État civil) et saisit son numéro mobile.
- La plateforme appelle CUA Pay, qui enregistre la demande puis sollicite l'opérateur correspondant.
- L'opérateur invite le citoyen à confirmer le paiement sur son téléphone (saisie du code secret).
- CUA Pay obtient le statut définitif de l'opérateur — par notification (webhook) ou par interrogation — puis le met à disposition de la plateforme.
- Les fonds sont crédités directement sur le compte marchand de la Commune. La quittance est émise par la plateforme municipale.
B — Paiement engagé par un agent (au guichet ou sur le terrain)
- L'agent ouvre le dossier concerné et saisit le numéro mobile du citoyen présent devant lui.
- L'agent choisit le mode de règlement : espèce, MVola, Orange Money ou Airtel Money.
- Pour un règlement mobile, le citoyen reçoit une invitation USSD sur son téléphone et valide avec son code secret.
- L'opérateur notifie CUA Pay du résultat ; l'écran de l'agent passe automatiquement à « payé » sans ressaisie.
- Le reçu est délivré par l'application municipale. Un encaissement en espèce est enregistré au nom de l'agent qui l'a confirmé.
Circuit des fonds
Sécurité
| Domaine | Mise en œuvre |
|---|---|
| Transport | HTTPS/TLS 1.2 minimum sur tous les échanges, y compris vers les API opérateurs. |
| Authentification des applications | Clé d'API distincte par application municipale, révocable indépendamment. |
| Cloisonnement | Chaque application n'accède qu'à ses propres paiements. |
| Secrets opérateurs | Identifiants stockés hors du code source, injectés par variables d'environnement. |
| Anti-double-débit | Une référence de dossier ne peut donner lieu qu'à un seul encaissement, même en cas de renvoi de la demande. |
| Immuabilité | Un paiement réglé ne peut plus changer d'état ; une notification tardive ou dupliquée est enregistrée mais sans effet. |
| Journalisation | Chaque changement d'état est horodaté et conservé, constituant la piste d'audit des recettes communales. |
| Données personnelles | Seuls le numéro mobile et la référence du dossier sont conservés. Aucune donnée bancaire ni code secret ne transite par le service. |
Démonstration
Le parcours de paiement complet peut être essayé directement, sans compte ni identifiants :
Essayer le parcours de paiement
Interface pour les applications municipales
Les applications de la Commune consomment une interface REST unique :
POST /api/v1/payments
Authorization: Bearer <clé de l'application>
{
"msisdn": "034XXXXXXX",
"amount": 50000,
"reference": "IFPB-2026-00042",
"description": "IFPB 2026 - parcelle 12-4-07"
}
La réponse identifie le paiement, dont l'état est ensuite consultable :
GET /api/v1/payments/{id}
{
"id": "pay_...",
"operator": "mvola",
"state": "pending", // puis "succeeded" ou "failed"
"amount": 50000,
"currency": "Ar"
}
Les applications municipales n'ont donc jamais à connaître les spécificités de chaque opérateur : l'ajout d'Orange Money ne demandera aucune modification de leur côté.
Contact
| Maîtrise d'ouvrage | Commune Urbaine d'Antananarivo |
|---|---|
| Maîtrise d'œuvre technique | Direction du Développement Numérique (DDN) |
| Contact | ddn@cua.mg |