Documentation API

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

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, vous devez d'abord créer un compte développeur et obtenir vos identifiants d'authentification.

📋 Étapes pour obtenir votre token :
  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. Utilisez l'endpoint d'authentification pour obtenir votre token Bearer
Créer mon compte développeur

Processus simple et 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

POST https://auth.market-dialo.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.

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

Paramètres

Paramètre Type Obligatoire Description
client_id string Oui ID client de votre application
client_secret string Oui Secret client de votre application
grant_type string Oui Valeur fixe client_credentials

Exemple de requête

Terminal
curl -X POST "https://auth.market-dialo.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

POST https://api.market-dialo.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ètre Type Obligatoire Description
amount integer Oui Montant en unité la plus petite (ex: centimes)
currency string Oui Code monnaie (XOF, USD…)
callbackUrl string Oui URL de notification de paiement
reference string Non Référence unique de votre transaction

Exemple de requête

Terminal
curl -X POST "https://api.market-dialo.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.market-dialo.com/checkout/txn_5f7e8d9a0b1c2d3e",
  "reference": "ORDER-12345",
  "amount": 1000,
  "currency": "XOF",
  "status": "PENDING"
}
POST

Paiements directs

Effectuer un paiement direct via carte bancaire ou mobile money

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

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

Paramètres de requête

Paramètre Type Obligatoire Description
type string Oui Type de paiement: card, wave, orange, mtn

Paramètres du corps

Paramètre Type Obligatoire Description
transactionReference string Oui Référence de la transaction initiale
card object Conditionnel Informations de carte (pour type=card)
mobile object Conditionnel Informations mobiles (pour type=wave/orange/mtn)

Exemple de requête - Carte bancaire

Terminal
curl -X POST "https://api.market-dialo.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.market-dialo.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

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

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

Paramètres

Paramètre Type Obligatoire Description
transactionReference string Oui Référence de la transaction
chargeId string Oui ID de la charge PSP
codePin string Conditionnel Code PIN (si requis)
codeOtp string Conditionnel Code OTP (si requis)

Exemple de requête

Terminal
curl -X POST "https://api.market-dialo.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

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

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

Exemple de requête

Terminal
curl -X GET "https://api.market-dialo.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

Statut Description
created Transaction créée
pending En attente de traitement
succeeded Paiement réussi
failed Paiement échoué
canceled Transaction annulée

Codes de réponse HTTP

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

Code Description
200 OK Requête traitée avec succès
201 Created Ressource créée avec succès
400 Bad Request Requête mal formée ou paramètres invalides
401 Unauthorized Jeton d'authentification manquant ou invalide
403 Forbidden Accès refusé
404 Not Found Ressource non trouvée
429 Too Many Requests Limite de requêtes dépassée
500 Internal Server Error Erreur interne du serveur