Passer au contenu principal

Préparer votre requête

Pour créer un transfert d’argent, utilisez le point de terminaison suivant :
  • Sandbox : POST https://pay.sandbox.yabetoopay.com/v1/remittance
  • Production : POST https://pay.api.yabetoopay.com/v1/remittance
Sécurité de la clé secrète : Votre clé secrète (secret_key) doit rester confidentielle et ne doit jamais être exposée dans le frontend ou le code côté client. Elle doit uniquement être utilisée côté serveur.
  1. Authentifiez votre requête en utilisant votre clé secrète dans l’en-tête Authorization.
  2. Incluez les champs requis dans le corps de la requête :
{
  "amount": "100",
  "currency": "XAF",
  "first_name": "Jean",
  "last_name": "Dupont",
  "payment_method_data": {
    "type": "momo",
    "momo": {
      "msisdn": "242066594470",
      "country": "CG",
      "operator_name": "mtn"
    }
  },
  "metadata": {
    "internal_ref": "tr_8493983"
  }
}

Corps de la requête

Envoyez une charge utile JSON avec les champs suivants :

Champs requis

ChampTypeDescription
amountstringLe montant à transférer (dans la plus petite unité monétaire, ex. centimes).
currencystringCode de la devise (ex., xaf, usd).
first_namestringPrénom du bénéficiaire.
last_namestringNom de famille du bénéficiaire.
payment_method_dataobjectDétails du moyen de paiement (voir ci-dessous).

Champs optionnels

ChampTypeDescription
metadataobjectMétadonnées clé-valeur pour le suivi interne ou la logique métier.

Structure de payment_method_data

{
  "type": "momo",
  "momo": {
    "country": "cg",
    "msisdn": "242066594470",
    "operator_name": "mtn"
  }
}

Créer un transfert d’argent

Utilisez le point de terminaison suivant :
  • Sandbox : POST https://pay.sandbox.yabetoopay.com/v1/remittance
  • Production : POST https://pay.api.yabetoopay.com/v1/remittance
Cet exemple montre comment créer un transfert d’argent, vous devez l’adapter à vos besoins.
const response = await fetch(
  "https://pay.sandbox.yabetoopay.com/v1/remittance",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${secret_key}`,
    },
    body: JSON.stringify({
      amount: "100",
      currency: "XAF",
      first_name: "Jean",
      last_name: "Dupont",
      payment_method_data: {
        type: "momo",
        momo: {
          msisdn: "242066594470",
          country: "CG",
          operator_name: "mtn",
        },
      },
      metadata: {
        source: "yabetoo-partner-portal",
      },
    }),
  }
);

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

Réponse

Dans cette section, vous trouverez les réponses possibles de l’API.

200 OK

Lorsque le transfert d’argent a été créé avec succès, l’API renverra une réponse 200 OK avec le corps suivant :
{
  "id": "rem_RMqehxy8NNi1ocJFG2SSAZMj81m6spo72vnZ",
  "object": "remittance",
  "amount": 1000,
  "currency": "xaf",
  "status": "succeeded",
  "firstName": "Jean",
  "lastName": "Dupont",
  "operatorName": "mtn",
  "country": "cg",
  "phone": "242066594470",
  "type": 1,
  "shouldExecutedAt": "2025-03-18T09:24:57.555Z",
  "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é

{
  "message": "Non autorisé"
}
I