DolaPay
DolaPay Developers

Paiement API Direct (Charges)

Déclenchez directement un paiement depuis votre backend en utilisant l'API Charges. Cette API s'adapte automatiquement au pays cible : elle initie un prompt USSD direct (sans redirection) ou renvoie une URL de redirection (pour des pays spécifiques comme le Burkina Faso).

Attention aux Redirections (Cas du Burkina Faso)

La majorité des pays (Bénin, Côte d'Ivoire, Sénégal...) supportent le USSD Push (sans redirection). L'API retourne status: "pending" et le client reçoit immédiatement le prompt de validation sur son téléphone.

Cependant, pour le Burkina Faso (+226), la réglementation exige un portail de paiement. L'API retourne alors status: "redirect" avec une redirect_url. Vous devez rediriger le navigateur de votre client vers cette URL pour qu'il puisse finaliser son paiement.

Processus Asynchrone

Que la transaction soit "pending" ou "redirect", le statut final du paiement est asynchrone. Vous devez obligatoirement écouter les Webhooks DolaPay (transaction.success) pour valider la commande de votre côté. Ne vous fiez jamais uniquement au retour du client sur votre site.

Initier un Paiement

POST/api/v1/charges

Paramètres du Body (JSON)

ParamètreDescription
amount *Le montant entier à facturer (ex: 2500). Minimum 100 FCFA.
currency *La devise. Valeurs supportées: XOF, XAF.
customer_phone *Le numéro de téléphone du client, avec l'indicatif (ex: 22900000000). L'indicatif détermine automatiquement le pays de destination.
provider *L'opérateur mobile ciblé. Exemples: Orange, MTN, MOOV, Airtel, Free.
descriptionLa description du paiement qui s'affichera chez le client ou dans votre tableau de bord.
metadataUn objet JSON optionnel pour stocker vos références internes (ex: numéro de commande, ID client). Il sera renvoyé dans le Webhook.
javascript
const response = await fetch("https://api.dola-pay.com/v1/charges", {
  method: "POST",
  headers: {
    "Authorization": "Bearer sk_live_votre_cle_secrete",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    amount: 2500,
    currency: "XOF",
    provider: "Orange",
    customer_phone: "22900000000",
    description: "Paiement de la facture #001"
  })
});
const data = await response.json();

if (data.status === "redirect") {
  // Rediriger le client vers l'URL de paiement générée
  console.log("Redirection vers:", data.redirect_url);
} else {
  console.log("Statut:", data.status); // "pending"
}