Skip to content

Journal et recette ERP ​

Ce document décrit le journal des communications ERP et la checklist de recette avant mise en production.

Journal communications ​

Toute interaction HTTP entre Epayment et l'ERP est tracée dans le journal des communications (portail régie et admin).

ChampValeur typique ERP
directionOUT (Epayment appelle l'ERP) ; IN réservé aux webhooks ERP futurs
systemerp:rest, erp:fake
methodGET, POST
pathChemin relatif appelé (ex. /dues, /payment-confirmations)
status_codeCode HTTP réponse
latency_msDurée aller-retour
request_body / response_bodyJSON redacté (secrets masqués)

Consultation ​

AudienceEmplacement UI
Officer régiePortail régie → Journal (filtre system ERP)
Super-adminAdmin → Communications

Le sandbox (fake) journalise les probes payment confirmation sans appel HTTP réel. Les probes REST déclenchent des appels effectifs visibles dans le journal.

Diagnostic courant ​

SymptômeVérification journal
Probe connexion échoueLigne GET /health : code 4xx/5xx, timeout
Dues vides inattenduesGET /dues : corps réponse, paramètre subject_ref
Confirmation non reçue ERPPOST /payment-confirmations : présence ligne, code réponse
Auth invalide401/403 sur toutes les opérations

Probes intégrés (UI régie / admin) ​

ProbeActionSandboxREST
ConnexionHealth checkDonnées fictivesGET {health_path}
DuesPreview créancesDonnées fictivesGET {dues_list_path}?subject_ref=
DisbursementPreview lignes lotDonnées fictivesGET {disbursement_batch_path}?batch_ref=
Payment confirmationPush testJournal uniquementPOST {payment_confirmation_path}

Références probe par défaut : subject_ref=DEMO-SUBJECT, erp_due_ref=DEMO-DUE.

Checklist recette collecte (portail citoyen) ​

Connexion et configuration ​

  • [ ] Adaptateur rest actif avec base_url production ou pré-production
  • [ ] Auth validée (probe connexion OK, ok: true sur health)
  • [ ] Chemins correspondance alignés avec l'ERP (dues_list_path, payment_confirmation_path)
  • [ ] Mappings services complets ou service par défaut défini

Pull dues ​

  • [ ] GET /dues?subject_ref={contribuable_test} retourne { "items": [...] } strict
  • [ ] Chaque item respecte le contrat dues (voir Contrat REST)
  • [ ] erp_due_ref unique par ligne ouverte
  • [ ] Preview dues UI régie cohérente avec réponse ERP brute
  • [ ] service_label affiché après enrichissement catalogue

Paiement et confirmation ​

  • [ ] Paiement test portail citoyen (mobile money ou agence)
  • [ ] ERP reçoit POST /payment-confirmations avec erp_due_ref, notice_ref, transaction_id, amount_minor, paid_at
  • [ ] Bloc payment présent avec channel (MOBILE_MONEY, CASH ou CARD)
  • [ ] Idempotence : second POST même transaction_id géré côté ERP sans double comptabilisation
  • [ ] Ligne journal POST /payment-confirmations en 2xx

Paiement partiel (si applicable) ​

  • [ ] Dues avec allow_partial: true et minimum_amount_minor définis
  • [ ] Montant encaissé transmis dans amount_minor de la confirmation
  • [ ] Solde résiduel cohérent côté ERP après confirmation

Checklist recette disbursement ​

  • [ ] GET /disbursements?batch_ref={lot_test} retourne lignes valides
  • [ ] payment_method : AIRTEL_MONEY, MTN_MOMO ou BANK_TRANSFER (voir contrat)
  • [ ] Objet payout conforme au mode de paiement
  • [ ] Preview lignes UI régie avant soumission batch
  • [ ] Batch sandbox connecteur fake exécuté sans erreur bloquante
  • [ ] Rapport post-exécution exportable et réconciliable avec l'ERP

Critères de passage production ​

CritèreSeuil
Probes automatisés100 % verts sur environnement cible
Parcours citoyen bout en boutAu moins un paiement MM et un paiement agence si les deux canaux sont ouverts
Latence healthStable sous le SLA interne régie (typ. < 2 s P95)
JournalAucune erreur 5xx non expliquée sur 24 h de tests
Rotation secretsProcédure documentée et testée une fois

Documentation associée ​

Plateforme d'orchestration de paiement DPI. Les fonds ne transitent pas par Epayment.