Understand the existing encrypted-JWE webhook contract for QR Ph payments
QR Ph webhooks notify your server when a QR Ph transaction succeeds or
is declined. This contract uses encrypted JWE request bodies, HTTP Basic
authentication for management operations, and the QR Ph encryption key.
Do not use Payment Webhook whsec_ secrets or Webhook-* signature headers
with this integration. The two webhook contracts are not interchangeable.
QR Ph quickstart
Register and test a QR Ph callback.
Receiving
Decrypt, deduplicate, and acknowledge deliveries.
Payload
Review every decrypted QR Ph field.
API reference
Manage QR Ph webhooks.
QR Ph integrations use this contract.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Modulus Labs API","colors":{"primary":"#6366F1","light":"#818CF8","dark":"#4F46E5"},"logo":{"light":"https://mintcdn.com/moduluslabsinc/-g2JuykdH6NQMhpI/logo/light.svg?fit=max\u0026auto=format\u0026n=-g2JuykdH6NQMhpI\u0026q=85\u0026s=cdd5299c31d35441c6c6cab379ca0363","dark":"https://mintcdn.com/moduluslabsinc/-g2JuykdH6NQMhpI/logo/dark.svg?fit=max\u0026auto=format\u0026n=-g2JuykdH6NQMhpI\u0026q=85\u0026s=4be7c52f34d4ef4a0ca4b775b9e6792e"},"favicon":"https://mintcdn.com/moduluslabsinc/Hug35GYfKojSeqvX/favicon.svg?fit=max\u0026auto=format\u0026n=Hug35GYfKojSeqvX\u0026q=85\u0026s=65fea7bcc7fbf1163d727867c0623188","api":{"openapi":["api-reference/qr/openapi.json","api-reference/onboarding/openapi.json","api-reference/webhooks/openapi.json","api-reference/payment-webhooks/openapi.json","api-reference/terminal-gateway/openapi.json","api-reference/transaction-reporting/openapi.json","api-reference/ecom/openapi.json"],"playground":{"display":"interactive"},"examples":{"languages":["curl","python","javascript","php","go","java","csharp"]}},"footer":{"socials":{"website":"https://moduluslabs.io"}},"search":{"prompt":"Search Modulus Labs API documentation..."},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:support@moduluslabs.io"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"moduluslabsinc","hasAudioNarration":false,"actualSubdomain":"moduluslabsinc","customDomains":["docs.moduluslabs.io"],"gitSource":{"type":"github","owner":"modulus-labs-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae44ceef49f5b7aedfd0755","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Documentation","count":51},{"language":"default","tag":"API Reference","count":40},{"language":"default","tag":"Webhooks API","count":27},{"language":"default","tag":"Ecom API","count":17},{"language":"default","tag":"Payment Webhooks","count":16},{"language":"default","tag":"Onboarding API","count":11},{"language":"default","tag":"Terminal Gateway API","count":10},{"language":"default","tag":"QR Ph Webhooks (Legacy)","count":10},{"language":"default","tag":"Transaction Reporting API","count":9},{"language":"default","tag":"Payment Links","count":8}]},"assistantConfig":{"enableStarterQuestions":true,"enableContextualStarterQuestions":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[],"starterQuestions":[{"_id":"6979644a4ee895505c300ecd","deploymentId":"68ec6943b3c0516c1a13b4bf","questionText":"What is JWE","status":"active","generatedBy":"manual","createdAt":"2026-01-28T01:20:10.549Z","updatedAt":"2026-01-28T01:20:10.549Z","__v":0},{"_id":"6979643f4ee895505c300ea5","deploymentId":"68ec6943b3c0516c1a13b4bf","questionText":"How do I test before going live?","status":"active","generatedBy":"manual","createdAt":"2026-01-28T01:19:59.128Z","updatedAt":"2026-01-28T01:19:59.128Z","__v":0},{"_id":"6979643a4ee895505c300ea0","deploymentId":"68ec6943b3c0516c1a13b4bf","questionText":"What authentication does the API need?","status":"active","generatedBy":"manual","createdAt":"2026-01-28T01:19:54.290Z","updatedAt":"2026-01-28T01:19:54.290Z","__v":0}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"docs/webhooks/qr-ph/overview","slug":"/docs/webhooks/qr-ph/overview","pageMetadata":{"title":"QR Ph Webhooks (Legacy)","description":"Understand the existing encrypted-JWE webhook contract for QR Ph payments","href":"/docs/webhooks/qr-ph/overview"},"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: \"Understand the existing encrypted-JWE webhook contract for QR Ph payments\"\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={code:`code`,p:`p`,..._provideComponents(),...props.components},{Card,CardGroup,Warning}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`QR Ph webhooks notify your server when a QR Ph transaction succeeds or\nis declined. This contract uses encrypted JWE request bodies, HTTP Basic\nauthentication for management operations, and the QR Ph encryption key.`}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Do not use Payment Webhook `,_jsx(_components.code,{children:`whsec_`}),` secrets or `,_jsx(_components.code,{children:`Webhook-*`}),` signature headers\nwith this integration. The two webhook contracts are not interchangeable.`]})}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`QR Ph quickstart`,icon:`rocket`,href:`/docs/webhooks/setup`,children:`Register and test a QR Ph callback.`}),_jsx(Card,{title:`Receiving`,icon:`inbox`,href:`/docs/webhooks/receiving`,children:`Decrypt, deduplicate, and acknowledge deliveries.`}),_jsx(Card,{title:`Payload`,icon:`brackets-curly`,href:`/docs/webhooks/payload`,children:`Review every decrypted QR Ph field.`}),_jsx(Card,{title:`API reference`,icon:`code`,href:`/api-reference/webhooks/create`,children:`Manage QR Ph webhooks.`})]}),`\n`,_jsx(_components.p,{children:`QR Ph integrations use this contract.`})]})}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":"QR Ph Webhooks (Legacy)","description":"Understand the existing encrypted-JWE webhook contract for QR Ph payments","href":"/docs/webhooks/qr-ph/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"subdomain":"moduluslabsinc","siteName":"Modulus Labs API","title":"QR Ph Webhooks (Legacy) - Modulus Labs API","contextualStarterQuestions":[{"_id":"6ab350481b8abc8d55d662bb","deploymentId":"68ec6943b3c0516c1a13b4bf","questionText":"How do I decrypt JWE webhooks?","status":"active","generatedBy":"contextual","path":"docs/webhooks/qr-ph/overview","createdAt":"2026-09-23T04:06:32.227Z","updatedAt":"2026-09-23T04:06:32.227Z","__v":0},{"_id":"6ab350481b8abc8d55d662bd","deploymentId":"68ec6943b3c0516c1a13b4bf","questionText":"How do I acknowledge deliveries?","status":"active","generatedBy":"contextual","path":"docs/webhooks/qr-ph/overview","createdAt":"2026-09-23T04:06:32.227Z","updatedAt":"2026-09-23T04:06:32.227Z","__v":0},{"_id":"6ab350481b8abc8d55d662bc","deploymentId":"68ec6943b3c0516c1a13b4bf","questionText":"What's the QR Ph webhook setup?","status":"active","generatedBy":"contextual","path":"docs/webhooks/qr-ph/overview","createdAt":"2026-09-23T04:06:32.227Z","updatedAt":"2026-09-23T04:06:32.227Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T04:06:25.207Z","originalFileLocation":"docs/webhooks/qr-ph/overview.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=\"description\" content=\"Understand the existing encrypted-JWE webhook contract for QR Ph payments\">\u003cmeta data-mint-head name=\"application-name\" content=\"Modulus Labs API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_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/moduluslabsinc/b12xWXezBf3lDUti/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"QR Ph Webhooks (Legacy) - Modulus Labs API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand the existing encrypted-JWE webhook contract for QR Ph payments\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Modulus Labs API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://moduluslabsinc.mintlify.site/_mintlify/api/og/v2?division=QR+Ph+Webhooks+%28Legacy%29\u0026amp;title=QR+Ph+Webhooks+%28Legacy%29\u0026amp;description=Understand+the+existing+encrypted-JWE+webhook+contract+for+QR+Ph+payments\u0026amp;theme=0e23bf0ca39f87857ce30bad\u0026amp;signature=5c994947401230a5626d22ff685dc4149eabaf1b430a25e9403dcee335a68b26\">\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=\"QR Ph Webhooks (Legacy) - Modulus Labs API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand the existing encrypted-JWE webhook contract for QR Ph payments\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://moduluslabsinc.mintlify.site/_mintlify/api/og/v2?division=QR+Ph+Webhooks+%28Legacy%29\u0026amp;title=QR+Ph+Webhooks+%28Legacy%29\u0026amp;description=Understand+the+existing+encrypted-JWE+webhook+contract+for+QR+Ph+payments\u0026amp;theme=0e23bf0ca39f87857ce30bad\u0026amp;signature=5c994947401230a5626d22ff685dc4149eabaf1b430a25e9403dcee335a68b26\">\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/moduluslabsinc/b12xWXezBf3lDUti/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Modulus Labs API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/webhooks/qr-ph/overview.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.moduluslabs.io/#organization\",\"name\":\"Modulus Labs API\",\"url\":\"https://docs.moduluslabs.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/moduluslabsinc/-g2JuykdH6NQMhpI/logo/light.svg?fit=max\u0026auto=format\u0026n=-g2JuykdH6NQMhpI\u0026q=85\u0026s=cdd5299c31d35441c6c6cab379ca0363\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.moduluslabs.io#website\",\"name\":\"Modulus Labs API\",\"url\":\"https://docs.moduluslabs.io\",\"publisher\":{\"@id\":\"https://docs.moduluslabs.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview#webpage\",\"url\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview\",\"name\":\"QR Ph Webhooks (Legacy)\",\"description\":\"Understand the existing encrypted-JWE webhook contract for QR Ph payments\",\"dateModified\":\"2026-09-23T04:06:25.207Z\",\"isPartOf\":{\"@id\":\"https://docs.moduluslabs.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks API\",\"item\":\"https://docs.moduluslabs.io/docs/webhooks/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"QR Ph Webhooks (Legacy)\",\"item\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview#article\",\"headline\":\"QR Ph Webhooks (Legacy)\",\"name\":\"QR Ph Webhooks (Legacy)\",\"description\":\"Understand the existing encrypted-JWE webhook contract for QR Ph payments\",\"url\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview\",\"mainEntityOfPage\":{\"@id\":\"https://docs.moduluslabs.io/docs/webhooks/qr-ph/overview#webpage\"},\"dateModified\":\"2026-09-23T04:06:25.207Z\",\"publisher\":{\"@id\":\"https://docs.moduluslabs.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.moduluslabs.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Modulus Labs API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Modulus Labs API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/webhooks/qr-ph/overview.md","siteName":"Modulus Labs API","nav":{"global":{"anchors":[{"anchor":"Support","icon":"envelope","href":"mailto:support@moduluslabs.io"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"Introduction","href":""},{"title":"Base URLs","href":"/docs/base-urls"}]},{"group":"QR API","pages":[{"title":"Introduction","href":"/docs/qr/introduction"},{"title":"Quickstart","href":"/docs/qr/quickstart"},{"title":"Authentication","href":"/docs/qr/authentication"},{"title":"Encryption","href":"/docs/qr/encryption"},{"title":"Testing","href":"/docs/qr/testing"},{"title":"Errors","href":"/docs/qr/errors"}]},{"group":"Webhooks API","pages":[{"title":"Webhooks","href":"/docs/webhooks/overview"},{"group":"Payment Webhooks","pages":[{"title":"Payment Webhooks","href":"/docs/webhooks/payment/overview"},{"title":"Payment Webhooks Quickstart","href":"/docs/webhooks/payment/quickstart"},{"title":"Endpoint Management","href":"/docs/webhooks/payment/endpoints"},{"title":"Events and Payloads","href":"/docs/webhooks/payment/events"},{"title":"Verify Signatures","href":"/docs/webhooks/payment/signatures"},{"title":"Retries and Retriggering","description":"Handle duplicate, delayed, failed, and manually retriggered Payment Webhooks","href":"/docs/webhooks/payment/retries"}]},{"group":"QR Ph Webhooks (Legacy)","pages":[{"title":"QR Ph Webhooks (Legacy)","href":"/docs/webhooks/qr-ph/overview"},{"title":"QR Ph Webhooks Quickstart (Legacy)","description":"Register an encrypted-JWE callback for the QR Ph webhook integration","href":"/docs/webhooks/setup"},{"title":"Receiving QR Ph Webhooks (Legacy)","href":"/docs/webhooks/receiving"},{"title":"QR Ph Webhook Payload (Legacy)","href":"/docs/webhooks/payload"}]}]},{"group":"Onboarding API","pages":[{"title":"Introduction","href":"/docs/onboarding/introduction"},{"title":"Quickstart","href":"/docs/onboarding/quickstart"},{"title":"Authentication","href":"/docs/onboarding/authentication"},{"title":"Enums","href":"/docs/onboarding/enums"}]},{"group":"Terminal Gateway API","pages":[{"title":"Introduction","href":"/docs/terminal-gateway/introduction"},{"title":"Authentication","href":"/docs/terminal-gateway/authentication"},{"title":"Concepts","href":"/docs/terminal-gateway/concepts"},{"group":"HTTP API","pages":[{"title":"Quickstart","href":"/docs/terminal-gateway/http/quickstart"}]},{"group":"WebSocket API","pages":[{"title":"Quickstart","href":"/docs/terminal-gateway/websocket/quickstart"},{"title":"Actions","href":"/docs/terminal-gateway/websocket/actions"},{"title":"Notifications","href":"/docs/terminal-gateway/websocket/notifications"}]}]},{"group":"Transaction Reporting API","pages":[{"title":"Introduction","href":"/docs/transaction-reporting/introduction"},{"title":"Quickstart","href":"/docs/transaction-reporting/quickstart"},{"title":"Authentication","href":"/docs/transaction-reporting/authentication"},{"title":"Filtering","href":"/docs/transaction-reporting/filtering"}]},{"group":"Ecom API","pages":[{"title":"Introduction","href":"/docs/ecom/introduction"},{"title":"Errors","href":"/docs/ecom/errors"},{"group":"Payment Links","pages":[{"title":"Introduction","href":"/docs/ecom/payment-links"},{"title":"Quickstart","href":"/docs/ecom/quickstart"},{"title":"Authentication","href":"/docs/ecom/authentication"}]},{"group":"JavaScript SDK","pages":[{"title":"Introduction","href":"/docs/ecom/jssdk/introduction"},{"title":"Quickstart","href":"/docs/ecom/jssdk/quickstart"},{"title":"Card fields","href":"/docs/ecom/jssdk/card-fields"},{"title":"Confirm the payment","href":"/docs/ecom/jssdk/confirm-payment"},{"title":"3D Secure","href":"/docs/ecom/jssdk/3d-secure"}]}]},{"group":"Shared Resources","pages":[{"title":"Overview","href":"/docs/shared-resources"},{"title":"Glossary","href":"/docs/glossary"},{"title":"Testing","href":"/docs/testing"},{"title":"Errors","href":"/docs/errors"},{"title":"Go-live","href":"/docs/production"},{"title":"Build with AI","href":"/docs/build-with-ai"},{"title":"Changelog","href":"/changelog"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/qr/ping"}]}]},"basePath":"","title":"QR Ph Webhooks (Legacy) - Modulus Labs API","buildId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","deploymentId":"dpl_5tKr6cUUeuVJdEZ9JAEY3h4soMJ8","dynamics":[],"chunks":[]}