Payouts (Décaissements)

Envoyez des fonds depuis votre wallet Sebpay vers des bénéficiaires mobile money via l'API.

Déduction immédiate

Lors de l'initiation d'un payout, le montant total (montant + frais) est immédiatement débité de votre wallet. En cas d'échec côté agrégateur, le solde est automatiquement remboursé et la transaction passe en rejected.

Initier un payout

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

Initie un décaissement depuis votre wallet Sebpay vers un bénéficiaire mobile money. Le traitement est asynchrone — la confirmation finale arrive via webhook.

Headers
X-Public-KeyRequired
string

Votre clé publique (pk_...)

X-Secret-KeyRequired
string

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

Request Body
recipient_nameRequired
string

Nom complet du bénéficiaire (max 180 caractères).

phoneRequired
string

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

operatorRequired
string

Slug de l'opérateur (ex: mtn, moov, orange). Voir GET /operators.

countryRequired
string

Code ISO du pays destinataire (ex: BJ, CI, SN).

amountRequired
numeric

Montant que le bénéficiaire reçoit.

currencyRequired
string

Code devise du montant (ex: XOF, EUR). 3 caractères.

external_referenceRequired
string

Votre identifiant unique (idempotence). Renvoyer la même valeur ne crée pas de doublon.

callback_urlOptional
string

URL qui recevra la notification de statut final (approved / rejected).

descriptionOptional
string

Référence interne ou message (max 500 caractères).

Response Body
transaction_idRequired
string

Identifiant unique SebPay de la transaction.

statusRequired
string

Statut initial : toujours 'pending'.

external_referenceRequired
string

Votre référence externe.

amountRequired
number

Montant envoyé au bénéficiaire.

fee_amountRequired
number

Frais Sebpay déduits de votre wallet.

total_deductedRequired
number

Total débité de votre balance (amount + fee_amount).

currencyRequired
string

Devise de votre compte marchand.

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

Consulter le statut d'un payout

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

Récupère le statut actuel d'un payout via son identifiant SebPay ou votre external_reference.

Path Parameters
id_or_referenceRequired
string

L'identifiant 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.

statusRequired
string

Statut actuel : pending, approved ou rejected.

amountRequired
number

Montant de la transaction.

fee_amountRequired
number

Frais appliqués.

currencyRequired
string

Devise.

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/payouts/PAYOUT-8822 \
  -H "X-Public-Key: pk_live_your_key" \
  -H "X-Secret-Key: sk_live_your_secret"

Traitement asynchrone

Le statut final (approved ou rejected) est livré via webhook à votre callback_url. Le polling de GET /payouts/{id} est un complément, pas le mécanisme principal. En cas de rejected, votre balance est automatiquement remboursée.