Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.
Le champ custom_data dans le callback est un tableau d’objets. Chaque entrée correspond à un champ que vous avez passé à la création de la transaction. LigdiCash y ajoute automatiquement ses propres champs — filtrez toujours par keyof_customdata pour extraire les vôtres.
LigdiCash ajoute systématiquement hash et logfile à votre tableau. Ne vous appuyez pas sur l’index ou l’ordre des entrées — filtrez toujours par keyof_customdata.
external_id est une concaténation des valeurs de tous les champs de custom_data dont la clé contient "id". Si votre custom_data ne contient qu’un seul champ avec "id" dans le nom (ex : transaction_id), external_id correspondra à sa valeur. Mais si plusieurs clés contiennent "id", leurs valeurs seront concaténées — ce qui le rend peu fiable pour identifier la transaction.
Ne vous fiez pas à external_id comme identifiant unique. Parsez toujours custom_data directement avec keyof_customdata pour extraire votre transaction_id de manière fiable.
{"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":""},"chroma":{"liveDeploymentHistoryId":"6a341c465ceac4f19f28972b","collectionId":"6721b109-d524-48ec-a78d-e7e46d52a3f9","schemaVersion":"v2"},"entitlements":{},"buildId":"6a341c465ceac4f19f28972b:success","clientVersion":"0.0.3964","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":{},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-paiement/callback/parser-custom-data","slug":"/api-paiement/callback/parser-custom-data","pageMetadata":{"title":"Parser custom_data dans le callback","description":"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.","href":"/api-paiement/callback/parser-custom-data"},"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: \"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.\"\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`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Le champ `,_jsx(_components.code,{children:`custom_data`}),` dans le callback est un tableau d’objets. Chaque entrée correspond à un champ que vous avez passé à la création de la transaction. LigdiCash y ajoute automatiquement ses propres champs — filtrez toujours par `,_jsx(_components.code,{children:`keyof_customdata`}),` pour extraire les vôtres.`]}),`\n`,_jsx(Heading,{level:`2`,id:`structure-de-custom_data`,children:`Structure de custom_data`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`17`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`17`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"custom_data\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"keyof_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"transaction_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"valueof_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ART5A7044E5\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"datecreation_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-05-09 07:20:23.362788\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"keyof_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hash\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"valueof_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"f918c54d54cdc334ade09f8c228a224b1d3df646250c84dcdd99af528ddcd450\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"datecreation_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-05-09 07:20:23.362788\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"keyof_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"logfile\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"valueof_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026050907202369fee03756652\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"datecreation_customdata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-05-09 07:20:23.362788\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`LigdiCash ajoute systématiquement `,_jsx(_components.code,{children:`hash`}),` et `,_jsx(_components.code,{children:`logfile`}),` à votre tableau. Ne vous appuyez pas sur l’index ou l’ordre des entrées — filtrez toujours par `,_jsx(_components.code,{children:`keyof_customdata`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`extraire-votre-transaction_id`,children:`Extraire votre transaction_id`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`javascript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`javascript`,children:_jsxs(_components.code,{language:`javascript`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getCustomValue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`customData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` entry`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` customData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`find`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`e`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` =>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` e`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`keyof_customdata`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ===`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entry`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ?`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` entry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`valueof_customdata`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` transactionId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getCustomValue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`custom_data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'transaction_id'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`php`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`php`,children:_jsxs(_components.code,{language:`php`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getCustomValue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`array`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $customData`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ?`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` foreach`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$customData`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $entry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$entry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'keyof_customdata'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`===`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` $entry`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'valueof_customdata'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`];`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$transactionId`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` getCustomValue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$payload`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'custom_data'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`], `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'transaction_id'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`le-champ-external_id`,children:`Le champ external_id`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`external_id`}),` est une concaténation des valeurs de tous les champs de `,_jsx(_components.code,{children:`custom_data`}),` dont la clé contient `,_jsx(_components.code,{children:`\"id\"`}),`. Si votre `,_jsx(_components.code,{children:`custom_data`}),` ne contient qu’un seul champ avec `,_jsx(_components.code,{children:`\"id\"`}),` dans le nom (ex : `,_jsx(_components.code,{children:`transaction_id`}),`), `,_jsx(_components.code,{children:`external_id`}),` correspondra à sa valeur. Mais si plusieurs clés contiennent `,_jsx(_components.code,{children:`\"id\"`}),`, leurs valeurs seront concaténées — ce qui le rend peu fiable pour identifier la transaction.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Ne vous fiez pas à `,_jsx(_components.code,{children:`external_id`}),` comme identifiant unique. Parsez toujours `,_jsx(_components.code,{children:`custom_data`}),` directement avec `,_jsx(_components.code,{children:`keyof_customdata`}),` pour extraire votre `,_jsx(_components.code,{children:`transaction_id`}),` de manière fiable.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`pages-associées`,children:`Pages associées`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/api-paiement/callback/payload-payin`,children:`Payload Payin`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/api-paiement/callback/securisation`,children:`Sécurisation du callback`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/concepts/transaction-id-pattern`,children:`Le pattern transaction_id`})}),`\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":"Parser custom_data dans le callback","description":"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.","href":"/api-paiement/callback/parser-custom-data"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Structure de custom_data","slug":"structure-de-custom_data","depth":2,"children":[]},{"title":"Extraire votre transaction_id","slug":"extraire-votre-transaction_id","depth":2,"children":[]},{"title":"Le champ external_id","slug":"le-champ-external_id","depth":2,"children":[]},{"title":"Pages associées","slug":"pages-associées","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"ligdicash","siteName":"LigdiCash","title":"Parser custom_data dans le callback - LigdiCash","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"fr":{"href":"/api-paiement/callback/parser-custom-data","matchLevel":0},"en":{"href":"/en/getting-started/introduction","matchLevel":4}}},"lastModified":"2026-05-11T18:32:43.438Z","originalFileLocation":"api-paiement/callback/parser-custom-data.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=\"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.\">\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=\"Parser custom_data dans le callback - LigdiCash\">\u003cmeta data-mint-head property=\"og:description\" content=\"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"LigdiCash Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ligdicash.mintlify.app/_mintlify/api/og/v2?division=Le+callback+%28webhook%29\u0026amp;title=Parser+custom_data+dans+le+callback\u0026amp;description=Comment+extraire+votre+transaction_id+depuis+custom_data+et+pourquoi+external_id+est+le+raccourci+recommand%C3%A9.\u0026amp;theme=0033b31e569934758f1783d9\u0026amp;signature=b25719db42e29ff4e8c2be38582b26660c860352242b55d677e2a68fd24fc679\">\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=\"Parser custom_data dans le callback - LigdiCash\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ligdicash.mintlify.app/_mintlify/api/og/v2?division=Le+callback+%28webhook%29\u0026amp;title=Parser+custom_data+dans+le+callback\u0026amp;description=Comment+extraire+votre+transaction_id+depuis+custom_data+et+pourquoi+external_id+est+le+raccourci+recommand%C3%A9.\u0026amp;theme=0033b31e569934758f1783d9\u0026amp;signature=b25719db42e29ff4e8c2be38582b26660c860352242b55d677e2a68fd24fc679\">\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/api-paiement/callback/parser-custom-data\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-paiement/callback/parser-custom-data.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/api-paiement/callback/parser-custom-data#webpage\",\"url\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data\",\"name\":\"Parser custom_data dans le callback\",\"description\":\"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.\",\"dateModified\":\"2026-05-11T18:32:43.438Z\",\"isPartOf\":{\"@id\":\"https://developers.ligdicash.com#website\"},\"breadcrumb\":{\"@id\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API de paiement\",\"item\":\"https://developers.ligdicash.com/api-paiement/vue-ensemble\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Le callback (webhook)\",\"item\":\"https://developers.ligdicash.com/api-paiement/callback/introduction\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Parser custom_data dans le callback\",\"item\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data#article\",\"headline\":\"Parser custom_data dans le callback\",\"name\":\"Parser custom_data dans le callback\",\"description\":\"Comment extraire votre transaction_id depuis custom_data et pourquoi external_id est le raccourci recommandé.\",\"url\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data\",\"mainEntityOfPage\":{\"@id\":\"https://developers.ligdicash.com/api-paiement/callback/parser-custom-data#webpage\"},\"dateModified\":\"2026-05-11T18:32:43.438Z\",\"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\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","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","href":"/essentials/protocole-integration"}]},{"group":"Concepts fondamentaux","pages":[{"title":"Cycle de vie d'une transaction","href":"/concepts/cycle-vie-transaction"},{"title":"Authentification","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","description":"Pourquoi ne jamais faire confiance au payload reçu, et comment re-vérifier chaque callback avec le token stocké à la création.","href":"/api-paiement/callback/securisation"},{"title":"Parser custom_data dans le callback","href":"/api-paiement/callback/parser-custom-data"},{"title":"Idempotence et déduplication","description":"LigdiCash envoie deux requêtes POST par événement. Comment garantir que votre traitement n'est exécuté qu'une seule fois.","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"}]}]},"title":"Parser custom_data dans le callback - LigdiCash","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":[],"chunks":[]}