CUA Pay

Service d'encaissement par mobile money — Commune Urbaine d'Antananarivo

Service de la Commune Urbaine d'Antananarivo · Direction du Développement Numérique

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 :

ApplicationUsageÉ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érateurPréfixesAPIÉ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)

  1. Le citoyen consulte le montant dû sur la plateforme municipale (IFPB, Marchés, État civil) et saisit son numéro mobile.
  2. La plateforme appelle CUA Pay, qui enregistre la demande puis sollicite l'opérateur correspondant.
  3. L'opérateur invite le citoyen à confirmer le paiement sur son téléphone (saisie du code secret).
  4. CUA Pay obtient le statut définitif de l'opérateur — par notification (webhook) ou par interrogation — puis le met à disposition de la plateforme.
  5. 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)

  1. L'agent ouvre le dossier concerné et saisit le numéro mobile du citoyen présent devant lui.
  2. L'agent choisit le mode de règlement : espèce, MVola, Orange Money ou Airtel Money.
  3. Pour un règlement mobile, le citoyen reçoit une invitation USSD sur son téléphone et valide avec son code secret.
  4. L'opérateur notifie CUA Pay du résultat ; l'écran de l'agent passe automatiquement à « payé » sans ressaisie.
  5. 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é.
Le montant et la référence du dossier ne sont jamais modifiables par l'agent. Ils sont transmis par l'application municipale et conservés côté serveur pendant toute la durée de l'encaissement.

Circuit des fonds

Aucun compte intermédiaire n'intervient dans le circuit des fonds. Les montants transitent directement du compte mobile money du citoyen vers le compte marchand de la Commune Urbaine d'Antananarivo. Le service enregistre les mouvements à des fins de rapprochement et d'audit, mais ne constitue ni un portefeuille électronique ni un compte de cantonnement : à aucun moment les fonds des citoyens ne sont détenus par un tiers.

Sécurité

DomaineMise en œuvre
TransportHTTPS/TLS 1.2 minimum sur tous les échanges, y compris vers les API opérateurs.
Authentification des applicationsClé d'API distincte par application municipale, révocable indépendamment.
CloisonnementChaque application n'accède qu'à ses propres paiements.
Secrets opérateursIdentifiants stockés hors du code source, injectés par variables d'environnement.
Anti-double-débitUne 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.
JournalisationChaque changement d'état est horodaté et conservé, constituant la piste d'audit des recettes communales.
Données personnellesSeuls 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

Cette démonstration s'exécute sur l'environnement de test (sandbox) de l'opérateur. Aucun paiement réel n'est possible et aucun compte n'est débité. La plateforme refuse d'activer cette démonstration dès lors qu'un opérateur est configuré en production.

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'ouvrageCommune Urbaine d'Antananarivo
Maîtrise d'œuvre techniqueDirection du Développement Numérique (DDN)
Contactddn@cua.mg