1. API PAYIN
    1. Avec Rédirection
    2. Sans Rédirection
  2. Statut paiement
  3. Codes erreurs
  4. API PAYOUT
  5. Statut paiement
  6. Codes erreurs
  7. PAYLINK

APIs

Nous avons deux type d'APIs qui sont: l'API PAYIN et l'API PAYOUT

L'API PAYIN est surdivisé en deux grands APIs qui sont: PAYIN AVEC REDIRECTION et PAYIN SANS REDIRECTION

API AVEC REDIRECTION

Cette API PAYIN LigdiCash avec Redirection est utilisée pour demander un paiement à  un consommateur (Payeur) après redirection. Le Payeur est redirigé vers un ensemble de methode de paiement (Mobile money, Cartes VISA, MarsterCard, GIM CEDEAO, etc.) , le Payeur choisit le moyen de paiement et suit la procédure de la methode et autorise le paiement. Après autorisation, la transaction sera exécutée.

Cette procedure est plus interessante en ce sens que votre developpeur n'as plus besoins de toucher au code aprés cette integration, car chaque fois que Ligdicash intégre une nouvelle methode de paiement dans un pays. Il suffit que nous activons la methode sur votre application, elle apparait chez vos clients Payers directement sans que votre developpeur ne fasse des retouches de code.


Méthode POST
url https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create

Header

KEY VALUE DESCRIPTION
Apikey API Key C'est la clé qui identifie votre projet et est de type chaine de caractère
Authorization API token C'est un jeton d'accès qui contient les informations d'identification de securité pour une session de connexion. C'est un token d'accès de type Bearer et est de type chaine de caractère
Accept application/json Désigne l'accès de type application ou json
Content-Type application/json Désigne le contenu de type application ou json
NB:

API Key et API Token se trouvent dans votre projet API créer dans le menu MARCHAND=>PROJETS PAYLINK comme l'indique l'image ci-dessous

Image

