Débiter un compte (Demande de paiement)

Cet endpoint permet de débiter un montant spécifié du compte d'un client B-MO.

Présentation

L'opération Débiter un compte permet d'initier un retrait ou un encaissement sur le compte B-MO d'un abonné.

URL de Base (selon l'environnement sélectionné) :

  • PAP (Pré-production / Défaut) : https://svc.pap.bestcash.me/external
  • TEST (Sandbox) : https://svc.test.bestcash.me/external
  • LIVE (Production) : https://svc.bmo.bestcash.me/external

Vous pouvez basculer d'un environnement à un autre à tout moment depuis le menu déroulant en haut de la console d'essai ci-dessous.


Informations Endpoint

CaractéristiqueDétail
MéthodePOST
URL/external/operations/debit
AuthentificationEn-têtes HTTP X-Auth-ApiKey et X-Auth-ApiSecret

Console d'essai interactive

Tester la demande de débit B-MO

Exécutez une demande d'initialisation de débit d'un compte client B-MO.

Authentification (En-têtes B-MO)
Paramètres d'URL / Query Parameters (0)

Aucun paramètre d'URL configuré.

Corps de la Requête (JSON Body)

Structure de la requête (JSON Body)

{
  "amount": 15000,
  "partnerReference": "Référence unique générée par le partenaire",
  "customer": {
    "phone": "+2290160000000"
  }
}

Remarque importante sur le workflow de Débit

Après l'initialisation de la demande de débit via cet endpoint :

  1. Un code d'autorisation/OTP est immédiatement transmis par SMS/USSD au client.
  2. Pour finaliser la transaction, votre système doit obligatoirement appeler l'endpoint Confirmer un débit (/external/operations/debit/confirm) en lui transmettant le code d'autorisation.
  3. En cas de refus ou d'abandon, appelez l'endpoint Annuler un débit (/external/operations/debit/cancel).

Codes de Statut HTTP

  • 200 OK : La demande de débit a été initiée.
  • 400 Bad Request : Numéro de téléphone ou montant invalide.
  • 404 Not Found : Le client spécifié n'existe pas sur B-MO.

Exemple de Code (Node.js Axios)

import axios from 'axios';

const apiKey = '+2290196666262';
const apiSecret = 'y7MwWuWeQORtpA==';

const requestData = {
  amount: 15000,
  partnerReference: `REF-DEBIT-${Date.now()}`,
  customer: {
    phone: "+2290160000000"
  }
};

axios.post('https://svc.pap.bestcash.me/external/operations/debit', requestData, {
  headers: {
    'X-Auth-ApiKey': apiKey,
    'X-Auth-ApiSecret': apiSecret,
    'Content-Type': 'application/json'
  }
})
.then(response => {
  console.log('Demande de débit initiée :', response.data);
  // Étape suivante : transmettre le code reçu par le client à /debit/confirm
})
.catch(error => {
  console.error('Erreur lors du débit :', error.response?.data || error.message);
});