This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.
This page describes asynchronous notifications for the subscription system:
Subscription state changes
Recurring billing results
Token Creation Notifications are independent of subscriptions. See Token Notification.
Make your webhook receiver idempotent. The same notification can be delivered more than once if delivery fails.
Return HTTP 200 after successful processing. If your server does not respond with HTTP 200, QFPay retries delivery with exponential backoff. The maximum retry count depends on internal configuration.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"QFPay Developer Centre","colors":{"primary":"#005FCC","light":"#4EA8FF","dark":"#004299"},"logo":{"light":"https://mintlify.s3.us-west-1.amazonaws.com/qfpay-8e347952/logo.png","dark":"https://mintcdn.com/qfpay-8e347952/d02nWBorZX3ongpm/images/logo_dark.jpg?fit=max\u0026auto=format\u0026n=d02nWBorZX3ongpm\u0026q=85\u0026s=d2daee818f0c5f75c3d5cb6fe108625a"},"favicon":{"light":"https://mintcdn.com/qfpay-8e347952/d02nWBorZX3ongpm/images/logo.png?fit=max\u0026auto=format\u0026n=d02nWBorZX3ongpm\u0026q=85\u0026s=4b7ccf1220fedeaf6cde662b6e80e792","dark":"https://mintcdn.com/qfpay-8e347952/d02nWBorZX3ongpm/images/logo_dark.jpg?fit=max\u0026auto=format\u0026n=d02nWBorZX3ongpm\u0026q=85\u0026s=d2daee818f0c5f75c3d5cb6fe108625a"},"appearance":{"default":"light"},"navbar":{"links":[{"href":"mailto:technical.support@qfpay.com","label":"Support"}]},"footer":{"socials":{"website":"https://qfpay.global"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","default":true,"href":"introduction"},{"language":"zh-Hant","href":"zh-Hant/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qfpay-8e347952","hasAudioNarration":false,"actualSubdomain":"qfpay-8e347952","customDomains":["sdk.qfapi.com"],"gitSource":{"type":"github","owner":"qfpay","repo":"docs-mintlify","deployBranch":"develop","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af1a1e8c512f82174897f24","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"en","tag":"Integration","count":50},{"language":"zh-Hant","tag":"對接指南","count":50},{"language":"en","tag":"Online Payments","count":26},{"language":"zh-Hant","tag":"線上支付","count":26},{"language":"en","tag":"Integration by Payment Type","count":12},{"language":"en","tag":"Integration by Use Case","count":12},{"language":"zh-Hant","tag":"按支付方式整合","count":12},{"language":"zh-Hant","tag":"按支付場景整合","count":12},{"language":"en","tag":"API Reference","count":6},{"language":"zh-Hant","tag":"API 參考文件","count":6},{"language":"en","tag":"Shared Endpoints","count":5},{"language":"en","tag":"In-Store Payments","count":5},{"language":"en","tag":"Wechat","count":5},{"language":"zh-Hant","tag":"共用端點","count":5},{"language":"zh-Hant","tag":"實體店支付","count":5},{"language":"zh-Hant","tag":"微信支付","count":5},{"language":"en","tag":"Recurring Payments","count":4},{"language":"en","tag":"Preparation","count":4},{"language":"zh-Hant","tag":"定期付款","count":4},{"language":"zh-Hant","tag":"準備","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":true,"enableContextualStarterQuestions":true,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"technical.support@qfpay.com","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","slug":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","pageMetadata":{"title":"Subscription Webhook (Recurring Payment Notifications)","id":"recurring-webhook","description":"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.","sidebar_label":"Webhook Notifications","href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook"},"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: \"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.\"\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`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Info,Note,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`This page describes asynchronous notifications for the subscription system:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Subscription state changes`}),`\n`,_jsx(_components.li,{children:`Recurring billing results`}),`\n`]}),`\n`,_jsx(Info,{children:_jsxs(_components.p,{children:[`Token Creation Notifications are independent of subscriptions. See `,_jsx(_components.a,{href:`/integration/online-shop/integration-by-use-case/saved-payment-methods/token-notification`,children:`Token Notification`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-configure-the-notification-url`,children:`How to configure the notification URL`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`To set your webhook endpoint, email your webhook URL, merchant ID, and store ID to `,_jsx(_components.a,{href:`mailto:technical.support@qfpay.com`,children:`technical.support@qfpay.com`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`subscription-status-change`,children:`Subscription status change`}),`\n`,_jsx(_components.p,{children:`Sent when a subscription changes state.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`notify_type`})}),_jsxs(_components.td,{children:[`Notification type: `,_jsx(_components.code,{children:`subscription`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription_id`})}),_jsx(_components.td,{children:`Subscription identifier.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`state`})}),_jsxs(_components.td,{children:[`Current state, such as `,_jsx(_components.code,{children:`ACTIVE`}),`, `,_jsx(_components.code,{children:`COMPLETED`}),`, or `,_jsx(_components.code,{children:`INCOMPLETE`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sysdtm`})}),_jsx(_components.td,{children:`System timestamp.`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,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:`6`,children:[_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:` \"state\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"COMPLETED\"`}),_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:` \"sysdtm\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2024-04-24 15:19:39\"`}),_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:` \"notify_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"subscription\"`}),_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:` \"subscription_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sub_e51bb914919*****f6b0fe36d\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`subscription-payment-result`,children:`Subscription payment result`}),`\n`,_jsx(_components.p,{children:`Sent when a recurring billing attempt succeeds or fails.`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`notify_type`})}),_jsxs(_components.td,{children:[`Value: `,_jsx(_components.code,{children:`subscription_payment`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription_id`})}),_jsx(_components.td,{children:`Subscription ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`subscription_order_id`})}),_jsxs(_components.td,{children:[`Format: `,_jsx(_components.code,{children:`sub_ord_{subscription_id}_{0001}`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`respcd`})}),_jsxs(_components.td,{children:[`Response code. `,_jsx(_components.code,{children:`0000`}),` indicates success.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`respmsg`})}),_jsx(_components.td,{children:`Response message.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`syssn`})}),_jsx(_components.td,{children:`System transaction ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`txdtm`})}),_jsx(_components.td,{children:`Transaction timestamp.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`txamt`})}),_jsx(_components.td,{children:`Transaction amount.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`txcurrcd`})}),_jsx(_components.td,{children:`Currency.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`customer_id`})}),_jsx(_components.td,{children:`Customer ID.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`product_id`})}),_jsx(_components.td,{children:`Product ID or IDs.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`cardcd`})}),_jsx(_components.td,{children:`Masked card number.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`card_scheme`})}),_jsx(_components.td,{children:`Card scheme, when present.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`current_iteration`})}),_jsx(_components.td,{children:`Billing iteration number.`})]})]})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`15`,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:`15`,children:[_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:` \"txcurrcd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"HKD\"`}),_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:` \"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AUTHORISED\"`}),_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:` \"subscription_order_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sub_ord_a360f06eb*****ad6aff24c3a\"`}),_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:` \"product_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"prod_8c838c17ddb043b9***11f1a85c30\"`}),_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:` \"txdtm\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2024-04-24 15:19:37\"`}),_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:` \"txamt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"300\"`}),_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:` \"card_scheme\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"VISA_DEBIT-SSL\"`}),_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:` \"syssn\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"20240424180500020000015704\"`}),_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:` \"respcd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0000\"`}),_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:` \"subscription_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sub_e51bb914919***31d800f6b0fe36d\"`}),_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:` \"customer_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cust_a9c0bcf2717f4***786a10e5f8f2\"`}),_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:` \"notify_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"subscription_payment\"`}),_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:` \"current_iteration\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`retry-logic-and-idempotency`,children:`Retry logic and idempotency`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Make your webhook receiver idempotent. The same notification can be delivered more than once if delivery fails.`})}),`\n`,_jsx(_components.p,{children:`Return HTTP 200 after successful processing. If your server does not respond with HTTP 200, QFPay retries delivery with exponential backoff. The maximum retry count depends on internal configuration.`})]})}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":"Subscription Webhook (Recurring Payment Notifications)","id":"recurring-webhook","description":"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.","sidebar_label":"Webhook Notifications","href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How to configure the notification URL","slug":"how-to-configure-the-notification-url","depth":2,"children":[]},{"title":"Subscription status change","slug":"subscription-status-change","depth":2,"children":[]},{"title":"Subscription payment result","slug":"subscription-payment-result","depth":2,"children":[]},{"title":"Retry logic and idempotency","slug":"retry-logic-and-idempotency","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"qfpay-8e347952","siteName":"QFPay Developer Centre","title":"Subscription Webhook (Recurring Payment Notifications) - QFPay Developer Centre","contextualStarterQuestions":[{"_id":"6a96ac2aeb8e26b46f4ba170","deploymentId":"6980640906bd66be2350a365","questionText":"What subscription states exist?","status":"active","generatedBy":"contextual","path":"integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","createdAt":"2026-09-01T10:42:50.529Z","updatedAt":"2026-09-01T10:42:50.529Z","__v":0},{"_id":"6a96ac2aeb8e26b46f4ba16f","deploymentId":"6980640906bd66be2350a365","questionText":"How do I set up webhooks?","status":"active","generatedBy":"contextual","path":"integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","createdAt":"2026-09-01T10:42:50.529Z","updatedAt":"2026-09-01T10:42:50.529Z","__v":0},{"_id":"6a96ac2aeb8e26b46f4ba171","deploymentId":"6980640906bd66be2350a365","questionText":"How do I handle payment failures?","status":"active","generatedBy":"contextual","path":"integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","createdAt":"2026-09-01T10:42:50.529Z","updatedAt":"2026-09-01T10:42:50.529Z","__v":0}],"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","matchLevel":0},"zh-Hant":{"href":"/zh-Hant/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook","matchLevel":1}}},"lastModified":"2026-09-01T10:42:35.959Z","originalFileLocation":"integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook.md","locale":"en"},"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=\"light\"}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=\"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.\">\u003cmeta data-mint-head name=\"application-name\" content=\"QFPay Developer Centre\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_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/qfpay-8e347952/8ne0KolOvSTHgeon/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Subscription Webhook (Recurring Payment Notifications) - QFPay Developer Centre\">\u003cmeta data-mint-head property=\"og:description\" content=\"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"QFPay Developer Centre\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qfpay-8e347952.mintlify.site/_mintlify/api/og/v2?division=Recurring+Payments\u0026amp;title=Subscription+Webhook+%28Recurring+Payment+Notifications%29\u0026amp;description=This+document+describes+the+webhook+notification+system+for+recurring+payments+%28subscriptions%29%2C+including+token+creation%2C+subscription+status+changes%2C+and+billi\u0026amp;theme=98a0922fe001d0bfa88cf20e\u0026amp;signature=7fc1344eca02b209082707d5b6f218ee882f2f2b692f95b8201cbba7cb8f2a8b\">\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=\"Subscription Webhook (Recurring Payment Notifications) - QFPay Developer Centre\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qfpay-8e347952.mintlify.site/_mintlify/api/og/v2?division=Recurring+Payments\u0026amp;title=Subscription+Webhook+%28Recurring+Payment+Notifications%29\u0026amp;description=This+document+describes+the+webhook+notification+system+for+recurring+payments+%28subscriptions%29%2C+including+token+creation%2C+subscription+status+changes%2C+and+billi\u0026amp;theme=98a0922fe001d0bfa88cf20e\u0026amp;signature=7fc1344eca02b209082707d5b6f218ee882f2f2b692f95b8201cbba7cb8f2a8b\">\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/qfpay-8e347952/8ne0KolOvSTHgeon/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"QFPay Developer Centre\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#005FCC\">\u003clink data-mint-head rel=\"canonical\" href=\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hant\" href=\"https://sdk.qfapi.com/zh-Hant/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://sdk.qfapi.com/#organization\",\"name\":\"QFPay Developer Centre\",\"url\":\"https://sdk.qfapi.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintlify.s3.us-west-1.amazonaws.com/qfpay-8e347952/logo.png\"}},{\"@type\":\"WebSite\",\"@id\":\"https://sdk.qfapi.com#website\",\"name\":\"QFPay Developer Centre\",\"url\":\"https://sdk.qfapi.com\",\"publisher\":{\"@id\":\"https://sdk.qfapi.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook#webpage\",\"url\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\",\"name\":\"Subscription Webhook (Recurring Payment Notifications)\",\"description\":\"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.\",\"dateModified\":\"2026-09-01T10:42:35.959Z\",\"isPartOf\":{\"@id\":\"https://sdk.qfapi.com#website\"},\"breadcrumb\":{\"@id\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Online Payments\",\"item\":\"https://sdk.qfapi.com/integration/online-shop/checkout-integration/checkout\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Integration by Use Case\",\"item\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/web-payment\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Recurring Payments\",\"item\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Subscription Webhook (Recurring Payment Notifications)\",\"item\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook#article\",\"headline\":\"Subscription Webhook (Recurring Payment Notifications)\",\"name\":\"Subscription Webhook (Recurring Payment Notifications)\",\"description\":\"This document describes the webhook notification system for recurring payments (subscriptions), including token creation, subscription status changes, and billing result notifications.\",\"url\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook\",\"mainEntityOfPage\":{\"@id\":\"https://sdk.qfapi.com/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook#webpage\"},\"dateModified\":\"2026-09-01T10:42:35.959Z\",\"publisher\":{\"@id\":\"https://sdk.qfapi.com/#organization\"},\"isPartOf\":{\"@id\":\"https://sdk.qfapi.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"QFPay Developer Centre\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"QFPay Developer Centre","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/introduction"}]},{"tab":"Integration","pages":[{"group":"Preparation","pages":[{"title":"Before You Begin","href":"/integration/preparation/before-you-begin"},{"title":"Credentials \u0026 Merchant Structure","href":"/integration/preparation/credentials-and-merchant-structure"},{"title":"Authentication \u0026 Signature","href":"/integration/preparation/authentication-and-signature"},{"title":"Environments","href":"/integration/preparation/environments"}]},{"group":"Business Scenarios","pages":[{"title":"Self-Service Retail Machine","href":"/integration/business-scenarios/self-service-retail"},{"title":"Physical Store / Restaurant","href":"/integration/business-scenarios/physical-store"}]},{"group":"API Reference","pages":[{"title":"API Usage Guidelines","href":"/integration/api-reference/api-usage-guidelines"},{"title":"Supported Currencies","href":"/integration/api-reference/currencies"},{"title":"Payment Types","href":"/integration/api-reference/paytypes"},{"title":"Request Format","href":"/integration/api-reference/request-format"},{"title":"Response Format","href":"/integration/api-reference/response-format"},{"title":"Transaction Status Codes","href":"/integration/api-reference/status-codes"}]},{"group":"In-Store Payments","pages":[{"title":"Merchant Present Mode (MPM)","href":"/integration/in-store/MPM"},{"title":"Consumer Present Mode (CPM)","href":"/integration/in-store/CPM"},{"group":"POS API","pages":[{"title":"App Call App Android SDK","href":"/integration/in-store/pos-api/app-call-app"},{"title":"ECR Integration Technical Specification","href":"/integration/in-store/pos-api/ecr"},{"title":"HTTPS Setup for ECR Integration","href":"/integration/in-store/pos-api/ecr-https"}]}]},{"group":"Online Payments","pages":[{"group":"Checkout Integration","pages":[{"title":"Hosted Checkout Page","href":"/integration/online-shop/checkout-integration/checkout"},{"title":"Element SDK","href":"/integration/online-shop/checkout-integration/payment-element"}]},{"group":"Integration by Payment Type","pages":[{"group":"Alipay","pages":[{"title":"Alipay In-App Payments","href":"/integration/online-shop/integration-by-payment-type/alipay/alipay-in-app"},{"title":"Alipay WAP / H5 Payments","href":"/integration/online-shop/integration-by-payment-type/alipay/alipay-wap-h5-payments"},{"title":"Alipay Web Payments","href":"/integration/online-shop/integration-by-payment-type/alipay/alipay-web-payments"}]},{"group":"FPS","pages":[{"title":"FPS App-to-App Integration","href":"/integration/online-shop/integration-by-payment-type/fps/fps-app-call-app"},{"title":"FPS e-Cert Certificate Application and Setup Guide","href":"/integration/online-shop/integration-by-payment-type/fps/fps-ecert-setup"}]},{"group":"Wechat","pages":[{"title":"WeChat In-App Payments (Native App)","href":"/integration/online-shop/integration-by-payment-type/wechat/wechat-in-app-payments"},{"title":"WeChat JSAPI Payment (Official Account)","href":"/integration/online-shop/integration-by-payment-type/wechat/wechat-jsapi-payment"},{"title":"WeChat Mini Programs","href":"/integration/online-shop/integration-by-payment-type/wechat/wechat-mini-programs"},{"title":"WeChat H5 Payment (Third-Party Browser)","href":"/integration/online-shop/integration-by-payment-type/wechat/wechat-pay-h5"},{"title":"WeChat QR Code Payment","href":"/integration/online-shop/integration-by-payment-type/wechat/wechat-web-qr-payment"}]},{"title":"Visa / Mastercard Online Payments","href":"/integration/online-shop/integration-by-payment-type/visa-master-online-payment"},{"title":"Apple Pay Support","href":"/integration/online-shop/integration-by-payment-type/applepay"}]},{"group":"Integration by Use Case","pages":[{"title":"Web Payment","href":"/integration/online-shop/integration-by-use-case/web-payment"},{"title":"WAP Payment (Mobile Browser)","href":"/integration/online-shop/integration-by-use-case/wap-payment"},{"title":"In-App Payment (Native App Integration)","href":"/integration/online-shop/integration-by-use-case/in-app-payment"},{"title":"Online Pre-authorisation API","href":"/integration/online-shop/integration-by-use-case/preauth"},{"title":"Card BIN Promotions","href":"/integration/online-shop/integration-by-use-case/card-bin-promotions"},{"group":"Saved Payment Methods","pages":[{"title":"Saved Payment Methods Overview","sidebarTitle":"Overview","href":"/integration/online-shop/integration-by-use-case/saved-payment-methods/overview"},{"title":"Customer \u0026 Token Setup","sidebarTitle":"Customer \u0026 Token Setup","href":"/integration/online-shop/integration-by-use-case/saved-payment-methods/customer-token-setup"},{"title":"Token Notification","sidebarTitle":"Token Notification","href":"/integration/online-shop/integration-by-use-case/saved-payment-methods/token-notification"}]},{"group":"Recurring Payments","pages":[{"title":"Recurring Payment Overview","href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-overview"},{"title":"Subscription API Reference","description":"This page lists the API reference for creating, updating, and managing recurring (subscription) payment resources.","href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-api-reference"},{"title":"Subscription Webhook (Recurring Payment Notifications)","href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook"},{"title":"Integration Guide for Recurring Payments","description":"Developer guide for integrating recurring payment features, including setup flow, data model, and best practices.","href":"/integration/online-shop/integration-by-use-case/recurring-payments/recurring-integration-guide"}]}]}]},{"group":"Shared Endpoints","pages":[{"title":"Transaction Enquiry","href":"/integration/common-api/transaction-enquiry"},{"title":"Reversal API Guide","href":"/integration/common-api/reversal"},{"title":"Refund API Guide","href":"/integration/common-api/refund"},{"title":"Asynchronous Notifications","href":"/integration/common-api/async-notifications"},{"title":"Transaction Notes API","href":"/integration/common-api/transaction-note"}]},{"title":"Customs Declaration API","href":"/integration/customs-declaration"},{"title":"FAQs","href":"/integration/FAQs"}]}],"global":{"anchors":[{"anchor":"QFPay Main Site","icon":"book-open-cover","href":"https://www.qfpay.global"}]}},{"language":"zh-Hant","pages":[{"title":"zh-Hant","href":"/zh-Hant/integration/online-shop/integration-by-use-case/recurring-payments/recurring-webhook"}]}]},"basePath":"","title":"Subscription Webhook (Recurring Payment Notifications) - QFPay Developer Centre","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}