Documentation API
Intégrez les paiements Dialo dans votre application avec notre API RESTful.
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.
- Créez votre compte sur le portail développeur
- Validez votre email et complétez votre profil
- Générez vos identifiants (client_id et client_secret) dans la section API
- Appelez l’endpoint d’authentification pour obtenir votre token Bearer
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
Authentification
Obtenez un jeton d'accès pour autoriser vos requêtes API.
https://auth.dialo-pay.com/auth/realms/m360/protocol/openid-connect/tokenGé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è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
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
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCIgOiAiSldUIiwia2lkIiA6ICJhZ...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "profile email"
}
Initier un paiement
Crée une transaction et retourne une URL de paiement hébergée.
https://api.dialo-pay.com/pay/v1/init-paymentCré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
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
{
"transactionId": "txn_5f7e8d9a0b1c2d3e",
"paymentUrl": "https://pay.dialo-pay.com/checkout/txn_5f7e8d9a0b1c2d3e",
"reference": "ORDER-12345",
"amount": 1000,
"currency": "XOF",
"status": "PENDING"
}
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è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
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)
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
{
"transactionReference": "7de13c1a-9aaf-464a-939c-927b6bfb140c",
"pspTransactionId": "chg_FEIGfNVr1J",
"status": "succeeded",
"amount": 100.0,
"currency": "XOF",
"message": "Hosted Link"
}
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
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
{
"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 |