Understand the order and payment state machine, and fulfil only when the order is paid.
Available in🇮🇳 India
An order is the purchase; a payment is one attempt to pay for it. Create one order per purchase. Fulfil only when the order is paid. With partial payments, fulfil on order.paid, not on each payment.captured.
Entity
State
What it means
Order
created
No payment attempted yet.
Order
attempted
At least one payment attempted; none captured. It can still be paid.
Order
paid
A payment on it is captured. Fulfil now.
Payment
created
Attempt started; the customer is authenticating.
Payment
authorized
The bank approved it. Capture within your window, or it is refunded automatically.
Payment
captured
Payment complete; settles on your schedule.
Payment
failed
This attempt failed. If the bank confirms late, it moves to authorized (late authorisation).
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Razorpay","colors":{"primary":"#3395FF","light":"#66B2FF","dark":"#0B62C4"},"logo":{"light":"https://mintcdn.com/razorpay-881012b3/puuu1wI-BbW3rsp2/logo/light.svg?fit=max\u0026auto=format\u0026n=puuu1wI-BbW3rsp2\u0026q=85\u0026s=e0750375ee2004193a685f9f211963fe","dark":"https://mintcdn.com/razorpay-881012b3/puuu1wI-BbW3rsp2/logo/dark.svg?fit=max\u0026auto=format\u0026n=puuu1wI-BbW3rsp2\u0026q=85\u0026s=038b180f26d19ddb4eb40ede0cf84821","href":"https://razorpay.com/docs/"},"favicon":"https://mintcdn.com/razorpay-881012b3/puuu1wI-BbW3rsp2/favicon.png?fit=max\u0026auto=format\u0026n=puuu1wI-BbW3rsp2\u0026q=85\u0026s=9bebe786d3a21e9452fd2e31243e5fb3","api":{"playground":{"display":"interactive"},"mdx":{"auth":{"method":"basic"},"server":"https://api.razorpay.com"}},"navbar":{"links":[{"href":"https://razorpay.com/support/","label":"Support"},{"href":"https://razorpay.com/blog/","label":"Blog"}],"primary":{"type":"button","label":"Dashboard","href":"https://dashboard.razorpay.com/"}},"footer":{"socials":{"x":"https://x.com/Razorpay","linkedin":"https://www.linkedin.com/company/razorpay","github":"https://github.com/razorpay","youtube":"https://www.youtube.com/razorpay"},"links":[{"header":"Products","items":[{"label":"Payment Gateway","href":"https://razorpay.com/payment-gateway"},{"label":"Payment Links","href":"https://razorpay.com/payment-links"},{"label":"RazorpayX","href":"https://razorpay.com/x"},{"label":"Payroll","href":"https://razorpay.com/payroll"}]},{"header":"Resources","items":[{"label":"Documentation","href":"https://razorpay.com/docs"},{"label":"API Reference","href":"https://razorpay.com/docs/api"},{"label":"Support","href":"https://razorpay.com/support"},{"label":"Blog","href":"https://razorpay.com/blog"}]},{"header":"Company","items":[{"label":"About Us","href":"https://razorpay.com/about"},{"label":"Careers","href":"https://razorpay.com/jobs"},{"label":"Pricing","href":"https://razorpay.com/pricing"}]}]},"seo":{"metatags":{"canonical":"https://razorpay.com/docs"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"razorpay-881012b3","hasAudioNarration":false,"actualSubdomain":"razorpay-881012b3","customDomains":["razorpay.com"],"gitSource":{"type":"github","owner":"razorpay-vendor-integrations","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af6ba848e44a061408c20f5","clientVersion":"0.0.4128","searchFilterCounts":[{"language":"default","tag":"Payments","count":1652},{"language":"default","tag":"API Reference","count":772},{"language":"default","tag":"Payment Gateway","count":237},{"language":"default","tag":"Dashboard","count":214},{"language":"default","tag":"Subscriptions","count":190},{"language":"default","tag":"Payouts","count":158},{"language":"default","tag":"Payment Links","count":129},{"language":"default","tag":"Banking Plus","count":123},{"language":"default","tag":"Developer Tools","count":104},{"language":"default","tag":"Ecommerce Plugins","count":104}],"searchSettings":{"maxResults":8}},"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":"style.css","content":"#navbar ul.sidebar-group.mt-6,ul.sidebar-group.mt-6{margin-top:1rem}[data-component-part=\"callout-content\"]>[data-as=\"p\"]:first-child>strong,[data-component-part=\"callout-content\"]>[data-as=\"p\"]:first-child strong,[data-component-part=\"callout-content\"]>strong:first-child{font-size:1.125rem!important;font-weight:700!important;line-height:1.4!important}.error-code-cards [data-component-part=\"card-title\"]{display:inline-block!important;font-family:ui-monospace, \"SF Mono\", SFMono-Regular, Menlo, Consolas,\n \"Liberation Mono\", monospace!important;font-size:0.875rem!important;font-weight:600!important;line-height:1.3!important;padding:0.25rem 0.75rem!important;border-radius:9999px!important;background:rgba(107, 114, 128, 0.10)!important;border:1px solid rgba(107, 114, 128, 0.25)!important}.dark .error-code-cards [data-component-part=\"card-title\"]{background:rgba(255, 255, 255, 0.06)!important;border-color:rgba(255, 255, 255, 0.15)!important}[data-http-method]{font-weight:700!important;border-color:transparent!important}[data-http-method=\"get\"]{color:#15803d!important;background:rgba(74, 222, 128, 0.2)!important}[data-http-method=\"post\"]{color:#1d4ed8!important;background:rgba(96, 165, 250, 0.2)!important}[data-http-method=\"put\"]{color:#a16207!important;background:rgba(250, 204, 21, 0.2)!important}[data-http-method=\"patch\"]{color:#c2410c!important;background:rgba(251, 146, 60, 0.2)!important}[data-http-method=\"delete\"]{color:#b91c1c!important;background:rgba(248, 113, 113, 0.2)!important}.dark [data-http-method=\"get\"]{color:#4ade80!important}.dark [data-http-method=\"post\"]{color:#60a5fa!important}.dark [data-http-method=\"put\"]{color:#facc15!important}.dark [data-http-method=\"patch\"]{color:#fb923c!important}.dark [data-http-method=\"delete\"]{color:#f87171!important}ul.sidebar-group.mt-6{margin-top:5px}.sticky .panel:has(>.rzp-code-selector){display:grid;grid-auto-rows:minmax(0, 1fr);gap:1.5rem;overflow:hidden}.sticky:has(>.panel>.rzp-code-selector)>div:not(.panel){display:none}.rzp-code-selector{position:relative;display:flex;flex-direction:column;min-height:0;overflow:hidden;padding:0.125rem;border:1px solid rgba(3, 7, 18, 0.1);border-radius:1rem;background:rgb(244, 247, 250)}.dark .rzp-code-selector{border-color:rgba(255, 255, 255, 0.1);background:rgba(255, 255, 255, 0.05)}.rzp-code-selector-bar{display:flex;align-items:center;justify-content:space-between;gap:0.5rem;flex:none;flex-wrap:wrap;padding:0.25rem 4.25rem 0.375rem 0.5rem}.rzp-code-selector-field{position:relative;display:inline-flex;align-items:center;flex:0 0 auto}.rzp-code-selector-select{appearance:none;-webkit-appearance:none;min-width:max-content;padding:0.125rem 1.75rem 0.125rem 0.375rem;border:0;border-radius:0.5rem;background:transparent;color:var(--color-gray-600, #4b5563);font-size:0.75rem;font-weight:500;line-height:1.5rem;cursor:pointer}.dark .rzp-code-selector-select{color:var(--color-gray-300, #d1d5db)}.rzp-code-selector-select:hover{background:rgba(3, 7, 18, 0.05)}.dark .rzp-code-selector-select:hover{background:rgba(255, 255, 255, 0.08)}.rzp-code-selector-chevron{position:absolute;right:0.25rem;width:0.875rem;height:0.875rem;pointer-events:none;opacity:0.6}.rzp-code-selector-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain}.rzp-code-selector-body>.code-block{margin:0!important;min-width:0;border-radius:0 0 0.875rem 0.875rem;position:static!important}.rzp-code-selector-body [data-component-part=\"code-block-root\"]{border-radius:0 0 0.875rem 0.875rem}.rzp-code-selector-body .code-block-fade-overlay{display:none}.rzp-code-selector::after{content:\"\";position:absolute;inset:auto 0 0;height:2rem;border-radius:0 0 0.875rem 0.875rem;pointer-events:none;background:linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff)}.dark .rzp-code-selector::after{background:linear-gradient(to bottom, rgba(11, 12, 14, 0), rgb(11, 12, 14))}.rzp-code-selector>.rzp-code-selector-body>.code-block>.absolute{top:0.5rem;right:0.75rem}"},{"filePath":"static/docs-home/styles.css","href":"/docs/_mintlify/custom/razorpay-881012b3/5b8b615a0125ba7b/static/docs-home/styles.css"},{"filePath":"static/nav-more.css","content":"#navbar .nav-tabs{min-width:0;column-gap:1rem}#navbar .nav-tabs:not(.rzpn-more) .nav-tabs-item{display:block;flex:0 1 auto;min-width:3.5rem;min-width:calc-size(max-content, min(size, 5.25rem));white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:3rem}#navbar .nav-tabs:not(.rzpn-more) .nav-tabs-item>svg{display:inline-block;vertical-align:middle;margin:-2px 8px 0 0}#navbar .nav-tabs.rzpn-more .nav-tabs-item{flex:none;white-space:nowrap}#navbar .nav-tabs-item[data-rzpn-hidden]{display:none}#navbar .rzpn-more-wrap{position:relative;flex:none}#navbar .rzpn-more-wrap:not([hidden]){display:flex}#navbar .rzpn-more-menu:not([hidden]){display:flex;flex-direction:column}#navbar .rzpn-more-btn{background:none;border:0;padding:0;cursor:pointer;white-space:nowrap}#navbar .rzpn-more-menu{position:absolute;top:calc(100% - 4px);right:0;z-index:50;min-width:12rem;padding:6px;border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12)}#navbar .rzpn-more-menu a{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;white-space:nowrap}#navbar .rzpn-more-menu a:hover,#navbar .rzpn-more-menu a:focus-visible{background:rgba(127,127,127,.12)}"}],"page":{"pagePath":"payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship","slug":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship","pageMetadata":{"title":"Order-Payment Relationship","description":"Understand the order and payment state machine, and fulfil only when the order is paid.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship","hidden":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Understand the order and payment state machine, and fulfil only when the order is paid.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Heading,Table}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(`div`,{style:{display:`flex`,flexWrap:`wrap`,alignItems:`center`,gap:`0.35rem 0.9rem`,border:`1px solid rgba(128,128,128,0.28)`,borderRadius:`0.5rem`,padding:`0.45rem 0.75rem`,margin:`0 0 1.25rem`,fontSize:`0.875rem`},children:[_jsx(`span`,{style:{fontWeight:600},children:`Available in`}),_jsx(`span`,{children:`🇮🇳 India`})]}),`\n`,_jsxs(_components.p,{children:[`An order is the purchase; a payment is one attempt to pay for it. Create one order per purchase. Fulfil only when the order is `,_jsx(_components.code,{children:`paid`}),`. With partial payments, fulfil on `,_jsx(_components.code,{children:`order.paid`}),`, not on each `,_jsx(_components.code,{children:`payment.captured`}),`.`]}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Entity`}),_jsx(_components.th,{children:`State`}),_jsx(_components.th,{children:`What it means`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Order`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`created`})}),_jsx(_components.td,{children:`No payment attempted yet.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Order`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`attempted`})}),_jsx(_components.td,{children:`At least one payment attempted; none captured. It can still be paid.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Order`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`paid`})}),_jsx(_components.td,{children:`A payment on it is captured. Fulfil now.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Payment`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`created`})}),_jsx(_components.td,{children:`Attempt started; the customer is authenticating.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Payment`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`authorized`})}),_jsx(_components.td,{children:`The bank approved it. Capture within your window, or it is refunded automatically.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Payment`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`captured`})}),_jsx(_components.td,{children:`Payment complete; settles on your schedule.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Payment`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`failed`})}),_jsxs(_components.td,{children:[`This attempt failed. If the bank confirms late, it moves to `,_jsx(_components.code,{children:`authorized`}),` (late authorisation).`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Payment`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`refunded`})}),_jsx(_components.td,{children:`Fully or partly returned to the customer.`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`related-information`,children:`Related Information`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/payments/payment-gateway/s2s-integration/test-s2s/best-practices`,children:`Best Practices`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/payments/payment-gateway/s2s-integration/test-s2s/best-practices/payment-states-and-late-authorisation`,children:`Payment States and Late Authorisation`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/payments/payment-gateway/s2s-integration/test-s2s/orders`,children:`Orders`})}),`\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":"Order-Payment Relationship","description":"Understand the order and payment state machine, and fulfil only when the order is paid.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship","hidden":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Related Information","slug":"related-information","depth":3,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/razorpay-881012b3/ccee8c0e9edccd6b/country-switcher.js","/docs/_mintlify/custom/razorpay-881012b3/d04f2910efb9afc8/static/docs-home/script.js","/docs/_mintlify/custom/razorpay-881012b3/e78183bdfe89167a/ga4.js","/docs/_mintlify/custom/razorpay-881012b3/0ccbc66d726b02ea/static/nav-more.js","/docs/_mintlify/custom/razorpay-881012b3/fe07c43033bf9a19/hreflang.js"],"subdomain":"razorpay-881012b3","siteName":"Razorpay","title":"Order-Payment Relationship - Razorpay","navMaps":{"firstHrefInVersion":{"India":{"href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship","matchLevel":0},"Singapore":{"href":"/sg/home","matchLevel":4},"United States":{"href":"/us/home","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T08:15:04.499Z","gitLastModified":"2026-11-12T08:13:49.000Z","originalFileLocation":"payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Understand the order and payment state machine, and fulfil only when the order is paid.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Razorpay\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Order-Payment Relationship - Razorpay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Understand the order and payment state machine, and fulfil only when the order is paid.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Razorpay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://razorpay-881012b3.mintlify.site/docs/_mintlify/api/og/v2?division=Best+Practices\u0026amp;title=Order-Payment+Relationship\u0026amp;description=Understand+the+order+and+payment+state+machine%2C+and+fulfil+only+when+the+order+is+paid.\u0026amp;theme=a4f414a96152b37051aa45a2\u0026amp;signature=bae6b225cc4cb13a12ecf68d9b342405ebab8dfec89b61ee32b275d5593fac3f\">\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=\"Order-Payment Relationship - Razorpay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Understand the order and payment state machine, and fulfil only when the order is paid.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://razorpay-881012b3.mintlify.site/docs/_mintlify/api/og/v2?division=Best+Practices\u0026amp;title=Order-Payment+Relationship\u0026amp;description=Understand+the+order+and+payment+state+machine%2C+and+fulfil+only+when+the+order+is+paid.\u0026amp;theme=a4f414a96152b37051aa45a2\u0026amp;signature=bae6b225cc4cb13a12ecf68d9b342405ebab8dfec89b61ee32b275d5593fac3f\">\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/razorpay-881012b3/gWy2bjt_zV_OZ2iN/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Razorpay\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#3395FF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://razorpay.com/#organization\",\"name\":\"Razorpay\",\"url\":\"https://razorpay.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/razorpay-881012b3/puuu1wI-BbW3rsp2/logo/light.svg?fit=max\u0026auto=format\u0026n=puuu1wI-BbW3rsp2\u0026q=85\u0026s=e0750375ee2004193a685f9f211963fe\"}},{\"@type\":\"WebSite\",\"@id\":\"https://razorpay.com/docs#website\",\"name\":\"Razorpay\",\"url\":\"https://razorpay.com/docs\",\"publisher\":{\"@id\":\"https://razorpay.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship#webpage\",\"url\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship\",\"name\":\"Order-Payment Relationship\",\"description\":\"Understand the order and payment state machine, and fulfil only when the order is paid.\",\"dateModified\":\"2026-11-12T08:13:49.000Z\",\"isPartOf\":{\"@id\":\"https://razorpay.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"2. Test S2S Integration\",\"item\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Best Practices\",\"item\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Order-Payment Relationship\",\"item\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship#article\",\"headline\":\"Order-Payment Relationship\",\"name\":\"Order-Payment Relationship\",\"description\":\"Understand the order and payment state machine, and fulfil only when the order is paid.\",\"url\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship\",\"mainEntityOfPage\":{\"@id\":\"https://razorpay.com/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship#webpage\"},\"dateModified\":\"2026-11-12T08:13:49.000Z\",\"publisher\":{\"@id\":\"https://razorpay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://razorpay.com/docs#website\"}}]}\u003c/script>","agentPointerHref":"/docs/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship.md","siteName":"Razorpay","nav":{"global":null,"versions":[{"version":"India","default":true,"tabs":[{"tab":"Home","icon":"house","pages":[{"title":"Home","href":"/home"}]},{"tab":"Payments","icon":"credit-card","pages":[{"title":"Payments","href":"/payments"}]},{"tab":"Engage","icon":"bullhorn","pages":[{"title":"Engage","href":"/engage"}]},{"tab":"POS","icon":"cash-register","pages":[{"title":"POS","href":"/pos"}]},{"tab":"Banking Plus","icon":"building-columns","pages":[{"title":"Banking Plus","href":"/x"}]},{"tab":"Payroll","icon":"money-check-dollar","pages":[{"title":"Payroll","href":"/payroll"}]},{"tab":"Partners","icon":"handshake","pages":[{"title":"Partners","href":"/partners"}]},{"tab":"API Reference","icon":"code","pages":[{"title":"API Reference","href":"/api"}]},{"tab":"Developer Tools","icon":"screwdriver-wrench","pages":[{"title":"Developer Tools","href":"/developer-tools"}]},{"tab":"RBI Directive on Recurring Card Payments","hidden":true,"pages":[{"title":"RBI Directive on Recurring Card Payments","href":"/announcements/rbi-card-mandate-guidelines/recurring-payments"}]},{"tab":"RBI Directive on Card Payments for Subscriptions","hidden":true,"pages":[{"title":"RBI Directive on Card Payments for Subscriptions","href":"/announcements/rbi-card-mandate-guidelines/subscriptions"}]},{"tab":"Announcement Regarding TLS","hidden":true,"pages":[{"title":"Announcement Regarding TLS","href":"/announcements/tls"}]},{"tab":"Apple Pay S2S Flows","hidden":true,"pages":[{"title":"Apple Pay S2S Flows","href":"/payments/payment-methods/apple-pay/server-to-server/encrypted-token-flow"}]},{"tab":"Apple Pay S2S Integration","hidden":true,"pages":[{"title":"Apple Pay S2S Integration","href":"/payments/payment-methods/apple-pay/s2s-integration"}]},{"tab":"Bill Payments (BBPS)","hidden":true,"pages":[{"title":"Bill Payments (BBPS)","href":"/api/bills/bill-payments"}]},{"tab":"Products","hidden":true,"pages":[{"title":"Products","href":"/api/orders/products"}]},{"tab":"Terms and Conditions APIs","hidden":true,"pages":[{"title":"Terms and Conditions APIs","href":"/api/partners/terms-conditions"}]},{"tab":"Card Fingerprints (or PAR) API","hidden":true,"pages":[{"title":"Card Fingerprints (or PAR) API","href":"/api/payments/cards/fingerprints"}]},{"tab":"Complaints","hidden":true,"pages":[{"title":"Complaints","href":"/api/payments/tpap-pro/complaints-flow"}]},{"tab":"Customer Onboarding","hidden":true,"pages":[{"title":"Customer Onboarding","href":"/api/payments/tpap-pro/customer-onboarding"}]},{"tab":"Accounts Management","hidden":true,"pages":[{"title":"Accounts Management","href":"/api/payments/tpap-pro/funds-account-management"}]},{"tab":"UPI Lite","hidden":true,"pages":[{"title":"UPI Lite","href":"/api/payments/tpap-pro/fundsource-lite"}]},{"tab":"Mandates","hidden":true,"pages":[{"title":"Mandates","href":"/api/payments/tpap-pro/mandate-flow"}]},{"tab":"Payments (API)","hidden":true,"pages":[{"title":"Payments (API)","href":"/api/payments/tpap-pro/payments-flow"}]},{"tab":"UPI Number","hidden":true,"pages":[{"title":"UPI Number","href":"/api/payments/tpap-pro/upi-number"}]},{"tab":"QR Codes GST APIs","hidden":true,"pages":[{"title":"QR Codes GST APIs","href":"/api/qr-codes/gst"}]},{"tab":"QR Codes (Image Content)","hidden":true,"pages":[{"title":"QR Codes (Image Content)","href":"/api/qr-codes/image-content"}]},{"tab":"Razorpay App Store - Discover App Integrations and Extensions","hidden":true,"pages":[{"title":"Razorpay App Store - Discover App Integrations and Extensions","href":"/app-store"}]},{"tab":"Razorpay POS Error Codes and Troubleshooting","hidden":true,"pages":[{"title":"Razorpay POS Error Codes and Troubleshooting","href":"/errors/pos"}]},{"tab":"About Aggregators","hidden":true,"pages":[{"title":"About Aggregators","href":"/partners/aggregators"}]},{"tab":"COD \u0026 Magic Checkout (formerly Checkout360)","hidden":true,"pages":[{"title":"COD \u0026 Magic Checkout (formerly Checkout360)","href":"/payments/cod-magic-checkout"}]},{"tab":"Configuration","hidden":true,"pages":[{"title":"Configuration","href":"/payments/dashboard/account-settings/configuration"}]},{"tab":"Dynamic Convenience Fees","hidden":true,"pages":[{"title":"Dynamic Convenience Fees","href":"/payments/dynamic-convenience-fees"}]},{"tab":"Integrate Razorpay Payment Button with Ghost CMS","hidden":true,"pages":[{"title":"Integrate Razorpay Payment Button with Ghost CMS","href":"/payments/ecommerce-plugins/ghost-integration"}]},{"tab":"About Insights","hidden":true,"pages":[{"title":"About Insights","href":"/payments/insights"}]},{"tab":"Integrate With Razorpay Import Flow - Custom Integration","hidden":true,"pages":[{"title":"Integrate With Razorpay Import Flow - Custom Integration","href":"/payments/international-payments/accept-international-payments-from-indian-customers/custom-integration"}]},{"tab":"About Razorpay Import Flow Web Standard Integration (Payments)","hidden":true,"pages":[{"title":"About Razorpay Import Flow Web Standard Integration (Payments)","href":"/payments/international-payments/accept-international-payments-from-indian-customers/import-flow/standard-integration"}]},{"tab":"Integrate With Razorpay Import Flow - S2S Integration","hidden":true,"pages":[{"title":"Integrate With Razorpay Import Flow - S2S Integration","href":"/payments/international-payments/accept-international-payments-from-indian-customers/s2s-integration"}]},{"tab":"About Razorpay Import Flow Web Standard Integration (International Payments)","hidden":true,"pages":[{"title":"About Razorpay Import Flow Web Standard Integration (International Payments)","href":"/payments/international-payments/accept-international-payments-from-indian-customers/standard-integration"}]},{"tab":"Outward Remittances for Education and Travel Payments","hidden":true,"pages":[{"title":"Outward Remittances for Education and Travel Payments","href":"/payments/international-payments/outward-remittances"}]},{"tab":"Risk Analytics Dashboard","hidden":true,"pages":[{"title":"Risk Analytics Dashboard","href":"/payments/international-payments/risk-visibility-dashboard"}]},{"tab":"Magic Checkout APIs","hidden":true,"pages":[{"title":"Magic Checkout APIs","href":"/payments/magic-checkout/apis"}]},{"tab":"RTO Intelligence","hidden":true,"pages":[{"title":"RTO Intelligence","href":"/payments/magic-checkout/rto-intelligence"}]},{"tab":"Integrate With Android Custom SDK","hidden":true,"pages":[{"title":"Integrate With Android Custom SDK","href":"/payments/payment-gateway/android-integration/custom"}]},{"tab":"Prerequisites (Payments)","hidden":true,"pages":[{"title":"Prerequisites (Payments)","href":"/payments/payment-gateway/ecommerce-plugins/shopify-razorpay-secure"}]},{"tab":"Eligibility Check API","hidden":true,"pages":[{"title":"Eligibility Check API","href":"/payments/payment-gateway/emi²/eligibility-check"}]},{"tab":"Integrate With Flutter Custom SDK","hidden":true,"pages":[{"title":"Integrate With Flutter Custom SDK","href":"/payments/payment-gateway/flutter-integration/custom"}]},{"tab":"Integrate With iOS Custom SDK","hidden":true,"pages":[{"title":"Integrate With iOS Custom SDK","href":"/payments/payment-gateway/ios-integration/custom"}]},{"tab":"Handle Payment Exceptions with Rainy Day Kit","hidden":true,"pages":[{"title":"Handle Payment Exceptions with Rainy Day Kit","href":"/payments/payment-gateway/rainy-day"}]},{"tab":"Integrate With React Native Custom SDK","hidden":true,"pages":[{"title":"Integrate With React Native Custom SDK","href":"/payments/payment-gateway/react-native-integration/custom"}]},{"tab":"Server-to-Server Integration","hidden":true,"pages":[{"title":"Server-to-Server Integration","description":"Directly integrate your server with Razorpay Payment Gateway using S2S Redirect, JSON V1, or JSON V2 APIs.","href":"/payments/payment-gateway/s2s-integration"},{"title":"Best Practices for S2S Integration","description":"Check the S2S best practices to follow for smooth integration and payment experience.","href":"/payments/payment-gateway/s2s-integration/best-practices"},{"group":"1. Build Integration","pages":[{"group":"S2S JSON V2 Integration","root":{"title":"About Server-to-Server JSON V2 Integration","description":"Use S2S JSON V2 API to integrate with Razorpay Payment Gateway.","href":"/payments/payment-gateway/s2s-integration/json/v2"},"pages":[{"title":"Methods API","description":"Fetch payment methods configured for your account using Razorpay APIs.","href":"/payments/payment-gateway/s2s-integration/payment-methods/methods-api"},{"group":"One-time Payment Methods","pages":[{"group":"UPI Payments","root":{"title":"About UPI Payments","description":"Accept S2S UPI payments from your customers.","href":"/payments/payment-gateway/s2s-integration/payment-methods/upi"},"pages":[{"title":"S2S UPI Intent Flow","description":"Enable payments on your apps using the UPI Intent flow applicable in server-to-server integration.","href":"/payments/payment-gateway/s2s-integration/payment-methods/upi/intent"},{"title":"S2S UPI Collect Flow","description":"Collect UPI payments from your customers using the Razorpay S2S UPI Collect Flow API.","href":"/payments/payment-gateway/s2s-integration/payment-methods/upi/collect"},{"title":"Customer Fee Bearer on Credit Card on UPI","description":"Accept S2S UPI payments from your customers.","href":"/payments/payment-gateway/s2s-integration/payment-methods/upi/cfb-cc-upi"},{"group":"S2S Saved VPA Integration","root":{"title":"About Saved VPA in Server-to-Server Integration","description":"Store VPA details entered by your customers as tokens that can be used later for repeated transactions on your website.","href":"/payments/payment-gateway/s2s-integration/payment-methods/upi/saved-vpa"},"pages":[{"title":"Build Integration","sidebarTitle":"Tokens","description":"Steps to integrate tokens in the payment flow.","href":"/payments/payment-gateway/s2s-integration/payment-methods/upi/saved-vpa/build-integration"}]},{"group":"UPI TPV","pages":[{"title":"1. Create the Authorisation Transaction","description":"Learn how to create an authorisation transaction for UPI.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-tpv/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve tokens using Razorpay APIs to create subsequent payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-tpv/tokens"},{"title":"3. Create Subsequent Payments","description":"Create and charge subsequent payments using Razorpay APIs after the customer's selected payment method is authorised.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-tpv/subsequent-payments"}]}]},{"group":"Cards","pages":[{"title":"MOTO Payments - S2S","description":"Know how you can configure MOTO payments on your S2S integration.","href":"/payments/payment-gateway/s2s-integration/payment-methods/moto"},{"title":"3DS2 Protocol for Card Payments","description":"Razorpay supports the 3DS2 protocol for card payments and helps in adding additional layers of authentication to prevent fraud.","href":"/payments/payment-gateway/s2s-integration/payment-methods/cards/3ds2.0"},{"group":"Authentication Type","pages":[{"title":"Native OTP","description":"Use the Razorpay Native OTP feature to support OTPs at the checkout without redirecting customers to the ACS page of the issuing bank.","href":"/payments/payment-gateway/s2s-integration/payment-methods/cards/authentication-type/native-otp"}]},{"title":"CVV-less Flow for Card Payments","description":"Save customer card details as tokens and enable CVV-less payment flows for customers via Razorpay.","href":"/payments/payment-gateway/s2s-integration/payment-methods/cvv-less-flow"}]},{"title":"Build Integration for Netbanking","sidebarTitle":"Netbanking","description":"Steps to integrate S2S JSON API and accept payments using netbanking.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/netbanking"},{"title":"Wallets","description":"Integrate Wallets with Razorpay to accept payments.","href":"/payments/payment-gateway/s2s-integration/payment-methods/wallet"},{"group":"Card EMI","pages":[{"title":"HSBC Credit Card","description":"Accept payment from your customers using HSBC Credit Cards.","href":"/payments/payment-gateway/s2s-integration/payment-methods/emi/hsbc"},{"title":"OneCard Credit Card EMI","description":"Accept payment from your customers using OneCard Credit Card.","href":"/payments/payment-gateway/s2s-integration/payment-methods/emi/one-card"}]},{"title":"ACH Direct Debit","description":"Steps to integrate S2S JSON API and accept payments using ACH Direct Debit.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/ach"},{"group":"PayPal","root":{"title":"PayPal","description":"Integrate PayPal with Razorpay to accept International Payments.","href":"/payments/payment-gateway/s2s-integration/payment-methods/paypal"},"pages":[{"title":"Supported Currencies","description":"List of currencies supported for PayPal.","href":"/payments/payment-gateway/s2s-integration/payment-methods/paypal/supported-currencies"}]},{"group":"Cards (New Integration)","root":{"title":"1. Build Integration for Cards (New Integration)","description":"Steps to integrate S2S JSON API and accept payments using cards.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/cards"},"pages":[{"title":"3DS 2 Migration Guide - Browser Flow Cards Integration","description":"If you integrated with our APIs before October 15, 2022, you should make the following changes to your integration to accept card payments with the 3DS 2 protocol.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/cards/browser"},{"title":"3DS 2 Migration Guide - EMV 3DS 2 SDK Cards Integration","description":"Steps to integrate EMV 3DS 2 SDK and accept payments using cards.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/cards/evm-sdk"},{"title":"3DS2 Migration Guide for Existing S2S Cards Integration","description":"If you integrated with our APIs before October 15, 2022, you should make the following changes to your integration to accept card payments with the 3DS2 protocol.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/cards/migrate-3ds2.0"}]},{"group":"International Cards","pages":[{"title":"Build Integration - E-commerce","description":"Steps to integrate S2S JSON API and accept payments using international cards, with Razorpay Chargeback Guarantee Program.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/international-cards/e-commerce"},{"title":"Build Integration - Hotel","description":"Steps to integrate S2S JSON API and accept payments using international cards, with Razorpay Chargeback Guarantee Program.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/international-cards/hotel"},{"title":"Build Integration - Travel","description":"Steps to integrate S2S JSON API and accept payments using international cards, with Razorpay Chargeback Guarantee Program.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/international-cards/travel"}]},{"group":"UPI (New Integration)","pages":[{"title":"UPI Collect","description":"Steps to integrate S2S JSON API and accept payments using UPI Collect","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/upi/collect"},{"title":"UPI Intent","description":"Steps to integrate S2S JSON API and accept payments using UPI Intent","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/upi/intent"}]}]},{"group":"App-based Methods","pages":[{"title":"CRED Pay","description":"Accept payments from your customer using CRED on your website or app.","href":"/payments/payment-gateway/s2s-integration/payment-methods/apps/cred"}]},{"group":"Recurring Methods","pages":[{"group":"Card Recurring","pages":[{"title":"1. Create the Authorisation Transaction","description":"Create an authorisation transaction for cards using Razorpay APIs.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/cards/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve tokens using Razorpay APIs to create subsequent payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/cards/tokens"},{"title":"3. Create Subsequent Payments","description":"Create and charge subsequent payments using Razorpay APIs after the customer's selected payment method is successfully authorised.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/cards/subsequent-payments"},{"title":"Customer Fee Bearer (CFB) for Recurring Card Payments","description":"Implement Customer Fee Bearer (CFB) model for recurring card payments to pass payment gateway fees to customers with transparent fee calculation.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/cards/customer-fee-bearer"}]},{"group":"eMandate","pages":[{"title":"1. Create the Authorisation Transaction","description":"Create an authorisation transaction for emandate to complete your customer's authorization using Aadhaar, netbanking or a debit card.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/emandate/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve tokens using Razorpay APIs to create subsequent payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/emandate/tokens"},{"title":"3. Create Subsequent Payments","description":"Create and charge subsequent payments using Razorpay APIs after the customer's selected payment method is successfully authorised.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/emandate/subsequent-payments"},{"title":"Register Emandate and Charge First Payment Together","description":"Register a customer's mandate and charge them the first recurring payment as part of the same transaction via Emandate.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/emandate/auto-debit"}]},{"group":"Paper NACH","pages":[{"title":"1. Create the Authorisation Transaction","description":"Create an authorisation transaction for NACH using Razorpay APIs.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/paper-nach/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve tokens using Razorpay APIs to create subsequent payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/paper-nach/tokens"},{"title":"3. Create Subsequent Payments","description":"Create and charge subsequent payments using Razorpay APIs after the customer's selected payment method is successfully authorised.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/paper-nach/subsequent-payments"},{"title":"Register NACH and Charge First Payment Together","description":"Register a customer's mandate and charge them the first recurring payment as part of the same transaction via paper NACH.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/paper-nach/auto-debit"}]},{"group":"UPI Autopay","root":{"title":"UPI Autopay","description":"Learn about UPI Autopay, supported use cases, mandate limits and how to integrate with Razorpay.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi"},"pages":[{"title":"1. Initiate Mandate Registration","description":"Set up a UPI Autopay mandate using Razorpay APIs or a Registration Link.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve, manage and cancel tokens using Razorpay APIs for UPI Autopay mandates.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi/tokens"},{"title":"3. Create Subsequent Payments","description":"Create and charge subsequent payments using Razorpay APIs after the customer's mandate is successfully registered.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi/subsequent-payments"},{"title":"4. Webhooks","description":"Set up webhook listeners to receive real-time notifications for UPI Autopay mandate and payment events.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi/webhooks"}]},{"group":"UPI Reserve Pay","pages":[{"title":"Integrate UPI Reserve Pay","description":"Integrate UPI Reserve Pay (SBMD) APIs to block and debit funds using a single customer authorisation.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-reserve-pay/integration-steps"},{"title":"Manage Mandates and Tokens","description":"Track mandate funds, cancel tokens and delete tokens for UPI Reserve Pay (SBMD).","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-reserve-pay/manage"},{"title":"Webhooks","description":"Subscribe to UPI Reserve Pay webhook events to track token and mandate status.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-reserve-pay/webhooks"}]},{"group":"UPI OTM","pages":[{"title":"1. Create the Authorisation Transaction","description":"Steps to create an authorisation transaction for UPI one time mandate.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-otm/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve tokens using Razorpay APIs to create subsequent payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-otm/tokens"},{"title":"3. Create a One Time Payment","description":"Create and charge a one time payment using Razorpay APIs.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-otm/one-time-payment"},{"title":"Frequently Asked Questions (FAQs)","description":"Find answers to frequently asked questions about UPI One-time Mandate.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/upi-otm/faqs"}]},{"group":"Wallets","pages":[{"title":"1. Create the Authorisation Transaction","description":"Create an authorisation transaction for cards using Razorpay APIs.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/wallets/authorization-transaction"},{"title":"2. Fetch and Manage Tokens","description":"Retrieve tokens using Razorpay APIs to create subsequent payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/wallets/tokens"},{"title":"3. Create Subsequent Payments","description":"Create and charge subsequent payments using Razorpay APIs after the customer's selected payment method is successfully authorised.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/wallets/subsequent-payments"}]},{"title":"Postman Collection","description":"Download the Postman collection for Razorpay Recurring Payments.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/postman-collection"},{"title":"Webhooks","description":"Set up webhooks for Recurring Payments, check available webhook events and sample payloads for these events.","href":"/payments/payment-gateway/s2s-integration/recurring-payments/webhooks"}]}]},{"group":"S2S JSON V1 Integration","root":{"title":"About Server-to-Server JSON V1 Integration","description":"Use S2S JSON V1 API to integrate with Razorpay Payment Gateway.","href":"/payments/payment-gateway/s2s-integration/json/v1"},"pages":[{"group":"Cards (New Integration)","root":{"title":"1. Build Integration for Cards (New Integration)","description":"Steps to integrate S2S JSON V1 and accept payments using cards.","href":"/payments/payment-gateway/s2s-integration/json/v1/build-integration/cards"},"pages":[{"title":"3DS2 Migration Guide for Existing S2S Cards Integration","description":"If you integrated with our APIs before October 15, 2022, you should make the following changes to your integration to accept card payments with the 3DS2 protocol.","href":"/payments/payment-gateway/s2s-integration/json/v1/build-integration/cards/migrate-3ds2.0"}]},{"group":"UPI","pages":[{"title":"UPI Collect","description":"Steps to integrate S2S JSON V1 and accept payments using UPI Collect","href":"/payments/payment-gateway/s2s-integration/json/v1/build-integration/upi/collect"},{"title":"UPI Intent","description":"Steps to integrate S2S JSON V1 and accept payments using UPI Intent.","href":"/payments/payment-gateway/s2s-integration/json/v1/build-integration/upi/intent"}]}]},{"title":"Single Integration API","description":"Create Order and Payments in a single API call.","href":"/payments/payment-gateway/s2s-integration/json/v2/build-integration/single-integration-api"},{"group":"S2S Redirect Integration","root":{"title":"About Server-to-Server Redirect Integration","description":"Use S2S Redirect API to integrate with Razorpay Payment Gateway.","href":"/payments/payment-gateway/s2s-integration/redirect"},"pages":[{"group":"1. Build Integration","root":{"title":"1. Build Integration","description":"Steps to integrate your Web application with the Razorpay S2S Redirect API.","href":"/payments/payment-gateway/s2s-integration/redirect/build-integration"},"pages":[{"group":"Cards","root":{"title":"1. Build Integration","description":"Steps to integrate S2S Redirect API and accept payments using cards.","href":"/payments/payment-gateway/s2s-integration/redirect/build-integration/cards"},"pages":[{"title":"3DS2 Migration Guide for Existing S2S Cards Integration","description":"Integration changes needed to accept card payments with the 3DS2 protocol.","href":"/payments/payment-gateway/s2s-integration/redirect/build-integration/cards/migrate-3ds2.0"}]}]},{"title":"2. Test Integration","description":"Steps to test if the integration was successful.","href":"/payments/payment-gateway/s2s-integration/redirect/test-integration"},{"title":"3. Go-live Checklist","description":"Start accepting Live Payments through Razorpay Payment Gateway.","href":"/payments/payment-gateway/s2s-integration/redirect/go-live-checklist"}]},{"title":"Subscriptions - S2S Integration","description":"Create and fetch Plans and Subscriptions. Create and delete Add-ons using Razorpay Subscriptions APIs.","href":"/payments/payment-gateway/s2s-integration/subscriptions"}]},{"group":"2. Test S2S Integration","pages":[{"title":"Overview","description":"Test your Server-to-Server integration end to end in Test Mode against simulated banks, networks and NPCI before you go live.","href":"/payments/payment-gateway/s2s-integration/test-s2s"},{"title":"Test Order Creation","description":"Test order creation, the order lifecycle, idempotent retries and request validation for your S2S integration in Test Mode.","href":"/payments/payment-gateway/s2s-integration/test-s2s/orders"},{"group":"One Time Method Testing","pages":[{"title":"UPI Intent: How to Test Your Integration","description":"Test one-time UPI Intent payments on your S2S integration in Test Mode, including success and failure scenarios.","href":"/payments/payment-gateway/s2s-integration/test-s2s/one-time/upi-intent"},{"title":"UPI QR: How to Test Your Integration","description":"Test one-time UPI QR payments on your S2S integration in Test Mode, including success and failure scenarios.","href":"/payments/payment-gateway/s2s-integration/test-s2s/one-time/upi-qr"},{"title":"UPI Collect: How to Test Your Integration","description":"Test one-time UPI Collect payments on your S2S integration in Test Mode, including success and failure scenarios.","href":"/payments/payment-gateway/s2s-integration/test-s2s/one-time/upi-collect"}]},{"group":"Recurring Method Testing","pages":[{"title":"UPI Autopay Intent: How to Test Your Integration","description":"Test UPI Autopay mandate registration and subsequent debits through Intent on your S2S integration in Test Mode.","href":"/payments/payment-gateway/s2s-integration/test-s2s/recurring/upi-autopay-intent"},{"title":"UPI Autopay QR: How to Test Your Integration","description":"Test UPI Autopay mandate registration and subsequent debits through QR on your S2S integration in Test Mode.","href":"/payments/payment-gateway/s2s-integration/test-s2s/recurring/upi-autopay-qr"},{"title":"UPI Autopay Collect: How to Test Your Integration","description":"Test UPI Autopay mandates registered through Collect in Test Mode, including coupled and decoupled debits, token states and failure scenarios.","href":"/payments/payment-gateway/s2s-integration/test-s2s/recurring/upi-autopay-collect"}]},{"group":"Best Practices","root":{"title":"Best Practices","description":"Test the best practices for your S2S integration so customers are charged once, orders are fulfilled only after payment and nothing is missed.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices"},"pages":[{"title":"Integrate the Right Way","description":"Use S2S JSON V2 correctly: create an order first, forward the customer's real values and act on the webhook.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/integrate-the-right-way"},{"title":"Order-Payment Relationship","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/order-payment-relationship"},{"title":"Integration Health: Webhooks and Fetch APIs","description":"Build one state machine fed by webhooks and fetch APIs, with the scenarios, gaps and failures to test.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/webhooks-and-fetch-apis"},{"title":"Payment States and Late Authorisation","description":"Keep orders open after payment.failed and accept a later success, with the scenarios, gaps and failures to test.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/payment-states-and-late-authorisation"},{"title":"Error Handling","description":"Branch on error.code, reason and source, with the scenarios, gaps and failures to test for each method.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/error-handling"},{"title":"Retries and Idempotency","description":"Make every retried call safe to repeat, using unique_receipt on orders, the same order on retried payments and idempotency keys on refunds.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/retries-and-idempotency"},{"title":"Downtime Handling","description":"Hide methods that are down and restore them on resolved, using the Payment Downtime webhooks and API.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/downtime-handling"},{"title":"Security","description":"Protect your keys and verify every callback and webhook signature, with the scenarios and failures to test.","href":"/payments/payment-gateway/s2s-integration/test-s2s/best-practices/security"}]},{"title":"Refunds: How to Test Your Integration","description":"Test Normal and Instant refunds on your S2S integration in Test Mode, including failures and the Instant-to-Normal fallback.","href":"/payments/payment-gateway/s2s-integration/test-s2s/refunds"}]},{"group":"3. Go Live Checklist","pages":[{"title":"Before Going Live","description":"Start accepting Live Payments through Razorpay Payment Gateway.","href":"/payments/payment-gateway/s2s-integration/json/v1/go-live-checklist"}]},{"group":"Features","pages":[{"title":"Address Verification System","description":"Use Razorpay address verification system to identify and reduce the risk of fraud in international payments.","href":"/payments/payment-gateway/s2s-integration/features/address-verification-system"},{"title":"OTP-Assist","description":"Steps to enable OTP auto-read and auto-submit on your Android app for payments that rely on OTP for completion.","href":"/payments/payment-gateway/s2s-integration/features/otp-assist"}]}]},{"tab":"Web Integration - Razorpay Custom Checkout","hidden":true,"pages":[{"title":"Web Integration - Razorpay Custom Checkout","href":"/payments/payment-gateway/web-integration/custom/build-integration"}]},{"tab":"PhonePe Switch Integration","hidden":true,"pages":[{"title":"PhonePe Switch Integration","href":"/payments/payment-gateway/web-integration/custom/phonepe-switch"}]},{"tab":"UPI Intent on Mobile Web","hidden":true,"pages":[{"title":"UPI Intent on Mobile Web","href":"/payments/payment-gateway/web-integration/custom/payment-methods/upi-intent-mweb"}]},{"tab":"Save customer card details on Custom Checkout","hidden":true,"pages":[{"title":"Save customer card details on Custom Checkout","href":"/payments/payment-gateway/web-integration/custom/features/saved-cards-old"}]},{"tab":"Prerequisites (Payment Gateway)","hidden":true,"pages":[{"title":"Prerequisites (Payment Gateway)","href":"/payments/payment-gateway/web-integration/hosted"}]},{"tab":"Chargeback on Custom Checkout","hidden":true,"pages":[{"title":"Chargeback on Custom Checkout","href":"/payments/payment-gateway/web-integration/custom/chargeback"}]},{"tab":"Web Integration - Razorpay Standard Checkout","hidden":true,"pages":[{"title":"Web Integration - Razorpay Standard Checkout","href":"/payments/payment-gateway/web-integration/standard/chargeback"}]},{"tab":"Standard Web Integration - Configurability of Payment Methods","hidden":true,"pages":[{"title":"Standard Web Integration - Configurability of Payment Methods","href":"/payments/payment-gateway/web-integration/standard/configure-restrict-payment-methods"}]},{"tab":"About Webview for Mobile Apps","hidden":true,"pages":[{"title":"About Webview for Mobile Apps","href":"/payments/payment-gateway/web-integration/standard/webview"}]},{"tab":"Alipay","hidden":true,"pages":[{"title":"Alipay","href":"/payments/payment-methods/alipay"}]},{"tab":"Pay with Reward Points","hidden":true,"pages":[{"title":"Pay with Reward Points","href":"/payments/payment-methods/apps/reward-points"}]},{"tab":"BharatQR","hidden":true,"pages":[{"title":"BharatQR","href":"/payments/payment-methods/bharatqr"}]},{"tab":"Authentication Type for Cards - Native OTP","hidden":true,"pages":[{"title":"Authentication Type for Cards - Native OTP","href":"/payments/payment-methods/cards/authentication/native-otp"}]},{"tab":"Dynamic Currency Conversion","hidden":true,"pages":[{"title":"Dynamic Currency Conversion","href":"/payments/payment-methods/cards/dynamic-currency-conversion"}]},{"tab":"Google Pay Card Payments","hidden":true,"pages":[{"title":"Google Pay Card Payments","href":"/payments/payment-methods/cards/google-pay"}]},{"tab":"Tokenisation FAQs","hidden":true,"pages":[{"title":"Tokenisation FAQs","href":"/payments/payment-methods/cards/token-hq"}]},{"tab":"DOKU, OVO, and LinkAja","hidden":true,"pages":[{"title":"DOKU, OVO, and LinkAja","href":"/payments/payment-methods/doku-ovo-linkaja"}]},{"tab":"eCOD","hidden":true,"pages":[{"title":"eCOD","href":"/payments/payment-methods/ecod"}]},{"tab":"About Instant EMI Cardless","hidden":true,"pages":[{"title":"About Instant EMI Cardless","href":"/payments/payment-methods/emi/cardless-emi/instant-emi"}]},{"tab":"International Payments - Giropay","hidden":true,"pages":[{"title":"International Payments - Giropay","href":"/payments/payment-methods/giropay"}]},{"tab":"GoPay","hidden":true,"pages":[{"title":"GoPay","href":"/payments/payment-methods/gopay"}]},{"tab":"GrabPay (Malaysia)","hidden":true,"pages":[{"title":"GrabPay (Malaysia)","href":"/payments/payment-methods/grabpay-my"}]},{"tab":"GrabPay (Singapore)","hidden":true,"pages":[{"title":"GrabPay (Singapore)","href":"/payments/payment-methods/grabpay-sg"}]},{"tab":"Klarna","hidden":true,"pages":[{"title":"Klarna","href":"/payments/payment-methods/klarna"}]},{"tab":"International Payments - POLi","hidden":true,"pages":[{"title":"International Payments - POLi","href":"/payments/payment-methods/poli"}]},{"tab":"International Payments - Sofort","hidden":true,"pages":[{"title":"International Payments - Sofort","href":"/payments/payment-methods/sofort"}]},{"tab":"International Payments - Trustly","hidden":true,"pages":[{"title":"International Payments - Trustly","href":"/payments/payment-methods/trustly"}]},{"tab":"UPI QR Code","hidden":true,"pages":[{"title":"UPI QR Code","href":"/payments/payment-methods/upi-qr"}]},{"tab":"Google Spot Platform Integration","hidden":true,"pages":[{"title":"Google Spot Platform Integration","href":"/payments/payment-methods/upi/google-pay/spot-platform-integration"}]},{"tab":"Send GST information in UPI transaction flows","hidden":true,"pages":[{"title":"Send GST information in UPI transaction flows","href":"/payments/payment-methods/upi/gst-on-upi"}]},{"tab":"Zip","hidden":true,"pages":[{"title":"Zip","href":"/payments/payment-methods/zip"}]},{"tab":"Track Payments Using Google Tracking ID and Facebook Pixel","hidden":true,"pages":[{"title":"Track Payments Using Google Tracking ID and Facebook Pixel","href":"/payments/payment-pages/plugins-add-ons"}]},{"tab":"Recurring Payments","hidden":true,"pages":[{"title":"Recurring Payments","href":"/payments/recurring-payments"}]},{"tab":"Account Code","hidden":true,"pages":[{"title":"Account Code","href":"/payments/route/account-code"}]},{"tab":"Direct Settlements","hidden":true,"pages":[{"title":"Direct Settlements","href":"/payments/settlements/direct"}]},{"tab":"Update Expiry Date for an Individual Customer Identifier","hidden":true,"pages":[{"title":"Update Expiry Date for an Individual Customer Identifier","href":"/payments/smart-collect/update-expiry"}]},{"tab":"Razorpay Smart Collect","hidden":true,"pages":[{"title":"Razorpay Smart Collect","href":"/payments/smart-collect/va-vpa-qr"}]},{"tab":"Third-Party Validation (TPV) - Custom Integration","hidden":true,"pages":[{"title":"Third-Party Validation (TPV) - Custom Integration","href":"/payments/third-party-validation/custom-integration"}]},{"tab":"Third-Party Validation (TPV) - S2S Integration","hidden":true,"pages":[{"title":"Third-Party Validation (TPV) - S2S Integration","href":"/payments/third-party-validation/s2s-integration"}]},{"tab":"About TPAP Pro","hidden":true,"pages":[{"title":"About TPAP Pro","href":"/payments/tpap-pro"}]},{"tab":"Razorpay White Label Wallet","hidden":true,"pages":[{"title":"Razorpay White Label Wallet","href":"/payments/wallet"}]},{"tab":"Integrate with HRMS Software","hidden":true,"pages":[{"title":"Integrate with HRMS Software","href":"/payroll/integrations/hrms"}]},{"tab":"Custom Payroll \u0026 Attendance Cycle","hidden":true,"pages":[{"title":"Custom Payroll \u0026 Attendance Cycle","href":"/payroll/quickstart/custom-cycle"}]},{"tab":"FnF Hold Salary Pay Compliance","hidden":true,"pages":[{"title":"FnF Hold Salary Pay Compliance","href":"/payroll/run-payroll/fnf"}]},{"tab":"Testing SSR","hidden":true,"pages":[{"title":"Testing SSR","href":"/test-ssr"}]},{"tab":"Sub-Merchant Onboarding Webhooks - Sample Payload","hidden":true,"pages":[{"title":"Sub-Merchant Onboarding Webhooks - Sample Payload","href":"/webhooks/partners"}]},{"tab":"Integrate Tally","hidden":true,"pages":[{"title":"Integrate Tally","href":"/x/accounting/tally"}]},{"tab":"About Razorpay Capital","hidden":true,"pages":[{"title":"About Razorpay Capital","href":"/x/capital/cards-kyc"}]}]},{"version":"Singapore","pages":[{"title":"Singapore","href":"/sg/home"}]},{"version":"United States","pages":[{"title":"United States","href":"/us/home"}]},{"version":"Malaysia","href":"https://curlec.com/docs"}]},"basePath":"","title":"Order-Payment Relationship - Razorpay","buildId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","deploymentId":"dpl_4UDxC3erAcBDHX8QT9FjyxxnLZSQ","dynamics":[],"chunks":[]}