Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.
HaiPay subscription payments are designed for memberships, recurring services, and auto-renew billing. This page now acts as a cleaner landing page: it helps you choose an integration mode, understand launch constraints, and jump into the right API Reference pages instead of scanning a long wall of duplicated parameter tables.
Quick Start
Review the integration path, required product capabilities, and reading order.
Integration Modes
Compare Apple Pay / Google Pay, card component, and combined mode.
Core APIs
Jump directly to create, query, cancel, and refund endpoints.
Provide a clear subscription entry, billing-cycle explanation, and cancellation entry.
Notify users outside the platform after subscription activation and before or after each recurring charge.
Show a subscription service agreement and obtain explicit user consent before starting recurring billing.
Keep customer support available, at minimum during the operating hours of your main markets.
Consumers may dispute card charges within 180 days after the transaction date.
Each dispute incurs a 20 USD dispute handling fee.
If you choose to defend the dispute, an additional 20 USD rebuttal fee applies.
If the rebuttal succeeds, HaiPay refunds the rebuttal fee; the original dispute fee is not refunded by default.
PCI DSS strictly prohibits embedding card input pages inside WebView or iframe. Always collect card details and complete authorization in a trusted browser environment to avoid compliance and data-security issues.
Subscription payments offer two integration modes: PayUrl Redirect (server obtains an authorization URL and redirects the user to HaiPay’s hosted payment page) and JS CDN Embed (uses a client token to embed payment components directly in your own page). Choose based on your checkout design and frontend capabilities.
3
Connect APIs, callbacks, and cancellation
After creating a subscription, you still need subscription query, recurring callback handling, and a user-facing cancellation flow. The detailed fields and debug entry points are linked in the API cards below.
The simplest integration path. After your server calls the subscription create API, use the returned payUrl to redirect the user to HaiPay’s hosted payment page where they complete authorization and the first payment.Integration Flow
1
Server calls the subscription create API
Your server sends a Subscription Create request to HaiPay with the required parameters such as amount, cycle, and callback URLs.
2
Get payUrl and redirect
The API response includes a payUrl field. Redirect the user’s browser to that URL.
3
User completes payment
The user fills in card details and authorizes the subscription on HaiPay’s hosted page. After payment, HaiPay redirects the user back to your callBackUrl and sends an asynchronous notification to your notifyUrl.
Example code (frontend redirect after server obtains payUrl)
// Assuming your server has called the subscription create API// and returned the payUrl to the frontendconst payUrl = response.data.payUrl;// Redirect in the current windowwindow.location.href = payUrl;// Or open in a new window// window.open(payUrl, '_blank');
When to choose it
You want the fastest possible subscription integration with minimal frontend changes.
You have no specific customization requirements for the payment page UI.
For mobile H5 scenarios, the redirect experience is usually sufficient.
Embed payment components directly in your own page using HaiPay JS scripts. After your server calls the subscription create API, use the returned clientToken to initialize the frontend component. Users complete payment without leaving your page.The JS offers the following component types. Choose based on your checkout design:
Custom Combined Mode
Apple Pay / Google Pay (Deprecated Soon)
Credit Card (Deprecated Soon)
Similar to Combined Mode, but additionally supports switching between one-time payment and subscription payment via the mode parameter. Ideal for merchants who need to manage multiple payment scenarios with one integration.Scripthttps://cashier.haipay.top/js/composite-component_1.0.0.min.jsParameters
Parameter
Required
Description
sandbox
Yes
true for test, false for production
clientToken
Yes
Client token returned by the subscription create API
mode
Yes
Payment scenario: payment (one-time) or subscription (recurring)
showPayButton
No
Whether to display the credit card submit button. Default: false (hidden)
Credit card placement position, default bottom, options: bottom, top
Events
ready — Component rendered, ready for interaction
error — Initialization failed or payment error occurred
confirm — Form submission result (success/failure)
paymentStatus — Payment result notification, failure will return error message (if not listened, the component will handle result display automatically)
paymentMethodType — Currently selected payment method
When to choose it
When you need to support both one-time payment and subscription payment in the same codebase.
If you only enable certain payment methods, just pass the required combination.
This component will be deprecated soon. Please use “Custom Combined Mode” instead.
Best for teams that already support wallet-based checkout and want a fast subscription authorization experience.Recommended scripthttps://cashier.haipay.top/js/applePayGooglePaySubscribe_1.0.0.min.jsKey parameters
Parameter
Required
Description
sandbox
Yes
true for test, false for production
clientToken
Yes
Client token
buttonType
No
Button text such as buy or subscribe
buttonTheme
No
Button theme such as black or white
buttonHeight
No
Button height, default 50
Typical events
ready: button rendered
error: initialization or payment error
paymentStatus: payment result callback (If you do not listen to this event, the component will process the payment result by default)
paymentMethodType — Currently selected payment method
This component will be deprecated soon. Please use “Custom Combined Mode” instead.
Best when you want to render the subscription card form directly and control the submit action yourself.Recommended scripthttps://cashier.haipay.top/js/creditCardSubscription_1.0.0.min.jsKey parameters
Parameter
Required
Description
sandbox
Yes
true for test, false for production
clientToken
Yes
Client token
cardTheme
No
Form theme, default white
Typical events
ready: card component rendered
confirm: form submission result
paymentStatus: payment result callback (If you do not listen to this event, the component will process the payment result by default)
When the subscription status changes or a recurring deduction completes, HaiPay pushes an asynchronous notification to the notifyUrl provided in the subscription create request.
To ensure extensibility and compatibility, follow these callback parameter reception guidelines:
Do not declare a specific POJO object to receive callback parameters.
Must use a generic data structure (like JSONObject, Map, etc.) to parse parameters.
This design ensures that if callback fields are extended later, it will not affect your signature verification logic.
After receiving a notification, return SUCCESS (uppercase) in the response body.
Subscription Status Notification
Deduction Notification
Triggered when the subscription status changes (e.g., subscription activated, canceled, failed, etc.).
Total subscription duration cannot exceed 3 years regardless of cycle unit
Cycle unit
Apple Pay does not support W; use D + 7 for weekly billing
Payment type
Subscription flows use SUBSCRIPTION
User notifications
Notify users after activation and before or after recurring deductions
Cancellation
Production environments must provide a clear and accessible cancellation entry
Payment method parameters
In the subscription create API, inBankCode and paymentMethods are mutually exclusive: use inBankCode for a single payment method code, or paymentMethods for a comma-separated list of payment methods. paymentMethods currently only supports the front-end component combination mode
When should I use this page versus the API Reference?
Use this page to understand the product model, select an integration mode, and review the launch rules. When you are ready to build or debug, move to the Subscription API Reference for full field definitions, example payloads, and testing tools.
Why are cancellation and off-platform notifications mandatory for subscriptions?
Subscription payments create a higher dispute risk than one-time payments. Clear authorization, notification, and cancellation controls reduce chargebacks, complaints, and risk-review issues, and they are usually required for a stable production rollout.
How should I interpret Unsupported region: CN in production?
It usually means the current production configuration does not support that region, or the payment-method setup does not match the target market. Confirm your merchant configuration, target market, and payment-method mix first, then contact HaiPay support if needed.
How should I choose between PayUrl Redirect and JS Embed?
If you want the fastest launch with minimal frontend changes, use PayUrl Redirect. If you need a custom checkout UI where users stay on your page, use JS CDN Embed. Both modes use the same subscription create API; the only difference is whether you use the returned payUrl or clientToken.
Should I use inBankCode or paymentMethods?
These two parameters are mutually exclusive — you cannot pass both, and you must pass at least one. Use inBankCode when only a single payment method is needed. Use paymentMethods when multiple payment methods are required (e.g., Combined Mode). Note that paymentMethods currently only supports the front-end component combination mode; for other modes, continue using inBankCode.
Which mode should I choose for a modern subscription page with the least frontend work?
If you go with JS Embed, start with Combined Mode. It gives you a more complete checkout container, lowers the amount of frontend composition work, and is usually easier for users to understand.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"HaiPay","description":"HaiPay payment API documentation for merchant onboarding, integration guides, testing workflows, and global payment references.","colors":{"primary":"#5F3CC7","light":"#9289FE","dark":"#15803D"},"logo":{"light":"https://mintcdn.com/haipay-3385f6e8/Fh2duvg55RQO2xS-/images/logo/light.png?fit=max\u0026auto=format\u0026n=Fh2duvg55RQO2xS-\u0026q=85\u0026s=573f6622ee2aed0dbd22a52f7f1f3a5c","dark":"https://mintcdn.com/haipay-3385f6e8/Fh2duvg55RQO2xS-/images/logo/dark.png?fit=max\u0026auto=format\u0026n=Fh2duvg55RQO2xS-\u0026q=85\u0026s=ad633d1ef0dc99aafb8332e178794edf"},"favicon":"https://mintcdn.com/haipay-3385f6e8/bzbfpf1uH8h6Eq93/images/logo/favicon.png?fit=max\u0026auto=format\u0026n=bzbfpf1uH8h6Eq93\u0026q=85\u0026s=26754ae182abdf6a3e10188d15ff9d0d","api":{"playground":{"display":"interactive","proxy":true},"examples":{"languages":["bash","python","node","php","java"],"prefill":true}},"appearance":{"default":"light"},"navbar":{"links":[{"href":"https://www.haipay.net","label":"HaiPay.net"},{"href":"mailto:support@haipay.net","label":"Support"}]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/haipay-global","github":"https://github.com/HaipayGroup"}},"search":{"prompt":"Search HaiPay docs..."},"seo":{"metatags":{"og:site_name":"HaiPay Documentation","og:image":"https://www.haipay.net/og-default.png","twitter:card":"summary_large_image","twitter:site":"@HaiPay_official","canonical":"https://doc.haipay.net"},"indexing":"navigable"},"contextual":{"options":["copy","chatgpt",{"title":"在通义千问中打开","description":"向qwen询问有关此页面的问题","icon":"/images/ai/qwen.svg","href":{"base":"https://www.qianwen.com/","query":[{"key":"q","value":"查看这份文档:$page"}]}},"claude","perplexity","mcp","cursor","vscode",{"title":"连接到Qoder","description":"在Qoder中安装HaiPay MCP","icon":"/images/ai/qoder.svg","href":"qoder://aicoding.aicoding-deeplink/mcp/add?name=HaiPay\u0026config=JTdCJTIydXJsJTIyJTNBJTIyaHR0cHMlM0ElMkYlMkZkb2MuaGFpcGF5Lm5ldCUyRm1jcCUyMiU3RA%3D%3D"}],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"languages":[{"language":"zh","href":"zh/overview"},{"language":"en","href":"en/overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"haipay-3385f6e8","hasAudioNarration":false,"actualSubdomain":"haipay-3385f6e8","customDomains":["doc.haipay.net"],"gitSource":{"type":"github","owner":"haipaygroup","repo":"haipayapidoc","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3371b4d48ffa49b8a7d92","collectionId":"bc4e3cc7-4d19-4e71-b2b8-708eae9e7fd2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3371b4d48ffa49b8a7d92"},"feedback":{"thumbs":false,"agentFeedback":false},"entitlements":{},"buildId":"6ae3371b4d48ffa49b8a7d92","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"en","tag":"API","count":516},{"language":"zh","tag":"API","count":516},{"language":"en","tag":"Documentation Center","count":228},{"language":"zh","tag":"文档中心","count":228},{"language":"en","tag":"Global Payment","count":143},{"language":"zh","tag":"全球支付","count":143},{"language":"zh","tag":"亚洲","count":111},{"language":"en","tag":"Asia Pacific","count":59},{"language":"en","tag":"Asia","count":52},{"language":"en","tag":"Africa","count":43},{"language":"en","tag":"Payments","count":43},{"language":"zh","tag":"非洲","count":43},{"language":"zh","tag":"支付接入","count":43},{"language":"en","tag":"Merchant Guide","count":38},{"language":"zh","tag":"商户指南","count":38},{"language":"en","tag":"Local Payments","count":32},{"language":"zh","tag":"国家/地区支付","count":32},{"language":"en","tag":"Middle East","count":30},{"language":"zh","tag":"中东","count":30},{"language":"zh","tag":"中东与北非","count":27}],"searchSettings":{"showContentSnippets":true,"maxResults":10}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"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":"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":"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":"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}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".dark #sidebar-title,.light #sidebar-title{font-weight:700!important;color:#000!important;font-size:14px}.dark #sidebar-title{color:#fff!important}:lang(zh){font-family:\"Noto Sans SC\",sans-serif}:lang(en){font-family:\"Inter\",sans-serif}a.related-link:hover span{color:#5f3cc7}.frame{margin:24px 0;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden;background:#fff}.frame img{width:100%;display:block;margin:0!important}.frame-caption{padding:10px 16px;font-size:13px;color:#6b7280;background:#fff;border-top:1px solid #f3f4f6}.dark .frame{border-color:#374151;background:#111827}.dark .frame-caption{color:#9ca3af;background:#111827;border-top-color:#374151}.badge-recommended{display:inline-block;padding:1px 8px;border-radius:4px;font-size:12px;font-weight:600;background:#f3eeff;color:#7b3ff2;vertical-align:middle;line-height:1.6}.dark .badge-recommended{background:rgba(123,63,242,.18);color:#c4b5fd}.doc-footer{font-size:13px;color:#9ca3af}.doc-footer p{margin:4px 0!important}.dark .doc-footer{color:#6b7280}"}],"page":{"pagePath":"en/history/V20260701/payments/subscriptions/overview","slug":"/en/history/V20260701/payments/subscriptions/overview","pageMetadata":{"title":"Subscription","sidebarTitle":"Subscription","description":"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.","keywords":["HaiPay","subscription","card subscription","recurring payment","API"],"href":"/en/history/V20260701/payments/subscriptions/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 subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card 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={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Card,CodeBlock,Columns,Danger,Heading,Step,Steps,Tab,Table,Tabs,Tip,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Card)_missingMdxReference(`Card`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Columns)_missingMdxReference(`Columns`,true);if(!Danger)_missingMdxReference(`Danger`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`HaiPay subscription payments are designed for memberships, recurring services, and auto-renew billing. This page now acts as a cleaner landing page: it helps you choose an integration mode, understand launch constraints, and jump into the right API Reference pages instead of scanning a long wall of duplicated parameter tables.`}),`\n`,_jsxs(Columns,{cols:3,children:[_jsx(Card,{title:`Quick Start`,icon:`rocket`,href:`#quick-start`,children:_jsx(_components.p,{children:`Review the integration path, required product capabilities, and reading order.`})}),_jsx(Card,{title:`Integration Modes`,icon:`layer-group`,href:`#integration-modes`,children:_jsx(_components.p,{children:`Compare Apple Pay / Google Pay, card component, and combined mode.`})}),_jsx(Card,{title:`Core APIs`,icon:`list-check`,href:`#core-apis`,children:_jsx(_components.p,{children:`Jump directly to create, query, cancel, and refund endpoints.`})})]}),`\n`,_jsx(Warning,{title:`Required product and service capabilities before launch`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Provide a clear subscription entry, billing-cycle explanation, and cancellation entry.`}),`\n`,_jsx(_components.li,{children:`Notify users outside the platform after subscription activation and before or after each recurring charge.`}),`\n`,_jsx(_components.li,{children:`Show a subscription service agreement and obtain explicit user consent before starting recurring billing.`}),`\n`,_jsx(_components.li,{children:`Keep customer support available, at minimum during the operating hours of your main markets.`}),`\n`]})}),`\n`,_jsx(Tip,{title:`Credit card disputes and fee reminder`,children:_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Consumers may dispute card charges within 180 days after the transaction date.`}),`\n`,_jsx(_components.li,{children:`Each dispute incurs a 20 USD dispute handling fee.`}),`\n`,_jsx(_components.li,{children:`If you choose to defend the dispute, an additional 20 USD rebuttal fee applies.`}),`\n`,_jsx(_components.li,{children:`If the rebuttal succeeds, HaiPay refunds the rebuttal fee; the original dispute fee is not refunded by default.`}),`\n`]})}),`\n`,_jsx(Danger,{title:`PCI DSS compliance requirement`,children:_jsxs(_components.p,{children:[`PCI DSS strictly prohibits embedding card input pages inside `,_jsx(_components.code,{children:`WebView`}),` or `,_jsx(_components.code,{children:`iframe`}),`. Always collect card details and complete authorization in a trusted browser environment to avoid compliance and data-security issues.`]})}),`\n`,_jsx(`a`,{id:`quick-start`}),`\n`,_jsx(Heading,{level:`2`,id:`quick-start`,children:`Quick Start`}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Confirm the business model and prerequisites`,children:_jsxs(_components.p,{children:[`Start with the `,_jsx(_components.a,{href:`/en/history/V20260701/get-started/api-conventions`,children:`API Description Guide`}),` and the `,_jsx(_components.a,{href:`/en/history/V20260701/payments/subscriptions/workflow`,children:`Subscription Process`}),` to confirm that your scenario is recurring billing rather than a one-time payment flow.`]})}),_jsx(Step,{title:`Choose the right integration mode`,children:_jsxs(_components.p,{children:[`Subscription payments offer two integration modes: `,_jsx(_components.strong,{children:`PayUrl Redirect`}),` (server obtains an authorization URL and redirects the user to HaiPay’s hosted payment page) and `,_jsx(_components.strong,{children:`JS CDN Embed`}),` (uses a client token to embed payment components directly in your own page). Choose based on your checkout design and frontend capabilities.`]})}),_jsx(Step,{title:`Connect APIs, callbacks, and cancellation`,children:_jsx(_components.p,{children:`After creating a subscription, you still need subscription query, recurring callback handling, and a user-facing cancellation flow. The detailed fields and debug entry points are linked in the API cards below.`})})]}),`\n`,_jsx(`a`,{id:`integration-modes`}),`\n`,_jsx(Heading,{level:`2`,id:`integration-modes`,children:`Integration Modes`}),`\n`,_jsx(_components.p,{children:`Subscription payments offer two integration modes. The key difference is who hosts the payment page:`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Comparison`}),_jsx(_components.th,{style:{textAlign:`left`},children:`PayUrl Redirect`}),_jsx(_components.th,{style:{textAlign:`left`},children:`JS Embed`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Payment page`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Redirects to HaiPay’s hosted payment page`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Embeds payment components in your own page`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Frontend effort`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Almost zero, just handle the redirect`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Requires importing JS scripts and listening to events`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`UI control`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Low, page style controlled by HaiPay`}),_jsx(_components.td,{style:{textAlign:`left`},children:`High, customizable theme, layout, and interactions`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Key response field`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Uses `,_jsx(_components.code,{children:`payUrl`}),` from the response`]}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Uses `,_jsx(_components.code,{children:`clientToken`}),` from the response`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Best for`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Quick integration, no custom payment page needed`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Custom checkout, seamless in-page payment experience`})]})]})]}),`\n`,_jsxs(Tabs,{sync:false,children:[_jsxs(Tab,{title:`PayUrl Redirect`,icon:`arrow-up-right-from-square`,id:`payurl-redirect`,children:[_jsxs(_components.p,{children:[`The simplest integration path. After your server calls the subscription create API, use the returned `,_jsx(_components.code,{children:`payUrl`}),` to redirect the user to HaiPay’s hosted payment page where they complete authorization and the first payment.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Integration Flow`})}),_jsxs(Steps,{children:[_jsx(Step,{title:`Server calls the subscription create API`,children:_jsxs(_components.p,{children:[`Your server sends a `,_jsx(_components.a,{href:`/en/history/V20260701/api-reference/subscription/subscription-apply`,children:`Subscription Create`}),` request to HaiPay with the required parameters such as amount, cycle, and callback URLs.`]})}),_jsx(Step,{title:`Get payUrl and redirect`,children:_jsxs(_components.p,{children:[`The API response includes a `,_jsx(_components.code,{children:`payUrl`}),` field. Redirect the user’s browser to that URL.`]})}),_jsx(Step,{title:`User completes payment`,children:_jsxs(_components.p,{children:[`The user fills in card details and authorizes the subscription on HaiPay’s hosted page. After payment, HaiPay redirects the user back to your `,_jsx(_components.code,{children:`callBackUrl`}),` and sends an asynchronous notification to your `,_jsx(_components.code,{children:`notifyUrl`}),`.`]})})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example code (frontend redirect after server obtains payUrl)`})}),_jsx(CodeBlock,{filename:``,numberOfLines:`9`,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:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Assuming your server has called the subscription create API`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// and returned the payUrl to the frontend`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` payUrl`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Redirect in the current window`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`window`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`location`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`href`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` payUrl`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Or open in a new window`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// window.open(payUrl, '_blank');`})}),`\n`]})})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`When to choose it`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`You want the fastest possible subscription integration with minimal frontend changes.`}),`\n`,_jsx(_components.li,{children:`You have no specific customization requirements for the payment page UI.`}),`\n`,_jsx(_components.li,{children:`For mobile H5 scenarios, the redirect experience is usually sufficient.`}),`\n`]})]}),_jsxs(Tab,{title:`JS Embed`,icon:`code`,id:`js-embed`,\"data-child-tab-ids\":`[\"custom-combined-mode\",\"apple-pay-%2F-google-pay-deprecated-soon\",\"credit-card-deprecated-soon\"]`,children:[_jsxs(_components.p,{children:[`Embed payment components directly in your own page using HaiPay JS scripts. After your server calls the subscription create API, use the returned `,_jsx(_components.code,{children:`clientToken`}),` to initialize the frontend component. Users complete payment without leaving your page.`]}),_jsx(_components.p,{children:`The JS offers the following component types. Choose based on your checkout design:`}),_jsxs(Tabs,{sync:false,children:[_jsxs(Tab,{title:`Custom Combined Mode`,icon:`table-cells-large`,id:`custom-combined-mode`,children:[_jsxs(_components.p,{children:[`Similar to Combined Mode, but additionally supports switching between one-time payment and subscription payment via the `,_jsx(_components.code,{children:`mode`}),` parameter. Ideal for merchants who need to manage multiple payment scenarios with one integration.`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Script`})}),_jsx(_components.p,{children:_jsx(_components.code,{children:`https://cashier.haipay.top/js/composite-component_1.0.0.min.js`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Parameters`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Parameter`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Required`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`sandbox`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`true`}),` for test, `,_jsx(_components.code,{children:`false`}),` for production`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`clientToken`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Client token returned by the subscription create API`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`mode`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Payment scenario: `,_jsx(_components.code,{children:`payment`}),` (one-time) or `,_jsx(_components.code,{children:`subscription`}),` (recurring)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`showPayButton`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Whether to display the credit card submit button. Default: `,_jsx(_components.code,{children:`false`}),` (hidden)`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`themeMode`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Theme mode, `,_jsx(_components.code,{children:`light`}),` or `,_jsx(_components.code,{children:`dark`}),`, default `,_jsx(_components.code,{children:`light`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`paymentMethodConfig`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Payment-method list, default `,_jsx(_components.code,{children:`[\"GOOGLE_PAY\",\"APPLE_PAY\",\"CREDIT_CARD\"]`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`applePayButtonType`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Apple Pay button text, e.g., `,_jsx(_components.code,{children:`buy`}),`, `,_jsx(_components.code,{children:`subscribe`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`googlePayButtonType`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Google Pay button text, e.g., `,_jsx(_components.code,{children:`buy`}),`, `,_jsx(_components.code,{children:`subscribe`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`cardPosition`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Credit card placement position, default `,_jsx(_components.code,{children:`bottom`}),`, options: `,_jsx(_components.code,{children:`bottom`}),`, `,_jsx(_components.code,{children:`top`})]})]})]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Events`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ready`}),` — Component rendered, ready for interaction`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`error`}),` — Initialization failed or payment error occurred`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`confirm`}),` — Form submission result (success/failure)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`paymentStatus`}),` — Payment result notification, failure will return error message (if not listened, the component will handle result display automatically)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`paymentMethodType`}),` — Currently selected payment method`]}),`\n`]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`When to choose it`})}),_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`When you need to support both one-time payment and subscription payment in the same codebase.`}),`\n`,_jsx(_components.li,{children:`If you only enable certain payment methods, just pass the required combination.`}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`38`,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:`38`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cashier.haipay.top/js/composite-component_1.0.0.min.js\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"paymentId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` elements`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` haiPay`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` mode:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'payment'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sandbox:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` clientToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'your-client-token'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` themeMode:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'light'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` paymentMethodConfig:`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'GOOGLE_PAY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'APPLE_PAY'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'CREDIT_CARD'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`mount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'#paymentId'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ready'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'rendered successfully:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'error'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Payment error:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'paymentMethodType'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'payment method type'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`submitCardPayment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'confirm'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'confirm:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'paymentStatus'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'payment status:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`message`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`]})})})]}),_jsxs(Tab,{title:`Apple Pay / Google Pay (Deprecated Soon)`,icon:`wallet`,id:`apple-pay-%2F-google-pay-deprecated-soon`,children:[_jsx(Warning,{children:`This component will be deprecated soon. Please use “Custom Combined Mode” instead.`}),_jsx(_components.p,{children:`Best for teams that already support wallet-based checkout and want a fast subscription authorization experience.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Recommended script`})}),_jsx(_components.p,{children:_jsx(_components.code,{children:`https://cashier.haipay.top/js/applePayGooglePaySubscribe_1.0.0.min.js`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Key parameters`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Parameter`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Required`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`sandbox`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`true`}),` for test, `,_jsx(_components.code,{children:`false`}),` for production`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`clientToken`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Client token`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`buttonType`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Button text such as `,_jsx(_components.code,{children:`buy`}),` or `,_jsx(_components.code,{children:`subscribe`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`buttonTheme`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Button theme such as `,_jsx(_components.code,{children:`black`}),` or `,_jsx(_components.code,{children:`white`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`buttonHeight`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Button height, default `,_jsx(_components.code,{children:`50`})]})]})]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Typical events`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ready`}),`: button rendered`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`error`}),`: initialization or payment error`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`paymentStatus`}),`: payment result callback (If you do not listen to this event, the component will process the payment result by default)`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`paymentMethodType`}),` — Currently selected payment method`]}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`31`,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:`31`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cashier.haipay.top/js/applePayGooglePaySubscribe_1.0.0.min.js\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"applePayGooglePayId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` elements`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` applePayGooglePaySubscribe`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'applePayGooglePaySubscribe'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sandbox:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` clientToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'your-client-token'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` buttonType:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'subscribe'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` buttonTheme:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'black'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` buttonHeight:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 50`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`mount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'#applePayGooglePayId'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ready'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Button rendered successfully:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'error'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Payment error:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'paymentMethodType'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'payment method type'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`event`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'paymentStatus'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'payment status:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})})]}),_jsxs(Tab,{title:`Credit Card (Deprecated Soon)`,icon:`credit-card`,id:`credit-card-deprecated-soon`,children:[_jsx(Warning,{children:`This component will be deprecated soon. Please use “Custom Combined Mode” instead.`}),_jsx(_components.p,{children:`Best when you want to render the subscription card form directly and control the submit action yourself.`}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Recommended script`})}),_jsx(_components.p,{children:_jsx(_components.code,{children:`https://cashier.haipay.top/js/creditCardSubscription_1.0.0.min.js`})}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Key parameters`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Parameter`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Required`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`sandbox`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[_jsx(_components.code,{children:`true`}),` for test, `,_jsx(_components.code,{children:`false`}),` for production`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`clientToken`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Yes`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Client token`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`cardTheme`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`No`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Form theme, default `,_jsx(_components.code,{children:`white`})]})]})]})]}),_jsx(_components.p,{children:_jsx(_components.strong,{children:`Typical events`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`ready`}),`: card component rendered`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`confirm`}),`: form submission result`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`paymentStatus`}),`: payment result callback (If you do not listen to this event, the component will process the payment result by default)`]}),`\n`]}),_jsx(CodeBlock,{filename:``,numberOfLines:`31`,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:`31`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` src`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cashier.haipay.top/js/creditCardSubscription_1.0.0.min.js\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`script`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:` \u003c`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:` id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"creditCardId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`\u003c/`}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`div`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#808080`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` elements`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` creditCardSubscription`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'card'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sandbox:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` clientToken:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'your-client-token'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` cardTheme:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'white'`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`mount`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'#creditCardId'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'ready'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Card rendered successfully:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'error'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'Payment error:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`submit`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'confirm'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'confirm:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`elements`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`on`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'paymentStatus'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'payment status:'`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`data`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})})]})]})]})]}),`\n`,_jsx(`a`,{id:`core-apis`}),`\n`,_jsx(Heading,{level:`2`,id:`core-apis`,children:`Core APIs`}),`\n`,_jsx(_components.p,{children:`For full request fields, response schemas, and live debugging, go directly to the API Reference pages:`}),`\n`,_jsxs(Columns,{cols:2,children:[_jsx(Card,{title:`Subscription Create`,icon:`circle-plus`,href:`/en/history/V20260701/api-reference/subscription/subscription-apply`,children:_jsx(_components.p,{children:`Create a subscription order, launch user authorization, and complete the first subscription payment.`})}),_jsx(Card,{title:`Subscription Query`,icon:`magnifying-glass`,href:`/en/history/V20260701/api-reference/subscription/subscription-query`,children:_jsx(_components.p,{children:`Check subscription status, platform subscription number, and deduction records.`})}),_jsx(Card,{title:`Subscription Cancel`,icon:`ban`,href:`/en/history/V20260701/api-reference/subscription/subscription-cancel`,children:_jsx(_components.p,{children:`Cancel an active subscription and stop future recurring charges.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`asynchronous-notifications`,children:`Asynchronous Notifications`}),`\n`,_jsxs(_components.p,{children:[`When the subscription status changes or a recurring deduction completes, HaiPay pushes an asynchronous notification to the `,_jsx(_components.code,{children:`notifyUrl`}),` provided in the subscription create request.`]}),`\n`,_jsxs(Tip,{title:`Receiving Recommendations`,children:[_jsx(_components.p,{children:`To ensure extensibility and compatibility, follow these callback parameter reception guidelines:`}),_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Do not`}),` declare a specific POJO object to receive callback parameters.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Must`}),` use a generic data structure (like JSONObject, Map, etc.) to parse parameters.`]}),`\n`,_jsx(_components.li,{children:`This design ensures that if callback fields are extended later, it will not affect your signature verification logic.`}),`\n`]})]}),`\n`,_jsxs(_components.p,{children:[`After receiving a notification, return `,_jsx(_components.strong,{children:`SUCCESS`}),` (uppercase) in the response body.`]}),`\n`,_jsxs(Tabs,{sync:false,children:[_jsxs(Tab,{title:`Subscription Status Notification`,icon:`bell`,id:`subscription-status-notification`,children:[_jsx(_components.p,{children:`Triggered when the subscription status changes (e.g., subscription activated, canceled, failed, etc.).`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Parameter`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Type`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Notification type, fixed as `,_jsx(_components.code,{children:`SUBSCRIPTION`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`appId`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Long`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Business ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`currency`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Currency`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`subscriptionOrderId`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Merchant subscription order ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`subscriptionNo`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Platform subscription number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`amount`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Subscription amount`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`status`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Subscription status (1: Pending, 2: Active, 3: Failed, 4: Canceled, 5: Completed)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`recurringInterval`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Recurring cycle type (D/W/M/Y)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`recurringIntervalCount`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Recurring cycle interval`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`subject`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Subscription title`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`sign`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Signature (verify using the business secret key corresponding to the currency)`})]})]})]})]}),_jsxs(Tab,{title:`Deduction Notification`,icon:`money-bill-wave`,id:`deduction-notification`,children:[_jsx(_components.p,{children:`Triggered when each recurring deduction succeeds or fails.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Parameter`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Type`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`type`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Notification type, fixed as `,_jsx(_components.code,{children:`SUBSCRIPTIONS_DEDUCT`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`appId`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Long`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Business ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`currency`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Currency`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`subscriptionOrderId`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Merchant subscription order ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`subscriptionNo`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Platform subscription number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`deductNo`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Deduction number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`orderNo`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Platform order number`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`amount`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Deduction amount for this cycle`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`status`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`Integer`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Deduction status (2: Success, 3: Failed)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`startTime`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Deduction cycle start time, format: yyyy-MM-dd HH:mm:ss`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`endTime`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Deduction cycle end time, format: yyyy-MM-dd HH:mm:ss`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:_jsx(_components.code,{children:`sign`})}),_jsx(_components.td,{style:{textAlign:`left`},children:`String`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Signature (verify using the business secret key corresponding to the currency)`})]})]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`key-business-rules`,children:`Key Business Rules`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{style:{textAlign:`left`},children:`Item`}),_jsx(_components.th,{style:{textAlign:`left`},children:`Details`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Amount limit`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Subscription amount range is `,_jsx(_components.code,{children:`0.99 - 1000 USD`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Max duration`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Total subscription duration cannot exceed 3 years regardless of cycle unit`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Cycle unit`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Apple Pay does not support `,_jsx(_components.code,{children:`W`}),`; use `,_jsx(_components.code,{children:`D`}),` + `,_jsx(_components.code,{children:`7`}),` for weekly billing`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Payment type`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`Subscription flows use `,_jsx(_components.code,{children:`SUBSCRIPTION`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`User notifications`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Notify users after activation and before or after recurring deductions`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Cancellation`}),_jsx(_components.td,{style:{textAlign:`left`},children:`Production environments must provide a clear and accessible cancellation entry`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{style:{textAlign:`left`},children:`Payment method parameters`}),_jsxs(_components.td,{style:{textAlign:`left`},children:[`In the subscription create API, `,_jsx(_components.code,{children:`inBankCode`}),` and `,_jsx(_components.code,{children:`paymentMethods`}),` are mutually exclusive: use `,_jsx(_components.code,{children:`inBankCode`}),` for a single payment method code, or `,_jsx(_components.code,{children:`paymentMethods`}),` for a comma-separated list of payment methods. `,_jsx(_components.code,{children:`paymentMethods`}),` currently only supports the front-end component combination mode`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`test-card-numbers`,children:`Test Card Numbers`}),`\n`,_jsx(Warning,{children:`For use in test environment only`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Simulate Successful Payment`})}),`\n`,_jsx(_components.p,{children:`Use the following test card number. Enter any 3-digit CVC and any future expiration date:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.code,{children:`4242424242424242`})}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Simulate Payment Failure`})}),`\n`,_jsx(_components.p,{children:`Use the following test card number with invalid data:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Card Number: `,_jsx(_components.code,{children:`4000000000009995`})]}),`\n`,_jsxs(_components.li,{children:[`Invalid Month: `,_jsx(_components.code,{children:`13`})]}),`\n`,_jsxs(_components.li,{children:[`Invalid CVV: `,_jsx(_components.code,{children:`99`})]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`common-questions`,children:`Common Questions`}),`\n`,_jsxs(AccordionGroup,{children:[_jsx(Accordion,{title:`When should I use this page versus the API Reference?`,defaultOpen:true,id:`when-should-i-use-this-page-versus-the-api-reference`,children:_jsxs(_components.p,{children:[`Use this page to understand the product model, select an integration mode, and review the launch rules. When you are ready to build or debug, move to the `,_jsx(_components.a,{href:`/en/history/V20260701/api-reference/subscription/subscription-apply`,children:`Subscription API Reference`}),` for full field definitions, example payloads, and testing tools.`]})}),_jsx(Accordion,{title:`Why are cancellation and off-platform notifications mandatory for subscriptions?`,id:`why-are-cancellation-and-off-platform-notifications-mandatory-for-subscriptions`,children:_jsx(_components.p,{children:`Subscription payments create a higher dispute risk than one-time payments. Clear authorization, notification, and cancellation controls reduce chargebacks, complaints, and risk-review issues, and they are usually required for a stable production rollout.`})}),_jsx(Accordion,{title:`How should I interpret Unsupported region: CN in production?`,id:`how-should-i-interpret-unsupported-region-cn-in-production`,children:_jsx(_components.p,{children:`It usually means the current production configuration does not support that region, or the payment-method setup does not match the target market. Confirm your merchant configuration, target market, and payment-method mix first, then contact HaiPay support if needed.`})}),_jsx(Accordion,{title:`How should I choose between PayUrl Redirect and JS Embed?`,id:`how-should-i-choose-between-payurl-redirect-and-js-embed`,children:_jsxs(_components.p,{children:[`If you want the fastest launch with minimal frontend changes, use PayUrl Redirect. If you need a custom checkout UI where users stay on your page, use JS CDN Embed. Both modes use the same subscription create API; the only difference is whether you use the returned `,_jsx(_components.code,{children:`payUrl`}),` or `,_jsx(_components.code,{children:`clientToken`}),`.`]})}),_jsx(Accordion,{title:`Should I use inBankCode or paymentMethods?`,id:`should-i-use-inbankcode-or-paymentmethods`,children:_jsxs(_components.p,{children:[`These two parameters are mutually exclusive — you cannot pass both, and you must pass at least one. Use `,_jsx(_components.code,{children:`inBankCode`}),` when only a single payment method is needed. Use `,_jsx(_components.code,{children:`paymentMethods`}),` when multiple payment methods are required (e.g., Combined Mode). Note that `,_jsx(_components.code,{children:`paymentMethods`}),` currently only supports the front-end component combination mode; for other modes, continue using `,_jsx(_components.code,{children:`inBankCode`}),`.`]})}),_jsx(Accordion,{title:`Which mode should I choose for a modern subscription page with the least frontend work?`,id:`which-mode-should-i-choose-for-a-modern-subscription-page-with-the-least-frontend-work`,children:_jsx(_components.p,{children:`If you go with JS Embed, start with Combined Mode. It gives you a more complete checkout container, lowers the amount of frontend composition work, and is usually easier for users to understand.`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-topics`,children:`Related Topics`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/history/V20260701/api/version2/CommonApi`,children:`Common API`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/history/V20260701/get-started/api-conventions`,children:`HaiPay API Description and Common Rules`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/history/V20260701/payments/subscriptions/workflow`,children:`Subscription Payment Flowchart`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/operations/callback`,children:`Handle Asynchronous Notifications and Verify Signatures`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/history/V20260701/testing/end-to-end`,children:`Test Order Status Changes and Notifications End to End`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/history/V20260701/testing/go-live-checklist`,children:`Review the Go-Live Checklist (IP Whitelist and Production Setup)`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/en/history/V20260701/testing/test-cards`,children:`Use Test Card Numbers for Successful and Failed Payments`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://www.haipay.net/products/subscription`,children:`HaiPay subscription payments product page`})}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Subscription","sidebarTitle":"Subscription","description":"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.","keywords":["HaiPay","subscription","card subscription","recurring payment","API"],"href":"/en/history/V20260701/payments/subscriptions/overview"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Quick Start","slug":"quick-start","depth":2,"children":[]},{"title":"Integration Modes","slug":"integration-modes","depth":2,"children":[]},{"title":"Core APIs","slug":"core-apis","depth":2,"children":[]},{"title":"Asynchronous Notifications","slug":"asynchronous-notifications","depth":2,"children":[]},{"title":"Key Business Rules","slug":"key-business-rules","depth":2,"children":[]},{"title":"Test Card Numbers","slug":"test-card-numbers","depth":2,"children":[]},{"title":"Common Questions","slug":"common-questions","depth":2,"children":[]},{"title":"Related Topics","slug":"related-topics","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/haipay-3385f6e8/f9eb4046a3d2a66d/public/inject-sign.js"],"subdomain":"haipay-3385f6e8","siteName":"HaiPay","title":"Subscription - HaiPay","navMaps":{"firstHrefInVersion":{"V20261001":{"href":"/zh/overview","matchLevel":4},"V20260801":{"href":"/en/history/V20260801/payments/subscriptions/overview","matchLevel":1},"V20260701":{"href":"/en/history/V20260701/payments/subscriptions/overview","matchLevel":0},"V20260628":{"href":"/en/history/V20260628/api/version2/GlobalCashier","matchLevel":2},"V20260623":{"href":"/en/history/V20260623/api/version2/GlobalCashier","matchLevel":2}},"firstHrefInLanguage":{"zh":{"href":"/zh/history/V20260701/payments/subscriptions/overview","matchLevel":1},"en":{"href":"/en/history/V20260701/payments/subscriptions/overview","matchLevel":0}}},"lastModified":"2026-10-29T12:09:21.725Z","gitLastModified":"2026-10-29T11:11:35.000Z","originalFileLocation":"en/history/V20260701/payments/subscriptions/overview.mdx","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=\"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.\">\u003cmeta data-mint-head name=\"application-name\" content=\"HaiPay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Subscription - HaiPay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"HaiPay Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://www.haipay.net/og-default.png\">\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 - HaiPay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://www.haipay.net/og-default.png\">\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/haipay-3385f6e8/zF8MnpYOAB0QG9P5/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"HaiPay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5F3CC7\">\u003clink data-mint-head rel=\"canonical\" href=\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/en/history/V20260701/payments/subscriptions/overview.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://doc.haipay.net/zh/history/V20260701/payments/subscriptions/overview\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://doc.haipay.net/zh/history/V20260701/payments/subscriptions/overview\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://doc.haipay.net/#organization\",\"name\":\"HaiPay\",\"url\":\"https://doc.haipay.net\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/haipay-3385f6e8/Fh2duvg55RQO2xS-/images/logo/light.png?fit=max\u0026auto=format\u0026n=Fh2duvg55RQO2xS-\u0026q=85\u0026s=573f6622ee2aed0dbd22a52f7f1f3a5c\"}},{\"@type\":\"WebSite\",\"@id\":\"https://doc.haipay.net#website\",\"name\":\"HaiPay\",\"url\":\"https://doc.haipay.net\",\"publisher\":{\"@id\":\"https://doc.haipay.net/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview#webpage\",\"url\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview\",\"name\":\"Subscription\",\"description\":\"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.\",\"dateModified\":\"2026-10-29T11:11:35.000Z\",\"isPartOf\":{\"@id\":\"https://doc.haipay.net#website\"},\"breadcrumb\":{\"@id\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Global Payment\",\"item\":\"https://doc.haipay.net/en/history/V20260701/payments/cashier\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Subscription\",\"item\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview#article\",\"headline\":\"Subscription\",\"name\":\"Subscription\",\"description\":\"Understand subscription integration modes, business requirements, launch rules, and core API entry points before you start building recurring card payments.\",\"url\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview\",\"mainEntityOfPage\":{\"@id\":\"https://doc.haipay.net/en/history/V20260701/payments/subscriptions/overview#webpage\"},\"image\":\"https://www.haipay.net/og-default.png\",\"dateModified\":\"2026-10-29T11:11:35.000Z\",\"keywords\":\"HaiPay, subscription, card subscription, recurring payment, API\",\"publisher\":{\"@id\":\"https://doc.haipay.net/#organization\"},\"isPartOf\":{\"@id\":\"https://doc.haipay.net#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"HaiPay\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"HaiPay","nav":{"global":null,"languages":[{"language":"zh","pages":[{"title":"zh","href":"/zh/history/V20260701/payments/subscriptions/overview"}]},{"language":"en","versions":[{"version":"V20261001","default":true,"tag":"Latest","pages":[{"title":"V20261001","href":"/en/overview"}]},{"version":"V20260801","pages":[{"title":"V20260801","href":"/en/history/V20260801/payments/subscriptions/overview"}]},{"version":"V20260701","tabs":[{"tab":"Documentation Center","groups":[{"group":"Quick start","pages":[{"title":"Merchant Integration Overview","sidebarTitle":"Guide","href":"/en/history/V20260701/overview"}]},{"group":"Merchant Guide","pages":[{"title":"Merchant Integration Process","sidebarTitle":"Integration Process","href":"/en/history/V20260701/get-started/integration-process"},{"title":"Configuration and Signature Guide (Legacy navigation V20260701)","sidebarTitle":"Config \u0026 Signature","href":"/en/history/V20260701/guide/config_settings_and_signature_rules_guide"},{"title":"Payment Integration Steps","sidebarTitle":"Integration Steps","href":"/en/history/V20260701/get-started/integration-steps"},{"title":"API Conventions and Common Rules","sidebarTitle":"API Description","href":"/en/history/V20260701/get-started/api-conventions"},{"title":"Payment Documentation Index","sidebarTitle":"API Documentation","href":"/en/history/V20260701/get-started/documentation-map"},{"title":"End-to-End Testing Guide","sidebarTitle":"End-to-End Testing","href":"/en/history/V20260701/testing/end-to-end"},{"title":"Onboarding Checklist","sidebarTitle":"Onboarding Checklist","href":"/en/history/V20260701/testing/go-live-checklist"},{"title":"USD Wrapping","sidebarTitle":"USD Wrapping","href":"/en/history/V20260701/resources/usd-wrapping"},{"title":"Connect AI via MCP","sidebarTitle":"Connect to HaiPay MCP","href":"/en/history/V20260701/resources/ai/connect-ai-via-mcp"},{"title":"AI Integration Skills","sidebarTitle":"AI Skills for HaiPay Integration","href":"/en/history/V20260701/resources/ai/haipay-skills"}]},{"group":"Common Payment","pages":[{"title":"Common API (Legacy navigation V20260701)","sidebarTitle":"Common API","href":"/en/history/V20260701/api/version2/CommonApi"},{"title":"Get Merchant Payment Config","href":"/en/history/V20260701/operations/merchant-payment-config"},{"title":"Payout Voucher PDF/ZIP API","href":"/en/history/V20260701/operations/voucher-pdf"}]},{"group":"Global Payment","pages":[{"group":"Global Cashier","pages":[{"title":"Global Cashier","href":"/en/history/V20260701/payments/cashier"}]},{"group":"Credit Card","pages":[{"title":"Front-End Component","href":"/en/history/V20260701/payments/cards/payment-element"},{"title":"Checkout Mode","href":"/en/history/V20260701/payments/cards/payment-links"},{"title":"International Credit Card (VISA/MASTER)","href":"/en/history/V20260701/payments/cards/overview"},{"title":"Google Pay Integration Guide","sidebarTitle":"Google Pay","href":"/en/history/V20260701/payments/cards/google-pay"},{"title":"Apple Pay Integration Guide","sidebarTitle":"Apple Pay","href":"/en/history/V20260701/payments/cards/apple-pay"},{"title":"Merchant-Initiated Transactions (MIT)","sidebarTitle":"MIT","href":"/en/history/V20260701/payments/cards/merchant-initiated-transactions"},{"title":"Credit Card Supported Regions","sidebarTitle":"Credit Card Supported Regions","description":"List of countries and regions supported by credit card, Apple Pay, and Google Pay payments.","href":"/en/history/V20260701/payments/cards/supported-regions"}]},{"group":"Subscription","pages":[{"title":"Subscription","sidebarTitle":"Subscription","href":"/en/history/V20260701/payments/subscriptions/overview"},{"title":"Subscription Payment Flowchart","sidebarTitle":"Subscription Flow","description":"Understand the full subscription lifecycle with clearer stage-based guidance for subscription creation, recurring deductions, cancellation, and retry logic.","href":"/en/history/V20260701/payments/subscriptions/workflow"}]},{"group":"North America","pages":[{"title":"United States","hidden":true,"href":"/en/history/V20260701/api/version2/USD"},{"title":"Mexico Payment Integration","sidebarTitle":"Mexico","href":"/en/history/V20260701/payments/local/mexico"}]},{"group":"South America","pages":[{"title":"Brazil Payment Integration","sidebarTitle":"Brazil","href":"/en/history/V20260701/payments/local/brazil"}]},{"group":"Europe","pages":[{"title":"Turkey Payment Integration","sidebarTitle":"Turkey","href":"/en/history/V20260701/payments/local/turkey"},{"title":"European Union Payment Integration","sidebarTitle":"European Union","href":"/en/history/V20260701/payments/local/european-union"}]},{"group":"Asia","pages":[{"title":"Hong Kong Payment Integration","sidebarTitle":"Hong Kong","href":"/en/history/V20260701/payments/local/hong-kong"},{"title":"Singapore Payment Integration","sidebarTitle":"Singapore","href":"/en/history/V20260701/payments/local/singapore"},{"title":"Taiwan Payment Integration","sidebarTitle":"Taiwan","href":"/en/history/V20260701/payments/local/taiwan"},{"title":"Japan Payment Integration","sidebarTitle":"Japan","href":"/en/history/V20260701/payments/local/japan"},{"title":"South Korea Payment Integration","sidebarTitle":"South Korea","href":"/en/history/V20260701/payments/local/south-korea"},{"title":"Philippines Payment Integration","sidebarTitle":"Philippines","href":"/en/history/V20260701/payments/local/philippines"},{"title":"Thailand Payment Integration","sidebarTitle":"Thailand","href":"/en/history/V20260701/payments/local/thailand"},{"title":"Vietnam Payment Integration","sidebarTitle":"Vietnam","href":"/en/history/V20260701/payments/local/vietnam"},{"title":"Indonesia Payment Integration","sidebarTitle":"Indonesia","href":"/en/history/V20260701/payments/local/indonesia"},{"title":"Malaysia Payment Integration","sidebarTitle":"Malaysia","href":"/en/history/V20260701/payments/local/malaysia"},{"title":"Pakistan Payment Integration","sidebarTitle":"Pakistan","href":"/en/history/V20260701/payments/local/pakistan"},{"title":"Bangladesh Payment Integration","sidebarTitle":"Bangladesh","href":"/en/history/V20260701/payments/local/bangladesh"},{"title":"India Payment Integration","sidebarTitle":"India","href":"/en/history/V20260701/payments/local/india"}]},{"group":"Middle East","pages":[{"title":null,"href":"/en/history/V20260701/payments/local/egypt"},{"title":"Saudi Arabia Payment Integration","sidebarTitle":"Saudi Arabia","href":"/en/history/V20260701/payments/local/saudi-arabia"},{"title":"Kuwait Payment Integration","sidebarTitle":"Kuwait","href":"/en/history/V20260701/payments/local/kuwait"},{"title":"Bahrain Payment Integration","sidebarTitle":"Bahrain","href":"/en/history/V20260701/payments/local/bahrain"},{"title":"UAE Payment Integration","sidebarTitle":"UAE","href":"/en/history/V20260701/payments/local/united-arab-emirates"},{"title":"Oman Payment Integration","sidebarTitle":"Oman","href":"/en/history/V20260701/payments/local/oman"},{"title":"Qatar Payment Integration","sidebarTitle":"Qatar","href":"/en/history/V20260701/payments/local/qatar"}]},{"group":"Africa","pages":[{"title":"Nigeria (Legacy navigation V20260701)","sidebarTitle":"Nigeria","href":"/en/history/V20260701/api/version2/Nigeria"},{"title":"Kenya Payment API","href":"/en/history/V20260701/payments/local/kenya"},{"title":"South Africa Payment API","href":"/en/history/V20260701/payments/local/south-africa"},{"title":"Cameroon Payment API","href":"/en/history/V20260701/payments/local/cameroon"},{"title":"Tanzania Payment API","href":"/en/history/V20260701/payments/local/tanzania"}]},{"group":"Crypto","hidden":true,"pages":[{"title":"Stablecoin","href":"/en/history/V20260701/api/version2/coinpay"},{"title":"Stablecoin Payment (Fixed Address) API","href":"/en/history/V20260701/api/version2/coinpay-fixed_address"}]}]},{"group":"Unified API","pages":[{"title":"Payment API","href":"/en/history/V20260701/payments/unified-api"}]},{"group":"Appendix","pages":[{"title":"Test Card Numbers","sidebarTitle":"Test Cards","href":"/en/history/V20260701/testing/test-cards"},{"title":"Collection Payment Methods List","href":"/en/history/V20260701/resources/cashin-code-list"},{"title":"Disbursement Payment Methods List","href":"/en/history/V20260701/resources/cashout-code-list"},{"title":"Error Response Reference (Legacy navigation V20260701)","sidebarTitle":"Error Response","href":"/en/history/V20260701/guide/error_response_appendix"}]},{"group":"Merchant FAQ","pages":[{"title":"Frequently Asked Questions and Troubleshooting","sidebarTitle":"Frequently Asked Questions","href":"/en/history/V20260701/resources/faq"}]},{"group":"Historical Reference","hidden":true,"pages":[{"title":"Configuration and Signature Guide (Legacy navigation V20260701)","sidebarTitle":"Config \u0026 Signature","href":"/docs/en/guide/config_settings_and_signature_rules_guide"}]}]},{"tab":"API","pages":[{"title":"API","href":"/en/history/V20260701/api-reference/overview"}]},{"tab":"Update log","pages":[{"title":"Update log","href":"/en/history/V20260701/changelog"}]}]},{"version":"V20260628","pages":[{"title":"V20260628","href":"/en/history/V20260628/api/version2/GlobalCashier"}]},{"version":"V20260623","pages":[{"title":"V20260623","href":"/en/history/V20260623/api/version2/GlobalCashier"}]}]}]},"title":"Subscription - HaiPay","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":[],"chunks":[]}