Aller au contenu
Développeurs

Documentation API

Intégrez les paiements Dialo dans votre application avec notre API RESTful.

REST · JSON OAuth 2.0 Cartes & Mobile Money

Obtenir vos identifiants API

Créez un compte développeur pour générer vos jetons d'accès.

Prêt à commencer ?

Pour utiliser l'API Dialo, créez d'abord un compte développeur puis récupérez vos identifiants d'authentification.

  1. Créez votre compte sur le portail développeur
  2. Validez votre email et complétez votre profil
  3. Générez vos identifiants (client_id et client_secret) dans la section API
  4. Appelez l’endpoint d’authentification pour obtenir votre token Bearer
Créer mon compte développeur Gratuit · compte activé en quelques minutes

Informations importantes

  • Vos identifiants sont confidentiels : ne les partagez jamais
  • Le token a une durée de validité de 1 heure
  • Testez d'abord en environnement sandbox
  • Consultez notre guide de sécurité pour les meilleures pratiques
POST

Authentification

Obtenez un jeton d'accès pour autoriser vos requêtes API.

https://auth.dialo-pay.com/auth/realms/m360/protocol/openid-connect/token

Générez un jeton Bearer pour autoriser les requêtes API. Ce jeton est valable 1 heure et doit être inclus dans l’en-tête Authorization de chaque requête.

Créez vos identifiants (client_id et client_secret) sur le portail développeur.

Paramètres

ParamètreTypeObligatoireDescription
client_idstringOuiID client de votre application
client_secretstringOuiSecret client de votre application
grant_typestringOuiValeur fixe client_credentials

Exemple de requête

Terminal
curl -X POST "https://auth.dialo-pay.com/auth/realms/m360/protocol/openid-connect/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "client_id=VOTRE_CLIENT_ID" \
  -d "client_secret=VOTRE_CLIENT_SECRET" \
  -d "grant_type=client_credentials"

Exemple de réponse

Réponse JSON
{
  "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhZ...",
  "expires_in": 3600,
  "token_type": "Bearer",
  "scope": "profile email"
}
POST

Initier un paiement

Crée une transaction et retourne une URL de paiement hébergée.

https://api.dialo-pay.com/pay/v1/init-payment

Crée une transaction et retourne une URL de paiement hébergée où le client peut finaliser le règlement.

Paramètres

ParamètreTypeObligatoireDescription
amountintegerOuiMontant en unité la plus petite (ex : centimes)
currencystringOuiCode monnaie (XOF, USD…)
callbackUrlstringOuiURL de notification de paiement
referencestringNonRéférence unique de votre transaction

Exemple de requête

Terminal
curl -X POST "https://api.dialo-pay.com/pay/v1/init-payment" \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1000,
    "currency": "XOF",
    "callbackUrl": "https://votre-site.com/webhook",
    "reference": "ORDER-12345"
  }'

Exemple de réponse

Réponse JSON
{
  "transactionId": "txn_5f7e8d9a0b1c2d3e",
  "paymentUrl": "https://pay.dialo-pay.com/checkout/txn_5f7e8d9a0b1c2d3e",
  "reference": "ORDER-12345",
  "amount": 1000,
  "currency": "XOF",
  "status": "PENDING"
}
POST

Paiements directs

Effectuer un paiement direct par carte bancaire ou Mobile Money.

https://api.dialo-pay.com/pay/v1/direct-pay?type={type}

Effectue un paiement direct sans redirection. Prend en charge les cartes bancaires et les paiements mobiles (Wave, Orange Money, etc.).

Paramètres de requête

ParamètreTypeObligatoireDescription
typestringOuiType de paiement : card, wave, orange, mtn

Paramètres du corps

ParamètreTypeObligatoireDescription
transactionReferencestringOuiRéférence de la transaction initiale
cardobjectConditionnelInformations de carte (pour type=card)
mobileobjectConditionnelInformations mobiles (pour type=wave, orange, mtn)

Exemple de requête — carte bancaire

Terminal
curl -X POST "https://api.dialo-pay.com/pay/v1/direct-pay?type=card" \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -H "X-Correlation-Id: 65c34e5c-e31b-48c4-aebc-cbfd65505918" \
  -d '{
    "transactionReference": "cb84c253-66d0-4619-91c8-2e3e056432b6",
    "card": {
      "cardNumber": "5531 8866 5214 2950",
      "expiry": "06/26",
      "cvv": "123",
      "cardHolderName": "test"
    }
  }'

