{ "error": { "code": "BAD_REQUEST_ERROR", "description": "The payment method used is not supported by this biller.", "source": "biller", "step": "bill_payment", "reason": "biller_unavailable", "metadata": {} }}
Create a Bill Payment | BBPS API | Razorpay
Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.
{ "error": { "code": "BAD_REQUEST_ERROR", "description": "The payment method used is not supported by this biller.", "source": "biller", "step": "bill_payment", "reason": "biller_unavailable", "metadata": {} }}
Available in🇮🇳 India
Use this endpoint to confirm a bill payment on the BBPS network after you have collected payment from the customer via the Razorpay Payment Gateway (PG). Razorpay acts as both the Payment Aggregator (PA) and the Customer Operating Unit (COU). You, the Agent Institution, orchestrate two steps: collect money via the PG, then call this API to confirm the bill settlement.This is an asynchronous API. The response immediately returns a processing status with a bill payment id. Poll the Fetch Bill Payment API or listen to webhooks until the status reaches a terminal state (success or failed).
PrerequisiteCall this API only after the Razorpay PG payment is captured. The payments[].id field must be a valid Razorpay payment id with a captured status. Calling this API before the PG payment is captured will result in a failed bill settlement.
IdempotencyPass a unique X-Bill-Payments-Idempotency header (4–36 characters, alphanumeric with hyphens, underscores or spaces) to safely retry requests without creating duplicate payments. A UUID v4 is recommended. The request body on retries must match the original request, else it is rejected as a BAD_REQUEST_ERROR.
Normal Pay vs Direct Pay
Normal Pay - used when a bill is retrieved first via Create a Bill Request. Pass bill_request_id.
Direct Pay - used when the biller’s bill_request_required flag is optional or not_supported and you skip the bill retrieval step. Pass biller_id (or gateway_biller_id), biller_data.account_holder and device instead.
{ "error": { "code": "BAD_REQUEST_ERROR", "description": "The payment method used is not supported by this biller.", "source": "biller", "step": "bill_payment", "reason": "biller_unavailable", "metadata": {} }}
Bill request id returned by Create a Bill Request. Mandatory for Normal Pay. When omitted, the request is treated as Direct Pay and device and biller_data.account_holder become mandatory. For example, billreq_ERNEungCtXpZqM.
Actual bill amount for which the bill payment is raised, in paise. Excludes fees. Must satisfy the biller’s payment_config.amount_exactness rule (exact, exact_or_above, exact_or_below or any). This value can be less or more than an individual bill amount. For example, 1015 represents ₹10.15.
Customer Convenience Fee charged by the biller, in paise. Maps to the biller’s fee_config.fee_types[].fee_code=CCF1 returned by the Fetch Billers API and to NPCI’s custConvFee. Pass 0 if the biller charges no CCF.
Customer information passed as dynamic key-value pairs. Free-form metadata for your own tracking and reconciliation. Razorpay echoes these back on responses and webhooks without validation.
Dynamic key-value pairs that identify the customer’s account at the biller. The keys and values are dictated by the biller’s account_holder_config returned by the Fetch Billers API. Razorpay does not control the keys nor the values - pass them exactly as defined by the biller.
Razorpay’s unique bill payment transaction id. Use this for internal tracking, refund reference, reconciliation and to poll for the final status. For example, bill_pay_xxxx.
Initial payment status. processing on the create response. Poll Fetch Bill Payment for the final state. Possible final values: success (NPCI responseCode=000), pending (NPCI responseCode=091) or failed (any other NPCI responseCode).
BBPS/NPCI transaction reference number. Fixed length of 12 or 20 characters. Maps to NPCI txnReferenceId. Store for NPCI reconciliation, settlement tracking and dispute resolution.
Code:400ref_id is required.Solution: Pass either a valid bill_request_id (Normal Pay) or the Direct Pay fields (biller_id, biller_data.account_holder, device).
The bill_request_id is invalid or expired.
Code:400Invalid or expired ref_id.Solution: Use a bill_request_id from a successful bill request that has not yet expired (expiry_at).
The bill_pay_amount does not match the fetched amount.
Code:400Payment amount does not match fetch/validate amount.Solution: Use the bill.amount returned in the successful bill request or pass a value that satisfies the biller’s amount_exactness rules.
The customer parameters do not match the bill request.
Code:400Customer parameters do not match fetch/validate request.Solution: Pass the same customer parameters used during the bill request.
The payment method is not supported for this biller.
Code:400Payment method not supported for this biller.Solution: Check the biller’s supported payment_config.methods and retry with a supported method.
The payment amount exceeds the maximum limit.
Code:400Payment amount exceeds maximum limit of {max_amount} for {payment_mode}.Solution: Pass an amount within the biller’s payment_config.methods[].max_limit or split across methods.
Required payment instrument details are missing.
Code:400Required payment instrument details missing for {payment_mode}.Solution: Include the appropriate sub-object (card, upi, netbanking, wallet) with all mandatory fields.
Payment authorisation not found from PA.
Code:400Payment authorisation not found from PA.Solution: Ensure the Razorpay PG payment is in a captured state before calling this API.
The X-Bill-Payments-Idempotency header is missing or invalid.
Code:400The idempotency key must be 4-36 characters and contain only alphanumeric characters, hyphens, underscores or spaces.Solution: Provide a unique idempotency key. A UUID v4 is recommended.
Bill payment failed at biller.
Code:502The biller rejected the bill payment.Solution: Check metadata.payment_id and initiate a refund on the PG payment if money was collected.
Duplicate payment at biller.
Code:502Bill payment failed at biller because of a duplicate payment.Solution: Poll Fetch Bill Payment for the original payment status before retrying.
Payment request timed out at NPCI.
Code:502NPCI did not respond within the timeout window.Solution: Poll Fetch Bill Payment for the final state. Do not retry until status reaches success or failed.
Biller temporarily unavailable for payments.
Code:502The biller is temporarily unavailable for payments.Solution: Retry the request after a short interval.
The API <key/secret> provided is invalid.
Code:401The API credentials passed in the request differ from the ones generated on the Dashboard.Solution: Ensure your API key and secret are correct and active.
Last modified on October 8, 2026
Was this page helpful?
{"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.4124","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":"api/bills/bill-payments/create-bill-payment","slug":"/api/bills/bill-payments/create-bill-payment","pageMetadata":{"title":"Create a Bill Payment | BBPS API | Razorpay","description":"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.","api":"POST /v1/bill_payments/payments","href":"/api/bills/bill-payments/create-bill-payment","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: \"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.\"\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`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,Heading,Info,ParamField,ResponseField,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Warning)_missingMdxReference(`Warning`,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:[`Use this endpoint to confirm a bill payment on the BBPS network after you have collected payment from the customer via the `,_jsx(_components.a,{href:`/payments/payment-gateway`,children:`Razorpay Payment Gateway (PG)`}),`. Razorpay acts as both the Payment Aggregator (PA) and the Customer Operating Unit (COU). You, the Agent Institution, orchestrate two steps: collect money via the PG, then call this API to confirm the bill settlement.`]}),`\n`,_jsxs(_components.p,{children:[`This is an asynchronous API. The response immediately returns a `,_jsx(_components.code,{children:`processing`}),` status with a bill payment `,_jsx(_components.code,{children:`id`}),`. Poll the `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-bill-payment`,children:`Fetch Bill Payment`}),` API or listen to webhooks until the status reaches a terminal state (`,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`).`]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Prerequisite`})}),_jsxs(_components.p,{children:[`Call this API only after the Razorpay PG payment is captured. The `,_jsx(_components.code,{children:`payments[].id`}),` field must be a valid Razorpay payment id with a `,_jsx(_components.code,{children:`captured`}),` status. Calling this API before the PG payment is captured will result in a failed bill settlement.`]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Idempotency`})}),_jsxs(_components.p,{children:[`Pass a unique `,_jsx(_components.code,{children:`X-Bill-Payments-Idempotency`}),` header (4–36 characters, alphanumeric with hyphens, underscores or spaces) to safely retry requests without creating duplicate payments. A UUID v4 is recommended. The request body on retries must match the original request, else it is rejected as a `,_jsx(_components.code,{children:`BAD_REQUEST_ERROR`}),`.`]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Normal Pay vs Direct Pay`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Normal Pay`}),` - used when a bill is retrieved first via `,_jsx(_components.a,{href:`/api/bills/bill-payments/create-bill-request`,children:`Create a Bill Request`}),`. Pass `,_jsx(_components.code,{children:`bill_request_id`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Direct Pay`}),` - used when the biller’s `,_jsx(_components.code,{children:`bill_request_required`}),` flag is `,_jsx(_components.code,{children:`optional`}),` or `,_jsx(_components.code,{children:`not_supported`}),` and you skip the bill retrieval step. Pass `,_jsx(_components.code,{children:`biller_id`}),` (or `,_jsx(_components.code,{children:`gateway_biller_id`}),`), `,_jsx(_components.code,{children:`biller_data.account_holder`}),` and `,_jsx(_components.code,{children:`device`}),` instead.`]}),`\n`]})]}),`\n`,`\n`,`\n`,_jsx(Heading,{level:`2`,id:`request-parameters`,children:`Request Parameters`}),`\n`,_jsx(ParamField,{body:`bill_request_id`,type:`string`,id:`param-bill-request-id`,children:_jsxs(_components.p,{children:[`Bill request id returned by `,_jsx(_components.a,{href:`/api/bills/bill-payments/create-bill-request`,children:`Create a Bill Request`}),`. Mandatory for Normal Pay. When omitted, the request is treated as Direct Pay and `,_jsx(_components.code,{children:`device`}),` and `,_jsx(_components.code,{children:`biller_data.account_holder`}),` become mandatory. For example, `,_jsx(_components.code,{children:`billreq_ERNEungCtXpZqM`}),`.`]})}),`\n`,_jsx(ParamField,{body:`biller_id`,type:`string`,id:`param-biller-id`,children:_jsxs(_components.p,{children:[`Razorpay’s internal biller id. Required for Direct Pay if `,_jsx(_components.code,{children:`gateway_biller_id`}),` is not provided.`]})}),`\n`,_jsx(ParamField,{body:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id`,children:_jsxs(_components.p,{children:[`NPCI’s biller id. Required for Direct Pay if `,_jsx(_components.code,{children:`biller_id`}),` is not provided. For example, `,_jsx(_components.code,{children:`TPOW00000MUM01`}),`.`]})}),`\n`,_jsx(ParamField,{body:`bill_pay_amount`,type:`integer`,required:true,id:`param-bill-pay-amount`,children:_jsxs(_components.p,{children:[`Actual bill amount for which the bill payment is raised, in paise. Excludes fees. Must satisfy the biller’s `,_jsx(_components.code,{children:`payment_config.amount_exactness`}),` rule (`,_jsx(_components.code,{children:`exact`}),`, `,_jsx(_components.code,{children:`exact_or_above`}),`, `,_jsx(_components.code,{children:`exact_or_below`}),` or `,_jsx(_components.code,{children:`any`}),`). This value can be less or more than an individual bill amount. For example, `,_jsx(_components.code,{children:`1015`}),` represents ₹10.15.`]})}),`\n`,_jsx(ParamField,{body:`currency`,type:`string`,required:true,id:`param-currency`,children:_jsxs(_components.p,{children:[`Currency in which the bill payment is initiated. Defaults to `,_jsx(_components.code,{children:`INR`}),`.`]})}),`\n`,_jsx(ParamField,{body:`fees`,type:`object`,required:true,id:`param-fees`,children:_jsxs(_components.p,{children:[`Fee breakdown. Pass `,_jsx(_components.code,{children:`0`}),` for components that do not apply.`]})}),`\n`,_jsx(ParamField,{body:`fees.app_convenience_fee`,type:`integer`,required:true,id:`param-fees-app-convenience-fee`,children:_jsxs(_components.p,{children:[`Merchant/app convenience fee charged to the customer, in paise. Not part of NPCI standard. Platform-specific. Pass `,_jsx(_components.code,{children:`0`}),` if not applicable.`]})}),`\n`,_jsx(ParamField,{body:`fees.biller_convenience_fee`,type:`integer`,required:true,id:`param-fees-biller-convenience-fee`,children:_jsxs(_components.p,{children:[`Customer Convenience Fee charged by the biller, in paise. Maps to the biller’s `,_jsx(_components.code,{children:`fee_config.fee_types[].fee_code=CCF1`}),` returned by the Fetch Billers API and to NPCI’s `,_jsx(_components.code,{children:`custConvFee`}),`. Pass `,_jsx(_components.code,{children:`0`}),` if the biller charges no CCF.`]})}),`\n`,_jsx(ParamField,{body:`payments`,type:`array`,required:true,id:`param-payments`,children:_jsx(_components.p,{children:`Payment details collected via the Razorpay PG. Use multiple objects for split payments across methods.`})}),`\n`,_jsx(ParamField,{body:`payments[].id`,type:`string`,required:true,id:`param-payments-id`,children:_jsxs(_components.p,{children:[`Razorpay payment id received from the Razorpay PA post Payment Create. Required as per NPCI guidelines. For example, `,_jsx(_components.code,{children:`pay_MbJ5AvwNpAkfLB`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].provider`,type:`string`,required:true,id:`param-payments-provider`,children:_jsxs(_components.p,{children:[`Payment provider. Hardcode to `,_jsx(_components.code,{children:`razorpay`}),` when the payment is processed via the Razorpay gateway.`]})}),`\n`,_jsx(ParamField,{body:`payments[].amount`,type:`integer`,required:true,id:`param-payments-amount`,children:_jsx(_components.p,{children:`Amount paid via the selected method, in paise. Must match the payment amount captured through the PG.`})}),`\n`,_jsx(ParamField,{body:`payments[].currency`,type:`string`,required:true,id:`param-payments-currency`,children:_jsxs(_components.p,{children:[`ISO 4217 currency code. Only `,_jsx(_components.code,{children:`INR`}),` is supported currently.`]})}),`\n`,_jsx(ParamField,{body:`payments[].method`,type:`string`,required:true,id:`param-payments-method`,children:_jsxs(_components.p,{children:[`Payment method. Maps to NPCI `,_jsx(_components.code,{children:`paymentMode`}),`. Supported values: `,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`upi`}),`, `,_jsx(_components.code,{children:`netbanking`}),`, `,_jsx(_components.code,{children:`wallet`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].card`,type:`object`,id:`param-payments-card`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`card`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].card.type`,type:`string`,required:true,id:`param-payments-card-type`,children:_jsxs(_components.p,{children:[`Card type. Values: `,_jsx(_components.code,{children:`credit`}),`, `,_jsx(_components.code,{children:`debit`}),`, `,_jsx(_components.code,{children:`prepaid`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].card.last4`,type:`string`,required:true,id:`param-payments-card-last4`,children:_jsx(_components.p,{children:`Last 4 digits of the card.`})}),`\n`,_jsx(ParamField,{body:`payments[].card.auth_code`,type:`string`,required:true,id:`param-payments-card-auth-code`,children:_jsxs(_components.p,{children:[`Hardcode to `,_jsx(_components.code,{children:`Card`}),` as per NPCI guidelines.`]})}),`\n`,_jsx(ParamField,{body:`payments[].upi`,type:`object`,id:`param-payments-upi`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`upi`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].upi.vpa`,type:`string`,required:true,id:`param-payments-upi-vpa`,children:_jsx(_components.p,{children:`Customer’s actual UPI VPA if available; otherwise pass the Razorpay payment id.`})}),`\n`,_jsx(ParamField,{body:`payments[].netbanking`,type:`object`,id:`param-payments-netbanking`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`netbanking`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].netbanking.account_number`,type:`string`,required:true,id:`param-payments-netbanking-account-number`,children:_jsxs(_components.p,{children:[`Customer’s account number if available; otherwise hardcode to `,_jsx(_components.code,{children:`PG`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].netbanking.ifsc_code`,type:`string`,required:true,id:`param-payments-netbanking-ifsc-code`,children:_jsx(_components.p,{children:`IFSC code if available; otherwise pass the Razorpay payment id.`})}),`\n`,_jsx(ParamField,{body:`payments[].wallet`,type:`object`,id:`param-payments-wallet`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`wallet`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].wallet.name`,type:`string`,required:true,id:`param-payments-wallet-name`,children:_jsxs(_components.p,{children:[`Name of the actual wallet used. For example, `,_jsx(_components.code,{children:`amazon_pay`}),`, `,_jsx(_components.code,{children:`payzapp`}),`.`]})}),`\n`,_jsx(ParamField,{body:`bills`,type:`array`,required:true,id:`param-bills`,children:_jsxs(_components.p,{children:[`Bills being paid. Minimum 1 bill required for Normal Pay. Pass an empty array `,_jsx(_components.code,{children:`[]`}),` for Direct Pay (no bill was retrieved).`]})}),`\n`,_jsx(ParamField,{body:`bills[].bill_number`,type:`string`,id:`param-bills-bill-number`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`bills[].bill_number`}),` received in the Fetch Bill Request response. Required when a bill was retrieved.`]})}),`\n`,_jsx(ParamField,{body:`bills[].amount`,type:`integer`,required:true,id:`param-bills-amount`,children:_jsxs(_components.p,{children:[`Bill amount in paise. Must match the bill amount returned by the Fetch Bill Request API or satisfy the biller’s `,_jsx(_components.code,{children:`payment_config.amount_exactness`}),` rules.`]})}),`\n`,_jsx(ParamField,{body:`bills[].currency`,type:`string`,required:true,id:`param-bills-currency`,children:_jsxs(_components.p,{children:[`Currency code. Hardcode to `,_jsx(_components.code,{children:`INR`}),`.`]})}),`\n`,_jsx(ParamField,{body:`customer`,type:`object`,id:`param-customer`,children:_jsx(_components.p,{children:`Customer information passed as dynamic key-value pairs. Free-form metadata for your own tracking and reconciliation. Razorpay echoes these back on responses and webhooks without validation.`})}),`\n`,_jsx(ParamField,{body:`customer.id`,type:`string`,id:`param-customer-id`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding your customer reference. Not validated by Razorpay.`})}),`\n`,_jsx(ParamField,{body:`customer.name`,type:`string`,id:`param-customer-name`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer name. Not validated by Razorpay.`})}),`\n`,_jsx(ParamField,{body:`customer.mobile`,type:`string`,required:true,id:`param-customer-mobile`,children:_jsxs(_components.p,{children:[`Customer’s mobile number with country code. For example, `,_jsx(_components.code,{children:`919000090000`}),`.`]})}),`\n`,_jsx(ParamField,{body:`customer.email`,type:`string`,id:`param-customer-email`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer email. Not validated by Razorpay.`})}),`\n`,_jsx(ParamField,{body:`biller_data`,type:`object`,id:`param-biller-data`,children:_jsxs(_components.p,{children:[`Bill account holder details. Mandatory if `,_jsx(_components.code,{children:`bill_request_id`}),` is not provided.`]})}),`\n`,_jsx(ParamField,{body:`biller_data.account_holder`,type:`object`,id:`param-biller-data-account-holder`,children:_jsxs(_components.p,{children:[`Dynamic key-value pairs that identify the customer’s account at the biller. The keys and values are dictated by the biller’s `,_jsx(_components.code,{children:`account_holder_config`}),` returned by the `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-billers`,children:`Fetch Billers`}),` API. Razorpay does not control the keys nor the values - pass them exactly as defined by the biller.`]})}),`\n`,_jsx(ParamField,{body:`device`,type:`object`,id:`param-device`,children:_jsxs(_components.p,{children:[`Info about the device initiating the bill payment. Mandatory if `,_jsx(_components.code,{children:`bill_request_id`}),` is not provided.`]})}),`\n`,_jsxs(ParamField,{body:`device.initiating_channel`,type:`enum`,required:true,id:`param-device-initiating-channel`,children:[_jsx(_components.p,{children:`Channel from which the bill payment is initiated. Values:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`internet`}),` - Web`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`mobile`}),` - Mobile App`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`pos`}),` - Point of Sale`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`mpos`}),` - Mobile Point of Sale`]}),`\n`]})]}),`\n`,_jsx(ParamField,{body:`device.mobile`,type:`string`,id:`param-device-mobile`,children:_jsxs(_components.p,{children:[`End agent’s mobile number (10 digits) for offline channels. Required for `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels.`]})}),`\n`,_jsx(ParamField,{body:`device.geocode`,type:`string`,id:`param-device-geocode`,children:_jsxs(_components.p,{children:[`Latitude, Longitude. Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels. For example, `,_jsx(_components.code,{children:`12.9667,77.5667`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.ip`,type:`string`,id:`param-device-ip`,children:_jsxs(_components.p,{children:[`IPv4 or IPv6 address. Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),` channels.`]})}),`\n`,_jsx(ParamField,{body:`device.mac`,type:`string`,id:`param-device-mac`,children:_jsxs(_components.p,{children:[`MAC address. Required for `,_jsx(_components.code,{children:`internet`}),` channels. For example, `,_jsx(_components.code,{children:`00-0D-60-07-2A-F0`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.os`,type:`string`,id:`param-device-os`,children:_jsxs(_components.p,{children:[`Operating system. Required for `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels. For example, `,_jsx(_components.code,{children:`android`}),`, `,_jsx(_components.code,{children:`iOS`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.app`,type:`string`,id:`param-device-app`,children:_jsxs(_components.p,{children:[`Application name. Required for `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels. For example, `,_jsx(_components.code,{children:`amazon_pay`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.imei`,type:`string`,id:`param-device-imei`,children:_jsxs(_components.p,{children:[`Device IMEI number. Required for the `,_jsx(_components.code,{children:`mobile`}),` initiating channel.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response-parameters`,children:`Response Parameters`}),`\n`,_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsxs(_components.p,{children:[`Razorpay’s unique bill payment transaction id. Use this for internal tracking, refund reference, reconciliation and to poll for the final status. For example, `,_jsx(_components.code,{children:`bill_pay_xxxx`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`entity`,type:`string`,id:`param-entity`,children:_jsxs(_components.p,{children:[`Entity type. Always `,_jsx(_components.code,{children:`bill_payment.payment`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`Initial payment status. `,_jsx(_components.code,{children:`processing`}),` on the create response. Poll `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-bill-payment`,children:`Fetch Bill Payment`}),` for the final state. Possible final values: `,_jsx(_components.code,{children:`success`}),` (NPCI `,_jsx(_components.code,{children:`responseCode=000`}),`), `,_jsx(_components.code,{children:`pending`}),` (NPCI `,_jsx(_components.code,{children:`responseCode=091`}),`) or `,_jsx(_components.code,{children:`failed`}),` (any other NPCI `,_jsx(_components.code,{children:`responseCode`}),`).`]})}),`\n`,_jsx(ResponseField,{name:`customer`,type:`object`,id:`param-customer-1`,children:_jsx(_components.p,{children:`Customer who made the payment. Echoed from the request.`})}),`\n`,_jsx(ResponseField,{name:`biller_id`,type:`string`,id:`param-biller-id-1`,children:_jsx(_components.p,{children:`Razorpay biller entity id. Use for internal biller identification, reporting and analytics.`})}),`\n`,_jsx(ResponseField,{name:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id-1`,children:_jsx(_components.p,{children:`NPCI biller id.`})}),`\n`,_jsx(ResponseField,{name:`gateway_transaction_id`,type:`string`,id:`param-gateway-transaction-id`,children:_jsxs(_components.p,{children:[`BBPS/NPCI transaction reference number. Fixed length of 12 or 20 characters. Maps to NPCI `,_jsx(_components.code,{children:`txnReferenceId`}),`. Store for NPCI reconciliation, settlement tracking and dispute resolution.`]})}),`\n`,_jsx(ResponseField,{name:`gateway`,type:`string`,id:`param-gateway`,children:_jsxs(_components.p,{children:[`Bill payment gateway used. Defaults to `,_jsx(_components.code,{children:`bbps`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`created_at`,type:`integer`,id:`param-created-at`,children:_jsx(_components.p,{children:`UNIX timestamp when the bill payment was created at Razorpay.`})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`ref_id`}),` is required.`]}),id:`the-ref-id-is-required`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ref_id`}),` is required.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass either a valid `,_jsx(_components.code,{children:`bill_request_id`}),` (Normal Pay) or the Direct Pay fields (`,_jsx(_components.code,{children:`biller_id`}),`, `,_jsx(_components.code,{children:`biller_data.account_holder`}),`, `,_jsx(_components.code,{children:`device`}),`).`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`bill_request_id`}),` is invalid or expired.`]}),id:`the-bill-request-id-is-invalid-or-expired`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Invalid or expired `,_jsx(_components.code,{children:`ref_id`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Use a `,_jsx(_components.code,{children:`bill_request_id`}),` from a successful bill request that has not yet expired (`,_jsx(_components.code,{children:`expiry_at`}),`).`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`bill_pay_amount`}),` does not match the fetched amount.`]}),id:`the-bill-pay-amount-does-not-match-the-fetched-amount`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Payment amount does not match fetch/validate amount.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Use the `,_jsx(_components.code,{children:`bill.amount`}),` returned in the successful bill request or pass a value that satisfies the biller’s `,_jsx(_components.code,{children:`amount_exactness`}),` rules.`]})]}),_jsxs(Accordion,{title:`The customer parameters do not match the bill request.`,id:`the-customer-parameters-do-not-match-the-bill-request`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Customer parameters do not match fetch/validate request.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass the same customer parameters used during the bill request.`]})]}),_jsxs(Accordion,{title:`The payment method is not supported for this biller.`,id:`the-payment-method-is-not-supported-for-this-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Payment method not supported for this biller.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Check the biller’s supported `,_jsx(_components.code,{children:`payment_config.methods`}),` and retry with a supported method.`]})]}),_jsxs(Accordion,{title:`The payment amount exceeds the maximum limit.`,id:`the-payment-amount-exceeds-the-maximum-limit`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Payment amount exceeds maximum limit of `,_jsx(_components.code,{children:`{max_amount}`}),` for `,_jsx(_components.code,{children:`{payment_mode}`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass an amount within the biller’s `,_jsx(_components.code,{children:`payment_config.methods[].max_limit`}),` or split across methods.`]})]}),_jsxs(Accordion,{title:`Required payment instrument details are missing.`,id:`required-payment-instrument-details-are-missing`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Required payment instrument details missing for `,_jsx(_components.code,{children:`{payment_mode}`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Include the appropriate sub-object (`,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`upi`}),`, `,_jsx(_components.code,{children:`netbanking`}),`, `,_jsx(_components.code,{children:`wallet`}),`) with all mandatory fields.`]})]}),_jsxs(Accordion,{title:`Payment authorisation not found from PA.`,id:`payment-authorisation-not-found-from-pa`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Payment authorisation not found from PA.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Ensure the Razorpay PG payment is in a `,_jsx(_components.code,{children:`captured`}),` state before calling this API.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`X-Bill-Payments-Idempotency`}),` header is missing or invalid.`]}),id:`the-x-bill-payments-idempotency-header-is-missing-or-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`The idempotency key must be 4-36 characters and contain only alphanumeric characters, hyphens, underscores or spaces.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Provide a unique idempotency key. A UUID v4 is recommended.`]})]}),_jsxs(Accordion,{title:`Bill payment failed at biller.`,id:`bill-payment-failed-at-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller rejected the bill payment.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Check `,_jsx(_components.code,{children:`metadata.payment_id`}),` and initiate a refund on the PG payment if money was collected.`]})]}),_jsxs(Accordion,{title:`Duplicate payment at biller.`,id:`duplicate-payment-at-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`Bill payment failed at biller because of a duplicate payment.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Poll Fetch Bill Payment for the original payment status before retrying.`]})]}),_jsxs(Accordion,{title:`Payment request timed out at NPCI.`,id:`payment-request-timed-out-at-npci`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`NPCI did not respond within the timeout window.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Poll Fetch Bill Payment for the final state. Do not retry until status reaches `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]})]}),_jsxs(Accordion,{title:`Biller temporarily unavailable for payments.`,id:`biller-temporarily-unavailable-for-payments`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller is temporarily unavailable for payments.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Retry the request after a short interval.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The API `,_jsx(_components.code,{children:`\u003ckey/secret> `}),` provided is invalid.`]}),id:`the-api-key-secret-provided-is-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`401`})]}),_jsx(_components.p,{children:`The API credentials passed in the request differ from the ones generated on the Dashboard.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Ensure your API key and secret are correct and active.`]})]})]})]})}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":"Create a Bill Payment | BBPS API | Razorpay","description":"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.","api":"POST /v1/bill_payments/payments","href":"/api/bills/bill-payments/create-bill-payment","hidden":true}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,AccordionGroup,CodeBlock,Heading,Info,ParamField,RequestExample,ResponseExample,ResponseField,Warning}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!AccordionGroup)_missingMdxReference(`AccordionGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Info)_missingMdxReference(`Info`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Warning)_missingMdxReference(`Warning`,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:[`Use this endpoint to confirm a bill payment on the BBPS network after you have collected payment from the customer via the `,_jsx(_components.a,{href:`/payments/payment-gateway`,children:`Razorpay Payment Gateway (PG)`}),`. Razorpay acts as both the Payment Aggregator (PA) and the Customer Operating Unit (COU). You, the Agent Institution, orchestrate two steps: collect money via the PG, then call this API to confirm the bill settlement.`]}),`\n`,_jsxs(_components.p,{children:[`This is an asynchronous API. The response immediately returns a `,_jsx(_components.code,{children:`processing`}),` status with a bill payment `,_jsx(_components.code,{children:`id`}),`. Poll the `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-bill-payment`,children:`Fetch Bill Payment`}),` API or listen to webhooks until the status reaches a terminal state (`,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`).`]}),`\n`,_jsxs(Warning,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Prerequisite`})}),_jsxs(_components.p,{children:[`Call this API only after the Razorpay PG payment is captured. The `,_jsx(_components.code,{children:`payments[].id`}),` field must be a valid Razorpay payment id with a `,_jsx(_components.code,{children:`captured`}),` status. Calling this API before the PG payment is captured will result in a failed bill settlement.`]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Idempotency`})}),_jsxs(_components.p,{children:[`Pass a unique `,_jsx(_components.code,{children:`X-Bill-Payments-Idempotency`}),` header (4–36 characters, alphanumeric with hyphens, underscores or spaces) to safely retry requests without creating duplicate payments. A UUID v4 is recommended. The request body on retries must match the original request, else it is rejected as a `,_jsx(_components.code,{children:`BAD_REQUEST_ERROR`}),`.`]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Normal Pay vs Direct Pay`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Normal Pay`}),` - used when a bill is retrieved first via `,_jsx(_components.a,{href:`/api/bills/bill-payments/create-bill-request`,children:`Create a Bill Request`}),`. Pass `,_jsx(_components.code,{children:`bill_request_id`}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Direct Pay`}),` - used when the biller’s `,_jsx(_components.code,{children:`bill_request_required`}),` flag is `,_jsx(_components.code,{children:`optional`}),` or `,_jsx(_components.code,{children:`not_supported`}),` and you skip the bill retrieval step. Pass `,_jsx(_components.code,{children:`biller_id`}),` (or `,_jsx(_components.code,{children:`gateway_biller_id`}),`), `,_jsx(_components.code,{children:`biller_data.account_holder`}),` and `,_jsx(_components.code,{children:`device`}),` instead.`]}),`\n`]})]}),`\n`,_jsxs(RequestExample,{children:[_jsx(CodeBlock,{filename:`Normal Pay`,numberOfLines:`44`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`44`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -u`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [YOUR_KEY_ID]:[YOUR_KEY_SECRET] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`-X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.razorpay.com/v1/bill_payments/payments`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`-H `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`-H `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"X-Bill-Payments-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`-d `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bill_request_id\": \"billreq_ERNEungCtXpZqM\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bill_pay_amount\": 1015,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fees\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"app_convenience_fee\": 10,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"biller_convenience_fee\": 5`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"payments\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"pay_MbJ5AvwNpAkfLB\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 600,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"provider\": \"razorpay\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\": \"card\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"credit\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"last4\": \"0153\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"auth_code\": \"Card\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"pay_MbJ5AvwNpAkfLA\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 430,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"provider\": \"razorpay\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\": \"upi\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"upi\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"vpa\": \"gaurav.kumar@okhdfc.com\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bills\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bill_number\": \"820356722187\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 1015,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Direct Pay`,numberOfLines:`62`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`62`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -u`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` [YOUR_KEY_ID]:[YOUR_KEY_SECRET] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:`\\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`-X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.razorpay.com/v1/bill_payments/payments`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`-H `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`-H `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"X-Bill-Payments-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`-d `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`'{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"biller_id\": \"biller_001\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"gateway_biller_id\": \"TPOW00000MUM01\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"customer\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"rzp_cust_123\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"Gaurav Kumar\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mobile\": \"919000090000\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"email\": \"gaurav.kumar@example.com\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"biller_data\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"account_holder\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"account_number\": \"XXXXXXX\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"KEY\": \"VALUE\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"KEY2\": \"VALUE2\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"device\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"initiating_channel\": \"mobile\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mobile\": \"9999999999\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"geocode\": \"12.9667,77.5667\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"ip\": \"198.1.1.1\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"mac\": \"00-0D-60-07-2A-F0\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"os\": \"android\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"imei\": \"490154203237518\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"app\": \"amazon_pay\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bill_pay_amount\": 1015,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"fees\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"app_convenience_fee\": 10,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"biller_convenience_fee\": 5`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"payments\": [`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"pay_MbJ5AvwNpAkfLA\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 600,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"provider\": \"razorpay\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\": \"card\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"card\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"type\": \"credit\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"last4\": \"0153\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"auth_code\": \"Card\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` },`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"id\": \"pay_MbJ5AvwNpAkfLB\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"amount\": 430,`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"currency\": \"INR\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"provider\": \"razorpay\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"method\": \"upi\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"upi\": {`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"vpa\": \"gaurav.kumar@okhdfc.com\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` ],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"bills\": []`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})})]}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Success`,numberOfLines:`16`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`16`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bill_pay_xxxx\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"entity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bill_payment.payment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"processing\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"customer\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"rzp_cust_123\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Gaurav Kumar\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mobile\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"919000090000\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"email\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"gaurav.kumar@example.com\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"biller_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"biller_001\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"gateway_biller_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TPOW00000MUM01\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"gateway_transaction_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bbps_txn_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"gateway\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bbps\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1609459200`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Failure`,numberOfLines:`10`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`10`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"BAD_REQUEST_ERROR\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"The payment method used is not supported by this biller.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"source\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"biller\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"step\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bill_payment\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"reason\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"biller_unavailable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"metadata\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {}`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`request-parameters`,children:`Request Parameters`}),`\n`,_jsx(ParamField,{body:`bill_request_id`,type:`string`,id:`param-bill-request-id`,children:_jsxs(_components.p,{children:[`Bill request id returned by `,_jsx(_components.a,{href:`/api/bills/bill-payments/create-bill-request`,children:`Create a Bill Request`}),`. Mandatory for Normal Pay. When omitted, the request is treated as Direct Pay and `,_jsx(_components.code,{children:`device`}),` and `,_jsx(_components.code,{children:`biller_data.account_holder`}),` become mandatory. For example, `,_jsx(_components.code,{children:`billreq_ERNEungCtXpZqM`}),`.`]})}),`\n`,_jsx(ParamField,{body:`biller_id`,type:`string`,id:`param-biller-id`,children:_jsxs(_components.p,{children:[`Razorpay’s internal biller id. Required for Direct Pay if `,_jsx(_components.code,{children:`gateway_biller_id`}),` is not provided.`]})}),`\n`,_jsx(ParamField,{body:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id`,children:_jsxs(_components.p,{children:[`NPCI’s biller id. Required for Direct Pay if `,_jsx(_components.code,{children:`biller_id`}),` is not provided. For example, `,_jsx(_components.code,{children:`TPOW00000MUM01`}),`.`]})}),`\n`,_jsx(ParamField,{body:`bill_pay_amount`,type:`integer`,required:true,id:`param-bill-pay-amount`,children:_jsxs(_components.p,{children:[`Actual bill amount for which the bill payment is raised, in paise. Excludes fees. Must satisfy the biller’s `,_jsx(_components.code,{children:`payment_config.amount_exactness`}),` rule (`,_jsx(_components.code,{children:`exact`}),`, `,_jsx(_components.code,{children:`exact_or_above`}),`, `,_jsx(_components.code,{children:`exact_or_below`}),` or `,_jsx(_components.code,{children:`any`}),`). This value can be less or more than an individual bill amount. For example, `,_jsx(_components.code,{children:`1015`}),` represents ₹10.15.`]})}),`\n`,_jsx(ParamField,{body:`currency`,type:`string`,required:true,id:`param-currency`,children:_jsxs(_components.p,{children:[`Currency in which the bill payment is initiated. Defaults to `,_jsx(_components.code,{children:`INR`}),`.`]})}),`\n`,_jsx(ParamField,{body:`fees`,type:`object`,required:true,id:`param-fees`,children:_jsxs(_components.p,{children:[`Fee breakdown. Pass `,_jsx(_components.code,{children:`0`}),` for components that do not apply.`]})}),`\n`,_jsx(ParamField,{body:`fees.app_convenience_fee`,type:`integer`,required:true,id:`param-fees-app-convenience-fee`,children:_jsxs(_components.p,{children:[`Merchant/app convenience fee charged to the customer, in paise. Not part of NPCI standard. Platform-specific. Pass `,_jsx(_components.code,{children:`0`}),` if not applicable.`]})}),`\n`,_jsx(ParamField,{body:`fees.biller_convenience_fee`,type:`integer`,required:true,id:`param-fees-biller-convenience-fee`,children:_jsxs(_components.p,{children:[`Customer Convenience Fee charged by the biller, in paise. Maps to the biller’s `,_jsx(_components.code,{children:`fee_config.fee_types[].fee_code=CCF1`}),` returned by the Fetch Billers API and to NPCI’s `,_jsx(_components.code,{children:`custConvFee`}),`. Pass `,_jsx(_components.code,{children:`0`}),` if the biller charges no CCF.`]})}),`\n`,_jsx(ParamField,{body:`payments`,type:`array`,required:true,id:`param-payments`,children:_jsx(_components.p,{children:`Payment details collected via the Razorpay PG. Use multiple objects for split payments across methods.`})}),`\n`,_jsx(ParamField,{body:`payments[].id`,type:`string`,required:true,id:`param-payments-id`,children:_jsxs(_components.p,{children:[`Razorpay payment id received from the Razorpay PA post Payment Create. Required as per NPCI guidelines. For example, `,_jsx(_components.code,{children:`pay_MbJ5AvwNpAkfLB`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].provider`,type:`string`,required:true,id:`param-payments-provider`,children:_jsxs(_components.p,{children:[`Payment provider. Hardcode to `,_jsx(_components.code,{children:`razorpay`}),` when the payment is processed via the Razorpay gateway.`]})}),`\n`,_jsx(ParamField,{body:`payments[].amount`,type:`integer`,required:true,id:`param-payments-amount`,children:_jsx(_components.p,{children:`Amount paid via the selected method, in paise. Must match the payment amount captured through the PG.`})}),`\n`,_jsx(ParamField,{body:`payments[].currency`,type:`string`,required:true,id:`param-payments-currency`,children:_jsxs(_components.p,{children:[`ISO 4217 currency code. Only `,_jsx(_components.code,{children:`INR`}),` is supported currently.`]})}),`\n`,_jsx(ParamField,{body:`payments[].method`,type:`string`,required:true,id:`param-payments-method`,children:_jsxs(_components.p,{children:[`Payment method. Maps to NPCI `,_jsx(_components.code,{children:`paymentMode`}),`. Supported values: `,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`upi`}),`, `,_jsx(_components.code,{children:`netbanking`}),`, `,_jsx(_components.code,{children:`wallet`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].card`,type:`object`,id:`param-payments-card`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`card`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].card.type`,type:`string`,required:true,id:`param-payments-card-type`,children:_jsxs(_components.p,{children:[`Card type. Values: `,_jsx(_components.code,{children:`credit`}),`, `,_jsx(_components.code,{children:`debit`}),`, `,_jsx(_components.code,{children:`prepaid`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].card.last4`,type:`string`,required:true,id:`param-payments-card-last4`,children:_jsx(_components.p,{children:`Last 4 digits of the card.`})}),`\n`,_jsx(ParamField,{body:`payments[].card.auth_code`,type:`string`,required:true,id:`param-payments-card-auth-code`,children:_jsxs(_components.p,{children:[`Hardcode to `,_jsx(_components.code,{children:`Card`}),` as per NPCI guidelines.`]})}),`\n`,_jsx(ParamField,{body:`payments[].upi`,type:`object`,id:`param-payments-upi`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`upi`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].upi.vpa`,type:`string`,required:true,id:`param-payments-upi-vpa`,children:_jsx(_components.p,{children:`Customer’s actual UPI VPA if available; otherwise pass the Razorpay payment id.`})}),`\n`,_jsx(ParamField,{body:`payments[].netbanking`,type:`object`,id:`param-payments-netbanking`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`netbanking`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].netbanking.account_number`,type:`string`,required:true,id:`param-payments-netbanking-account-number`,children:_jsxs(_components.p,{children:[`Customer’s account number if available; otherwise hardcode to `,_jsx(_components.code,{children:`PG`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].netbanking.ifsc_code`,type:`string`,required:true,id:`param-payments-netbanking-ifsc-code`,children:_jsx(_components.p,{children:`IFSC code if available; otherwise pass the Razorpay payment id.`})}),`\n`,_jsx(ParamField,{body:`payments[].wallet`,type:`object`,id:`param-payments-wallet`,children:_jsxs(_components.p,{children:[`Required when `,_jsx(_components.code,{children:`method`}),` is `,_jsx(_components.code,{children:`wallet`}),`.`]})}),`\n`,_jsx(ParamField,{body:`payments[].wallet.name`,type:`string`,required:true,id:`param-payments-wallet-name`,children:_jsxs(_components.p,{children:[`Name of the actual wallet used. For example, `,_jsx(_components.code,{children:`amazon_pay`}),`, `,_jsx(_components.code,{children:`payzapp`}),`.`]})}),`\n`,_jsx(ParamField,{body:`bills`,type:`array`,required:true,id:`param-bills`,children:_jsxs(_components.p,{children:[`Bills being paid. Minimum 1 bill required for Normal Pay. Pass an empty array `,_jsx(_components.code,{children:`[]`}),` for Direct Pay (no bill was retrieved).`]})}),`\n`,_jsx(ParamField,{body:`bills[].bill_number`,type:`string`,id:`param-bills-bill-number`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`bills[].bill_number`}),` received in the Fetch Bill Request response. Required when a bill was retrieved.`]})}),`\n`,_jsx(ParamField,{body:`bills[].amount`,type:`integer`,required:true,id:`param-bills-amount`,children:_jsxs(_components.p,{children:[`Bill amount in paise. Must match the bill amount returned by the Fetch Bill Request API or satisfy the biller’s `,_jsx(_components.code,{children:`payment_config.amount_exactness`}),` rules.`]})}),`\n`,_jsx(ParamField,{body:`bills[].currency`,type:`string`,required:true,id:`param-bills-currency`,children:_jsxs(_components.p,{children:[`Currency code. Hardcode to `,_jsx(_components.code,{children:`INR`}),`.`]})}),`\n`,_jsx(ParamField,{body:`customer`,type:`object`,id:`param-customer`,children:_jsx(_components.p,{children:`Customer information passed as dynamic key-value pairs. Free-form metadata for your own tracking and reconciliation. Razorpay echoes these back on responses and webhooks without validation.`})}),`\n`,_jsx(ParamField,{body:`customer.id`,type:`string`,id:`param-customer-id`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding your customer reference. Not validated by Razorpay.`})}),`\n`,_jsx(ParamField,{body:`customer.name`,type:`string`,id:`param-customer-name`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer name. Not validated by Razorpay.`})}),`\n`,_jsx(ParamField,{body:`customer.mobile`,type:`string`,required:true,id:`param-customer-mobile`,children:_jsxs(_components.p,{children:[`Customer’s mobile number with country code. For example, `,_jsx(_components.code,{children:`919000090000`}),`.`]})}),`\n`,_jsx(ParamField,{body:`customer.email`,type:`string`,id:`param-customer-email`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer email. Not validated by Razorpay.`})}),`\n`,_jsx(ParamField,{body:`biller_data`,type:`object`,id:`param-biller-data`,children:_jsxs(_components.p,{children:[`Bill account holder details. Mandatory if `,_jsx(_components.code,{children:`bill_request_id`}),` is not provided.`]})}),`\n`,_jsx(ParamField,{body:`biller_data.account_holder`,type:`object`,id:`param-biller-data-account-holder`,children:_jsxs(_components.p,{children:[`Dynamic key-value pairs that identify the customer’s account at the biller. The keys and values are dictated by the biller’s `,_jsx(_components.code,{children:`account_holder_config`}),` returned by the `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-billers`,children:`Fetch Billers`}),` API. Razorpay does not control the keys nor the values - pass them exactly as defined by the biller.`]})}),`\n`,_jsx(ParamField,{body:`device`,type:`object`,id:`param-device`,children:_jsxs(_components.p,{children:[`Info about the device initiating the bill payment. Mandatory if `,_jsx(_components.code,{children:`bill_request_id`}),` is not provided.`]})}),`\n`,_jsxs(ParamField,{body:`device.initiating_channel`,type:`enum`,required:true,id:`param-device-initiating-channel`,children:[_jsx(_components.p,{children:`Channel from which the bill payment is initiated. Values:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`internet`}),` - Web`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`mobile`}),` - Mobile App`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`pos`}),` - Point of Sale`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`mpos`}),` - Mobile Point of Sale`]}),`\n`]})]}),`\n`,_jsx(ParamField,{body:`device.mobile`,type:`string`,id:`param-device-mobile`,children:_jsxs(_components.p,{children:[`End agent’s mobile number (10 digits) for offline channels. Required for `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels.`]})}),`\n`,_jsx(ParamField,{body:`device.geocode`,type:`string`,id:`param-device-geocode`,children:_jsxs(_components.p,{children:[`Latitude, Longitude. Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels. For example, `,_jsx(_components.code,{children:`12.9667,77.5667`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.ip`,type:`string`,id:`param-device-ip`,children:_jsxs(_components.p,{children:[`IPv4 or IPv6 address. Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),` channels.`]})}),`\n`,_jsx(ParamField,{body:`device.mac`,type:`string`,id:`param-device-mac`,children:_jsxs(_components.p,{children:[`MAC address. Required for `,_jsx(_components.code,{children:`internet`}),` channels. For example, `,_jsx(_components.code,{children:`00-0D-60-07-2A-F0`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.os`,type:`string`,id:`param-device-os`,children:_jsxs(_components.p,{children:[`Operating system. Required for `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels. For example, `,_jsx(_components.code,{children:`android`}),`, `,_jsx(_components.code,{children:`iOS`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.app`,type:`string`,id:`param-device-app`,children:_jsxs(_components.p,{children:[`Application name. Required for `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels. For example, `,_jsx(_components.code,{children:`amazon_pay`}),`.`]})}),`\n`,_jsx(ParamField,{body:`device.imei`,type:`string`,id:`param-device-imei`,children:_jsxs(_components.p,{children:[`Device IMEI number. Required for the `,_jsx(_components.code,{children:`mobile`}),` initiating channel.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response-parameters`,children:`Response Parameters`}),`\n`,_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsxs(_components.p,{children:[`Razorpay’s unique bill payment transaction id. Use this for internal tracking, refund reference, reconciliation and to poll for the final status. For example, `,_jsx(_components.code,{children:`bill_pay_xxxx`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`entity`,type:`string`,id:`param-entity`,children:_jsxs(_components.p,{children:[`Entity type. Always `,_jsx(_components.code,{children:`bill_payment.payment`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`Initial payment status. `,_jsx(_components.code,{children:`processing`}),` on the create response. Poll `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-bill-payment`,children:`Fetch Bill Payment`}),` for the final state. Possible final values: `,_jsx(_components.code,{children:`success`}),` (NPCI `,_jsx(_components.code,{children:`responseCode=000`}),`), `,_jsx(_components.code,{children:`pending`}),` (NPCI `,_jsx(_components.code,{children:`responseCode=091`}),`) or `,_jsx(_components.code,{children:`failed`}),` (any other NPCI `,_jsx(_components.code,{children:`responseCode`}),`).`]})}),`\n`,_jsx(ResponseField,{name:`customer`,type:`object`,id:`param-customer-1`,children:_jsx(_components.p,{children:`Customer who made the payment. Echoed from the request.`})}),`\n`,_jsx(ResponseField,{name:`biller_id`,type:`string`,id:`param-biller-id-1`,children:_jsx(_components.p,{children:`Razorpay biller entity id. Use for internal biller identification, reporting and analytics.`})}),`\n`,_jsx(ResponseField,{name:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id-1`,children:_jsx(_components.p,{children:`NPCI biller id.`})}),`\n`,_jsx(ResponseField,{name:`gateway_transaction_id`,type:`string`,id:`param-gateway-transaction-id`,children:_jsxs(_components.p,{children:[`BBPS/NPCI transaction reference number. Fixed length of 12 or 20 characters. Maps to NPCI `,_jsx(_components.code,{children:`txnReferenceId`}),`. Store for NPCI reconciliation, settlement tracking and dispute resolution.`]})}),`\n`,_jsx(ResponseField,{name:`gateway`,type:`string`,id:`param-gateway`,children:_jsxs(_components.p,{children:[`Bill payment gateway used. Defaults to `,_jsx(_components.code,{children:`bbps`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`created_at`,type:`integer`,id:`param-created-at`,children:_jsx(_components.p,{children:`UNIX timestamp when the bill payment was created at Razorpay.`})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`ref_id`}),` is required.`]}),id:`the-ref-id-is-required`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`ref_id`}),` is required.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass either a valid `,_jsx(_components.code,{children:`bill_request_id`}),` (Normal Pay) or the Direct Pay fields (`,_jsx(_components.code,{children:`biller_id`}),`, `,_jsx(_components.code,{children:`biller_data.account_holder`}),`, `,_jsx(_components.code,{children:`device`}),`).`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`bill_request_id`}),` is invalid or expired.`]}),id:`the-bill-request-id-is-invalid-or-expired`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Invalid or expired `,_jsx(_components.code,{children:`ref_id`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Use a `,_jsx(_components.code,{children:`bill_request_id`}),` from a successful bill request that has not yet expired (`,_jsx(_components.code,{children:`expiry_at`}),`).`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`bill_pay_amount`}),` does not match the fetched amount.`]}),id:`the-bill-pay-amount-does-not-match-the-fetched-amount`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Payment amount does not match fetch/validate amount.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Use the `,_jsx(_components.code,{children:`bill.amount`}),` returned in the successful bill request or pass a value that satisfies the biller’s `,_jsx(_components.code,{children:`amount_exactness`}),` rules.`]})]}),_jsxs(Accordion,{title:`The customer parameters do not match the bill request.`,id:`the-customer-parameters-do-not-match-the-bill-request`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Customer parameters do not match fetch/validate request.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass the same customer parameters used during the bill request.`]})]}),_jsxs(Accordion,{title:`The payment method is not supported for this biller.`,id:`the-payment-method-is-not-supported-for-this-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Payment method not supported for this biller.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Check the biller’s supported `,_jsx(_components.code,{children:`payment_config.methods`}),` and retry with a supported method.`]})]}),_jsxs(Accordion,{title:`The payment amount exceeds the maximum limit.`,id:`the-payment-amount-exceeds-the-maximum-limit`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Payment amount exceeds maximum limit of `,_jsx(_components.code,{children:`{max_amount}`}),` for `,_jsx(_components.code,{children:`{payment_mode}`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass an amount within the biller’s `,_jsx(_components.code,{children:`payment_config.methods[].max_limit`}),` or split across methods.`]})]}),_jsxs(Accordion,{title:`Required payment instrument details are missing.`,id:`required-payment-instrument-details-are-missing`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Required payment instrument details missing for `,_jsx(_components.code,{children:`{payment_mode}`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Include the appropriate sub-object (`,_jsx(_components.code,{children:`card`}),`, `,_jsx(_components.code,{children:`upi`}),`, `,_jsx(_components.code,{children:`netbanking`}),`, `,_jsx(_components.code,{children:`wallet`}),`) with all mandatory fields.`]})]}),_jsxs(Accordion,{title:`Payment authorisation not found from PA.`,id:`payment-authorisation-not-found-from-pa`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Payment authorisation not found from PA.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Ensure the Razorpay PG payment is in a `,_jsx(_components.code,{children:`captured`}),` state before calling this API.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`X-Bill-Payments-Idempotency`}),` header is missing or invalid.`]}),id:`the-x-bill-payments-idempotency-header-is-missing-or-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`The idempotency key must be 4-36 characters and contain only alphanumeric characters, hyphens, underscores or spaces.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Provide a unique idempotency key. A UUID v4 is recommended.`]})]}),_jsxs(Accordion,{title:`Bill payment failed at biller.`,id:`bill-payment-failed-at-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller rejected the bill payment.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Check `,_jsx(_components.code,{children:`metadata.payment_id`}),` and initiate a refund on the PG payment if money was collected.`]})]}),_jsxs(Accordion,{title:`Duplicate payment at biller.`,id:`duplicate-payment-at-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`Bill payment failed at biller because of a duplicate payment.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Poll Fetch Bill Payment for the original payment status before retrying.`]})]}),_jsxs(Accordion,{title:`Payment request timed out at NPCI.`,id:`payment-request-timed-out-at-npci`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`NPCI did not respond within the timeout window.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Poll Fetch Bill Payment for the final state. Do not retry until status reaches `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]})]}),_jsxs(Accordion,{title:`Biller temporarily unavailable for payments.`,id:`biller-temporarily-unavailable-for-payments`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller is temporarily unavailable for payments.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Retry the request after a short interval.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The API `,_jsx(_components.code,{children:`\u003ckey/secret> `}),` provided is invalid.`]}),id:`the-api-key-secret-provided-is-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`401`})]}),_jsx(_components.p,{children:`The API credentials passed in the request differ from the ones generated on the Dashboard.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Ensure your API key and secret are correct and active.`]})]})]})]})}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":"Create a Bill Payment | BBPS API | Razorpay","description":"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.","api":"POST /v1/bill_payments/payments","href":"/api/bills/bill-payments/create-bill-payment","hidden":true}}}},"mdxExtracts":{"tableOfContents":[{"title":"Request Parameters","slug":"request-parameters","depth":2,"children":[]},{"title":"Response Parameters","slug":"response-parameters","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"Normal Pay","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"44\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -u\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\">\\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">-X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api.razorpay.com/v1/bill_payments/payments\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">-H \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">-H \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"X-Bill-Payments-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">-d \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">'{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bill_request_id\": \"billreq_ERNEungCtXpZqM\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bill_pay_amount\": 1015,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"fees\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"app_convenience_fee\": 10,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"biller_convenience_fee\": 5\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"payments\": [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"id\": \"pay_MbJ5AvwNpAkfLB\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"amount\": 600,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"provider\": \"razorpay\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"method\": \"card\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"card\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"type\": \"credit\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"last4\": \"0153\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"auth_code\": \"Card\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"id\": \"pay_MbJ5AvwNpAkfLA\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"amount\": 430,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"provider\": \"razorpay\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"method\": \"upi\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"upi\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"vpa\": \"gaurav.kumar@okhdfc.com\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bills\": [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bill_number\": \"820356722187\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"amount\": 1015,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> ]\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">}'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Direct Pay","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"62\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -u\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> [YOUR_KEY_ID]:[YOUR_KEY_SECRET] \u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\">\\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">-X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api.razorpay.com/v1/bill_payments/payments\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">-H \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Content-Type: application/json\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">-H \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"X-Bill-Payments-Idempotency: 53cda91c-8f81-4e77-bbb9-7388f4ac6bf4\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">-d \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">'{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"biller_id\": \"biller_001\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"gateway_biller_id\": \"TPOW00000MUM01\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"customer\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"id\": \"rzp_cust_123\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"name\": \"Gaurav Kumar\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"mobile\": \"919000090000\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"email\": \"gaurav.kumar@example.com\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"biller_data\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"account_holder\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"account_number\": \"XXXXXXX\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"KEY\": \"VALUE\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"KEY2\": \"VALUE2\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"device\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"initiating_channel\": \"mobile\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"mobile\": \"9999999999\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"geocode\": \"12.9667,77.5667\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"ip\": \"198.1.1.1\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"mac\": \"00-0D-60-07-2A-F0\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"os\": \"android\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"imei\": \"490154203237518\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"app\": \"amazon_pay\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bill_pay_amount\": 1015,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"fees\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"app_convenience_fee\": 10,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"biller_convenience_fee\": 5\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"payments\": [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"id\": \"pay_MbJ5AvwNpAkfLA\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"amount\": 600,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"provider\": \"razorpay\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"method\": \"card\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"card\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"type\": \"credit\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"last4\": \"0153\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"auth_code\": \"Card\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"id\": \"pay_MbJ5AvwNpAkfLB\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"amount\": 430,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"currency\": \"INR\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"provider\": \"razorpay\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"method\": \"upi\",\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"upi\": {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"vpa\": \"gaurav.kumar@okhdfc.com\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"bills\": []\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">}'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"Success","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"16\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bill_pay_xxxx\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"entity\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bill_payment.payment\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"processing\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"customer\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"rzp_cust_123\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Gaurav Kumar\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mobile\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"919000090000\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"email\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"gaurav.kumar@example.com\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"biller_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"biller_001\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"gateway_biller_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"TPOW00000MUM01\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"gateway_transaction_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bbps_txn_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"gateway\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bbps\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1609459200\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"},{"filename":"Failure","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"10\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"error\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"BAD_REQUEST_ERROR\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"The payment method used is not supported by this biller.\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"source\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"biller\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"step\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bill_payment\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"reason\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"biller_unavailable\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"metadata\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {}\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Create a Bill Payment | BBPS API | Razorpay","path":"/v1/bill_payments/payments","servers":[{"url":"https://api.razorpay.com"}],"method":"post","request":{"security":[{"title":"Basic Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"basic","description":"Basic authentication header of the form `Basic \u003cencoded-value>`, where `\u003cencoded-value>` is the base64-encoded string `username:password`."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"bill_request_id":[{"type":"string","description":"Bill request id returned by Create a Bill Request . Mandatory for Normal Pay. When omitted, the request is treated as Direct Pay and `device` and `biller_data.account_holder` become mandatory. For example, `billreq_ERNEungCtXpZqM` ."}],"biller_id":[{"type":"string","description":"Razorpay’s internal biller id. Required for Direct Pay if `gateway_biller_id` is not provided."}],"gateway_biller_id":[{"type":"string","description":"NPCI’s biller id. Required for Direct Pay if `biller_id` is not provided. For example, `TPOW00000MUM01` ."}],"bill_pay_amount":[{"type":"integer","description":"Actual bill amount for which the bill payment is raised, in paise. Excludes fees. Must satisfy the biller’s `payment_config.amount_exactness` rule ( `exact` , `exact_or_above` , `exact_or_below` or `any` ). This value can be less or more than an individual bill amount. For example, `1015` represents ₹10.15.","required":true}],"currency":[{"type":"string","description":"Currency in which the bill payment is initiated. Defaults to `INR` .","required":true}],"fees":[{"type":"object","properties":{},"description":"Fee breakdown. Pass `0` for components that do not apply.","required":true}],"fees.app_convenience_fee":[{"type":"integer","description":"Merchant/app convenience fee charged to the customer, in paise. Not part of NPCI standard. Platform-specific. Pass `0` if not applicable.","required":true}],"fees.biller_convenience_fee":[{"type":"integer","description":"Customer Convenience Fee charged by the biller, in paise. Maps to the biller’s `fee_config.fee_types[].fee_code=CCF1` returned by the Fetch Billers API and to NPCI’s `custConvFee` . Pass `0` if the biller charges no CCF.","required":true}],"payments":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Payment details collected via the Razorpay PG. Use multiple objects for split payments across methods.","required":true}],"payments[].id":[{"type":"string","description":"Razorpay payment id received from the Razorpay PA post Payment Create. Required as per NPCI guidelines. For example, `pay_MbJ5AvwNpAkfLB` .","required":true}],"payments[].provider":[{"type":"string","description":"Payment provider. Hardcode to `razorpay` when the payment is processed via the Razorpay gateway.","required":true}],"payments[].amount":[{"type":"integer","description":"Amount paid via the selected method, in paise. Must match the payment amount captured through the PG.","required":true}],"payments[].currency":[{"type":"string","description":"ISO 4217 currency code. Only `INR` is supported currently.","required":true}],"payments[].method":[{"type":"string","description":"Payment method. Maps to NPCI `paymentMode` . Supported values: `card` , `upi` , `netbanking` , `wallet` .","required":true}],"payments[].card":[{"type":"object","properties":{},"description":"Required when `method` is `card` ."}],"payments[].card.type":[{"type":"string","description":"Card type. Values: `credit` , `debit` , `prepaid` .","required":true}],"payments[].card.last4":[{"type":"string","description":"Last 4 digits of the card.","required":true}],"payments[].card.auth_code":[{"type":"string","description":"Hardcode to `Card` as per NPCI guidelines.","required":true}],"payments[].upi":[{"type":"object","properties":{},"description":"Required when `method` is `upi` ."}],"payments[].upi.vpa":[{"type":"string","description":"Customer’s actual UPI VPA if available; otherwise pass the Razorpay payment id.","required":true}],"payments[].netbanking":[{"type":"object","properties":{},"description":"Required when `method` is `netbanking` ."}],"payments[].netbanking.account_number":[{"type":"string","description":"Customer’s account number if available; otherwise hardcode to `PG` .","required":true}],"payments[].netbanking.ifsc_code":[{"type":"string","description":"IFSC code if available; otherwise pass the Razorpay payment id.","required":true}],"payments[].wallet":[{"type":"object","properties":{},"description":"Required when `method` is `wallet` ."}],"payments[].wallet.name":[{"type":"string","description":"Name of the actual wallet used. For example, `amazon_pay` , `payzapp` .","required":true}],"bills":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"Bills being paid. Minimum 1 bill required for Normal Pay. Pass an empty array `[]` for Direct Pay (no bill was retrieved).","required":true}],"bills[].bill_number":[{"type":"string","description":"`bills[].bill_number` received in the Fetch Bill Request response. Required when a bill was retrieved."}],"bills[].amount":[{"type":"integer","description":"Bill amount in paise. Must match the bill amount returned by the Fetch Bill Request API or satisfy the biller’s `payment_config.amount_exactness` rules.","required":true}],"bills[].currency":[{"type":"string","description":"Currency code. Hardcode to `INR` .","required":true}],"customer":[{"type":"object","properties":{},"description":"Customer information passed as dynamic key-value pairs. Free-form metadata for your own tracking and reconciliation. Razorpay echoes these back on responses and webhooks without validation."}],"customer.id":[{"type":"string","description":"Dynamic key-value pair holding your customer reference. Not validated by Razorpay."}],"customer.name":[{"type":"string","description":"Dynamic key-value pair holding the customer name. Not validated by Razorpay."}],"customer.mobile":[{"type":"string","description":"Customer’s mobile number with country code. For example, `919000090000` .","required":true}],"customer.email":[{"type":"string","description":"Dynamic key-value pair holding the customer email. Not validated by Razorpay."}],"biller_data":[{"type":"object","properties":{},"description":"Bill account holder details. Mandatory if `bill_request_id` is not provided."}],"biller_data.account_holder":[{"type":"object","properties":{},"description":"Dynamic key-value pairs that identify the customer’s account at the biller. The keys and values are dictated by the biller’s `account_holder_config` returned by the Fetch Billers API. Razorpay does not control the keys nor the values - pass them exactly as defined by the biller."}],"device":[{"type":"object","properties":{},"description":"Info about the device initiating the bill payment. Mandatory if `bill_request_id` is not provided."}],"device.initiating_channel":[{"type":"object","properties":{},"description":"Channel from which the bill payment is initiated. Values: `internet` - Web `mobile` - Mobile App `pos` - Point of Sale `mpos` - Mobile Point of Sale","required":true}],"device.mobile":[{"type":"string","description":"End agent’s mobile number (10 digits) for offline channels. Required for `pos` , `mpos` channels."}],"device.geocode":[{"type":"string","description":"Latitude, Longitude. Required for `internet` , `mobile` , `pos` , `mpos` channels. For example, `12.9667,77.5667` ."}],"device.ip":[{"type":"string","description":"IPv4 or IPv6 address. Required for `internet` , `mobile` channels."}],"device.mac":[{"type":"string","description":"MAC address. Required for `internet` channels. For example, `00-0D-60-07-2A-F0` ."}],"device.os":[{"type":"string","description":"Operating system. Required for `mobile` , `mpos` channels. For example, `android` , `iOS` ."}],"device.app":[{"type":"string","description":"Application name. Required for `mobile` , `mpos` channels. For example, `amazon_pay` ."}],"device.imei":[{"type":"string","description":"Device IMEI number. Required for the `mobile` initiating channel."}]}}],"examples":{"example":{"value":{"bill_request_id":"\u003cstring>","biller_id":"\u003cstring>","gateway_biller_id":"\u003cstring>","bill_pay_amount":123,"currency":"\u003cstring>","fees":{},"fees.app_convenience_fee":123,"fees.biller_convenience_fee":123,"payments":[{}],"payments[].id":"\u003cstring>","payments[].provider":"\u003cstring>","payments[].amount":123,"payments[].currency":"\u003cstring>","payments[].method":"\u003cstring>","payments[].card":{},"payments[].card.type":"\u003cstring>","payments[].card.last4":"\u003cstring>","payments[].card.auth_code":"\u003cstring>","payments[].upi":{},"payments[].upi.vpa":"\u003cstring>","payments[].netbanking":{},"payments[].netbanking.account_number":"\u003cstring>","payments[].netbanking.ifsc_code":"\u003cstring>","payments[].wallet":{},"payments[].wallet.name":"\u003cstring>","bills":[{}],"bills[].bill_number":"\u003cstring>","bills[].amount":123,"bills[].currency":"\u003cstring>","customer":{},"customer.id":"\u003cstring>","customer.name":"\u003cstring>","customer.mobile":"\u003cstring>","customer.email":"\u003cstring>","biller_data":{},"biller_data.account_holder":{},"device":{},"device.initiating_channel":{},"device.mobile":"\u003cstring>","device.geocode":"\u003cstring>","device.ip":"\u003cstring>","device.mac":"\u003cstring>","device.os":"\u003cstring>","device.app":"\u003cstring>","device.imei":"\u003cstring>"}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"id":[{"type":"string","description":"Razorpay’s unique bill payment transaction id. Use this for internal tracking, refund reference, reconciliation and to poll for the final status. For example, `bill_pay_xxxx` ."}],"entity":[{"type":"string","description":"Entity type. Always `bill_payment.payment` ."}],"status":[{"type":"string","description":"Initial payment status. `processing` on the create response. Poll Fetch Bill Payment for the final state. Possible final values: `success` (NPCI `responseCode=000` ), `pending` (NPCI `responseCode=091` ) or `failed` (any other NPCI `responseCode` )."}],"customer":[{"type":"object","properties":{},"description":"Customer who made the payment. Echoed from the request."}],"biller_id":[{"type":"string","description":"Razorpay biller entity id. Use for internal biller identification, reporting and analytics."}],"gateway_biller_id":[{"type":"string","description":"NPCI biller id."}],"gateway_transaction_id":[{"type":"string","description":"BBPS/NPCI transaction reference number. Fixed length of 12 or 20 characters. Maps to NPCI `txnReferenceId` . Store for NPCI reconciliation, settlement tracking and dispute resolution."}],"gateway":[{"type":"string","description":"Bill payment gateway used. Defaults to `bbps` ."}],"created_at":[{"type":"integer","description":"UNIX timestamp when the bill payment was created at Razorpay."}]}}],"examples":{"example":{"value":{"id":"\u003cstring>","entity":"\u003cstring>","status":"\u003cstring>","customer":{},"biller_id":"\u003cstring>","gateway_biller_id":"\u003cstring>","gateway_transaction_id":"\u003cstring>","gateway":"\u003cstring>","created_at":123}}}}}},"deprecated":false}},"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":"Create a Bill Payment | BBPS API | Razorpay - Razorpay","navMaps":{"firstHrefInVersion":{"India":{"href":"/api/bills/bill-payments/create-bill-payment","matchLevel":0},"Singapore":{"href":"/sg/home","matchLevel":4},"United States":{"href":"/us/home","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T16:37:54.786Z","gitLastModified":"2026-10-08T16:35:44.000Z","originalFileLocation":"api/bills/bill-payments/create-bill-payment.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=\"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.\">\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=\"Create a Bill Payment | BBPS API | Razorpay - Razorpay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Razorpay\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-payment\">\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=Documentation\u0026amp;title=Create+a+Bill+Payment+%7C+BBPS+API+%7C+Razorpay\u0026amp;description=Confirm+a+BBPS+bill+payment+on+the+NPCI+network+after+collecting+money+via+the+Razorpay+Payment+Gateway.+Returns+processing+status+with+a+bill+payment+id+to+pol\u0026amp;theme=a4f414a96152b37051aa45a2\u0026amp;signature=53b5deb30fb48262ef57dca0c68ee122cfb74d00e265906ba3fcbd1848cc0314\">\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=\"Create a Bill Payment | BBPS API | Razorpay - Razorpay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://razorpay-881012b3.mintlify.site/docs/_mintlify/api/og/v2?division=Documentation\u0026amp;title=Create+a+Bill+Payment+%7C+BBPS+API+%7C+Razorpay\u0026amp;description=Confirm+a+BBPS+bill+payment+on+the+NPCI+network+after+collecting+money+via+the+Razorpay+Payment+Gateway.+Returns+processing+status+with+a+bill+payment+id+to+pol\u0026amp;theme=a4f414a96152b37051aa45a2\u0026amp;signature=53b5deb30fb48262ef57dca0c68ee122cfb74d00e265906ba3fcbd1848cc0314\">\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/api/bills/bill-payments/create-bill-payment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api/bills/bill-payments/create-bill-payment.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/api/bills/bill-payments/create-bill-payment#webpage\",\"url\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-payment\",\"name\":\"Create a Bill Payment | BBPS API | Razorpay\",\"description\":\"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.\",\"dateModified\":\"2026-10-08T16:35:44.000Z\",\"isPartOf\":{\"@id\":\"https://razorpay.com/docs#website\"}},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-payment#apireference\",\"headline\":\"Create a Bill Payment | BBPS API | Razorpay\",\"name\":\"Create a Bill Payment | BBPS API | Razorpay\",\"description\":\"Confirm a BBPS bill payment on the NPCI network after collecting money via the Razorpay Payment Gateway. Returns processing status with a bill payment id to poll for the final outcome.\",\"url\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-payment\",\"mainEntityOfPage\":{\"@id\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-payment#webpage\"},\"dateModified\":\"2026-10-08T16:35:44.000Z\",\"publisher\":{\"@id\":\"https://razorpay.com/#organization\"},\"isPartOf\":{\"@id\":\"https://razorpay.com/docs#website\"}}]}\u003c/script>","agentPointerHref":"/docs/api/bills/bill-payments/create-bill-payment.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)","description":"Use Razorpay's BBPS APIs to fetch billers, fetch bill amounts and initiate bill payments via Bharat Bill Payment System.","href":"/api/bills/bill-payments"},{"title":"Create a Bill Payment | BBPS API | Razorpay","api":"POST /v1/bill_payments/payments","href":"/api/bills/bill-payments/create-bill-payment"},{"title":"Create a Bill Request | BBPS API | Razorpay","description":"Initiate an asynchronous request to retrieve a customer's outstanding bill from a BBPS biller using Razorpay's Bill Payments API. Poll Fetch Bill Request for results.","api":"POST /v1/bill_payments/bill_requests","href":"/api/bills/bill-payments/create-bill-request"},{"title":"Fetch Bill Payment | BBPS API | Razorpay","description":"Poll the status and details of a BBPS bill payment using Razorpay's Bill Payments API. Returns processing, pending, success or failed status along with transaction reference and bill details.","api":"GET /v1/bill_payments/payments/:id","href":"/api/bills/bill-payments/fetch-bill-payment"},{"title":"Fetch Bill Request | BBPS API | Razorpay","description":"Poll the status and details of a BBPS bill request using Razorpay's Bill Payments API. Returns processing, success or failed status with bill amount and due date on success.","api":"GET /v1/bill_payments/bill_requests/:id","href":"/api/bills/bill-payments/fetch-bill-request"},{"title":"Fetch Biller Categories | BBPS API | Razorpay","description":"Retrieve all available biller categories on the BBPS platform using Razorpay's Bill Payments API.","api":"GET /v1/bill_payments/billers/categories","href":"/api/bills/bill-payments/fetch-biller-categories"},{"title":"Fetch Biller Plans | BBPS API | Razorpay","description":"Retrieve available plans for prepaid BBPS billers such as DTH and recharge providers using Razorpay's Bill Payments API.","api":"GET /v1/bill_payments/biller_plans","href":"/api/bills/bill-payments/fetch-biller-plans"},{"title":"Fetch Billers | BBPS API | Razorpay","description":"Retrieve a list of BBPS billers with filtering by category, geography and status using Razorpay's Bill Payments API.","api":"GET /v1/bill_payments/billers","href":"/api/bills/bill-payments/fetch-billers"}]},{"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","href":"/payments/payment-gateway/s2s-integration"}]},{"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":"Create a Bill Payment | BBPS API | Razorpay - Razorpay","buildId":"dpl_FGqRJUoJWfds4SqdfFGJ2v1vVNSs","deploymentId":"dpl_FGqRJUoJWfds4SqdfFGJ2v1vVNSs","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-Us8B4Mzf.js","utils-Dv2Wyxzv.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CLOEZoDv.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-xCe08nEy.js","snippetPresets-Cc_giFbY.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DafA3CKm.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DsvMszM5.js","shallow-DfieQrKJ.js","getApiPlaygroundDisplay-BgvbqFlL.js","CodeSnippet-DFJsVHka.js","CodeSnippets-CcVa6za-.js","Page-7I7jezgZ.js","getPastedJson-MHp3jc8Z.js","icon-CUK0uq79.js","MethodPill-BXkAvnAk.js","DuplicateIcon-C9TFiQKm.js","createIcon-d5a1ep-A.js","DynamicMarkdown-v9H593Hz.js","SectionHeading-cxpy1bWG.js","axios-vUo_bRtp.js"]}