Passer au contenu principal

Préparer votre requête

Pour créer un lien de paiement, utilisez le point de terminaison suivant :
  • Sandbox : POST https://pay.sandbox.yabetoopay.com/v1/payment-links
  • Production : POST https://pay.api.yabetoopay.com/v1/payment-links
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.

Corps de la requête

{
  "amount": 5000,
  "currency": "XAF",
  "description": "T-shirt Yabetoo",
  "metadata": {
    "product_id": "tshirt_001",
    "color": "blue",
    "size": "L"
  }
}

Paramètres requis

ParamètreTypeDescription
amountnumberLe montant à payer (dans la plus petite unité monétaire).
currencystringLe code de la devise (ex : xaf, usd).
descriptionstringUne description du produit ou service.

Paramètres optionnels

ParamètreTypeDescription
metadataobjectMétadonnées supplémentaires pour le suivi interne.

Créer un lien de paiement

const response = await fetch(
  "https://pay.sandbox.yabetoopay.com/v1/payment-links",
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${secret_key}`,
    },
    body: JSON.stringify({
      amount: 5000,
      currency: "XAF",
      description: "T-shirt Yabetoo",
      metadata: {
        product_id: "tshirt_001",
        color: "blue",
        size: "L",
      },
    }),
  }
);

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

Réponse

200 OK

Lorsque le lien de paiement est créé avec succès, l’API renvoie une réponse 200 OK avec le corps suivant :
{
  "id": "pl_1jro7CEishIEWadybzlm",
  "url": "https://pay.yabetoopay.com/pay/pl_1jro7CEishIEWadybzlm",
  "amount": 5000,
  "currency": "XAF",
  "description": "T-shirt Yabetoo",
  "status": "active",
  "metadata": {
    "product_id": "tshirt_001",
    "color": "blue",
    "size": "L"
  },
  "created_at": "2025-03-17T10:24:57.559+01:00",
  "expires_at": "2025-03-24T10:24:57.559+01:00"
}

400 Mauvaise requête

Si la requête est invalide, l’API renvoie une réponse 400 Bad Request :
{
  "errors": [
    {
      "field": "amount",
      "message": "Le montant doit être supérieur à 0"
    }
  ]
}

401 Non autorisé

Si la clé secrète est invalide :
{
  "message": "Non autorisé"
}

Personnalisation du lien

Vous pouvez personnaliser l’apparence de la page de paiement en ajoutant des paramètres supplémentaires :
{
  "amount": 5000,
  "currency": "XAF",
  "description": "T-shirt Yabetoo",
  "branding": {
    "logo_url": "https://votre-site.com/logo.png",
    "company_name": "Ma Boutique",
    "primary_color": "#FF0000"
  }
}
Les liens de paiement expirent automatiquement après 7 jours. Pour créer un lien avec une durée de validité différente, utilisez le paramètre expires_at.
I