Le Value de l'authorization on ajoute le mot Bearer suivi d'un espace puis du token généré lors de la création de votre projet API

                              $curl = curl_init();
                              curl_setopt_array($curl, array(
                              CURLOPT_URL => 'https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create',
                              CURLOPT_RETURNTRANSFER => true,
                              CURLOPT_ENCODING => '',
                              CURLOPT_MAXREDIRS => 10,
                              CURLOPT_TIMEOUT => 0,
                              CURLOPT_FOLLOWLOCATION => true,
                              CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                              CURLOPT_CUSTOMREQUEST => 'POST',
                              CURLOPT_POSTFIELDS =>' {
                              "commande": {
                              "invoice": {
                              "items": [
                              {
                              "name": "Nom du produit ou Service",
                              "description": " Description du produit ou Service ",
                              "quantity": 1,
                              "unit_price": 100,
                              "total_price": 100
                              }
                              ],
                              "total_amount": 100,
                              "devise": "XOF",
                              "description": " Description du contenu de la facture(Achat de jus de fruits)",
                              "customer": "",
                              "customer_firstname":"Nom du client",
                              "customer_lastname":"Prenon du client",
                              "customer_email":"tester@gligdicash.com",
                              "external_id":"",
                              "otp":""
                              },
                              "store": {
                              "name": "Nom de votre site ou de votre boutique",
                              "website_url": "url de votre site ou de votre boutique"
                              },
                              "actions": {
                              "cancel_url": "http://localhost",
                              "return_url": "http://localhost",
                              "callback_url": "http://localhost"
                              },
                              "custom_data": {
                              "transaction_id": "2021000000001",
                              "logfile": "202110210048426170b8ea884a9",
                              "developpeur": "kaboretidiane"
                              }
                              }
                              }',
                              CURLOPT_HTTPHEADER => array(
                                 'Apikey: B4GCZDUTLL3C3AREO',
                                 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA',
                                 'Accept: application/json',
                                 'Content-Type: application/json',
                                 'Cookie: ligdicash=2vcanu1d0om08g4m3a6jn0c1im'
                              ),
                              ));

                              $response = curl_exec($curl);

                              curl_close($curl);
                              echo $response;


                              Réponse ( format json ) 

                              Réponse ( format json )
                              {
                              "response_code": "00",
                              "token": " token de la transaction. il faut la conserver sur votre plateforme ",
                              "response_text": "contient l'url de la page de validation de paiement (page vers
                              laquelle vous devez rediriger le client pour qu'il procède au paiement)",
                              "description": "",
                              "custom_data": {
                              "transaction_id": "2021000000001 ID de votre transaction",
                              "logfile": "202110210048426170b8ea884a9"
                              },
                              "wiki": ["Description des code d’erreur obtenu response_text et response_code "]
                              }

                               Exemplaire de réponse ( format json ) 

                              {
                                 "response_code": "00",
                                 "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "response_text": "https://client.ligdicash.com/directpayment/invoice/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "description": "",
                                 "custom_data": {
                                    "transaction_id": "2021000000001",
                                    "logfile": "2023022318241263f7af4ccc792",
                                    "developpeur": "kaboretidiane"
                                 },
                                 "wiki": "https://client.ligdicash.com/wiki/createInvoice"
                              }

                              

                                                            
                              Unirest.setTimeouts(0, 0);
                              HttpResponse response = Unirest.post("https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create")
                              .header("Apikey", "B4GCZDUTLL3C3AREO")
                              .header("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA")
                              .header("Accept", "application/json")
                              .header("Content-Type", "application/json")
                              .header("Cookie", "ligdicash=2vcanu1d0om08g4m3a6jn0c1im")
                              .body("{\r\n\"commande\": {\r\n\"invoice\": {\r\n\"items\": [\r\n{\r\n\"name\": \"Nom du produit ou Service\",\r\n\"description\": \" Description du produit ou Service \",\r\n\"quantity\": 1,\r\n\"unit_price\": 100,\r\n\"total_price\": 100\r\n}\r\n],\r\n\"total_amount\": 100,\r\n\"devise\": \"XOF\",\r\n\"description\": \" Description du contenu de la facture(Achat de jus de fruits)\",\r\n\"customer\": \"\",\r\n\"customer_firstname\":\"Nom du client\",\r\n\"customer_lastname\":\"Prenon du client\",\r\n\"customer_email\":\"tester@gligdicash.com\",\r\n\"external_id\":\"\",\r\n\"otp\":\"\"\r\n},\r\n\"store\": {\r\n\"name\": \"Nom de votre site ou de votre boutique\",\r\n\"website_url\": \"url de votre site ou de votre boutique\"\r\n},\r\n\"actions\": {\r\n\"cancel_url\": \"http://localhost\",\r\n\"return_url\": \"http://localhost\",\r\n\"callback_url\": \"http://localhost\"\r\n},\r\n\"custom_data\": {\r\n\"transaction_id\": \"2021000000001\",\r\n\"logfile\": \"202110210048426170b8ea884a9\",\r\n\"developpeur\": \"kaboretidiane\"\r\n}\r\n}\r\n}")
                              .asString();
                              

                              Réponse ( format json ) 

                              Réponse ( format json )
                              {
                              "response_code": "00",
                              "token": " token de la transaction. il faut la conserver sur votre plateforme ",
                              "response_text": "contient l'url de la page de validation de paiement (page vers
                              laquelle vous devez rediriger le client pour qu'il procède au paiement)",
                              "description": "",
                              "custom_data": {
                              "transaction_id": "2021000000001 ID de votre transaction",
                              "logfile": "202110210048426170b8ea884a9"
                              },
                              "wiki": ["Description des code d’erreur obtenu response_text et response_code "]
                              }

                               Exemplaire de réponse ( format json ) 

                              {
                                 "response_code": "00",
                                 "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "response_text": "https://client.ligdicash.com/directpayment/invoice/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "description": "",
                                 "custom_data": {
                                    "transaction_id": "2021000000001",
                                    "logfile": "2023022318241263f7af4ccc792",
                                    "developpeur": "kaboretidiane"
                                 },
                                 "wiki": "https://client.ligdicash.com/wiki/createInvoice"
                              }


                                                            
                                 var settings = {
                              "url": "https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/create",
                              "method": "POST",
                              "timeout": 0,
                              "headers": {
                                 "Apikey": "B4GCZDUTLL3C3AREO",
                                 "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA",
                                 "Accept": "application/json",
                                 "Content-Type": "application/json",
                                 "Cookie": "ligdicash=2vcanu1d0om08g4m3a6jn0c1im"
                              },
                              "data": JSON.stringify({
                                 "commande": {
                                    "invoice": {
                                    "items": [
                                       {
                                          "name": "Nom du produit ou Service",
                                          "description": " Description du produit ou Service ",
                                          "quantity": 1,
                                          "unit_price": 100,
                                          "total_price": 100
                                       }
                                    ],
                                    "total_amount": 100,
                                    "devise": "XOF",
                                    "description": " Description du contenu de la facture(Achat de jus de fruits)",
                                    "customer": "",
                                    "customer_firstname": "Nom du client",
                                    "customer_lastname": "Prenon du client",
                                    "customer_email": "tester@gligdicash.com",
                                    "external_id": "",
                                    "otp": ""
                                    },
                                    "store": {
                                    "name": "Nom de votre site ou de votre boutique",
                                    "website_url": "url de votre site ou de votre boutique"
                                    },
                                    "actions": {
                                    "cancel_url": "http://localhost",
                                    "return_url": "http://localhost",
                                    "callback_url": "http://localhost"
                                    },
                                    "custom_data": {
                                    "transaction_id": "2021000000001",
                                    "logfile": "202110210048426170b8ea884a9",
                                    "developpeur": "kaboretidiane"
                                    }
                                 }
                              }),
                              };

                              $.ajax(settings).done(function (response) {
                              console.log(response);
                              });


                              Réponse ( format json ) 

                              Réponse ( format json )
                              {
                              "response_code": "00",
                              "token": " token de la transaction. il faut la conserver sur votre plateforme ",
                              "response_text": "contient l'url de la page de validation de paiement (page vers
                              laquelle vous devez rediriger le client pour qu'il procède au paiement)",
                              "description": "",
                              "custom_data": {
                              "transaction_id": "2021000000001 ID de votre transaction",
                              "logfile": "202110210048426170b8ea884a9"
                              },
                              "wiki": ["Description des code d’erreur obtenu response_text et response_code "]
                              }

                               Exemplaire de réponse ( format json ) 

                              {
                                 "response_code": "00",
                                 "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "response_text": "https://client.ligdicash.com/directpayment/invoice/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "description": "",
                                 "custom_data": {
                                    "transaction_id": "2021000000001",
                                    "logfile": "2023022318241263f7af4ccc792",
                                    "developpeur": "kaboretidiane"
                                 },
                                 "wiki": "https://client.ligdicash.com/wiki/createInvoice"
                              }

                                                            
                              var https = require('follow-redirects').https;
                              var fs = require('fs');

                              var options = {
                              'method': 'POST',
                              'hostname': 'app.ligdicash.com',
                              'path': '/pay/v01/redirect/checkout-invoice/create',
                              'headers': {
                                 'Apikey': 'B4GCZDUTLL3C3AREO',
                                 'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA',
                                 'Accept': 'application/json',
                                 'Content-Type': 'application/json',
                                 'Cookie': 'ligdicash=2vcanu1d0om08g4m3a6jn0c1im'
                              },
                              'maxRedirects': 20
                              };

                              var req = https.request(options, function (res) {
                              var chunks = [];

                              res.on("data", function (chunk) {
                                 chunks.push(chunk);
                              });

                              res.on("end", function (chunk) {
                                 var body = Buffer.concat(chunks);
                                 console.log(body.toString());
                              });

                              res.on("error", function (error) {
                                 console.error(error);
                              });
                              });

                              var postData = JSON.stringify({
                              "commande": {
                                 "invoice": {
                                    "items": [
                                    {
                                       "name": "Nom du produit ou Service",
                                       "description": " Description du produit ou Service ",
                                       "quantity": 1,
                                       "unit_price": 100,
                                       "total_price": 100
                                    }
                                    ],
                                    "total_amount": 100,
                                    "devise": "XOF",
                                    "description": " Description du contenu de la facture(Achat de jus de fruits)",
                                    "customer": "",
                                    "customer_firstname": "Nom du client",
                                    "customer_lastname": "Prenon du client",
                                    "customer_email": "tester@gligdicash.com",
                                    "external_id": "",
                                    "otp": ""
                                 },
                                 "store": {
                                    "name": "Nom de votre site ou de votre boutique",
                                    "website_url": "url de votre site ou de votre boutique"
                                 },
                                 "actions": {
                                    "cancel_url": "http://localhost",
                                    "return_url": "http://localhost",
                                    "callback_url": "http://localhost"
                                 },
                                 "custom_data": {
                                    "transaction_id": "2021000000001",
                                    "logfile": "202110210048426170b8ea884a9",
                                    "developpeur": "kaboretidiane"
                                 }
                              }
                              });

                              req.write(postData);

                              req.end();


                              Réponse ( format json ) 

                              Réponse ( format json )
                              {
                              "response_code": "00",
                              "token": " token de la transaction. il faut la conserver sur votre plateforme ",
                              "response_text": "contient l'url de la page de validation de paiement (page vers
                              laquelle vous devez rediriger le client pour qu'il procède au paiement)",
                              "description": "",
                              "custom_data": {
                              "transaction_id": "2021000000001 ID de votre transaction",
                              "logfile": "202110210048426170b8ea884a9"
                              },
                              "wiki": ["Description des code d’erreur obtenu response_text et response_code "]
                              }

                               Exemplaire de réponse ( format json ) 

                              {
                                 "response_code": "00",
                                 "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "response_text": "https://client.ligdicash.com/directpayment/invoice/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9pbnZvaWNlIjoiMTU0NTkwMTIiLCJzdGFydF9kYXRlIjoiMjAyMy0wMi0yMyAxODoyNDoxMiIsImV4cGlyeV9kYXRlIjoxNjc3MjU5NDUyfQ.U9GwpBQpZwW1YdWD_0Zla9-Uy-sUV7zDn4Nobtfc33M",
                                 "description": "",
                                 "custom_data": {
                                    "transaction_id": "2021000000001",
                                    "logfile": "2023022318241263f7af4ccc792",
                                    "developpeur": "kaboretidiane"
                                 },
                                 "wiki": "https://client.ligdicash.com/wiki/createInvoice"
                              }

                           
