Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.
Order status transitions
Order status reference
Status
Description
Final
PAY_IN_PROGRESS
The order has been accepted and the user is in the process of paying
No
AUTHORIZATION_REQUIRED
The payment method requires user authorization (e.g., an e-wallet)
No
AUTHED_WAITING_CAPTURE
Authorized, awaiting capture confirmation (card payments; requires the merchant to confirm capture)
No
PAY_SUCCESS
Payment succeeded
Yes
ORDER_CLOSE
The order is closed (cancelled, failed, or timed out)
Yes
Subscription statuses
A subscription starts in IN_PROGRESS. It enters AUTHORIZATION_REQUIRED when the user must select a payment method or complete authorization. After the user completes authorization, processing continues toward ACTIVE; failures or timeouts move the subscription to CLOSE. Cancellation statuses and EXPIRED are final. The diagram shows only the key path through creation, authorization, activation, and completion; see the table below for each final status.
Status
Description
Action
AUTHORIZATION_REQUIRED
User authorization is required (e-wallet scenario)
Redirect to the subscriptionAction URL
IN_PROGRESS
The user is confirming the subscription
Wait for the Webhook
ACTIVE
The subscription is active and charging normally
Store the subscriptionId
CLOSE
Closed (timed out or failed)
Re-initiate if needed
MERCHANT_CANCELLED
Cancelled by the merchant
—
USER_CANCELLED
Cancelled by the user
Update local records
CHANNEL_CANCELLED
Cancelled by the channel
Notify the user
PLATFORM_CANCELLED
Cancelled by the platform
Check cancelReason in the subscription inquiry response
EXPIRED
The subscription has expired
Re-initiate if needed
Refund statuses
Status
Description
REFUND_IN_PROGRESS
Refund is being processed
ORDER_PARTIALLY_REFUNDED
Partial refund completed
ORDER_FULLY_REFUNDED
Full refund completed
ORDER_REFUND_FAILED
Refund failed
Best practices
Use the Webhook as the only source of truth: redirect URLs are only for user experience and should not be used to determine the payment result.
Handle intermediate states: do not automatically close orders in PAY_IN_PROGRESS; wait for the Webhook or query proactively
Idempotent handling: Webhooks may be delivered more than once; ensure your handling logic is idempotent. See Idempotency
Unknown status: when you encounter error code E0001, query using the original paymentRequestId and do not automatically close the order. For the full handling flow, see Error handling
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Waffo Documentation","colors":{"primary":"#1957FF","light":"#6D91F5","dark":"#292CE7"},"logo":{"light":"https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/logo/waffo.svg?fit=max\u0026auto=format\u0026n=Pi4mlrktV3FjQDJZ\u0026q=85\u0026s=dc39ea12b9df4bb0ab4d56b460fee561","dark":"https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/logo/waffo-dark.svg?fit=max\u0026auto=format\u0026n=Pi4mlrktV3FjQDJZ\u0026q=85\u0026s=3815a51e8488f0fed34c24f4576ee222"},"favicon":"https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/favicon.ico?fit=max\u0026auto=format\u0026n=Pi4mlrktV3FjQDJZ\u0026q=85\u0026s=cffa538665d3df619ce7c5bbb8384132","appearance":{"default":"light"},"background":{"color":{"light":"#FFFFFF","dark":"#0A0B0F"}},"navbar":{"links":[{"href":"mailto:support@waffo.com","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.waffo.com"}},"seo":{"indexing":"all"},"icons":{"library":"lucide"},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"languages":[{"language":"en","default":true,"href":"en/essentials/product-overview"},{"language":"ja","href":"ja/essentials/product-overview"},{"language":"zh","href":"zh/essentials/product-overview"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"waffo-docs","hasAudioNarration":false,"actualSubdomain":"waffo-docs","customDomains":["waffo.com"],"gitSource":{"type":"github","owner":"waffo-com","repo":"waffo-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af42de904fd3168b771ef06","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"zh","tag":"产品指南","count":146},{"language":"zh","tag":"常见问题 FAQ","count":133},{"language":"en","tag":"Guides","count":121},{"language":"ja","tag":"ガイド","count":121},{"language":"en","tag":"Support FAQ","count":108},{"language":"ja","tag":"サポート FAQ","count":108},{"language":"en","tag":"Developer","count":57},{"language":"ja","tag":"開発者ドキュメント","count":56},{"language":"zh","tag":"开发文档","count":56},{"language":"default","tag":"API Reference","count":38},{"language":"en","tag":"API Reference","count":21},{"language":"ja","tag":"API リファレンス","count":21},{"language":"zh","tag":"API 参考","count":21},{"language":"en","tag":"Integration","count":20},{"language":"ja","tag":"インテグレーション","count":20},{"language":"zh","tag":"集成","count":20},{"language":"en","tag":"Issuing","count":14},{"language":"ja","tag":"Issuing","count":14},{"language":"zh","tag":"Issuing","count":14},{"language":"default","tag":"Subscription","count":10},{"language":"en","tag":"Tools \u0026 Reference","count":9},{"language":"ja","tag":"ツールとリファレンス","count":9},{"language":"zh","tag":"工具与参考","count":9},{"language":"default","tag":"One-time Payment","count":8},{"language":"default","tag":"Chargeback","count":7},{"language":"en","tag":"Getting Started","count":6},{"language":"en","tag":"SDK","count":6},{"language":"en","tag":"Reference","count":6},{"language":"ja","tag":"はじめに","count":6},{"language":"ja","tag":"SDK","count":6},{"language":"ja","tag":"リファレンス","count":6},{"language":"zh","tag":"快速开始","count":6},{"language":"zh","tag":"SDK","count":6},{"language":"zh","tag":"参考资料","count":6},{"language":"default","tag":"Risk Control","count":3},{"language":"default","tag":"Tokenization","count":3},{"language":"default","tag":"Configuration","count":3},{"language":"default","tag":"Payout","count":2},{"language":"default","tag":"Point Topup","count":2}],"searchSettings":{"maxResults":10,"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"img[src*=\"/logo/waffo\"]{height:20px!important;width:auto!important;max-height:20px!important}#localization-select-trigger>div:has(img[src*=\"/flags/\"]),#localization-select-content div:has(>img[src*=\"/flags/\"]),[data-component-part=\"localization-select-trigger\"]>div:has(img[src*=\"/flags/\"]){display:none!important}main [role=\"tablist\"]{gap:2rem!important}:root{--waffo-blue: #1957ff;--waffo-blue-light: #6d91f5;--waffo-blue-deep: #292ce7;--waffo-blue-dark-primary: #4d7cff;--waffo-violet-100: #d8d5ff;--waffo-bg-dark: #0a0b0f;--waffo-bg-light: #fcfdff;--waffo-surface-dark: #0f1730;--waffo-surface-dark-2: #131a33;--waffo-border-dark: rgba(216, 213, 255, 0.10);--waffo-border-dark-strong: rgba(216, 213, 255, 0.18);--waffo-text-dark-muted: #94a3b8;--waffo-border-light: #e2e8f0;--waffo-surface-light: #f8fafc}html:not(.dark),html:not(.dark) body{background-color:var(--waffo-bg-light)!important}html:not(.dark) #background-color{background:radial-gradient(circle at 18% 0%, rgba(109, 145, 245, 0.03), transparent 30rem),\n radial-gradient(circle at 86% 12%, rgba(25, 87, 255, 0.02), transparent 26rem),\n linear-gradient(180deg, #ffffff 0%, var(--waffo-bg-light) 42%, #ffffff 100%)!important}.dark body,html.dark{background-color:var(--waffo-bg-dark)!important}.dark main .callout,.dark main [class*=\"callout\"],.dark main pre,.dark main .card,.dark main [class*=\"Card\"]:not([class*=\"CardGroup\"]),.dark main aside,.dark main blockquote{background-color:var(--waffo-surface-dark)!important;border-color:var(--waffo-border-dark)!important}.dark main :not(pre)>code{background-color:var(--waffo-surface-dark-2)!important;border:1px solid var(--waffo-border-dark)!important;color:var(--waffo-violet-100)!important}.dark hr,.dark main table,.dark main thead,.dark main tbody,.dark main tr,.dark main th,.dark main td{border-color:var(--waffo-border-dark)!important}.dark main a:not([class*=\"card\"]):not([class*=\"Card\"]):not([role=\"tab\"]){color:var(--waffo-blue-light)}.dark main a:not([class*=\"card\"]):not([class*=\"Card\"]):not([role=\"tab\"]):hover{color:#a8b8ff}main a.waffo-secondary-cta{color:#475569!important}main a.waffo-secondary-cta:hover{background:#f8fafc!important;color:#334155!important}.dark main a.waffo-secondary-cta{background:#27272a!important;border-color:#3f3f46!important;color:#d4d4d8!important}.dark main a.waffo-secondary-cta:hover{background:#3f3f46!important;color:#f4f4f5!important}a[href*=\"dashboard.waffo.com\"]>span.absolute.inset-0{background-color:var(--waffo-blue)!important;background-image:radial-gradient(50% 50% at 50% 0%, rgba(255, 255, 255, 0.18), rgba(255, 255, 255, 0))!important;box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.16),\n 0 1px 2px -1px rgba(9, 6, 63, 0.4),\n 0 0 0 1px rgba(57, 96, 249, 0.5)!important}a[href*=\"dashboard.waffo.com\"]:hover>span.absolute.inset-0{background-color:var(--waffo-blue-deep)!important;opacity:1!important;box-shadow:inset 0 1px 0 0 rgba(255, 255, 255, 0.16),\n 0 1px 2px -1px rgba(9, 6, 63, 0.5),\n 0 0 0 1px rgba(57, 96, 249, 0.7)!important}html:not(.dark) main .callout,html:not(.dark) main [class*=\"callout\"]{border-color:var(--waffo-border-light)}html:not(.dark) .product-overview-card,html:not(.dark) .waffo-guide-card,html:not(.dark) .waffo-hover-card,html:not(.dark) .checkout-integration-card,html:not(.dark) .tokenization-core-value-card{background:rgba(255, 255, 255, 0.98)!important;box-shadow:0 1px 2px rgba(15, 23, 42, 0.025),\n inset 0 1px 0 rgba(255, 255, 255, 0.95)}#content-area footer{padding-bottom:3.5rem!important}html:not(.dark) main a.waffo-clickable-card:hover,html:not(.dark) main a.waffo-guide-card[href]:hover{border-color:rgba(109, 145, 245, 0.45)!important}.dark main a.waffo-clickable-card:hover,.dark main a.waffo-guide-card[href]:hover{border-color:rgba(109, 145, 245, 0.45)!important}html.dark .callout[class*=\"green\"],html.dark [class*=\"callout\"][class*=\"green\"]{background:linear-gradient(135deg, rgba(25, 87, 255, 0.13), rgba(109, 145, 245, 0.06))!important;border-color:rgba(109, 145, 245, 0.32)!important;box-shadow:inset 0 1px 0 rgba(216, 213, 255, 0.08)!important}html.dark .callout [class*=\"text-green\"],html.dark [class*=\"callout\"] [class*=\"text-green\"]{color:#cbd7ff!important}main{position:relative}@media (prefers-reduced-motion: no-preference){.dark main::before{content:\"\";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 18% 12%, rgba(25, 87, 255, 0.18), transparent 28%),\n radial-gradient(circle at 82% 6%, rgba(109, 145, 245, 0.14), transparent 24%),\n radial-gradient(circle at 50% 100%, rgba(41, 44, 231, 0.10), transparent 30%);animation:waffo-aurora 16s ease-in-out infinite alternate;z-index:-1}.waffo-guide-card,.waffo-hover-card,.checkout-integration-card,.tokenization-core-value-card,.product-overview-card,main [class*=\"Card\"]:not([class*=\"CardGroup\"]){position:relative;overflow:hidden;transition:transform 180ms ease,\n border-color 180ms ease,\n box-shadow 180ms ease,\n background 180ms ease}.waffo-guide-card:hover,.waffo-hover-card:hover,.checkout-integration-card:hover,.tokenization-core-value-card:hover,.product-overview-card:hover,main [class*=\"Card\"]:not([class*=\"CardGroup\"]):hover{transform:translateY(-2px);border-color:rgba(109, 145, 245, 0.45)!important;box-shadow:0 8px 22px rgba(15, 23, 42, 0.08),\n 0 0 0 1px rgba(25, 87, 255, 0.06)}.dark .waffo-guide-card:hover,.dark .waffo-hover-card:hover,.dark .checkout-integration-card:hover,.dark .tokenization-core-value-card:hover,.dark .product-overview-card:hover,.dark main [class*=\"Card\"]:not([class*=\"CardGroup\"]):hover{box-shadow:0 12px 28px rgba(0, 0, 0, 0.20),\n 0 0 18px rgba(25, 87, 255, 0.08)}.waffo-guide-card::before,.waffo-hover-card::before,.checkout-integration-card::before,.tokenization-core-value-card::before,.product-overview-card::before{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg, transparent 0%, rgba(109, 145, 245, 0.06) 46%, transparent 62%),\n radial-gradient(circle at 100% 0%, rgba(25, 87, 255, 0.055), transparent 30%);opacity:0;transform:translateX(-8%);transition:opacity 180ms ease, transform 320ms ease}.waffo-guide-card:hover::before,.waffo-hover-card:hover::before,.checkout-integration-card:hover::before,.tokenization-core-value-card:hover::before,.product-overview-card:hover::before{opacity:0.7;transform:translateX(8%)}.waffo-guide-card svg,.product-overview-card svg,.checkout-integration-check-icon,.tokenization-check-icon{transition:transform 180ms ease, filter 180ms ease}.waffo-guide-card:hover svg,.product-overview-card:hover svg,.checkout-integration-card:hover .checkout-integration-check-icon,.tokenization-core-value-card:hover .tokenization-check-icon{transform:scale(1.06);filter:drop-shadow(0 0 10px rgba(109, 145, 245, 0.38))}main pre{position:relative;overflow:auto}main pre::after{content:\"\";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg, transparent, rgba(109, 145, 245, 0.12), transparent);transform:translateX(-110%)}main pre:hover::after{animation:waffo-code-scan 900ms ease}a[href*=\"dashboard.waffo.com\"]{transition:transform 180ms ease, filter 180ms ease!important}a[href*=\"dashboard.waffo.com\"]:hover{transform:translateY(-1px);filter:saturate(1.08)}@keyframes waffo-aurora{from{transform:translate3d(0, 0, 0) scale(1);opacity:0.72}to{transform:translate3d(0, -18px, 0) scale(1.04);opacity:0.95}}@keyframes waffo-code-scan{to{transform:translateX(110%)}}}::selection{background:rgba(25, 87, 255, 0.30)}"}],"page":{"pagePath":"en/developer-docs/core-concepts/payment-lifecycle","slug":"/en/developer-docs/core-concepts/payment-lifecycle","pageMetadata":{"title":"Payment lifecycle and order statuses","description":"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.","href":"/en/developer-docs/core-concepts/payment-lifecycle"},"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: \"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.\"\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`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Heading,Mermaid,Table,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Mermaid)_missingMdxReference(`Mermaid`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`order-status-transitions`,children:`Order status transitions`}),`\n`,_jsx(Mermaid,{chart:`stateDiagram-v2\n [*] --> PAY_IN_PROGRESS\n PAY_IN_PROGRESS --> AUTHORIZATION_REQUIRED\n PAY_IN_PROGRESS --> PAY_SUCCESS\n PAY_IN_PROGRESS --> ORDER_CLOSE\n AUTHORIZATION_REQUIRED --> AUTHED_WAITING_CAPTURE\n AUTHORIZATION_REQUIRED --> PAY_SUCCESS\n AUTHED_WAITING_CAPTURE --> PAY_SUCCESS\n PAY_SUCCESS --> ORDER_PARTIALLY_REFUNDED\n PAY_SUCCESS --> ORDER_FULLY_REFUNDED\n ORDER_CLOSE --> [*]\n PAY_SUCCESS --> [*]`}),`\n`,_jsx(Heading,{level:`2`,id:`order-status-reference`,children:`Order status reference`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Final`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PAY_IN_PROGRESS`})}),_jsx(_components.td,{children:`The order has been accepted and the user is in the process of paying`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`AUTHORIZATION_REQUIRED`})}),_jsx(_components.td,{children:`The payment method requires user authorization (e.g., an e-wallet)`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`AUTHED_WAITING_CAPTURE`})}),_jsx(_components.td,{children:`Authorized, awaiting capture confirmation (card payments; requires the merchant to confirm capture)`}),_jsx(_components.td,{children:`No`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PAY_SUCCESS`})}),_jsx(_components.td,{children:`Payment succeeded`}),_jsx(_components.td,{children:`Yes`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_CLOSE`})}),_jsx(_components.td,{children:`The order is closed (cancelled, failed, or timed out)`}),_jsx(_components.td,{children:`Yes`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`subscription-statuses`,children:`Subscription statuses`}),`\n`,_jsxs(_components.p,{children:[`A subscription starts in `,_jsx(_components.code,{children:`IN_PROGRESS`}),`. It enters `,_jsx(_components.code,{children:`AUTHORIZATION_REQUIRED`}),` when the user must select a payment method or complete authorization. After the user completes authorization, processing continues toward `,_jsx(_components.code,{children:`ACTIVE`}),`; failures or timeouts move the subscription to `,_jsx(_components.code,{children:`CLOSE`}),`. Cancellation statuses and `,_jsx(_components.code,{children:`EXPIRED`}),` are final. The diagram shows only the key path through creation, authorization, activation, and completion; see the table below for each final status.`]}),`\n`,_jsx(Mermaid,{chart:`stateDiagram-v2\n [*] --> IN_PROGRESS\n IN_PROGRESS --> AUTHORIZATION_REQUIRED: User authorization required\n IN_PROGRESS --> ACTIVE: No authorization; initial payment succeeds\n AUTHORIZATION_REQUIRED --> ACTIVE: Authorization and initial payment succeed\n IN_PROGRESS --> CLOSE: Failure or timeout\n AUTHORIZATION_REQUIRED --> CLOSE: Failure or timeout\n ACTIVE --> MERCHANT_CANCELLED: Merchant cancels\n ACTIVE --> USER_CANCELLED: User cancels\n ACTIVE --> CHANNEL_CANCELLED: Payment channel cancels\n ACTIVE --> PLATFORM_CANCELLED: Platform cancels\n CLOSE --> [*]`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Description`}),_jsx(_components.th,{children:`Action`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`AUTHORIZATION_REQUIRED`})}),_jsx(_components.td,{children:`User authorization is required (e-wallet scenario)`}),_jsxs(_components.td,{children:[`Redirect to the `,_jsx(_components.code,{children:`subscriptionAction`}),` URL`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`IN_PROGRESS`})}),_jsx(_components.td,{children:`The user is confirming the subscription`}),_jsx(_components.td,{children:`Wait for the Webhook`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ACTIVE`})}),_jsx(_components.td,{children:`The subscription is active and charging normally`}),_jsxs(_components.td,{children:[`Store the `,_jsx(_components.code,{children:`subscriptionId`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CLOSE`})}),_jsx(_components.td,{children:`Closed (timed out or failed)`}),_jsx(_components.td,{children:`Re-initiate if needed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`MERCHANT_CANCELLED`})}),_jsx(_components.td,{children:`Cancelled by the merchant`}),_jsx(_components.td,{children:`—`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`USER_CANCELLED`})}),_jsx(_components.td,{children:`Cancelled by the user`}),_jsx(_components.td,{children:`Update local records`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`CHANNEL_CANCELLED`})}),_jsx(_components.td,{children:`Cancelled by the channel`}),_jsx(_components.td,{children:`Notify the user`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PLATFORM_CANCELLED`})}),_jsx(_components.td,{children:`Cancelled by the platform`}),_jsxs(_components.td,{children:[`Check `,_jsx(_components.code,{children:`cancelReason`}),` in the subscription inquiry response`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`EXPIRED`})}),_jsx(_components.td,{children:`The subscription has expired`}),_jsx(_components.td,{children:`Re-initiate if needed`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`refund-statuses`,children:`Refund statuses`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`REFUND_IN_PROGRESS`})}),_jsx(_components.td,{children:`Refund is being processed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_PARTIALLY_REFUNDED`})}),_jsx(_components.td,{children:`Partial refund completed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_FULLY_REFUNDED`})}),_jsx(_components.td,{children:`Full refund completed`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ORDER_REFUND_FAILED`})}),_jsx(_components.td,{children:`Refund failed`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices`,children:`Best practices`}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use the Webhook as the only source of truth`}),`: redirect URLs are only for user experience and should not be used to determine the payment result.`]})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Handle intermediate states`}),`: do not automatically close orders in `,_jsx(_components.code,{children:`PAY_IN_PROGRESS`}),`; wait for the Webhook or query proactively`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Idempotent handling`}),`: Webhooks may be delivered more than once; ensure your handling logic is idempotent. See `,_jsx(_components.a,{href:`/en/developer-docs/core-concepts/idempotency`,children:`Idempotency`})]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Unknown status`}),`: when you encounter error code `,_jsx(_components.code,{children:`E0001`}),`, query using the original `,_jsx(_components.code,{children:`paymentRequestId`}),` and do not automatically close the order. For the full handling flow, see `,_jsx(_components.a,{href:`/en/developer-docs/core-concepts/error-handling`,children:`Error handling`})]}),`\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":"Payment lifecycle and order statuses","description":"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.","href":"/en/developer-docs/core-concepts/payment-lifecycle"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Order status transitions","slug":"order-status-transitions","depth":2,"children":[]},{"title":"Order status reference","slug":"order-status-reference","depth":2,"children":[]},{"title":"Subscription statuses","slug":"subscription-statuses","depth":2,"children":[]},{"title":"Refund statuses","slug":"refund-statuses","depth":2,"children":[]},{"title":"Best practices","slug":"best-practices","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/waffo-docs/47c40941d1251e3c/scripts/translate-docs.js","/docs/_mintlify/custom/waffo-docs/723f562f9cd10a75/waffo-delights.js","/docs/_mintlify/custom/waffo-docs/190dbff54c9526e6/scripts/send-assistant-review-lark.js"],"subdomain":"waffo-docs","siteName":"Waffo Documentation","title":"Payment lifecycle and order statuses - Waffo Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/en/developer-docs/core-concepts/payment-lifecycle","matchLevel":0},"ja":{"href":"/ja/developer-docs/core-concepts/payment-lifecycle","matchLevel":1},"zh":{"href":"/zh/developer-docs/core-concepts/payment-lifecycle","matchLevel":1}}},"lastModified":"2026-09-28T03:16:26.747Z","originalFileLocation":"en/developer-docs/core-concepts/payment-lifecycle.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=\"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Waffo Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_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=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Payment lifecycle and order statuses - Waffo Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Waffo Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://waffo-docs.mintlify.site/docs/_mintlify/api/og/v2?division=Core+Concepts\u0026amp;title=Payment+lifecycle+and+order+statuses\u0026amp;description=Learn+how+Waffo+payment+orders%2C+subscriptions%2C+and+refunds+transition+between+statuses.\u0026amp;theme=fad5fb8928201b49e439d713\u0026amp;signature=12be2ffcd6a4cd3e23b27161a38319453491d6b191f87a9c47f13d10283cb73a\">\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=\"Payment lifecycle and order statuses - Waffo Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://waffo-docs.mintlify.site/docs/_mintlify/api/og/v2?division=Core+Concepts\u0026amp;title=Payment+lifecycle+and+order+statuses\u0026amp;description=Learn+how+Waffo+payment+orders%2C+subscriptions%2C+and+refunds+transition+between+statuses.\u0026amp;theme=fad5fb8928201b49e439d713\u0026amp;signature=12be2ffcd6a4cd3e23b27161a38319453491d6b191f87a9c47f13d10283cb73a\">\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=\"/docs/mintlify-assets/_mintlify/favicons/waffo-docs/OevRXyJPkJIEffNN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Waffo Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1957FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/en/developer-docs/core-concepts/payment-lifecycle.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ja\" href=\"https://waffo.com/docs/ja/developer-docs/core-concepts/payment-lifecycle\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh\" href=\"https://waffo.com/docs/zh/developer-docs/core-concepts/payment-lifecycle\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://waffo.com/#organization\",\"name\":\"Waffo Documentation\",\"url\":\"https://waffo.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/waffo-docs/Pi4mlrktV3FjQDJZ/logo/waffo.svg?fit=max\u0026auto=format\u0026n=Pi4mlrktV3FjQDJZ\u0026q=85\u0026s=dc39ea12b9df4bb0ab4d56b460fee561\"}},{\"@type\":\"WebSite\",\"@id\":\"https://waffo.com/docs#website\",\"name\":\"Waffo Documentation\",\"url\":\"https://waffo.com/docs\",\"publisher\":{\"@id\":\"https://waffo.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle#webpage\",\"url\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\",\"name\":\"Payment lifecycle and order statuses\",\"description\":\"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.\",\"dateModified\":\"2026-09-28T03:16:26.747Z\",\"isPartOf\":{\"@id\":\"https://waffo.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Waffo Documentation\",\"item\":\"https://waffo.com/docs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Payment lifecycle and order statuses\",\"item\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle#article\",\"headline\":\"Payment lifecycle and order statuses\",\"name\":\"Payment lifecycle and order statuses\",\"description\":\"Learn how Waffo payment orders, subscriptions, and refunds transition between statuses.\",\"url\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle\",\"mainEntityOfPage\":{\"@id\":\"https://waffo.com/docs/en/developer-docs/core-concepts/payment-lifecycle#webpage\"},\"dateModified\":\"2026-09-28T03:16:26.747Z\",\"publisher\":{\"@id\":\"https://waffo.com/#organization\"},\"isPartOf\":{\"@id\":\"https://waffo.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Waffo Documentation\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Waffo Documentation\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/en/developer-docs/core-concepts/payment-lifecycle.md","siteName":"Waffo Documentation","nav":{"global":null,"languages":[{"language":"en","default":true,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/en/essentials/product-overview"}]},{"tab":"Developer","groups":[{"group":"Getting Started","icon":"rocket","pages":[{"title":"Integration overview","href":"/en/developer-docs/getting-started/overview"},{"title":"Integration guide","href":"/en/developer-docs/getting-started/quickstart"},{"title":"Sandbox and testing","href":"/en/developer-docs/getting-started/sandbox"},{"group":"Production go-live","icon":"circle-check","root":{"title":"Production go-live","href":"/en/developer-docs/getting-started/go-live"},"pages":[{"title":"Account activation and team roles","href":"/en/developer-docs/getting-started/account-and-roles"},{"title":"Configure the merchant public key","href":"/en/developer-docs/getting-started/public-key-configuration"},{"title":"Configure refund and Chargeback notification URLs","description":"Configure global refund and Chargeback notification URLs in Waffo Dashboard.","href":"/en/developer-docs/getting-started/notification-url-configuration"}]}]},{"group":"Core Concepts","icon":"network","pages":[{"title":"Payment lifecycle and order statuses","href":"/en/developer-docs/core-concepts/payment-lifecycle"},{"title":"Amounts and currencies","description":"Waffo amount formatting specifications and multi-currency payment guidance.","href":"/en/developer-docs/core-concepts/currency"},{"title":"Pricing currency strategy","href":"/en/developer-docs/use-cases/pricing-currency"},{"title":"Error Handling","href":"/en/developer-docs/core-concepts/error-handling"},{"title":"Idempotency","href":"/en/developer-docs/core-concepts/idempotency"}]},{"group":"Integration","icon":"blocks","pages":[{"title":"Choosing an integration approach","href":"/en/developer-docs/use-cases/checkout-solution"},{"title":"Set up and use Coupons","href":"/en/developer-docs/use-cases/coupons"},{"title":"Tax integration","href":"/en/developer-docs/use-cases/tax"},{"group":"Subscription use cases","pages":[{"title":"Add seats and charge the difference","href":"/en/developer-docs/use-cases/subscription-use-cases"}]},{"title":"AI integration tool (waffo-integrate)","href":"/en/developer-docs/integration/ai-integration"},{"title":"Checkout integration - Integration steps","href":"/en/developer-docs/integration/checkout/steps"},{"title":"Cashier integration - Customization options","href":"/en/developer-docs/integration/checkout/customization"},{"title":"Merchant Portal cashier customization","href":"/en/developer-docs/integration/checkout/portal-customization"},{"group":"Apple Pay integration","icon":"/images/navigation/apple-pay.svg","pages":[{"title":"Apple Pay integration","href":"/en/developer-docs/integration/apple-pay/overview"},{"title":"Direct Apple Pay integration","href":"/en/developer-docs/integration/apple-pay/merchant-direct-integration"}]},{"group":"API-only integration","icon":"code","pages":[{"title":"Overview","href":"/en/developer-docs/integration/api/overview"},{"title":"Code examples","href":"/en/developer-docs/integration/api/examples"}]},{"group":"Elements (Frontend SDK)","icon":"panel-top","pages":[{"title":"Frontend components - component usage","href":"/en/developer-docs/integration/elements/usage"},{"title":"Frontend components - Style customization","href":"/en/developer-docs/integration/elements/styling"}]},{"group":"Card Binding \u0026 Token","icon":"key-round","pages":[{"title":"Waffo Checkout card binding","href":"/en/developer-docs/integration/tokenization/checkout-card-binding"},{"title":"Merchant-side card binding","href":"/en/developer-docs/integration/tokenization/overview"}]},{"group":"Subscription integration","icon":"refresh-cw","pages":[{"title":"Subscription integration","href":"/en/developer-docs/integration/subscription/overview"},{"title":"Subscription payment method comparison","href":"/en/developer-docs/tools-and-references/references/subscription-payment-methods"}]},{"title":"x402 stablecoin acquiring","href":"/en/developer-docs/use-cases/x402-stablecoin-acquiring"},{"group":"Settlement \u0026 Reconciliation","icon":"file-spreadsheet","pages":[{"title":"Reconciliation reports","href":"/en/developer-docs/tools-and-references/references/reconciliation-reports"}]}]},{"group":"Integration - Google Pay","icon":"wallet","hidden":true,"pages":[{"title":"Google Pay™","href":"/en/developer-docs/integration/google-pay/google-pay"}]},{"group":"Webhook","icon":"radio","pages":[{"title":"Webhook - Overview and configuration","href":"/en/developer-docs/webhook/overview"},{"title":"Webhook - event type list","href":"/en/developer-docs/webhook/event-types"},{"title":"Webhook - signature verification","href":"/en/developer-docs/webhook/signature-verification"},{"title":"Webhook - Handling best practices","href":"/en/developer-docs/webhook/best-practices"},{"title":"Webhook - retries and failure recovery","href":"/en/developer-docs/webhook/retry"}]},{"group":"SDK","icon":"package","pages":[{"title":"Node.js SDK","href":"/en/developer-docs/sdk/nodejs"},{"title":"Java SDK","href":"/en/developer-docs/sdk/java"},{"title":"Go SDK","href":"/en/developer-docs/sdk/go"},{"title":"Python SDK","href":"/en/developer-docs/sdk/python"},{"title":"PHP SDK","href":"/en/developer-docs/sdk/php"},{"title":"SDK changelog","href":"/en/developer-docs/sdk/changelog"}]},{"group":"Tools \u0026 Reference","icon":"library","pages":[{"group":"Developer Tools","icon":"wrench","pages":[{"title":"Postman collection","href":"/en/developer-docs/tools-and-references/developer-tools/postman"},{"title":"Sandbox simulator","href":"/en/developer-docs/tools-and-references/developer-tools/sandbox-simulator"},{"title":"Octopus sandbox test payment","href":"/en/developer-docs/tools-and-references/developer-tools/octopus-sandbox-e2e"}]},{"group":"Reference","icon":"book-open","pages":[{"title":"Error code quick reference","href":"/en/developer-docs/tools-and-references/developer-tools/error-codes"},{"title":"Data reference","href":"/en/developer-docs/tools-and-references/references/data-reference"},{"title":"Frequently asked questions (FAQ)","href":"/en/developer-docs/tools-and-references/references/faq"},{"title":"Payment method integration notes","href":"/en/developer-docs/tools-and-references/references/payment-method-integration-notes"},{"title":"Integration acceptance criteria","href":"/en/developer-docs/tools-and-references/references/acceptance-criteria"},{"title":"API version history","href":"/en/developer-docs/tools-and-references/references/changelog"}]}]},{"group":"Point Topup API","icon":"gamepad-2","pages":[{"title":"Point Topup integration overview","href":"/en/developer-docs/point-topup/overview"},{"title":"Mode A: offline point code import","href":"/en/developer-docs/point-topup/mode-a-offline-import"},{"title":"Mode B: point code retrieval API","href":"/en/developer-docs/point-topup/mode-b-point-code-api"},{"title":"Mode C: direct fulfillment API","href":"/en/developer-docs/point-topup/mode-c-direct-fulfillment"},{"title":"Point Topup API common specifications","href":"/en/developer-docs/point-topup/api-common"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]}]},{"language":"ja","pages":[{"title":"ja","href":"/ja/developer-docs/core-concepts/payment-lifecycle"}]},{"language":"zh","pages":[{"title":"zh","href":"/zh/developer-docs/core-concepts/payment-lifecycle"}]}]},"basePath":"","title":"Payment lifecycle and order statuses - Waffo Documentation","buildId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","deploymentId":"dpl_Aw98ji4XvBsgtZwL1VrkUF9ehFqz","dynamics":[],"chunks":[]}