Passer au contenu principal

Préparer votre requête

Le point de terminaison à utiliser est POST https://pay.sandbox.yabetoopay.com/v1/disbursements pour l’environnement sandbox et POST https://pay.api.yabetoopay.com/v1/disbursements pour l’environnement de production.
Sécurité de la clé secrète : La clé secrète (secret_key) doit rester confidentielle et ne doit jamais être exposée dans le frontend ou le code client. Elle doit uniquement être utilisée côté serveur.
  1. Utilisez la clé secrète fournie secret_key pour vous authentifier auprès de l’API. Pour des raisons de sécurité, cette clé ne doit être utilisée que côté serveur.
  2. Le corps de la requête doit contenir les paramètres suivants :
{
    "amount": 10000,
    "currency": "XAF",
    "first_name": "Jean",
    "last_name": "Dupont",
    "payment_method_data": {
        "type": "momo",
        "momo": {
            "msisdn": "242066594471",
            "country": "CG",
            "operator_name": "mtn"
        }
    }
}

Paramètres

  • amount : Le montant à payer
  • currency : La devise du paiement
  • first_name : Le prénom du client
  • last_name : Le nom de famille du client
  • payment_method_data : Les données du moyen de paiement
    • type : Le type de moyen de paiement
    • momo : Les données du paiement mobile money
      • msisdn : Le numéro de téléphone du client
      • country : Le code pays
      • operator_name : Le nom de l’opérateur

Créer un décaissement

{
  const response = await fetch(
    "https://pay.sandbox.yabetoopay.com/v1/disbursements",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        Authorization: `Bearer ${secret_key}`,
      },
      body: JSON.stringify({
        amount: 10000,
        currency: "XAF",
        first_name: "Jean",
        last_name: "Dupont",
        payment_method_data: {
          type: "momo",
          momo: {
            msisdn: "242066594471",
            country: "CG",
            operator_name: "mtn",
          },
        },
      }),
    }
  );

  const data = await response.json();
  console.log(data);
}

Réponse

200 OK

Lorsque le décaissement a été créé avec succès, l’API renverra une réponse 200 OK avec le corps suivant : Le statut du décaissement est processing car le paiement est toujours en cours de traitement et n’a pas encore été exécuté.
{
  "amount": 1000,
  "currency": "xaf",
  "status": "processing",
  "firstName": "Jean",
  "lastName": "Dupont",
  "operatorName": "mtn",
  "country": "cg",
  "phone": "242066594470",
  "object": "disbursement",
  "type": 1,
  "shouldExecutedAt": "2025-03-18T09:24:57.555Z",
  "id": "wt_RMqehxy8NNi1ocJFG2SSAZMj81m6spo72vnZ",
  "createdAt": "2025-03-17T10:24:57.559+01:00",
  "updatedAt": "2025-03-17T10:24:57.559+01:00"
}

400 Mauvaise requête

Lorsque la requête est invalide, l’API renverra une réponse 400 Bad Request avec le corps suivant :
{
  "errors": [
    {
      "rule": "required",
      "field": "currency",
      "message": "La validation requise a échoué"
    }
  ]
}

401 Non autorisé

Lorsque la clé secrète est invalide, l’API renverra une réponse 401 Unauthorized avec le corps suivant :
{
  "message": "Non autorisé"
}
I