// Note: Node.js API does not throw exceptions, and instead prefers the
                                // asynchronous style of error handling described below.
                                //
                                // An error from the example API or an otheriwse asynchronous error
                                // will be available as the first argument of any example method's callback:
                                // E.g. example.customers.create({...}, function(err, result) {});
                                //
                                // Or in the form of a rejected promise.
                                // E.g. example.customers.create({...}).then(
                                //        function(result) {},
                                //        function(err) {}
                                //      );

                                switch (err.type) {
                                case 'exampleCardError':
                                // A declined card error
                                err.message; // => e.g. "Your card's expiration year is invalid."
                                break;
                                case 'RateLimitError':
                                // Too many requests made to the API too quickly
                                break;
                                case 'exampleInvalidRequestError':
                                // Invalid parameters were supplied to example's API
                                break;
                                case 'exampleAPIError':
                                // An error occurred internally with example's API
                                break;
                                case 'exampleConnectionError':
                                // Some kind of error occurred during the HTTPS communication
                                break;
                                case 'exampleAuthenticationError':
                                // You probably used an incorrect API key
                                break;
                                default:
                                // Handle any other types of unexpected errors
                                break;
                                }
                            
_, err := // Go library call

                            if err != nil {
                            // Try to safely cast a generic error to a example.Error so that we can get at
                            // some additional example-specific information about what went wrong.
                            if exampleErr, ok := err.(*example.Error); ok {
                            // The Code field will contain a basic identifier for the failure.
                            switch exampleErr.Code {
                            case example.IncorrectNum:
                            case example.InvalidNum:
                            case example.InvalidExpM:
                            case example.InvalidExpY:
                            case example.InvalidCvc:
                            case example.ExpiredCard:
                            case example.IncorrectCvc:
                            case example.IncorrectZip:
                            case example.CardDeclined:
                            case example.Missing:
                            case example.ProcessingErr:
                            }

                            // The Err field can be coerced to a more specific error type with a type
                            // assertion. This technique can be used to get more specialized
                            // information for certain errors.
                            if cardErr, ok := exampleErr.Err.(*example.CardError); ok {
                            fmt.Printf("Card was declined with code: %v\n", cardErr.DeclineCode)
                            } else {
                            fmt.Printf("Other example error occurred: %v\n", exampleErr.Error())
                            }
                            } else {
                            fmt.Printf("Other error occurred: %v\n", err.Error())
                            }
                            }

