Aller au contenu

APIs v1

Pré-requis: Créer une application dans la console

Une application se créé dans le menu "Développeur" et fournit les paramètres (clé privée et token) pour configurer vos supports d'encaissement d'argent (site web, facture, ect). Pour avoir une meilleure statistique (paiemment , moyen de paiement, ect) par supports, il est recommandé de créer une application par support.

Image title

Exemple de l'application Akouendy Shop

Créer un paiement

Méthode : POST

URL : https://pay.akouendy.com/v1/billing/payment/init

Corps de la Requête :

{
  "AppId": "{{privKey}}",
  "TransactionId": "{{transactionId}}",
  "TotalAmount": {{total}},
  "Hash": "{{digest}}",
  "Description": "Hello payment",
  "Webhook": "https://httpdump.akouendy.com/callback",
  "ReturnUrl": "https://www.akouendy.com",
  "Email": "[email protected]",
  "FullName": "Toto Nama",
  "SuccessMsg": "Merci pour votre paiement",
  "FailedMsg": "Paiement échoué"
}

Description des champs de la requête

  • AppId: Identifiant de l'application (Clé privée).
  • TransactionId: Identifiant unique généré pour la transaction dans votre SI.
  • TotalAmount: Montant total de la transaction.
  • Hash: Hash de sécurité généré en combinant la clé privée, l'identifiant de transaction, le montant total, et un secret.
  • Description: Description du paiement.
  • Webhook: URL pour les notifications de callback.
  • ReturnUrl: URL de retour après le paiement
  • Email: Adresse email du client.
  • FullName: Nom complet du client.
  • SuccessMsg: Message de succès à afficher après le paiement si ReturnUrl n'est pas fourni.
  • FailedMsg: Message d'échec à afficher si le paiement échoue si ReturnUrl n'est pas fourni.

Avant de créer un paiement, il est nécessaire de générer un hash en utilisant la clé privée. La formule est du hash est:

SHA512(cléPrivé + "|" + transactionId + "|" + total + "|akouna_matata")
A la fin du paiement, le client est redirigé vers l'url indiquée dans ReturnUrl enrichie comme suit : ReturnUrl?provider=[plateforme-paiement]&status=[status]&token=[token]&transactionId=[transactionId].

  • [plateforme-paiement] correspond à la plateforme de paiement utilisée : wave , orange-money-sn-api, ect
  • [status] correspond au status du paiement : failed ou success
  • [token] correspond à l'identifiant du paiement dans le SI Akouendy
  • [transactionId] correspond à l'identifiant fourni lors de la création du paiement

Lorsque ReturnUrl n'est pas renseigné, le client est redirigé sur la page de status d'Akouendy.

Exemple de création d'un paiement de 10 FCFA avec Postman:

Script "Pre-request" permettant de calculer le hash alt text Ce script exécuté avant la requête créé le hash puis l'ajoute dans une variable nommée "digest" dans la collection.

La requête POST dans postman alt text

Réponse à la création de paiement:

{
    "Code": "00",
    "Text": "Payment in progress",
    "Status": "INIT",
    "Token": "7e24db2d-f11d-4315-925d-b14185a30342",
    "PaymentUrl": "https://pay.akouendy.com/v1/product/buy/7e24db2d-f11d-4315-925d-b14185a30342?country=sen"
}

Description des champs de la réponse

  • Code : Sa valeur est à 00 lorsque tout se passe bien.
  • Text : Description du status du paiement
  • Status : Statatus du paiement
  • Token : Identifiant du paiement dans le SI Akouendy
  • PaymentUrl : Page affichant les détails du paiement ainsi que les moyens de paiement

Webhook reçu après le paiement

Lorsqu'un paiement est effectué, une requête POST est envoyée l'url renseigné dans le le champ Webhook de la requête ou dans le champ Webhook de l'application utilisée pour initier la requête.

Corps de la Requête de Webhook :

{
  "TransactionID": "7e24db2d-f11d-4315-925d-b14185a30342",
  "Status": "SUCCESS",
  "Hash": "298348dee3b5a28a5042d00f599918ae7811edf8fb2ad29fa32bcb00a7c237",
}

Description des champs de la requête

  • TransactionID : Votre identification du payment utilisé lors de la création du paiement
  • Status: Les status du paiement ( INIT, PENDING, SUCCESS, FAILED)
  • Hash : Un hash basé sur le token de l'application utilsée lors de la création du paiement

La formule du hash de validation du webhook reçu est :

SHA512(Token + "|" + TransactionID + "|" + paymentStatus)

Rechercher un paiement

Méthode : GET

URL : https://pay.akouendy.com/v1/payment/{paymenId}/{applicationId}

Description des paramètres dans l'url

  • paymenId : L'identifiant du paiement recherché
  • applicationId : L'identifiant de l'application ayant servi à créer le paiement

Exemple de requête de recherche et de réponse :

Connaissant :

  • l'AppId (Clé privée) : 2d2a358b-6f71-467b-a082-9f8777445be7
  • l'ID du payement (Token dans la réponse de création de paiement) : 7e24db2d-f11d-4315-925d-b14185a30342
    curl --location 'https://pay.akouendy.com/v1/payment/7e24db2d-f11d-4315-925d-b14185a30342/2d2a358b-6f71-467b-a082-9f8777445be7'
    

Réponse : Les données envoyées à la création du paiement sont retournées dans le champ MerchantData.

{
    "Code": "00",
    "PaymentId": "7e24db2d-f11d-4315-925d-b14185a30342",
    "Status": "INIT",
    "MerchantData": {
        "Env": "",
        "Fees": 0,
        "Hash": "17cfeb4a58e715822a231ea64f9cd7a2aad2573761b57371ce0bd877c0cdeefb2706c998cccbd9b47bf6924165c2501b201717a0647b43ec11204278fcb66be5",
        "Rate": 0,
        "AppId": "b695ff5a-8a41-463b-ac3b-6c4ebbd01570",
        "Email": "[email protected]",
        "Webhook": "https://httpdump.akouendy.com/callback",
        "AppToken": "",
        "ClientId": "",
        "FullName": "Toto Nama",
        "FailedMsg": "Paiement échoué",
        "ReturnUrl": "https://www.akouendy.com",
        "SuccessMsg": "Merci pour votre paiement",
        "Description": "Hello payment",
        "TotalAmount": 10,
        "NotifChannel": "",
        "TransactionId": "d6384f1b-cdef-4b32-96ec-83fa59ca0e7f",
        "MerchantCreated": false,
        "TotalPayedAmount": 10
    }
}

Télécharger la collection Postman

Cliquez ici pour télécharger la collection postman.