Référence API

L'API DarePay est organisée autour de routes REST simples. Elle accepte des corps JSON, renvoie des réponses JSON et utilise les codes HTTP standards.

Lien de l'APIhttps://darepay.devetu.org/api

Les routes protégées exigent l'en-tête X-API-Key. Chaque paiement est identifié par votre référence métier : elle sert à l'initier, à consulter son statut et à le rapprocher du callback.

Simulateur intégréModifiez les paramètres des routes ci-dessous : la requête se met à jour en direct et le bouton Envoyer affiche la réponse correspondante. Tout est simulé dans votre navigateur, aucune requête n'est envoyée à DarePay.

En-têtes des routes protégées
X-API-Key: VOTRE_CLE_API
Content-Type: application/json
Accept: application/json

Erreurs

DarePay utilise les codes de réponse HTTP pour indiquer le résultat d'une requête. Les codes 2xx signalent un succès, les 4xx une erreur liée aux données envoyées, et 500 une erreur interne.

HTTPSignificationAction recommandée
200Requête traitée avec succèsLire la réponse retournée par DarePay.
400Requête invalideVérifier les données envoyées.
401Clé API absente ou invalideVérifier l'en-tête X-API-Key.
404Paiement introuvableVérifier la référence utilisée.
409Un paiement existe déjà avec cette référenceNe pas initier un nouveau paiement avec la même référence.
422Erreur de validation métierCorriger les données ou vérifier l'état de la transaction.
500Erreur interneNe pas conclure automatiquement à un échec ; vérifier le statut avant de retenter.

Erreur 500 ou coupure réseau ?Le paiement a peut-être été créé. Consultez son statut avec la même référence avant toute nouvelle tentative. Procédure de reprise

Initialiser un paiement

POST/api/payments

Cette route permet à votre application d'initier une nouvelle transaction de paiement. DarePay valide la requête, initialise la transaction et renvoie son statut initial.

En-têtes
  • X-API-KeystringObligatoire

    Clé d'authentification attribuée à votre application. Renseignez-la dans le panneau de requête.

  • Content-TypestringObligatoire

    Utiliser application/json.

  • AcceptstringRecommandé

    Utiliser application/json.

Corps de la requête Modifiez les valeurs
  • referencestringObligatoire

    Référence métier unique de votre application. Maximum 10 caractères.

  • amountnumberObligatoire

    Montant du paiement. La valeur doit être supérieure ou égale à 200.

  • currencystringFacultatif

    Devise du paiement. Exemple : XAF.

    Laisser vide pour l'omettre
  • customer_msisdnstringObligatoire

    Numéro de téléphone du client à débiter.

    Numéro du client
  • operator_codeenumObligatoire

    Opérateur de paiement. Valeurs acceptées : AIRTEL_MONEY ou MOOV_MONEY.

Réponse
  • successboolean

    Indique que la requête a été traitée.

  • messagestring

    Message lisible, par exemple « Paiement initié avec succès. »

  • paymentobject

    Le paiement créé.

    • idinteger

      Identifiant interne du paiement dans DarePay.

    • referencestring

      Référence métier fournie par votre application.

    • transaction_idstring

      Identifiant unique de la transaction. À conserver.

    • statusenum

      Statut initial, souvent PENDING.

    • amountstring

      Montant du paiement, au format décimal ("10000.00").

    • currencystring

      Devise du paiement.

PENDING signifie que la demande est en cours de traitement. Votre application ne doit pas considérer ce statut comme un paiement réussi.

Consulter le statut d'un paiement

GET/api/payments/{reference}/status

Cette route récupère le statut actuel d'un paiement à partir de la référence métier utilisée lors de l'initiation. Utilisez-la en cas de doute : après une erreur réseau, une erreur 500 ou un callback attendu qui tarde.

Paramètre de chemin
  • referencestringObligatoire

    La référence métier transmise dans POST /api/payments.

    Référence du paiement
Réponse
  • successboolean

    Indique que la requête a été traitée.

  • paymentobject

    Le paiement, avec les mêmes champs que la réponse d'initiation : id, reference, transaction_id, status, amount, currency.

StatutSignification
PENDINGLe paiement est encore en cours de traitement.
SUCCESSLe paiement a été effectué avec succès.
FAILEDLe paiement a échoué.

Callback de résultat

HOOKPOST https://votre-application.example.com/api/darepay/callback

Votre application fournit une URL de callback accessible en HTTPS. DarePay appelle cette URL lorsqu'un paiement atteint un état final. C'est la notification principale du résultat.

Payload envoyé par DarePay
  • payment_idinteger

    Identifiant interne du paiement dans DarePay.

  • referencestring

    Référence métier fournie par votre application.

  • transaction_idstring

    Identifiant unique de la transaction.

  • statusenum

    Résultat final : SUCCESS ou FAILED.

  • amountstring

    Montant du paiement.

  • currencystring

    Devise du paiement.

  • failure_reasonstring | null

    Motif de l'échec lorsqu'il est disponible. null en cas de succès.

Réponse attendue de votre serveur
  • HTTP200 OK

    Répondez rapidement après réception et traitement de la notification.

  • receivedboolean

    Doit valoir true.

  • referencestring

    La même référence métier que celle reçue dans le callback, à l'identique.

  • transaction_idstring

    Le même identifiant de transaction que celui reçu dans le callback.

Sans confirmation valide, DarePay renvoie le callback, jusqu'à trois envois au total. Règles de confirmation · Tester votre réponse

Payload envoyé par DarePay
{
  "payment_id": 15,
  "reference": "CMD2026001",
  "transaction_id": "PAY1009261274771",
  "status": "SUCCESS",
  "amount": "10000.00",
  "currency": "XAF",
  "failure_reason": null
}
Exemple de la documentation. Simulez un résultat final dans « Initialiser un paiement » pour le mettre à jour.
Réponse attendue de votre serveur
HTTP/1.1 200 OK
Content-Type: application/json

{
  "received": true,
  "reference": "CMD2026001",
  "transaction_id": "PAY1009261274771"
}

Résumé des interfaces

InterfaceMéthodeUtilitéAuthentification
/api/paymentsPOSTInitialiser un paiementX-API-Key
/api/payments/{reference}/statusGETConsulter le statut d'un paiementX-API-Key
URL callback de votre applicationPOSTRecevoir le résultat finalEndpoint exposé par votre application