L’URL de destination d’un webhook doit toujours renvoyer un code HTTP 2xx.Le code HTTP confirme uniquement la bonne réception du webhook. N’utilisez pas les codes d’erreur HTTP pour signaler des erreurs métier.
L’URL de destination devrait répondre rapidement. Visez un délai de réponse de moins de 500 ms ; jusqu’à une seconde reste acceptable de façon occasionnelle. Ce sont des recommandations, pas des limites appliquées.
HUB2 attend une réponse 5 secondes au maximum. Au-delà, l’envoi est considéré comme un échec et l’événement est renvoyé, ce qui peut à terme désactiver le webhook (voir Comportement).
Des mécanismes simples permettent de respecter ces délais.
En particulier, vérifiez la signature, confiez le webhook à un traitement asynchrone (une file d’événements, par exemple) et répondez immédiatement avec un code 2xx.Exemple en JavaScript :
function onPaymentIntentCreatedWebhookReceived(req, res) { verifyHub2WebhookSignature(req); // throws if the signature is invalid enqueuePaymentIntentCreated(req.body); // processed asynchronously, not awaited res.status(200).end(); // respond with 2xx right away}
Répartition des événements entre plusieurs webhooks
Si un seul webhook est enregistré avec tous les événements, sa désactivation interrompt l’envoi de tous ces événements.Pour l’éviter, enregistrez un seul événement par webhook : si un webhook est désactivé, les autres continuent de fonctionner.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HUB2 Documentation","colors":{"primary":"#0D9373","light":"#07C983","dark":"#0D9373"},"logo":{"light":"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/logo/hub2.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=18f9f70abbe4d6234bad47152927237a","dark":"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/logo/hub2.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=18f9f70abbe4d6234bad47152927237a"},"favicon":"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/favicon.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=d71426a9f8f85b6c6ccce6d36247bf39","api":{"openapi":"https://api.hub2.io/docs-json"},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/hub2","website":"https://www.hub2.io"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hub2-83","hasAudioNarration":false,"actualSubdomain":"hub2-83","customDomains":["docs.hub2.io"],"gitSource":{"type":"github","owner":"technohub2","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae16defdd9644647b4200dd","collectionId":"57fb640c-62d6-4c13-a1f8-78fc452635ea","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae16defdd9644647b4200dd"},"entitlements":{},"buildId":"6ae16defdd9644647b4200dd","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"Référence de l'API","count":86},{"language":"default","tag":"Integration","count":44},{"language":"default","tag":"Intégration","count":44},{"language":"default","tag":"Payments","count":18},{"language":"default","tag":"Webhooks","count":17},{"language":"default","tag":"Documentation","count":16},{"language":"default","tag":"Transfers","count":11},{"language":"default","tag":"Compliance","count":10},{"language":"default","tag":"Payment Links","count":10},{"language":"default","tag":"Processing Only","count":10}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","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":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"assets/style.css","content":"table{display:table!important}.table-scroll{overflow:scroll}table tbody tr:nth-child(odd){background:#fafafa}html.dark table tbody tr:nth-child(odd){background:#1a1a1a}"}],"page":{"pagePath":"integration/fr/webhooks/webhooks_bestpractices","slug":"/integration/fr/webhooks/webhooks_bestpractices","pageMetadata":{"title":"Bonnes pratiques","description":null,"href":"/integration/fr/webhooks/webhooks_bestpractices"},"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`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsx(_components.p,{children:_jsx(_components.strong,{children:`Appliquez ces recommandations avant le passage en production (live).`})})}),`\n`,_jsx(Heading,{level:`2`,id:`code-http-2xx`,children:`Code HTTP 2xx`}),`\n`,_jsxs(_components.p,{children:[`L’URL de destination d’un webhook doit `,_jsx(_components.strong,{children:`toujours`}),` renvoyer un code HTTP 2xx.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.em,{children:`Le code HTTP confirme uniquement la bonne réception du webhook. N’utilisez pas les codes d’erreur HTTP pour signaler des erreurs métier.`})}),`\n`,_jsx(Heading,{level:`2`,id:`délais-de-réponse`,children:`Délais de réponse`}),`\n`,_jsxs(_components.p,{children:[`L’URL de destination devrait répondre `,_jsx(_components.strong,{children:`rapidement`}),`. Visez un délai de réponse de `,_jsx(_components.strong,{children:`moins de 500 ms`}),` ; jusqu’à une seconde reste acceptable de façon occasionnelle. Ce sont des recommandations, pas des limites appliquées.`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`HUB2 attend une réponse `,_jsx(_components.strong,{children:`5 secondes au maximum`}),`. Au-delà, l’envoi est considéré comme un échec et l’événement est renvoyé, ce qui peut à terme désactiver le webhook (voir `,_jsx(_components.a,{href:`/integration/fr/webhooks/webhooks_behavior`,children:`Comportement`}),`).`]})}),`\n`,_jsx(Heading,{level:`2`,id:`traitement-asynchrone`,children:`Traitement asynchrone`}),`\n`,_jsx(_components.p,{children:`Des mécanismes simples permettent de respecter ces délais.\nEn particulier, vérifiez la signature, confiez le webhook à un traitement asynchrone (une file d’événements, par exemple) et répondez immédiatement avec un code 2xx.`}),`\n`,_jsx(_components.p,{children:`Exemple en JavaScript :`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,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:`5`,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:` onPaymentIntentCreatedWebhookReceived`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` verifyHub2WebhookSignature`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// throws if the signature is invalid`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` enqueuePaymentIntentCreated`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// processed asynchronously, not awaited`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`200`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`end`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(); `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// respond with 2xx right away`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`répartition-des-événements-entre-plusieurs-webhooks`,children:`Répartition des événements entre plusieurs webhooks`}),`\n`,_jsx(_components.p,{children:`Si un seul webhook est enregistré avec tous les événements, sa désactivation interrompt l’envoi de tous ces événements.`}),`\n`,_jsx(_components.p,{children:`Pour l’éviter, enregistrez un seul événement par webhook : si un webhook est désactivé, les autres continuent de fonctionner.`})]})}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":"Bonnes pratiques","description":null,"href":"/integration/fr/webhooks/webhooks_bestpractices"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Code HTTP 2xx","slug":"code-http-2xx","depth":2,"children":[]},{"title":"Délais de réponse","slug":"délais-de-réponse","depth":2,"children":[]},{"title":"Traitement asynchrone","slug":"traitement-asynchrone","depth":2,"children":[]},{"title":"Répartition des événements entre plusieurs webhooks","slug":"répartition-des-événements-entre-plusieurs-webhooks","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/hub2-83/0ef60d836fa10d10/assets/mermaid.js"],"subdomain":"hub2-83","siteName":"HUB2 Documentation","title":"Bonnes pratiques - HUB2 Documentation","navMaps":{"firstHrefInVersion":{"English":{"href":"/integration/en/webhooks/webhooks_bestpractices","matchLevel":1},"Français":{"href":"/integration/fr/webhooks/webhooks_bestpractices","matchLevel":0}},"firstHrefInLanguage":{}},"lastModified":"2026-10-28T03:37:28.880Z","originalFileLocation":"integration/fr/webhooks/webhooks_bestpractices.mdx"},"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=\"application-name\" content=\"HUB2 Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_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/hub2-83/2cSAgZof76cJIDy-/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Bonnes pratiques - HUB2 Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HUB2 Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hub2-83.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Bonnes+pratiques\u0026amp;theme=92cb3d561e9d2318e8ed5cd1\u0026amp;signature=143d6941a9c8b6f522563f4827dafef081a0deba96f94f3c3b76409f9cffdf07\">\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=\"Bonnes pratiques - HUB2 Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hub2-83.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Bonnes+pratiques\u0026amp;theme=92cb3d561e9d2318e8ed5cd1\u0026amp;signature=143d6941a9c8b6f522563f4827dafef081a0deba96f94f3c3b76409f9cffdf07\">\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/hub2-83/2cSAgZof76cJIDy-/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HUB2 Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0D9373\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integration/fr/webhooks/webhooks_bestpractices.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hub2.io/#organization\",\"name\":\"HUB2 Documentation\",\"url\":\"https://docs.hub2.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hub2-83/aPkTvmVeXN9HXpuW/assets/logo/hub2.png?fit=max\u0026auto=format\u0026n=aPkTvmVeXN9HXpuW\u0026q=85\u0026s=18f9f70abbe4d6234bad47152927237a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hub2.io#website\",\"name\":\"HUB2 Documentation\",\"url\":\"https://docs.hub2.io\",\"publisher\":{\"@id\":\"https://docs.hub2.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices#webpage\",\"url\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices\",\"name\":\"Bonnes pratiques\",\"dateModified\":\"2026-10-28T03:37:28.880Z\",\"isPartOf\":{\"@id\":\"https://docs.hub2.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks\",\"item\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Bonnes pratiques\",\"item\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices#article\",\"headline\":\"Bonnes pratiques\",\"name\":\"Bonnes pratiques\",\"url\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hub2.io/integration/fr/webhooks/webhooks_bestpractices#webpage\"},\"dateModified\":\"2026-10-28T03:37:28.880Z\",\"publisher\":{\"@id\":\"https://docs.hub2.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hub2.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HUB2 Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HUB2 Documentation","nav":{"global":null,"versions":[{"version":"English","pages":[{"title":"English","href":"/integration/en/webhooks/webhooks_bestpractices"}]},{"version":"Français","tabs":[{"tab":"HUB2"},{"tab":"Intégration","groups":[{"group":"Guide de démarrage","pages":[{"title":"Introduction","href":"/integration/fr/getting_started/introduction"},{"title":"Fonctionnement de l'API","href":"/integration/fr/getting_started/api_operation"},{"title":"Sécurité","href":"/integration/fr/getting_started/security_considerations"},{"title":"Comprendre les erreurs","href":"/integration/fr/getting_started/understand_errors"},{"title":"Clés API","href":"/integration/fr/getting_started/api_keys"}]},{"group":"Transferts","pages":[{"title":"Introduction","href":"/integration/fr/transfers/transfers_introduction"},{"title":"Intégration","href":"/integration/fr/transfers/transfers_integration"},{"title":"Motifs d'échec","href":"/integration/fr/transfers/transfers_failure_causes"},{"title":"MSISDN - Liste noire","href":"/integration/fr/transfers/transfers_msisdn_blacklist"},{"title":"MSISDN en sandbox","href":"/integration/fr/transfers/transfers_sandbox_msisdn"}]},{"group":"Paiements","pages":[{"title":"Introduction","href":"/integration/fr/payments/payments_introduction"},{"title":"Intégration","href":"/integration/fr/payments/payments_integration"},{"title":"Authentification","href":"/integration/fr/payments/payments_authentication"},{"title":"Lister les paiements","href":"/integration/fr/payments/payments_list"},{"title":"Exemples d'objets","href":"/integration/fr/payments/payments_examples"},{"title":"Motifs d'échec","href":"/integration/fr/payments/payments_failure_causes"},{"title":"MSISDN en sandbox","href":"/integration/fr/payments/payments_sandbox_msisdn"}]},{"group":"Paiement instantané","pages":[{"title":"Introduction","href":"/integration/fr/instant_payment/instant_payment_introduction"},{"title":"Intégration","href":"/integration/fr/instant_payment/instant_payment_integration"}]},{"group":"Webhooks","pages":[{"title":"Introduction","href":"/integration/fr/webhooks/webhooks_overview"},{"title":"Intégration","href":"/integration/fr/webhooks/webhooks_integration"},{"title":"Liste des événements disponibles","href":"/integration/fr/webhooks/webhooks_events_list"},{"title":"Comportement des webhooks","description":null,"href":"/integration/fr/webhooks/webhooks_behavior"},{"title":"Bonnes pratiques","href":"/integration/fr/webhooks/webhooks_bestpractices"},{"title":"Exemples","description":null,"href":"/integration/fr/webhooks/webhooks_examples"}]},{"group":"Processing Only","pages":[{"title":"Introduction","href":"/integration/fr/processing_only/processing_only_introduction"},{"title":"Configuration","href":"/integration/fr/processing_only/processing_only_setup"},{"title":"Intégration","href":"/integration/fr/processing_only/processing_only_integration"}]},{"group":"Payment Links","pages":[{"title":"Introduction","href":"/integration/fr/payment_links/payment-links_introduction"},{"title":"Configuration","href":"/integration/fr/payment_links/payment-links_setup"},{"title":"Intégration","href":"/integration/fr/payment_links/payment-links_integration"}]},{"group":"Abonnements","pages":[{"title":"Introduction","href":"/integration/fr/subscriptions/subscriptions_introduction"},{"title":"Intégration","href":"/integration/fr/subscriptions/subscriptions_integration"}]},{"group":"Sous-marchands","pages":[{"title":"Introduction","href":"/integration/fr/submerchants/submerchants_introduction"},{"title":"Configuration","href":"/integration/fr/submerchants/submerchants_setup"},{"title":"Intégration","href":"/integration/fr/submerchants/submerchants_integration"}]},{"group":"Autres produits","pages":[{"title":"Soldes","href":"/integration/fr/other_products/balances"},{"title":"Remboursements","href":"/integration/fr/other_products/refunds"},{"title":"Approvisionnement de compte","href":"/integration/fr/other_products/provisioning"},{"title":"Demandes de règlement","href":"/integration/fr/other_products/settlement_requests"},{"title":"Données publiques","href":"/integration/fr/other_products/public_data"},{"title":"Collecte bancaire","href":"/integration/fr/other_products/bank_collection"},{"title":"Destinataires","href":"/integration/fr/other_products/recipients"},{"title":"Signature des données","href":"/integration/fr/other_products/payload_signature"}]}]},{"tab":"Documentation","pages":[{"title":"Documentation","href":"/documentation/fr/glossary"}]},{"tab":"Référence de l'API","pages":[{"title":"Référence de l'API","href":"/api-reference/data/get-countries"}]}]}]},"title":"Bonnes pratiques - HUB2 Documentation","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":[],"chunks":[]}