Démarrage Rapide
Faites votre première collecte Mobile Money avec l'API Collect en quelques minutes.
Prérequis
- Name
Compte marchand- Description
Compte FluxxPay actif avec accès au dashboard marchand.
- Name
Clé API- Description
Clé générée en environnement Test ou Production (Paramètres → Clés API).
- Name
Stack technique- Description
Capacité à appeler une API REST (cURL, fetch, axios, etc.).
Étape 1 : Obtenir votre clé API
Ne commitez jamais votre clé API. Utilisez des variables d'environnement.
- Connectez-vous au dashboard marchand FluxxPay.
- Allez dans Paramètres → Clés API.
- Générez une clé (Test pour commencer).
- Copiez-la et stockez-la dans
FLUXX_API_KEY(ou équivalent).
Les clés utilisent en général un format UUID (ex. 550e8400-e29b-41d4-a716-446655440000).
Étape 2 : Vérifier l'authentification
Testez votre clé en récupérant le catalogue des opérateurs :
Catalogue opérateurs
curl -X GET 'https://api.fluxxpay.me/api/v1/collect/payments/operators/' \
-H 'Authorization: Bearer <votre_clé_api>' \
-H 'Content-Type: application/json'
En développement local, remplacez l'hôte par votre URL API (ex. http://localhost:8000).
Étape 3 : Créer un paiement
Exemple : 3 000 XOF via MTN Bénin en mode direct (push Mobile Money).
Paiement Collect
curl -X POST 'https://api.fluxxpay.me/api/v1/collect/payments' \
-H 'Authorization: Bearer <votre_clé_api>' \
-H 'Content-Type: application/json' \
-H 'Idempotency-Key: collect-ORDER-123' \
-d '{
"reference": "ORDER-123",
"amount": 3000,
"currency": "XOF",
"country": "BJ",
"mode": "direct",
"operator": "mtn",
"customer": { "phone": "2290166000000" },
"description": "Premier test"
}'
Les montants v2 sont en unités majeures (3000 = 3 000 FCFA). L'en-tête Idempotency-Key est obligatoire.
Réponse attendue
{
"object": "collect.payment",
"api_version": "2026-06",
"reference": "ORDER-123",
"status": "processing",
"amount": 3000,
"currency": "XOF",
"country": "BJ",
"mode": "direct",
"operator": "mtn",
"environment": "test",
"sandbox": true,
"idempotent_replay": false
}
En sandbox TEST, le numéro 2290166000000 aboutit à completed. Les autres fins de numéro (0001 échec, 0002 attente, 0003 annulé) sont sur Numéros de test. En production, le client valide sur son téléphone. Le statut final arrive via webhook ou via l'étape suivante.
Étape 4 : Consulter le statut
Statut
curl -X GET 'https://api.fluxxpay.me/api/v1/collect/payments/ORDER-123' \
-H 'Authorization: Bearer <votre_clé_api>'
Étape 5 : Webhooks (recommandé)
Pour éviter le polling, configurez un endpoint HTTPS et abonnez-vous aux événements collect.payment.completed, collect.payment.failed et collect.payment.processing depuis le dashboard (Paramètres → Webhooks).
Signature : en-tête X-FluxPay-Signature: t=...,v1=<hex> sur le body brut. Détails : Webhooks.
Votre endpoint doit répondre HTTP 2xx en moins de 30 secondes.
Cas particulier : opérateur Coris (Bénin)
Si vous utilisez operator: "coris", un code OTP est envoyé au client :
POST /collect/payments→ statutawaiting_otp- Saisie OTP dans votre interface
POST /collect/payments/{reference}/confirmavec{ "otp": "..." }
Détails dans la référence API Collect.
Environnement de test
- Name
URL API- Description
Utilisez l'URL de votre environnement de test (ex.
http://localhost:8000en local).
- Name
Montant minimum XOF- Description
100 unités majeures (100 FCFA) pour les paiements en XOF.
- Name
Idempotence- Description
Réutilisez la même
Idempotency-Key+ même payload →idempotent_replay: truesans double encaissement.
Voir aussi le mode test & sandbox.
Problèmes courants
- Name
401 Non autorisé- Description
Clé API absente, invalide ou révoquée. Vérifiez l'en-tête
Authorization: Bearer.
- Name
400 invalid_operator- Description
Pays ou slug opérateur non supporté : consultez
GET /collect/payments/operators/.
- Name
400 invalid_phone- Description
Numéro incompatible avec le pays choisi.
- Name
400 amount_too_low- Description
Montant inférieur au minimum (100 FCFA en XOF).
Voir Gestion des erreurs pour la liste complète.
SDK TypeScript (optionnel)
Plutôt que d'appeler l'API à la main, utilisez le client officiel :
npm install @fluxx/collect
import { FluxxCollect } from '@fluxx/collect'
const collect = new FluxxCollect({
apiKey: process.env.FLUXX_API_KEY!,
environment: 'test',
})
const result = await collect.createPayment({
reference: 'ORDER-001',
amount: 3000,
country: 'BJ',
mode: 'direct',
operator: 'mtn',
customer: { phone: '2290166000000' },
}, { idempotencyKey: 'ORDER-001' })
Contrat OpenAPI : https://cdn.fluxxpay.me/v2/collect/openapi.json. Guide complet sur la page SDK.