Passer au contenu principal

Documentation Index

Fetch the complete documentation index at: https://developers.ligdicash.com/llms.txt

Use this file to discover all available pages before exploring further.

L’endpoint confirm permet de vérifier le statut d’une facture à partir du token obtenu à la création. Appelez-le depuis votre backend — après la redirection vers return_url, ou depuis votre handler de callback avant d’honorer la commande.
GET https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm

Headers

Apikey
string
requis
La clé API de votre projet LigdiCash.
Authorization
string
requis
Votre API TOKEN précédé de Bearer . Exemple : Bearer eyJ0eXAiOiJKV1Qi...
Accept
string
requis
Doit être application/json.

Paramètres

token
string
requis
Le token retourné par l’endpoint create au moment de la création de la facture.
Le token reçu dans le payload du callback est différent du token de création. Les deux permettent d’appeler confirm, mais seul le token de création vous permet de faire la réconciliation avec votre commande côté marchand.

Exemple de requête

curl -X GET "https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm?token={TOKEN}" \
  -H "Apikey: {API_KEY}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Accept: application/json"

Champs de réponse

response_code
string
"00" si l’appel API a abouti, "01" en cas d’erreur technique. Ce champ indique le succès de la requête confirm, pas le résultat du paiement — utilisez status pour cela.
status
string
Statut du paiement. Voir le tableau ci-dessous.
token
string
Peut être vide dans la réponse confirm.
response_text
string
Message complémentaire ou sous-code d’erreur au format Echec (CodeXX). Consulter wiki pour la description. Vide si aucune erreur.
description
string
Description libre de la transaction. Peut être vide.
operator_id
string
Identifiant numérique de l’opérateur utilisé pour le paiement. Exemple : "14" pour Moov CI. Vide si le statut est pending.
operator_name
string
Nom de l’opérateur. Exemple : "MOOV CI". Vide si le statut est pending.
customer
string | null
Numéro de téléphone du payeur au format 226XXXXXXXXX. Peut être null si le paiement est encore en attente.
montant
integer
Montant de la transaction en XOF.
amount
integer
Identique à montant. Les deux champs sont toujours présents et ont la même valeur.
date
string
Date et heure de la transaction au format YYYY-MM-DD HH:MM:SS+TZ. Exemple : "2026-04-15 11:19:28+00".
external_id
string
Concaténation des valueof_customdata dont la clé (keyof_customdata) contient "id", séparés par ;. Correspond à la valeur de votre transaction_id si vous suivez le pattern recommandé.
oreference
string
Référence opérateur. Peut être vide.
request_id
string
Identifiant unique de la requête côté LigdiCash. Utile pour le support.
custom_data
array
Vos métadonnées telles que transmises à la création, enrichies par LigdiCash (qui y ajoute notamment logfile). Chaque entrée contient :
customer_details
object
Informations du client saisies lors du paiement.
wiki
string
URL vers la documentation des codes d’erreur de cet endpoint. À consulter quand response_code vaut "01".

Valeurs de status

statusSignificationAction recommandée
completedPaiement confirméHonorer la commande
pendingEn attente de confirmation opérateurPatienter, recheck ou attendre le callback
notcompletedPaiement non abouti (annulé ou échoué)Proposer de réessayer

Exemple de réponse

{
  "response_code": "00",
  "token": "",
  "response_text": "",
  "description": "",
  "custom_data": [
    {
      "keyof_customdata": "transaction_id",
      "valueof_customdata": "BPBF-1776251968907",
      "datecreation_customdata": "2026-04-15 11:19:28.977757"
    },
    {
      "keyof_customdata": "logfile",
      "valueof_customdata": "2026041511192869df7440ed917",
      "datecreation_customdata": "2026-04-15 11:19:28.977757"
    }
  ],
  "status": "completed",
  "operator_id": "14",
  "operator_name": "MOOV CI",
  "customer": "2250171584035",
  "wiki": "https://client.ligdicash.com/wiki/confirmInvoice",
  "montant": 100,
  "amount": 100,
  "date": "2026-04-15 11:19:28+00",
  "external_id": "BPBF-1776251968907",
  "oreference": "",
  "customer_details": {
    "firstname": "ClémenceIlaria",
    "lastname": "Ouedraogo",
    "email": "clemenceilaria369@gmail.com",
    "phone": "2250171584035",
    "details": ""
  },
  "request_id": "P2771491712026"
}

Lire custom_data dans la réponse

custom_data retourne un tableau de vos métadonnées enrichi par LigdiCash (qui y ajoute notamment logfile). Pour retrouver votre transaction_id :
JavaScript
const entry = data.custom_data.find(
  (item) => item.keyof_customdata === "transaction_id"
);
const transactionId = entry?.valueof_customdata;
Consultez Parser custom_data pour le traitement complet, notamment les cas où custom_data est un tableau vide ou une chaîne vide.

Quand appeler confirm ?

1. Après la redirection vers return_url Depuis votre frontend, déclenchez un appel à votre backend, qui appelle confirm avec le token stocké. N’appelez jamais confirm directement depuis le navigateur — vos clés API seraient exposées. 2. Dans votre handler de callback Avant d’honorer une commande suite à un callback, re-vérifiez toujours le statut avec confirm. Un faux payload peut être envoyé par n’importe qui connaissant l’URL de votre endpoint.

Pattern de polling

Si le callback n’est pas disponible ou tarde à arriver, interrogez confirm à intervalles réguliers :
JavaScript
async function attendreConfirmation(token, { intervalle = 4000, maxTentatives = 10 } = {}) {
  for (let i = 0; i < maxTentatives; i++) {
    const data = await appellerConfirm(token);

    if (data.status === "completed") return { success: true, data };
    if (data.status === "notcompleted") return { success: false, data };

    await new Promise((r) => setTimeout(r, intervalle));
  }
  return { success: false, reason: "timeout" };
}
Le polling est un filet de sécurité, pas la stratégie principale. Privilégiez toujours le callback. Consultez Polling vs callback pour les arbitrages.

Pages associées