Les trois statuts d’une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.
Une transaction LigdiCash ne passe pas directement de « créée » à « payée ». Elle traverse des états que votre système doit savoir interpréter. Le comportement est différent de ce que l’on trouve habituellement dans d’autres passerelles de paiement — il est important de bien le comprendre avant de concevoir votre intégration.
pending est l’état par défaut de toute transaction à la création. C’est aussi l’état dans lequel la plupart des transactions restent le plus longtemps — et parfois indéfiniment.Plusieurs tentatives de paiement échouées sur une même transaction ne font pas passer celle-ci à notcompleted. Le client peut saisir un OTP incorrect plusieurs fois : la transaction reste pending.Il n’existe pas de délai d’expiration côté LigdiCash. Une transaction peut rester à pending des jours après sa création, pour une raison simple : un client peut déposer une réclamation auprès de son opérateur mobile money, et l’opérateur peut valider ou annuler la transaction plusieurs jours plus tard. LigdiCash attend l’issue définitive avant de mettre à jour le statut.
Ne considérez jamais qu’une transaction pending est perdue ou expirée. Ne la recréez pas automatiquement après un délai. Attendez le callback ou interrogez confirm avant de prendre une décision.
Une fois qu’une transaction atteint completed ou notcompleted, son statut ne changera plus. notcompleted est rare — il indique qu’une issue définitive négative a été confirmée (annulation opérateur, rejet définitif).
Deux mécanismes permettent de suivre le statut d’une transaction :Le callback — LigdiCash envoie une notification à votre callback_url quand le statut change. C’est le mécanisme principal.L’endpoint confirm — vous pouvez interroger LigdiCash à tout moment avec le token stocké à la création pour obtenir le statut courant.
Ne mettez jamais à jour le statut d’une commande sur la seule base du payload reçu dans le callback. Appelez toujours confirm avec le token stocké à la création pour valider. N’importe qui connaissant votre URL de callback pourrait envoyer un faux payload.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"LigdiCash","description":"Documentation officielle de LigdiCash — agrégateur de paiement mobile money en Afrique de l'Ouest","colors":{"primary":"#00754B","light":"#00A86B","dark":"#005235"},"logo":{"light":"https://mintcdn.com/ligdicash/6Mlx7qXwPaCOwibS/logo/logo.png?fit=max\u0026auto=format\u0026n=6Mlx7qXwPaCOwibS\u0026q=85\u0026s=f2b2f57228d547b652695a29b8347018","dark":"https://mintcdn.com/ligdicash/6Mlx7qXwPaCOwibS/logo/logo.png?fit=max\u0026auto=format\u0026n=6Mlx7qXwPaCOwibS\u0026q=85\u0026s=f2b2f57228d547b652695a29b8347018"},"favicon":"https://mintcdn.com/ligdicash/6Mlx7qXwPaCOwibS/favicon.ico?fit=max\u0026auto=format\u0026n=6Mlx7qXwPaCOwibS\u0026q=85\u0026s=f431868bb413fb6d7b4aa031d27e6840","navbar":{"links":[{"href":"mailto:support@ligdicash.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://client.ligdicash.com"}},"footer":{"socials":{"website":"https://ligdicash.com"},"links":[{"header":"Produits","items":[{"label":"API de paiement","href":"/api-paiement/vue-ensemble"},{"label":"Paylinks","href":"/autres-produits/paylinks"},{"label":"SMS","href":"/autres-produits/sms"}]},{"header":"Ressources","items":[{"label":"FAQ","href":"/ressources/faq"},{"label":"Glossaire","href":"/ressources/glossaire"},{"label":"Support","href":"/ressources/support"}]}]},"search":{"prompt":"Rechercher dans la documentation..."},"seo":{"metatags":{"og:site_name":"LigdiCash Documentation","og:type":"website"},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Site web LigdiCash","icon":"globe","href":"https://ligdicash.com"},{"anchor":"Dashboard","icon":"gauge","href":"https://client.ligdicash.com"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@ligdicash.com"}]},"languages":[{"language":"fr","href":"essentials/introduction"},{"language":"en","href":"en/getting-started/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ligdicash","hasAudioNarration":false,"actualSubdomain":"ligdicash","customDomains":["developers.ligdicash.com"],"gitSource":{"type":"github","owner":"ligdicash","repo":"ligdicash-mintlify-doc","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6ae93f136adaf11fe54f39b9:success","clientVersion":"0.0.4124","searchFilterCounts":[{"language":"fr","tag":"Documentation","count":90},{"language":"en","tag":"Documentation","count":90},{"language":"fr","tag":"API de paiement","count":54},{"language":"en","tag":"Payment API","count":54},{"language":"fr","tag":"Payin sans redirection","count":27},{"language":"en","tag":"Direct payin","count":27},{"language":"fr","tag":"Intégration par opérateur","count":23},{"language":"en","tag":"Integration by operator","count":23},{"language":"fr","tag":"Référence API","count":10},{"language":"en","tag":"API Reference","count":10},{"language":"fr","tag":"Concepts fondamentaux","count":9},{"language":"en","tag":"Core concepts","count":9},{"language":"fr","tag":"Le callback (webhook)","count":8},{"language":"en","tag":"Callback (webhook)","count":8},{"language":"fr","tag":"SDK \u0026 Plugins","count":7},{"language":"en","tag":"SDKs \u0026 Plugins","count":7},{"language":"fr","tag":"Payin avec redirection","count":6},{"language":"en","tag":"Hosted payin","count":6},{"language":"fr","tag":"Payout","count":5},{"language":"en","tag":"Payout","count":5}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"concepts/cycle-vie-transaction","slug":"/concepts/cycle-vie-transaction","pageMetadata":{"title":"Cycle de vie d'une transaction","description":"Les trois statuts d'une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.","href":"/concepts/cycle-vie-transaction"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Les trois statuts d’une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Mermaid,Table,Warning}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Une transaction LigdiCash ne passe pas directement de « créée » à « payée ». Elle traverse des états que votre système doit savoir interpréter. Le comportement est différent de ce que l’on trouve habituellement dans d’autres passerelles de paiement — il est important de bien le comprendre avant de concevoir votre intégration.`}),`\n`,_jsx(Heading,{level:`2`,id:`les-trois-statuts`,children:`Les trois statuts`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Statut`}),_jsx(_components.th,{children:`Signification`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`pending`})}),_jsx(_components.td,{children:`Transaction créée, en attente d’une issue définitive`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`completed`})}),_jsx(_components.td,{children:`Paiement confirmé avec succès — état final`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`notcompleted`})}),_jsx(_components.td,{children:`Paiement échoué ou annulé — état final`})]})]})]}),`\n`,_jsxs(Heading,{level:`2`,id:`ce-que-pending-signifie-vraiment`,children:[`Ce que `,_jsx(_components.code,{children:`pending`}),` signifie vraiment`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`pending`}),` est l’état par défaut de toute transaction à la création. C’est aussi l’état dans lequel la plupart des transactions `,_jsx(_components.strong,{children:`restent le plus longtemps`}),` — et parfois indéfiniment.`]}),`\n`,_jsxs(_components.p,{children:[`Plusieurs tentatives de paiement échouées sur une même transaction ne font pas passer celle-ci à `,_jsx(_components.code,{children:`notcompleted`}),`. Le client peut saisir un OTP incorrect plusieurs fois : la transaction reste `,_jsx(_components.code,{children:`pending`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Il n’existe pas de délai d’expiration côté LigdiCash. Une transaction peut rester à `,_jsx(_components.code,{children:`pending`}),` des jours après sa création, pour une raison simple : un client peut déposer une réclamation auprès de son opérateur mobile money, et l’opérateur peut valider ou annuler la transaction plusieurs jours plus tard. LigdiCash attend l’issue définitive avant de mettre à jour le statut.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Ne considérez jamais qu’une transaction `,_jsx(_components.code,{children:`pending`}),` est perdue ou expirée. Ne la recréez pas automatiquement après un délai. Attendez le callback ou interrogez `,_jsx(_components.code,{children:`confirm`}),` avant de prendre une décision.`]})}),`\n`,_jsxs(Heading,{level:`2`,id:`completed-et-notcompleted-sont-des-états-finaux`,children:[_jsx(_components.code,{children:`completed`}),` et `,_jsx(_components.code,{children:`notcompleted`}),` sont des états finaux`]}),`\n`,_jsxs(_components.p,{children:[`Une fois qu’une transaction atteint `,_jsx(_components.code,{children:`completed`}),` ou `,_jsx(_components.code,{children:`notcompleted`}),`, son statut ne changera plus. `,_jsx(_components.code,{children:`notcompleted`}),` est rare — il indique qu’une issue définitive négative a été confirmée (annulation opérateur, rejet définitif).`]}),`\n`,_jsx(Mermaid,{chart:`stateDiagram-v2\n [*] --> pending : Création de la transaction\n pending --> pending : Tentatives échouées, réclamations en cours\n pending --> completed : Paiement confirmé (état final)\n pending --> notcompleted : Annulation confirmée (état final, rare)`}),`\n`,_jsx(Heading,{level:`2`,id:`comment-connaître-le-statut`,children:`Comment connaître le statut`}),`\n`,_jsx(_components.p,{children:`Deux mécanismes permettent de suivre le statut d’une transaction :`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Le callback`}),` — LigdiCash envoie une notification à votre `,_jsx(_components.code,{children:`callback_url`}),` quand le statut change. C’est le mécanisme principal.`]}),`\n`,_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`L’endpoint `,_jsx(_components.code,{children:`confirm`})]}),` — vous pouvez interroger LigdiCash à tout moment avec le `,_jsx(_components.code,{children:`token`}),` stocké à la création pour obtenir le statut courant.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Ne mettez jamais à jour le statut d’une commande sur la seule base du payload reçu dans le callback. Appelez toujours `,_jsx(_components.code,{children:`confirm`}),` avec le `,_jsx(_components.code,{children:`token`}),` stocké à la création pour valider. N’importe qui connaissant votre URL de callback pourrait envoyer un faux payload.`]})}),`\n`,_jsxs(_components.p,{children:[`Consultez `,_jsx(_components.a,{href:`/api-paiement/callback/securisation`,children:`Sécuriser le callback`}),` pour le pattern de re-vérification complet.`]}),`\n`,_jsx(Heading,{level:`2`,id:`pages-associées`,children:`Pages associées`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-paiement/callback/securisation`,children:`Sécuriser le callback`}),` — pattern de re-vérification avec `,_jsx(_components.code,{children:`confirm`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.a,{href:`/api-paiement/verification-statut/polling-vs-callback`,children:`Polling vs callback`}),` — quand utiliser l’un ou l’autre`]}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/codes-reponse-statuts`,children:`Codes de réponse et statuts`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Cycle de vie d'une transaction","description":"Les trois statuts d'une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.","href":"/concepts/cycle-vie-transaction"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Les trois statuts","slug":"les-trois-statuts","depth":2,"children":[]},{"title":"Ce que pending signifie vraiment","slug":"ce-que-pending-signifie-vraiment","depth":2,"children":[]},{"title":"completed et notcompleted sont des états finaux","slug":"completed-et-notcompleted-sont-des-états-finaux","depth":2,"children":[]},{"title":"Comment connaître le statut","slug":"comment-connaître-le-statut","depth":2,"children":[]},{"title":"Pages associées","slug":"pages-associées","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ligdicash","siteName":"LigdiCash","title":"Cycle de vie d'une transaction - LigdiCash","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/concepts/cycle-vie-transaction","matchLevel":0},"en":{"href":"/en/getting-started/introduction","matchLevel":4}}},"lastModified":"2026-05-11T18:32:50.643Z","originalFileLocation":"concepts/cycle-vie-transaction.mdx","locale":"fr"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Les trois statuts d\u0026#x27;une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.\">\u003cmeta data-mint-head name=\"application-name\" content=\"LigdiCash\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Cycle de vie d\u0026#x27;une transaction - LigdiCash\">\u003cmeta data-mint-head property=\"og:description\" content=\"Les trois statuts d\u0026#x27;une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LigdiCash Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.ligdicash.com/concepts/cycle-vie-transaction\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ligdicash.mintlify.site/_mintlify/api/og/v2?division=Concepts+fondamentaux\u0026amp;title=Cycle+de+vie+d%27une+transaction\u0026amp;description=Les+trois+statuts+d%27une+transaction+LigdiCash+%E2%80%94+pending%2C+completed%2C+notcompleted+%E2%80%94+et+pourquoi+une+transaction+peut+rester+pending+ind%C3%A9finiment.\u0026amp;theme=c1cc823165e528d39b58bf8f\u0026amp;signature=3cc24625a11adf92e14c5a1d6d3359e8f08768904564677fd2a57760abf577ef\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Cycle de vie d\u0026#x27;une transaction - LigdiCash\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Les trois statuts d\u0026#x27;une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ligdicash.mintlify.site/_mintlify/api/og/v2?division=Concepts+fondamentaux\u0026amp;title=Cycle+de+vie+d%27une+transaction\u0026amp;description=Les+trois+statuts+d%27une+transaction+LigdiCash+%E2%80%94+pending%2C+completed%2C+notcompleted+%E2%80%94+et+pourquoi+une+transaction+peut+rester+pending+ind%C3%A9finiment.\u0026amp;theme=c1cc823165e528d39b58bf8f\u0026amp;signature=3cc24625a11adf92e14c5a1d6d3359e8f08768904564677fd2a57760abf577ef\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/ligdicash/-GyaSerpEOEfay6N/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"LigdiCash\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#00754B\">\u003clink data-mint-head rel=\"canonical\" href=\"https://developers.ligdicash.com/concepts/cycle-vie-transaction\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/concepts/cycle-vie-transaction.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://developers.ligdicash.com/#organization\",\"name\":\"LigdiCash\",\"url\":\"https://developers.ligdicash.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ligdicash/6Mlx7qXwPaCOwibS/logo/logo.png?fit=max\u0026auto=format\u0026n=6Mlx7qXwPaCOwibS\u0026q=85\u0026s=f2b2f57228d547b652695a29b8347018\"}},{\"@type\":\"WebSite\",\"@id\":\"https://developers.ligdicash.com#website\",\"name\":\"LigdiCash\",\"url\":\"https://developers.ligdicash.com\",\"publisher\":{\"@id\":\"https://developers.ligdicash.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction#webpage\",\"url\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction\",\"name\":\"Cycle de vie d'une transaction\",\"description\":\"Les trois statuts d'une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.\",\"dateModified\":\"2026-05-11T18:32:50.643Z\",\"isPartOf\":{\"@id\":\"https://developers.ligdicash.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"LigdiCash\",\"item\":\"https://developers.ligdicash.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Cycle de vie d'une transaction\",\"item\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction#article\",\"headline\":\"Cycle de vie d'une transaction\",\"name\":\"Cycle de vie d'une transaction\",\"description\":\"Les trois statuts d'une transaction LigdiCash — pending, completed, notcompleted — et pourquoi une transaction peut rester pending indéfiniment.\",\"url\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction\",\"mainEntityOfPage\":{\"@id\":\"https://developers.ligdicash.com/concepts/cycle-vie-transaction#webpage\"},\"dateModified\":\"2026-05-11T18:32:50.643Z\",\"publisher\":{\"@id\":\"https://developers.ligdicash.com/#organization\"},\"isPartOf\":{\"@id\":\"https://developers.ligdicash.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"LigdiCash\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"LigdiCash\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/concepts/cycle-vie-transaction.md","siteName":"LigdiCash","nav":{"global":{"anchors":[{"anchor":"Site web LigdiCash","icon":"globe","href":"https://ligdicash.com"},{"anchor":"Dashboard","icon":"gauge","href":"https://client.ligdicash.com"},{"anchor":"Support","icon":"life-ring","href":"mailto:support@ligdicash.com"}]},"languages":[{"language":"fr","tabs":[{"tab":"Documentation","groups":[{"group":"Démarrage","pages":[{"title":"Introduction","href":"/essentials/introduction"},{"title":"Quickstart — Premier paiement en 5 minutes","href":"/essentials/quickstart"},{"title":"Protocole d'intégration","description":"Le parcours complet pour devenir partenaire LigdiCash : démarches administratives, formation, intégration technique et mise en production.","href":"/essentials/protocole-integration"}]},{"group":"Concepts fondamentaux","pages":[{"title":"Cycle de vie d'une transaction","href":"/concepts/cycle-vie-transaction"},{"title":"Authentification","description":"Comment authentifier vos requêtes vers l'API LigdiCash avec les en-têtes Apikey et Authorization.","href":"/concepts/authentification"},{"title":"Le compte marchand LigdiCash","href":"/concepts/compte-marchand"},{"title":"Tokens et identifiants","href":"/concepts/tokens-et-identifiants"},{"title":"Le pattern transaction_id : la règle d'or","href":"/concepts/transaction-id-pattern"},{"title":"Codes de réponse et statuts","href":"/concepts/codes-reponse-statuts"},{"title":"Environnements d'intégration","href":"/concepts/environnements"},{"title":"Devises et montants","href":"/concepts/devises-montants"},{"title":"Projet API","href":"/concepts/projet-api"}]},{"group":"API de paiement","pages":[{"title":"Vue d'ensemble de l'API de paiement","href":"/api-paiement/vue-ensemble"},{"group":"Payin avec redirection","pages":[{"title":"Payin avec redirection","href":"/api-paiement/payin-redirect/introduction"},{"title":"Créer une facture","href":"/api-paiement/payin-redirect/creer-facture"},{"title":"Rediriger le client vers la page de paiement","href":"/api-paiement/payin-redirect/rediriger-client"},{"title":"Vérifier le statut d'une transaction","href":"/api-paiement/payin-redirect/verifier-statut"},{"title":"Intégration mobile native","href":"/api-paiement/payin-redirect/integration-mobile"},{"title":"Pièges courants — payin avec redirection","href":"/api-paiement/payin-redirect/pieges-courants"}]},{"group":"Payin sans redirection","pages":[{"title":"Payin sans redirection","href":"/api-paiement/payin-sans-redirect/introduction"},{"title":"Modes de validation","href":"/api-paiement/payin-sans-redirect/modes-validation"},{"title":"Créer une transaction","href":"/api-paiement/payin-sans-redirect/creer-transaction"},{"title":"Vérifier le statut","href":"/api-paiement/payin-sans-redirect/verifier-statut"},{"group":"Intégration par opérateur","pages":[{"title":"Wallet LigdiCash","href":"/api-paiement/payin-sans-redirect/operateurs/wallet-ligdicash"},{"title":"Moov Africa — Bénin","href":"/api-paiement/payin-sans-redirect/operateurs/moov-benin"},{"title":"MTN Mobile Money — Bénin","href":"/api-paiement/payin-sans-redirect/operateurs/mtn-benin"},{"title":"Orange Money — Burkina Faso","href":"/api-paiement/payin-sans-redirect/operateurs/orange-burkina"},{"title":"Moov Africa — Burkina Faso","href":"/api-paiement/payin-sans-redirect/operateurs/moov-burkina"},{"title":"Orange Money — Côte d'Ivoire","href":"/api-paiement/payin-sans-redirect/operateurs/orange-cote-divoire"},{"title":"Moov Africa — Côte d'Ivoire","href":"/api-paiement/payin-sans-redirect/operateurs/moov-cote-divoire"},{"title":"MTN Mobile Money — Côte d'Ivoire","href":"/api-paiement/payin-sans-redirect/operateurs/mtn-cote-divoire"},{"title":"Orange Money — Guinée Conakry","href":"/api-paiement/payin-sans-redirect/operateurs/orange-guinee"},{"title":"MTN Mobile Money — Guinée Conakry","href":"/api-paiement/payin-sans-redirect/operateurs/mtn-guinee"},{"title":"Orange Money — Mali","href":"/api-paiement/payin-sans-redirect/operateurs/orange-mali"},{"title":"Airtel — Niger","href":"/api-paiement/payin-sans-redirect/operateurs/airtel-niger"},{"title":"Zamani — Niger","href":"/api-paiement/payin-sans-redirect/operateurs/zamani-niger"},{"title":"Moov Africa — Niger","href":"/api-paiement/payin-sans-redirect/operateurs/moov-niger"},{"title":"Orange Money — RD Congo","href":"/api-paiement/payin-sans-redirect/operateurs/orange-rdc"},{"title":"Vodacom — RD Congo","href":"/api-paiement/payin-sans-redirect/operateurs/vodacom-rdc"},{"title":"Airtel — RD Congo","href":"/api-paiement/payin-sans-redirect/operateurs/airtel-rdc"},{"title":"Africell — RD Congo","href":"/api-paiement/payin-sans-redirect/operateurs/africell-rdc"},{"title":"Orange Money — Sénégal","href":"/api-paiement/payin-sans-redirect/operateurs/orange-senegal"},{"title":"Wave — Sénégal","href":"/api-paiement/payin-sans-redirect/operateurs/wave-senegal"},{"title":"Free — Sénégal","href":"/api-paiement/payin-sans-redirect/operateurs/free-senegal"},{"title":"Moov Africa — Togo","href":"/api-paiement/payin-sans-redirect/operateurs/moov-togo"},{"title":"YAS — Togo","href":"/api-paiement/payin-sans-redirect/operateurs/yas-togo"}]}]},{"group":"Payout","pages":[{"title":"Payout — Introduction","href":"/api-paiement/payout/introduction"},{"title":"Payout Client — vers wallet LigdiCash","href":"/api-paiement/payout/vers-wallet-ligdicash"},{"title":"Payout Marchand — vers mobile money","href":"/api-paiement/payout/vers-mobile-money"},{"title":"Vérifier le statut d'un payout","href":"/api-paiement/payout/verifier-statut"},{"title":"Cas d'usage du payout","href":"/api-paiement/payout/cas-usage"}]},{"group":"Le callback (webhook)","pages":[{"title":"Le callback (webhook) — Introduction","href":"/api-paiement/callback/introduction"},{"title":"Configurer l'URL de callback","href":"/api-paiement/callback/configuration"},{"title":"Anatomie du payload — Payin","href":"/api-paiement/callback/payload-payin"},{"title":"Anatomie du payload — Payout","href":"/api-paiement/callback/payload-payout"},{"title":"Sécuriser le callback","href":"/api-paiement/callback/securisation"},{"title":"Parser custom_data dans le callback","href":"/api-paiement/callback/parser-custom-data"},{"title":"Idempotence et déduplication","href":"/api-paiement/callback/idempotence"},{"title":"Exemples par framework","href":"/api-paiement/callback/exemples-frameworks"}]},{"group":"Cartes Visa","pages":[{"title":"Cartes Visa — Introduction","href":"/api-paiement/cartes-visa/introduction"},{"title":"Activer Visa sur votre projet","href":"/api-paiement/cartes-visa/activation"},{"title":"Flux de paiement Visa","href":"/api-paiement/cartes-visa/flux-paiement"},{"title":"3D Secure","href":"/api-paiement/cartes-visa/3d-secure"}]},{"group":"Vérification de statut","pages":[{"title":"Vérification de statut — Vue d'ensemble","href":"/api-paiement/verification-statut/introduction"},{"title":"Polling vs callback","href":"/api-paiement/verification-statut/polling-vs-callback"},{"title":"Recommandations de vérification","href":"/api-paiement/verification-statut/recommandations"}]}]},{"group":"Guides pratiques","pages":[{"title":"Guide e-commerce : panier → paiement → livraison","href":"/guides/quickstart-ecommerce"},{"title":"Guide mobile : React Native et Flutter","href":"/guides/quickstart-mobile"},{"title":"Architecture recommandée","href":"/guides/architecture-recommandee"},{"title":"Checklist de mise en production","href":"/guides/checklist-production"}]},{"group":"Gestion des erreurs","pages":[{"title":"Gestion des erreurs — Vue d'ensemble","href":"/erreurs/vue-ensemble"},{"title":"Le champ wiki","href":"/erreurs/champ-wiki"},{"title":"Liste des sous-codes par endpoint","href":"/erreurs/sous-codes"},{"title":"Erreurs courantes et solutions","href":"/erreurs/erreurs-courantes"}]},{"group":"SDK \u0026 Plugins","pages":[{"title":"SDK officiels","href":"/sdk/vue-ensemble"},{"title":"SDK PHP","href":"/sdk/php"},{"title":"SDK Python","href":"/sdk/python"},{"title":"SDK JavaScript / TypeScript","href":"/sdk/javascript"},{"title":"SDK Dart / Flutter","href":"/sdk/dart-flutter"},{"title":"Plugin WordPress / WooCommerce","href":"/sdk/wordpress-woocommerce"},{"title":"Skill LigdiCash pour agent IA","icon":"brain-circuit","href":"/sdk/skill-ia"}]},{"group":"Autres produits","pages":[{"title":"PayLinks","href":"/autres-produits/paylinks"},{"title":"SMS LigdiCash","href":"/autres-produits/sms"}]},{"group":"Outils IA","pages":[{"title":"Claude Code","icon":"asterisk","href":"/ai-tools/claude-code"},{"title":"Cursor","icon":"arrow-pointer","href":"/ai-tools/cursor"},{"title":"Windsurf","icon":"water","href":"/ai-tools/windsurf"}]},{"group":"Ressources","pages":[{"title":"Changelog","href":"/ressources/changelog"},{"title":"FAQ","href":"/ressources/faq"},{"title":"Glossaire","href":"/ressources/glossaire"},{"title":"Support","href":"/ressources/support"}]}]},{"tab":"Référence API","pages":[{"title":"Référence API","href":"/reference/introduction"}]}]},{"language":"en","pages":[{"title":"en","href":"/en/getting-started/introduction"}]}]},"basePath":"","title":"Cycle de vie d'une transaction - LigdiCash","buildId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","deploymentId":"dpl_8hoxaqFTU7hTr6A2fUraxAyjuiZo","dynamics":[],"chunks":[]}