Payout
Le Payout Client est un service qui permet à un marchand d'éffectuer des transferts:
- de son compte marchand vers le portefeuille Ligdicash de son client
- de son compte marchand vers le compte mobile money de son client, en passant par le portefeuille LigdiCash de ce dernier.
le compte du marchand est alors crédité et le portefeuille du client est débité.
POSThttps://app.ligdicash.com/pay/v01/withdrawal/create
Headers
Apikey
ObligatoirestringCorrespond au API Key de votre projet API
Authorization
ObligatoireBearer + API TOKENCorrespond au API TOKEN de votre projet API, précédé du mot Bearer
Accept
Obligatoireapplication/jsonType de contenu accepté dans la réponse. Doit toujours être application/json
Content-Type
Obligatoireapplication/jsonType de contenu de la requête. Doit toujours être application/json
Body
Commande
ObligatoireobjetDétails de la commande
customer
ObligatoirestringNuméro de téléphone destinataire du transfert
Doit être préfixé par l'indicatif pays
Exemple: 226XXXXXXXX
top_up_wallet
ObligatoireO ou 1O, l'argent est transféré vers le portefeuille Ligdicash du client
1, l'argent est d'abord transféré vers le portefeuille puis
vers le compte mobile money du client
amount
ObligatoireintegerMontant à transférer
description
ObligatoirestringDescription de la transaction
Exemple: Remboursement de commande
callback_url
ObligatoirestringURL d'un endpoint de votre backend qui recevra
les détails de la transaction par requête POST
custom_data
ObligatoireobjectDéfinit les données personnalisées à associer à la transaction
transaction_id
stringcustom_data spécial correspondant à un identifiant unique
généré par votre système pour la transaction
1curl --location 'https://app.ligdicash.com/pay/v01/withdrawal/create' \
2--header 'Apikey: 81J...DH8C' \
3--header 'Authorization: Bearer eyJ0eXA...hc3VPYrv7U' \
4--header 'Accept: application/json' \
5--header 'Content-Type: application/json' \
6--data '{
7 "commande": {
8 "amount": 100,
9 "description": "Remboursement de la commande ORD-123456",
10 "customer": "226XXXXXXXX",
11 "custom_data": {
12 "transaction_id": "TXTLGC2022"
13 },
14 "callback_url": "https://backend.masuperboutique.com/callback-payout",
15 "top_up_wallet": 1 // 1 si l'argent doit rester dans le wallet du client, 0 si l'argent doit être envoyé sur son compte mobile money
16 }
17}'
Vérifier le statut de la transaction
Une fois que vous avez effectué un payout, vous pouvez alors vérifier le statut de la transaction pour connaître le résultat de l'opération.
Pour vérifier le statut de la transaction, vous devez utiliser le token retourné lors de la création de la transaction.
POSThttps://app.ligdicash.com/pay/v01/redirect/withdrawal/confirm/?withdrawalToken={token_de_la_transaction}
Headers
Apikey
ObligatoirestringCorrespond au API Key de votre projet API
Authorization
ObligatoireBearer + API TOKENCorrespond au API TOKEN de votre projet API, précédé du mot Bearer
Accept
Obligatoireapplication/jsonType de contenu accepté dans la réponse. Doit toujours être application/json
Content-Type
Obligatoireapplication/jsonType de contenu de la requête. Doit toujours être application/json
Paramètres Query
withdrawalToken
ObligatoirestringIl s'agit du token de la transaction que vous souhaitez vérifier
1import requests
2url = "https://app.ligdicash.com/pay/v01/redirect/withdrawal/confirm/?withdrawalToken=eyJ0eXAi...GAxBYCbRqE-Fj0rgl_xdh5E"
3
4payload = ""
5headers = {
6 'Apikey': '81J...DH8C',
7 'Authorization': 'Bearer eyJ0eX...W-HqqUxUC4pl89q_oIj4LyaRolhw',
8 'Content-Type': 'application/json',
9 'Accept': 'application/json'
10}
11
12response = requests.request("GET", url, headers=headers, data=payload)
13
14print(response.text)
15
Interpréter la réponse
Lorsque vous recevez la réponse de la requête de vérification du statut de la transaction, le payout est considérer comme éffectué si response_code == 00
et que status == completed
.
Réponsehttps://app.ligdicash.com/pay/v01/redirect/withdrawal/confirm/?withdrawalToken={token_de_la_transaction}
response_code
ObligatoireOO ou 01Code de réponse de la requête.
00 pour une requête réussie
01 pour une requête incorrecte (La valeur de "response_text" contient le code d'erreur)
token
ObligatoirestringIdentifiant unique de la transaction
Sera vide dans la réponse, car il est déjà dans l'URL de la requête
response_text
ObligatoirestringSi le code de réponse est 01, ce champ contient le message d'erreur
Si le code de réponse est 00, ce champ contient l'URL de redirection vers la page de paiement
date
ObligatoirestringDate de la transaction
description
ObligatoirestringDescription de la réponse
status
Obligatoirecompleted, pending, nocompletedStatut de la transaction
custom_data
Obligatoirearray d'objetTableau contenant les données personnalisées que
vous avez envoyées dans la requête
item
objetReprésente un élément de données personnalisées
id_invoice
stringIdentifiant de la facture
keyof_customdata
stringClé de la donnée personnalisée
valueof_customdata
stringValeur de la donnée personnalisée
montant
ObligatoireintegerMontant de la transaction
amount
ObligatoireintegerMontant de la transaction
operator_id
ObligatoirestringIdentifiant de l'opérateur
operator_name
ObligatoirestringNom de l'opérateur
customer
ObligatoirestringNuméro de téléphone utilisé pour la transaction
external_id
ObligatoirestringIdentifiant externe de la transaction
request_id
ObligatoirestringIdentifiant de la requête
wiki
ObligatoirestringURL documentant les codes d'erreur
1{
2 "date": "2023-10-29 09:46:27+00",
3 "response_code": "00",
4 "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUz...bdqRzL_aOJ1SYzY",
5 "description": "”,
6 "amount": "100",
7 "montant": "100",
8 "response_text": null,
9 "status": "completed",
10 "custom_data": [
11 {
12 "id_invoice": 29505444,
13 "keyof_customdata": "order_id",
14 "valueof_customdata": "MonSiteOrder234"
15 }
16 ],
17 "operator_name": "ORANGE BURKINA",
18 "operator_id": "11",
19 "customer": “”,
20 "transaction_id": “TRNS.36887”,
21 "external_id": null,
22}
23