Ordre de mise en œuvre
Les étapes 1, 2 et 3 sont obligatoires pour que les marchands puissent encaisser. Les autres procédures sont opérationnelles au quotidien.
Phase 1 — Mise en place de la filiale Orange
- Configurer la filiale Orange Money (URL sandbox + production, Client ID/Secret, Merchant Key)
- Tester la connexion OAuth (sandbox puis production)
- Activer la filiale (visible des marchands)
Phase 2 — Onboarding marchand
- Réceptionner et valider l'inscription self-service (statut PENDING_KYC)
- Activer le compte marchand (clés
nk_test_*opérationnelles) - Passer en production après validation KYC (génère les clés
nk_live_*)
Phase 3 — Exploitation quotidienne
1Configurer la filiale Orange Money
Avant que les marchands puissent encaisser, vous devez configurer les credentials OAuth fournis par Orange Money pour cette filiale.
Pré-requis (à demander à Orange)
Client IDetClient SecretOAuth (obtenus surdeveloper.orange.com)Merchant Keyspécifique à votre compte marchand Neka Paie côté Orange- URL sandbox Orange (ex:
https://api.sandbox.orange.com/orange-money-webpay/dev/v1) - URL production Orange (ex:
https://api.orange.com/orange-money-webpay/v1)
Étapes
- Aller dans Filiales / Pays.
- Cliquer sur l'icône de la filiale (ex: Mali) → page d'édition.
- Section « Configuration Orange Money » :
- URL Sandbox : pour les marchands en mode test
- URL Production : pour les marchands actifs
- Client ID et Client Secret OAuth
- Merchant Key Orange
- Cliquer sur « Enregistrer » (la filiale est sauvegardée mais reste désactivée).
2Tester la connexion OAuth Orange
Avant d'activer la filiale, validez que les credentials fonctionnent réellement avec Orange.
Étapes
- Aller dans Filiales / Pays.
- Sur la ligne de la filiale, cliquer sur « Test SB » pour tester l'environnement sandbox.
- Le système tente d'obtenir un
access_tokenvia l'endpoint/tokenOrange. - Le résultat s'affiche en haut de page :
- ✅ Connexion OK + aperçu du token → la filiale est prête
- ❌ Échec + message d'erreur → corriger les credentials
- Une fois sandbox OK, tester aussi « Test Prod » avant de basculer en production.
Statuts de test possibles
| OK_SANDBOX | Connexion sandbox validée |
| OK_PRODUCTION | Connexion production validée |
| FAIL_SANDBOX | Sandbox refuse — vérifier credentials et URL |
| FAIL_PRODUCTION | Prod refuse — souvent : credentials sandbox utilisés en prod ou KYC Orange incomplet |
3Activer la filiale
Après un test sandbox OK, activez la filiale pour la rendre visible des marchands.
Étapes
- Sur la liste Filiales, cliquer sur « Activer » (vert).
- Confirmer la popup.
- La filiale apparaît immédiatement :
- Dans la liste déroulante de création de marchand
- Comme cible de routing pour les MSISDN du pays
- Dans
GET /api/v1/balancesdes marchands concernés
4Réceptionner une inscription développeur
Les développeurs s'inscrivent en self-service via /developer/signup. Ils créent un compte en PENDING_KYC avec des clés nk_test_* immédiatement opérationnelles.
Étapes
- Menu Marchands → filtrer par statut PENDING_KYC.
- Ouvrir la fiche du nouveau marchand.
- Vérifier :
- Raison sociale et email cohérents
- Cas d'usage déclaré (champ Notes)
- Volume attendu
- Demander les pièces KYC par email ou via votre canal habituel.
- Annoter la fiche dans la zone Notes.
5Activer le compte marchand
Une fois la KYC validée, activez le compte. Les clés nk_test_* deviennent opérationnelles côté API.
Statuts possibles
| PENDING_KYC | Compte créé mais l'API renvoie 401. |
| ACTIVE | Compte opérationnel, l'API accepte les transactions sandbox. |
| SUSPENDED | Compte gelé, toutes les requêtes API renvoient 401. |
Étapes
- Ouvrir la fiche du marchand → bouton vert « Activer ».
- L'opération est journalisée (action
MERCHANT_ACTIVATED). - Le développeur peut désormais appeler l'API en sandbox avec ses clés
nk_test_*.
6Passer un marchand en production
Lorsque le marchand a validé ses tests sandbox et son intégration, faites-le passer en production. De nouvelles clés nk_live_* sont émises et les anciennes nk_test_* sont invalidées.
Pré-requis
- Marchand en statut ACTIVE
- Mode sandbox actif (le bouton n'apparaît pas sinon)
- KYC complète et signée
- Filiale Orange testée en mode production (Test Prod OK)
Étapes
- Ouvrir la fiche du marchand.
- Cliquer sur le bouton orange « Passer en production » .
- Confirmer la popup (les clés
nk_test_*sont immédiatement invalidées). - 📋 Copier les nouvelles clés
nk_live_*affichées sur la page suivante. - Transmettre les clés au développeur via un canal sécurisé.
FORMAT# Avant
API Key : nk_test_a1b2c3d4...
# Après
API Key : nk_live_x9y8z7w6...
nk_test_* sont invalidées. Le développeur doit basculer sa config (URL sandbox.api.nekapaie.com → api.nekapaie.com + nouvelle API Key).
7Rechercher et superviser les transactions
Toutes les transactions de la plateforme sont consultables.
Filtres disponibles
- Texte libre : ID transaction, référence marchand, MSISDN, référence Orange.
- Statut : CREATED, INITIATED, PENDING, SUCCESS, FAILED, EXPIRED, REVERSED.
- Type : Cash-In, Cash-Out, Refund.
- Pays : filiale Orange.
- Date : du / au.
Étapes
- Menu Transactions.
- Appliquer les filtres souhaités.
- Cliquer sur l'ID d'une transaction pour voir le détail :
- Détails complets (montant, MSISDN masqué, marchand)
- Réponse brute de l'opérateur Orange
- Métadonnées envoyées par le marchand
- Chronologie complète
- Historique des webhooks envoyés au marchand
8Lancer la réconciliation quotidienne
Job critique pour détecter les écarts entre Neka Paie et les relevés Orange.
Méthode 1 : interface web
- Menu Réconciliation.
- Choisir la date à réconcilier (par défaut J-1).
- Optionnel : filtrer par filiale.
- Cliquer sur « Lancer la réconciliation ».
- Examiner le rapport :
- Total transactions vs réussies / échouées / pending
- Transactions matchées vs non matchées
- Volume confirmé en devise locale
- Taux d'écart (alerte si > 0,1 %)
Méthode 2 : ligne de commande (cron)
CRON# Tous les jours à 04h00 (J+1)
0 4 * * * cd /var/www/nekapay && php bin/console nekapay:reconcile
La commande affiche un tableau par filiale et déclenche un warning si le taux d'écart dépasse 0,1 %.
9Investiguer un webhook entrant Orange
Quand un client conteste une transaction, vous pouvez retracer l'événement reçu.
Étapes
- Menu Webhooks → onglet « Entrants Orange ».
- Filtrer par
provider_tx_idou pays. - Cliquer sur l'œil pour voir le détail :
- Payload brut JSON tel que reçu
- Source IP (whitelist Orange)
- Statut de signature (valide / invalide)
- Statut de traitement (succès / doublon / erreur)
Cas typiques
| Traité | Webhook reçu, signature OK, transaction mise à jour. |
| Doublon | Le couple (provider_tx_id, country_code) existe déjà — rejet idempotent. |
| Erreur | Voir le champ processing_error pour la cause. |
10Consulter le journal d'audit
Toutes les opérations sensibles sont enregistrées de manière append-only.
Actions tracées
MERCHANT_CREATED— création d'un marchandMERCHANT_ACTIVATED/MERCHANT_SUSPENDEDAPI_KEYS_REGENERATED— rotation de clésCASHIN_INITIATED/CASHOUT_INITIATED/REFUND_INITIATEDSTATUS_UPDATED— changement de statut transaction
Étapes
- Menu Journal d'audit.
- Filtrer par action, type d'entité, ID marchand.
- Cliquer sur la loupe pour voir le diff JSON entre
old_valuesetnew_values.
11Régénérer les clés API d'un marchand
À effectuer en cas de fuite suspectée ou de rotation périodique.
Étapes
- Ouvrir la fiche du marchand.
- Cliquer sur le bouton rouge « Régénérer clés ».
- Récupérer immédiatement les nouvelles clés affichées.
- Notifier le marchand pour qu'il bascule sa configuration.
Le préfixe est conservé : nk_test_* pour un marchand sandbox, nk_live_* pour un marchand production.
12Gérer les rôles et utilisateurs internes
RBAC pour restreindre l'accès aux différentes sections.
Rôles techniques
ROLE_NEKAPAY_ADMINouROLE_ADMIN: accès complet au back-officeROLE_USER: accès à l'espace marchand uniquement
Étapes
- Aller dans Utilisateurs ou Rôles.
- Pour créer un admin : « Ajout utilisateur » → choisir le rôle approprié.
- Permissions par module (Marchand, Transaction, etc.) configurables via Gérer les permissions.
Commande CLI
BASH"># Créer un admin
php bin/console nekapay:create-admin admin admin123