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

  1. Connectez-vous au dashboard marchand FluxxPay.
  2. Allez dans Paramètres → Clés API.
  3. Générez une clé (Test pour commencer).
  4. 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

GET
/api/v1/collect/payments/operators/
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

POST
/api/v1/collect/payments
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, MTN aboutit souvent directement à completed. Le client valide le paiement sur son téléphone en production. Le statut final arrive via webhook ou via l'étape suivante.


Étape 4 : Consulter le statut

Statut

GET
/api/v1/collect/payments/{reference}
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 :

  1. POST /collect/payments → statut awaiting_otp
  2. Saisie OTP dans votre interface
  3. POST /collect/payments/{reference}/confirm avec { "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:8000 en 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: true sans 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.


Voir aussi

Was this page helpful?