Collectes

L'API de Collectes vous permet d'initier des demandes de paiement Mobile Money directement depuis votre plateforme.

Comptes multi-devises (wallets)

Pour un compte professionnel multi-devises, l'encaissement est crédité sur le wallet de la devise que le client règle réellement (la devise du pays de l'opérateur : un client qui paie avec un opérateur camerounais crédite votre wallet XAF), quelle que soit la devise du champ currency. Si le compte n'a pas de wallet dans cette devise, le wallet de la devise principale (accounts.currency_id) est crédité. Un compte standard est crédité sur son solde unique. Aucun paramètre ne permet de cibler un wallet ; consulter les wallets ou convertir des fonds entre eux n'est possible que depuis le portail Business du tableau de bord. Voir Wallets & Conversion.

Initier une collecte

POST
https://newapi.sebpay.bj/api/v1/collections

Initie une demande de paiement vers le téléphone d'un client. Le client recevra un message USSD ou une notification pour valider la transaction.

Headers
X-Public-KeyRequired
string

Votre clé publique (pk_...)

X-Secret-KeyRequired
string

Votre clé secrète (sk_...)

Request Body
amountRequired
numeric

Le montant de la transaction.

currencyRequired
string

Code de la devise (ex: XOF, EUR, USD).

phoneRequired
string

Numéro de téléphone au format international sans le (+).

operatorRequired
string

Code (mtn) ou slug (mtn-bj) de l'opérateur, tels que renvoyés par GET /operators.

countryRequired
string

Code ISO du pays (BJ, CI, SN...)

external_referenceRequired
string

Votre identifiant unique pour cette transaction. Une valeur déjà utilisée est refusée (422).

callback_urlOptional
string

URL qui recevra la notification de statut final.

otp_codeOptional
string

Code OTP requis pour certains opérateurs (ex: Orange CI, BF, SN). Consultez GET /operators : si otp_required est true, demandez ce code à l'utilisateur avant de soumettre.

Response Body
transaction_idRequired
string

Identifiant unique SebPay de la transaction.

statusRequired
string

Statut initial (généralement 'pending').

external_referenceRequired
string

Votre référence externe telle que fournie dans la requête.

amountRequired
number

Montant de la transaction.

currencyRequired
string

Devise utilisée.

provider_linkOptional
string

Lien de redirection (ex: Wave). Si présent, vous DEVEZ rediriger l'utilisateur vers cette URL dans un nouvel onglet pour qu'il valide le paiement.

messageRequired
string

Message descriptif du statut de la transaction initiée.

curl -X POST https://newapi.sebpay.bj/api/v1/collections \
  -H "X-Public-Key: pk_live_your_key" \
  -H "X-Secret-Key: sk_live_your_secret" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "XOF",
    "phone": "22997000000",
    "operator": "mtn",
    "country": "BJ",
    "external_reference": "REF8822",
    "callback_url": "https://yoursite.com/webhook"
  }'

Format d'enveloppe des réponses

Toutes les réponses de l'API sont enveloppées dans un objet commun :

{
  "success": true,
  "data": { ... },
  "message": "..."
}

Récupérer une transaction

GET
https://newapi.sebpay.bj/api/v1/collections/{id_or_reference}

Récupère les détails et le statut actuel d'une transaction via son identifiant SebPay ou votre référence externe.

Path Parameters
id_or_referenceRequired
string

L'identifiant de transaction SebPay ou votre external_reference.

Headers
X-Public-KeyRequired
string

Votre clé publique (pk_...)

X-Secret-KeyRequired
string

Votre clé secrète (sk_...)

Response Body
transaction_idRequired
string

Identifiant unique SebPay de la transaction.

external_referenceRequired
string

Votre référence externe telle que fournie dans la requête.

statusRequired
string

Statut actuel : pending, approved ou rejected.

amountRequired
number

Montant de la transaction.

currencyRequired
string

Devise utilisée.

created_atRequired
string

Date de création ISO 8601.

updated_atRequired
string

Date de dernière mise à jour ISO 8601.

curl -X GET https://newapi.sebpay.bj/api/v1/collections/ORDER-123 \
  -H "X-Public-Key: pk_live_your_key" \
  -H "X-Secret-Key: sk_live_your_secret"

Conseil d'intégration

Utilisez toujours le paramètre callback_url pour recevoir les mises à jour en temps réel. Ne vous reposez pas uniquement sur la consultation manuelle pour confirmer les paiements.