API PAYIN SANS REDIRECTION

Cette API PAYIN LigdiCash sans redirection est utilisée pour demander un paiement à un consommateur (Payeur). Le Payer n'est pas rediriger lors de paiement, car l'integration se fait directement methode par methode par le developpeur. Le Payer suit la procédure de la méthode et autorise le paiement directement sans redirection. Après autorisation, la transaction sera exécutée. Il sera demandé au consommateur (payeur) d'autoriser le paiement. Après autorisation, la transaction sera exécutée.


Méthode POST
url https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create

Header

KEY VALUE DESCRIPTION
Apikey API Key C'est la clé qui identifie votre projet et est de type chaine de caractère
Authorization API token C'est un jeton d'accès qui contient les informations d'identification de securité pour une session de connexion. C'est un token d'accès de type Bearer et est de type chaine de caractère
Accept application/json Désigne l'accès de type application ou json
Content-Type application/json Désigne le contenu de type application ou json
NB:

API Key et API Token se trouvent dans votre projet API créer dans le menu MARCHAND=>PROJETS PAYLINK comme l'indique l'image ci-dessous

Image

Le Value de l'authorization on ajoute le mot Bearer suivi d'un espace puis du token généré lors de la création de votre projet API

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
"commande": {
"invoice": {
"items": [
{
"name": "Nom du produit ou Service",
"description": " Description du produit ou Service ",
"quantity": 1,
"unit_price": 100,
"total_price": 100
}
],
"total_amount": 100,
"devise": "XOF",
"description": " Description du contenu de la facture(Achat de jus de fruits)",
"customer": "22675652666",
"customer_firstname":"Nom du client",
"customer_lastname":"Prenon du client",
"customer_email":"tester@ligdicash.com",
"external_id":"",
"otp":"697078"
},
"store": {
"name": "Nom de votre site ou de votre boutique",
"website_url": "url de votre site ou de votre boutique"
},
"actions": {
"cancel_url": "http://localhost",
"return_url": "http://localhost",
"callback_url": "http://localhost"
},
"custom_data": {
"transaction_id": "2021000000001",
"logfile": "202110210048426170b8ea884a9",
"developpeur": "kaboretidiane"
}
}
}',
  CURLOPT_HTTPHEADER => array(
   'Apikey: B4GCZDUTLL3C3AREO',
    'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA',
    'Accept: application/json',
    'Content-Type: application/json',
    'Cookie: ligdicash=8vc6pijdofqm4v5n41tt0od49s'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Réponse ( format json ) 

Réponse ( format json )
{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}

 Exemplaire de réponse ( format json ) 

{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}

                              
Unirest.setTimeouts(0, 0);
HttpResponse response = Unirest.post("https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create")
  .header("Apikey", "B4GCZDUTLL3C3AREO")
  .header("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA")
  .header("Accept", "application/json")
  .header("Content-Type", "application/json")
  .header("Cookie", "ligdicash=8vc6pijdofqm4v5n41tt0od49s")
  .body("{\r\n\"commande\": {\r\n\"invoice\": {\r\n\"items\": [\r\n{\r\n\"name\": \"Nom du produit ou Service\",\r\n\"description\": \" Description du produit ou Service \",\r\n\"quantity\": 1,\r\n\"unit_price\": 100,\r\n\"total_price\": 100\r\n}\r\n],\r\n\"total_amount\": 100,\r\n\"devise\": \"XOF\",\r\n\"description\": \" Description du contenu de la facture(Achat de jus de fruits)\",\r\n\"customer\": \"22675652666\",\r\n\"customer_firstname\":\"Nom du client\",\r\n\"customer_lastname\":\"Prenon du client\",\r\n\"customer_email\":\"tester@ligdicash.com\",\r\n\"external_id\":\"\",\r\n\"otp\":\"697078\"\r\n},\r\n\"store\": {\r\n\"name\": \"Nom de votre site ou de votre boutique\",\r\n\"website_url\": \"url de votre site ou de votre boutique\"\r\n},\r\n\"actions\": {\r\n\"cancel_url\": \"http://localhost\",\r\n\"return_url\": \"http://localhost\",\r\n\"callback_url\": \"http://localhost\"\r\n},\r\n\"custom_data\": {\r\n\"transaction_id\": \"2021000000001\",\r\n\"logfile\": \"202110210048426170b8ea884a9\",\r\n\"developpeur\": \"kaboretidiane\"\r\n}\r\n}\r\n}")
  .asString();

  Réponse ( format json ) 

Réponse ( format json )
{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}

 Exemplaire de réponse ( format json ) 

{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}
                              
   var settings = {
  "url": "https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Apikey": "B4GCZDUTLL3C3AREO",
    "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA",
    "Accept": "application/json",
    "Content-Type": "application/json",
    "Cookie": "ligdicash=8vc6pijdofqm4v5n41tt0od49s"
  },
  "data": JSON.stringify({
    "commande": {
      "invoice": {
        "items": [
          {
            "name": "Nom du produit ou Service",
            "description": " Description du produit ou Service ",
            "quantity": 1,
            "unit_price": 100,
            "total_price": 100
          }
        ],
        "total_amount": 100,
        "devise": "XOF",
        "description": " Description du contenu de la facture(Achat de jus de fruits)",
        "customer": "22675652666",
        "customer_firstname": "Nom du client",
        "customer_lastname": "Prenon du client",
        "customer_email": "tester@ligdicash.com",
        "external_id": "",
        "otp": "697078"
      },
      "store": {
        "name": "Nom de votre site ou de votre boutique",
        "website_url": "url de votre site ou de votre boutique"
      },
      "actions": {
        "cancel_url": "http://localhost",
        "return_url": "http://localhost",
        "callback_url": "http://localhost"
      },
      "custom_data": {
        "transaction_id": "2021000000001",
        "logfile": "202110210048426170b8ea884a9",
        "developpeur": "kaboretidiane"
      }
    }
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Réponse ( format json ) 

Réponse ( format json )
{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}

 Exemplaire de réponse ( format json ) 

{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}

                              
var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'app.ligdicash.com',
  'path': '/pay/v01/straight/checkout-invoice/create',
  'headers': {
    'Apikey': 'B4GCZDUTLL3C3AREO',
    'Authorization': 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3OTA0IiwiaWRfYWJvbm5lIjoxNjY5MjgsImRhdGVjcmVhdGlvbl9hcHAiOiIyMDIzLTAyLTA0IDExOjQ0OjM4In0.H0doKjZc1TdH_ZmHCg4ZuurmqFkPtuXCrYFEm7KwmIA',
    'Accept': 'application/json',
    'Content-Type': 'application/json',
    'Cookie': 'ligdicash=8vc6pijdofqm4v5n41tt0od49s'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = JSON.stringify({
  "commande": {
    "invoice": {
      "items": [
        {
          "name": "Nom du produit ou Service",
          "description": " Description du produit ou Service ",
          "quantity": 1,
          "unit_price": 100,
          "total_price": 100
        }
      ],
      "total_amount": 100,
      "devise": "XOF",
      "description": " Description du contenu de la facture(Achat de jus de fruits)",
      "customer": "22675652666",
      "customer_firstname": "Nom du client",
      "customer_lastname": "Prenon du client",
      "customer_email": "tester@ligdicash.com",
      "external_id": "",
      "otp": "697078"
    },
    "store": {
      "name": "Nom de votre site ou de votre boutique",
      "website_url": "url de votre site ou de votre boutique"
    },
    "actions": {
      "cancel_url": "http://localhost",
      "return_url": "http://localhost",
      "callback_url": "http://localhost"
    },
    "custom_data": {
      "transaction_id": "2021000000001",
      "logfile": "202110210048426170b8ea884a9",
      "developpeur": "kaboretidiane"
    }
  }
});

req.write(postData);

req.end();

Réponse ( format json ) 

Réponse ( format json )
{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}

 Exemplaire de réponse ( format json ) 

{
"response_code": "00",
"token": " token de la transaction. il faut la conserver sur votre plateforme ",
"response_text": "response text",
"description": "",
"custom_data": {
"transaction_id": "2021000000001 2021000000001 ID de votre transaction",
"logfile": "202110210048426170b8ea884a9"
},
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}
                              

                            

VERIFICATION DU STATUT D'UNE TRANSACTION PAYIN (AVEC OU SANS REDIRECTION)

Méthode GET
url https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm/?invoiceToken=

Header

KEY VALUE DESCRIPTION
Apikey API Key C'est la clé qui identifie votre projet et est de type chaine de caractère
Authorization API token C'est un jeton d'accès qui contient les informations d'identification de securité pour une session de connexion. C'est un token d'accès de type Bearer et est de type chaine de caractère
Accept application/json Désigne l'accès de type application ou json
Content-Type application/json Désigne le contenu de type application ou json

Paramètre

KEY VALUE DESCRIPTION
invoiceToken Token C'est un jeton d'accès qui contient les informations d'identification du client récupéré lors de la transaction
NB:

Le Token correspond au token dans la reponse code

API Key et API Token se trouvent dans votre projet API créer dans le menu MARCHAND=>PROJETS PAYLINK comme l'indique l'image ci-dessous

Image

Le Value de l'authorization on ajoute le mot Bearer suivi d'un espace puis du token généré lors de la création de votre projet API

Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}
Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}
Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}
Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}
Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}
Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}
                            
  Réponse ( format json ) 

