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 est identique à celui du payin avec redirection. La différence est dans le moment où vous l’appelez : sans redirection, il n’y a pas de return_url pour déclencher une vérification depuis le frontend. Vous devez attendre le callback — c’est lui qui signale la fin du traitement côté opérateur.
GET https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm?token={TOKEN}
Pour la référence complète (headers, champs de réponse, payloads réels), consultez Vérifier le statut — payin avec redirection.

Quand appeler confirm

Toujours à la réception du callback. Quel que soit le mode de validation, la confirmation de l’opérateur peut prendre un temps variable — quelques secondes à plusieurs minutes, même quand le client a déjà saisi son OTP. Le callback est le seul signal fiable indiquant que l’opérateur a traité la transaction. Appelez confirm depuis votre handler de callback, avec le token stocké à la création, avant d’honorer la commande.
Appelez toujours confirm avec le token stocké à la création, pas celui reçu dans le callback. Les deux tokens permettent d’appeler l’endpoint, mais seul le token de création vous permet de faire la réconciliation avec votre commande.

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"

Valeurs de status

statusSignificationAction recommandée
completedPaiement confirméHonorer la commande
pendingEn attente de validation par le clientContinuer le polling ou attendre le callback
notcompletedPaiement non aboutiProposer de réessayer

Polling — filet de sécurité uniquement

Si le callback tarde ou n’est pas disponible dans votre environnement, vous pouvez interroger confirm à intervalles réguliers. Le statut sera pending tant que l’opérateur n’a pas finalisé la transaction :
JavaScript
async function attendreConfirmation(token, { intervalle = 4000, maxTentatives = 15 } = {}) {
  for (let i = 0; i < maxTentatives; i++) {
    const res = await fetch(
      `https://app.ligdicash.com/pay/v01/redirect/checkout-invoice/confirm?token=${token}`,
      {
        headers: {
          Apikey: process.env.LIGDICASH_API_KEY,
          Authorization: `Bearer ${process.env.LIGDICASH_API_TOKEN}`,
          Accept: "application/json",
        },
      }
    );
    const data = await res.json();

    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 un remplacement du callback. Basez toujours votre logique métier sur le callback. Consultez Polling vs callback pour les arbitrages.

Pages associées