Exemple de requête — Mobile Money (Wave)

Terminal
curl -X POST "https://api.dialo-pay.com/pay/v1/direct-pay?type=wave" \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -H "X-Correlation-Id: 65c34e5c-e31b-48c4-aebc-cbfd65505918" \
  -d '{
    "transactionReference": "cb84c253-66d0-4619-91c8-2e3e056432b6",
    "mobile": {
      "countryCode": "225",
      "proxy": "wave",
      "phoneNumber": "0707144799"
    }
  }'

Exemple de réponse

Réponse JSON
{
  "transactionReference": "7de13c1a-9aaf-464a-939c-927b6bfb140c",
  "pspTransactionId": "chg_FEIGfNVr1J",
  "status": "succeeded",
  "amount": 100.0,
  "currency": "XOF",
  "message": "Hosted Link"
}
POST

Autorisation de paiement

Autoriser un paiement avec code PIN et OTP.

https://api.dialo-pay.com/pay/v1/authorize-pay

Autorise un paiement qui nécessite une validation supplémentaire (code PIN, OTP).

Paramètres

ParamètreTypeObligatoireDescription
transactionReferencestringOuiRéférence de la transaction
chargeIdstringOuiID de la charge PSP
codePinstringConditionnelCode PIN (si requis)
codeOtpstringConditionnelCode OTP (si requis)

Exemple de requête

Terminal
curl -X POST "https://api.dialo-pay.com/pay/v1/authorize-pay" \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "Content-Type: application/json" \
  -H "X-Correlation-Id: 65c34e5c-e31b-48c4-aebc-cbfd65505918" \
  -d '{
    "transactionReference": "609dc461-d02f-42e4-8d97-4e5740462fc0",
    "chargeId": "chg_75yI73LrUr",
    "codePin": "1234",
    "codeOtp": ""
  }'

Exemple de réponse

Réponse JSON
{
  "transactionReference": "cb260447-1704-4f98-af42-716ddc20d05e",
  "pspTransactionId": "chg_E8zRWdVKaY",
  "status": "succeeded",
  "amount": 100.0,
  "currency": "XOF",
  "message": "Hosted Link",
  "qrCode": null,
  "link": null
}
GET

Statut de transaction

Récupère les détails complets d'une transaction.

https://api.dialo-pay.com/pay/v1/transactions/{transactionReference}

Récupère les détails complets d'une transaction, y compris son statut, son montant, sa devise et les informations du processeur de paiement.

Exemple de requête

Terminal
curl -X GET "https://api.dialo-pay.com/pay/v1/transactions/5fa7fc82-e049-4b3d-adad-8c934ddfcc66" \
  -H "Authorization: Bearer VOTRE_JETON" \
  -H "X-Correlation-Id: 65c34e5c-e31b-48c4-aebc-cbfd65505918"

Exemple de réponse

Réponse JSON
{
  "id": "2692f2f2-3f60-438e-9b17-cffec1b6d82a",
  "transactionReference": "5fa7fc82-e049-4b3d-adad-8c934ddfcc66",
  "pspTransactionId": "cee25042-3147-4a7f-a8f2-e981673abd6e",
  "status": "canceled",
  "targetId": "a8115f49-4be9-443b-ac0a-ef5ecd83f08f",
  "targetType": "order",
  "amount": 5000,
  "currency": "XOF",
  "gateway": "card",
  "payType": "DEBIT",
  "createdAt": "2025-07-09T22:37:01.465383"
}

Statuts possibles

StatutDescription
createdTransaction créée
pendingEn attente de traitement
succeededPaiement réussi
failedPaiement échoué
canceledTransaction annulée

Codes de réponse HTTP

Référence des codes de statut HTTP utilisés par l'API.

CodeDescription
200 OKRequête traitée avec succès
201 CreatedRessource créée avec succès
400 Bad RequestRequête mal formée ou paramètres invalides
401 UnauthorizedJeton d'authentification manquant ou invalide
403 ForbiddenAccès refusé
404 Not FoundRessource non trouvée
429 Too Many RequestsLimite de requêtes dépassée
500 Internal Server ErrorErreur interne du serveur