{
"response_code": " contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": " Le montant de la transaction du client ",
"response_text": " contient le message texte de la transaction ",
" status ": " Le statut de la transaction: pending(en attente) completed(validée),
notcompleted(annulée) ",
"custom_data": [
{
"id_customdata":" contient le ID custom_data du client ",
"id_invoice": " contient l’ordre du client ",
"keyof_customdata": "idinvoice", //champs constante
"valueof_customdata": " contient le ID ou la facture du client Payeur "
}
],
"operator_id":"  contient le ID de l’opérateur mobile money de la méthode choisi ",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": " contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": " contient le numéro du client Payer exemple 22676275726 "
}

Codes d'erreurs paiement

Réponse code

Code Description
"code" => "00" Paiement effectué avec succès (pas d'erreur = no error)
"code" => "01" Le paiement a rencontré une erreur (Il y a une erreur = There is an error)
NB: Si la réponse code est "code" => "01" veuillez lire l'erreur dans la réponse texte

Réponse texte

Code Description
"code" => "Echec (Code00)" Erreur d'authentification du Token ou jeton (Token Authentification error)
"code" => "Echec (Code01)" Erreur d'authentification d'application ("Application Authentification error")
"code" => "Echec (Code02)" Montant incorrect. Le montant doit être compris entre ".$min." et ".$max defini ("Incorrect amount. (The amount must be between ".$min." and ".$max.")")
"code" => "Echec (Code03)" IP refusée (IP Denied)
"code" => "Echec (Code04)" Une erreur s'est produite lors du traitement de la demande ("An error occured while processing request")
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
                            
  Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      

API PAYOUT

Cette API PAYOUT CLIENT (Client du marchand ligdicash) est utilisée pour effectuer des remboursements à vos clients. Vos clients doivent avoir un compte au niveau de LigdiCash. Nous recommandons cette API PAYOUT CLIENT car elle permet d'éviter des erreurs de destination des remboursements à vos clients.


Méthode POST
url https://app.ligdicash.com/pay/v01/withdrawal/create

Header

KEY VALUE DESCRIPTION
Apikey API Key C'est la clé qui identifie votre projet et est de type chaine de caractère
Authorization API token C'est un jeton d'accès qui contient les informations d'identification de securité pour une session de connexion. C'est un token d'accès de type Bearer et est de type chaine de caractère
Accept application/json Désigne l'accès de type application ou json
Content-Type application/json Désigne le contenu de type application ou json
NB:

API Key et API Token se trouvent dans votre projet API créer dans le menu MARCHAND=>PROJETS PAYLINK comme l'indique l'image ci-dessous

Image

Le Value de l'authorization on ajoute le mot Bearer suivi d'un espace puis du token généré lors de la création de votre projet API



$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://app.ligdicash.com/pay/v01/withdrawal/create',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
"commande": {
"amount": 200,
"description": "Description of the content of the WITHDRAWAL",
"customer":"22665851994",
"custom_data": {
"transaction_id": "20230101"
},
"callback_url": "https://localhost",
"top_up_wallet":1
}
}',
  CURLOPT_HTTPHEADER => array(
   'Apikey: 1Y9GYNQHHCPSUQO9U',
    'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3NzQiLCJpZF9hYm9ubmUiOjg5OTQyLCJkYXRlY3JlYXRpb25fYXBwIjoiMjAyMy0wMi0wMSAxOTozNDowNSJ9.CrkksYoYvihtI2m2KvBVu1l58XO8Y2F2phc3VPYrv7U',
    'Accept: application/json',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

Réponse ( format json ) 

{
"response_code":" contient 00 est réussi. Si différent de 00 alors échec ",
"token":" jeton de transaction. Vous devez le garder sur votre plateforme ",
"response_text":"",
"description":" SMS décrivant le résultat de la demande",
"customdata":[],
"wiki": ["Description des code d’erreur obtenu response_text et response_code "]
}
Exemplaire de réponse ( format json )
{
    "response_code": "00",
    "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9maW5hbmNlIjoiMjIyMTQwOTMiLCJzdGFydF9kYXRlIjoiMjAyMy0wMy0wMyAwOTowNDoxMyIsImV4cGlyeV9kYXRlIjoxNjc3OTE3MDUzfQ.7zwp3Yd4QxJuc2Jja420Rk4ZMyl3xqKZJNNPSonaFDo",
    "response_text": "",
    "description": "",
    "custom_data": [],
    "wiki": "https://client.ligdicash.com/wiki/createWithdrawal"
}
                           
begin
                            # Use example's library to make requests...
                            rescue example::CardError => e
                            # Since it's a decline, example::CardError will be caught
                            body = e.json_body
                            err  = body[:error]

                            puts "Status is: #{e.http_status}"
                            puts "Type is: #{err[:type]}"
                            puts "Charge ID is: #{err[:charge]}"
                            # The following fields are optional
                            puts "Code is: #{err[:code]}" if err[:code]
                            puts "Decline code is: #{err[:decline_code]}" if err[:decline_code]
                            puts "Param is: #{err[:param]}" if err[:param]
                            puts "Message is: #{err[:message]}" if err[:message]
                            rescue example::RateLimitError => e
                            # Too many requests made to the API too quickly
                            rescue example::InvalidRequestError => e
                            # Invalid parameters were supplied to example's API
                            rescue example::AuthenticationError => e
                            # Authentication with example's API failed
                            # (maybe you changed API keys recently)
                            rescue example::APIConnectionError => e
                            # Network communication with example failed
                            rescue example::exampleError => e
                            # Display a very generic error to the user, and maybe send
                            # yourself an email
                            rescue => e
                            # Something else happened, completely unrelated to example
                            end
   var settings = {
  "url": "https://app.ligdicash.com/pay/v01/withdrawal/create",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Apikey": "1Y9GYNQHHCPSUQO9U",
    "Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3NzQiLCJpZF9hYm9ubmUiOjg5OTQyLCJkYXRlY3JlYXRpb25fYXBwIjoiMjAyMy0wMi0wMSAxOTozNDowNSJ9.CrkksYoYvihtI2m2KvBVu1l58XO8Y2F2phc3VPYrv7U",
    "Accept": "application/json",
    "Content-Type": "application/json"
  },
  "data": JSON.stringify({
    "commande": {
      "amount": 200,
      "description": "Description of the content of the WITHDRAWAL",
      "customer": "22665851994",
      "custom_data": {
        "transaction_id": "20230101"
      },
      "callback_url": "https://localhost",
      "top_up_wallet": 1
    }
  }),
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
                              
Unirest.setTimeouts(0, 0);
HttpResponse response = Unirest.post("https://app.ligdicash.com/pay/v01/withdrawal/create")
  .header("Apikey", "1Y9GYNQHHCPSUQO9U")
  .header("Authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZF9hcHAiOiI3NzQiLCJpZF9hYm9ubmUiOjg5OTQyLCJkYXRlY3JlYXRpb25fYXBwIjoiMjAyMy0wMi0wMSAxOTozNDowNSJ9.CrkksYoYvihtI2m2KvBVu1l58XO8Y2F2phc3VPYrv7U")
  .header("Accept", "application/json")
  .header("Content-Type", "application/json")
  .body("{\r\n\"commande\": {\r\n\"amount\": 200,\r\n\"description\": \"Description of the content of the WITHDRAWAL\",\r\n\"customer\":\"22665851994\",\r\n\"custom_data\": {\r\n\"transaction_id\": \"20230101\"\r\n},\r\n\"callback_url\": \"https://localhost\",\r\n\"top_up_wallet\":1\r\n}\r\n}")
  .asString();
                              
try {
                            // Use example's library to make requests...
                            } catch (CardException e) {
                            // Since it's a decline, CardException will be caught
                            System.out.println("Status is: " + e.getCode());
                            System.out.println("Message is: " + e.getMessage());
                            } catch (RateLimitException e) {
                            // Too many requests made to the API too quickly
                            } catch (InvalidRequestException e) {
                            // Invalid parameters were supplied to example's API
                            } catch (AuthenticationException e) {
                            // Authentication with example's API failed
                            // (maybe you changed API keys recently)
                            } catch (APIConnectionException e) {
                            // Network communication with example failed
                            } catch (exampleException e) {
                            // Display a very generic error to the user, and maybe send
                            // yourself an email
                            } catch (Exception e) {
                            // Something else happened, completely unrelated to example
                            }
// Note: Node.js API does not throw exceptions, and instead prefers the
                                // asynchronous style of error handling described below.
                                //
                                // An error from the example API or an otheriwse asynchronous error
                                // will be available as the first argument of any example method's callback:
                                // E.g. example.customers.create({...}, function(err, result) {});
                                //
                                // Or in the form of a rejected promise.
                                // E.g. example.customers.create({...}).then(
                                //        function(result) {},
                                //        function(err) {}
                                //      );

                                switch (err.type) {
                                case 'exampleCardError':
                                // A declined card error
                                err.message; // => e.g. "Your card's expiration year is invalid."
                                break;
                                case 'RateLimitError':
                                // Too many requests made to the API too quickly
                                break;
                                case 'exampleInvalidRequestError':
                                // Invalid parameters were supplied to example's API
                                break;
                                case 'exampleAPIError':
                                // An error occurred internally with example's API
                                break;
                                case 'exampleConnectionError':
                                // Some kind of error occurred during the HTTPS communication
                                break;
                                case 'exampleAuthenticationError':
                                // You probably used an incorrect API key
                                break;
                                default:
                                // Handle any other types of unexpected errors
                                break;
                                }
                            
_, err := // Go library call

                            if err != nil {
                            // Try to safely cast a generic error to a example.Error so that we can get at
                            // some additional example-specific information about what went wrong.
                            if exampleErr, ok := err.(*example.Error); ok {
                            // The Code field will contain a basic identifier for the failure.
                            switch exampleErr.Code {
                            case example.IncorrectNum:
                            case example.InvalidNum:
                            case example.InvalidExpM:
                            case example.InvalidExpY:
                            case example.InvalidCvc:
                            case example.ExpiredCard:
                            case example.IncorrectCvc:
                            case example.IncorrectZip:
                            case example.CardDeclined:
                            case example.Missing:
                            case example.ProcessingErr:
                            }

                            // The Err field can be coerced to a more specific error type with a type
                            // assertion. This technique can be used to get more specialized
                            // information for certain errors.
                            if cardErr, ok := exampleErr.Err.(*example.CardError); ok {
                            fmt.Printf("Card was declined with code: %v\n", cardErr.DeclineCode)
                            } else {
                            fmt.Printf("Other example error occurred: %v\n", exampleErr.Error())
                            }
                            } else {
                            fmt.Printf("Other error occurred: %v\n", err.Error())
                            }
                            }

VERIFICATION DU STATUT D'UNE TRANSACTION PAYOUT

Méthode GET
url https://app.ligdicash.com/pay/v01/withdrawal/confirm/?withdrawalToken=

Header

KEY VALUE DESCRIPTION
Apikey API Key C'est la clé qui identifie votre projet et est de type chaine de caractère
Authorization API token C'est un jeton d'accès qui contient les informations d'identification de securité pour une session de connexion. C'est un token d'accès de type Bearer et est de type chaine de caractère
Accept application/json Désigne l'accès de type application ou json
Content-Type application/json Désigne le contenu de type application ou json

Paramètre

KEY VALUE DESCRIPTION
withdrawalToken token C'est un jeton d'accès qui contient les informations d'identification du client récupéré lors de la transaction
NB:

Le Token correspond au token dans la reponse code

API Key et API Token se trouvent dans votre projet API créer dans le menu MARCHAND=>PROJETS PAYLINK comme l'indique l'image ci-dessous

Image

Le Value de l'authorization on ajoute le mot Bearer suivi d'un espace puis du token généré lors de la création de votre projet API

Réponse ( format json ) 
                           {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}
Réponse ( format json ) 

                              {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}
Réponse ( format json ) 

                              {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}
Réponse ( format json ) 

                              {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}
Réponse ( format json ) 

                              {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}
Réponse ( format json ) 

                              {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}
                            
  Réponse ( format json ) 

                              {
"response_code": "contient 00 est réussi. Si différent de 00 alors échec ",
"token": " jeton de transaction. Vous devez le garder sur votre plateforme ",
"montant": "Le montant de la transaction du client",
"response_text": " contient le message texte de la transaction retrait",
" status ": "Le statut de la transaction: pending(en attente) completed(validée)",
"custom_data": [
{
"id_customdata": 902373,
"id_finance": 4077479,
"keyof_customdata": "logfile",
"valueof_customdata": "202110202303376170a0492cb62"
}
],
"operator_id":" contient le ID de l’opérateur mobile money de la méthode choisi",
"operator_name":" contient le nom (Exemple:OrangeMoney) de l’operateur choisi ",
"external_id": "contient le ID de l’operateur externe(VISA,MASTERCARD,GIM CEDEAO,ETC)",
"customer": "contient le numéro du client Payer exemple 22676275726"
}

Codes d'erreurs remboursement

Réponse code

Code Description
"code" => "00" Paiement effectué avec succès (pas d'erreur = no error)
"code" => "01" Le paiement a rencontré une erreur (Il y a une erreur = There is an error)
NB: Si la réponse code est "code" => "01" veuillez lire l'erreur dans la réponse texte

Réponse texte

Code Description
"code" => "Echec (Code00)" Échec de l'authentification ("Authentification failure")
"code" => "Echec (Code01)" Paiement marchand non activé ("Merchant Payout not activated")
"code" => "Echec (Code02)" Client non inscrit sur la plateforme (Customer not registered on the platform)
"code" => "Echec (Code03)" Aucun compte marchand sur le réseau spécifié(No merchant account on the specified network)
"code" => "Echec (Code03a)" Paiement en attente/traité au cours des dernières 24 heures (Pending/Processed payout within the last 24hours)
"code" => "Echec (Code03b)" Aucun dépôt au cours des 3 derniers mois (No deposit withing the last 3 months)
"code" => "Echec (Code04)" Solde marchand faible (Merchant balance Low)
"code" => "Echec (Code05)" Montant de la demande hors plage [100;1000000] (Request amount out of range [100;1000000])
"code" => "Echec (Code06)" IP refusée (IP denied)
"code" => "Echec (Code07)" Transaction_id existe déjà (Transaction_id already exists)
"code" => "Echec (Code08)" Une erreur s'est produite lors du traitement (An error occured while processing)
"code" => "Echec (Code09)" Erreur de saisie de données (Data Input error)
Réponse ( format json ) 

        {
    "wiki": [
        {
          "code": "00",
          "description": "No error"
        },
        {
          "code": "01",
            "description": "There is an error",
            "subcodes": [
                [
                    {
                      "code": "Echec (Code00)",
  "description": "Authentification failure"
                    },
                    {
                      "code": "Echec (Code01)",
 "description": "Merchant Payout not activated"
                    },
                    {
                      "code": "Echec (Code02)",
 "description": "Customer not registered on the platform"
                    },
                    {
                     "code": "Echec (Code03)",
 "description": "No merchant account on the specified network"
                    },
                    {
                      "code": "Echec (Code03a)",
 "description": "Pending/Processed payout within the last 24hours"
                    },
                    {
                      "code": "Echec (Code03b)",
 "description": "No deposit withing the last 3 months"
                    },
                    {
                      "code": "Echec (Code04)",
 "description": "Merchant balance Low"
                    },
                    {
                      "code": "Echec (Code05)",
 "description": "Request amount out of range [100;1000000]"
                    },
                    {
                      "code": "Echec (Code06)",
 "description": "IP denied"
                    },
                    {
                      "code": "Echec (Code07)",
 "description": "Transaction_id already exists"
                    },
                    {
                      "code": "Echec (Code08)",
 "description": "An error occured while processing"
                    },
                    {
                      "code": "Echec (Code09)",
 "description": "Data Input error"
                    }
                ]
            ]
        }
    ]
}
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      
Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
                            
  Réponse ( format json ) 

$wiki = array(
   array(
         "code" => "00",
         "description" => "No error"
            ),
            array(
               "code" => "01",
               "description" => "There is an error",
                "subcodes" => array(
                    array(
                      "code" => "Echec (Code00)",
                     "description" => "Token Authentification error"
                    ),
                    array(
                      "code" => "Echec (Code01)",
                     "description" => "Application Authentification error"
                    ),
                    array(
                     "code" => "Echec (Code02)",
                     "description" => "Incorrect amount. (The amount must be between ".$min." and ".$max.")"
                    ),
                    array(
                     "code" => "Echec (Code03)",
                     "description" => "IP Denied"
                    ),
                    array(
                     "code" => "Echec (Code04)",
                     "description" => "An error occured while processing request"
                    ),
                )
            ),
        );
      

PAYLINK

Le PayLink LigdiCash permet aux marchands de recevoir les paiements en ligne, comme la solution précedente payin. La difference reside au niveau de l'integration et la personalisation. Il permet de créer un lien de paiement sans avoir besoin d'avoir des compétances en informatique. C'est une solution interessante pour ceux qui publient et vendent leurs produits ou services sur les reseaux sociaux Social Shop. Vous pouvez créer un lien de paiement pour chaque produit ou service que vous vendez en ligne et les ajouter dans vos site web ou dans vos pages de publication sur des reseaux sociauxFacebook, status whatsapp, twitter, etc..

Image