{ "error": { "code": "BAD_REQUEST_ERROR", "description": "The biller id provided does not correspond to a valid or active biller. Verify the biller_id and retry with a valid biller.", "source": "business", "step": "bill_request", "reason": "biller_not_found" }}
Create a Bill Request | BBPS API | Razorpay
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.
{ "error": { "code": "BAD_REQUEST_ERROR", "description": "The biller id provided does not correspond to a valid or active biller. Verify the biller_id and retry with a valid biller.", "source": "business", "step": "bill_request", "reason": "biller_not_found" }}
Available in🇮🇳 India
Use this endpoint to either retrieve the outstanding bill amount for a customer from a biller or validate the customer’s account details when the biller does not support bill retrieval. This is an asynchronous API. The response immediately returns a bill request in processing status. Poll the Fetch Bill Request API with the returned id until the status reaches success or failed.
When to use this API
When the biller’s bill_request_config.bill_request_required is mandatory - call this API to retrieve the bill before payment.
When bill_request_required is optional - call this API to validate the customer’s account or skip and use Direct Pay.
When bill_request_required is not_supported - skip this step and call Create a Bill Payment directly.
Polling URLPoll for the final state using GET /v1/bill_payments/bill_requests/{id} with the id from the response.
{ "error": { "code": "BAD_REQUEST_ERROR", "description": "The biller id provided does not correspond to a valid or active biller. Verify the biller_id and retry with a valid biller.", "source": "business", "step": "bill_request", "reason": "biller_not_found" }}
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. Razorpay does not control the keys nor the values. Pass them exactly as defined in the biller’s account_holder_config returned by the Fetch Billers API.
Customer reference details echoed from the request as dynamic key-value pairs. Returned only when sent in the request. Free-form metadata that you can use for your own tracking and reconciliation.
Code:400The biller id provided does not correspond to a valid or active biller.Solution: Verify the biller_id and retry with a valid biller from the Fetch Billers API.
The gateway_biller_id is missing.
Code:400biller_id is required.Solution: Pass either a valid biller_id or gateway_biller_id in the request.
The biller_data.account_holder values are invalid.
Code:400Invalid customer parameter format for {param_name}.Solution: Pass values matching the biller’s account_holder_config.params validation rules (data_type, min_length, max_length, regex).
Device information is incomplete.
Code:400Device information is incomplete. Missing required field for the initiating channel.Solution: Pass all device fields required for the chosen initiating_channel.
No bill found for the provided customer parameters.
Code:502No bill found at the biller for the customer details provided.Solution: Confirm the customer details with the user and retry.
Unable to fetch bill from NPCI.
Code:502NPCI did not respond within the timeout window.Solution: Retry the request after a short interval.
Invalid or missing customer account holder data.
Code:502The biller rejected the account holder data as invalid or incomplete.Solution: Verify biller_data.account_holder keys match the biller’s account_holder_config.
Biller system temporarily unavailable.
Code:502The biller is temporarily unavailable to retrieve the bill.Solution: Retry the request after a short interval.
Bill retrieval is not valid for this biller.
Code:400The biller does not support bill retrieval.Solution: Use Direct Pay via the Create a Bill Payment API. Check the biller’s bill_request_config.bill_request_required before calling this API.
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-request","slug":"/api/bills/bill-payments/create-bill-request","pageMetadata":{"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","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: \"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.\"\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}=_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);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 either retrieve the outstanding bill amount for a customer from a biller or validate the customer’s account details when the biller does not support bill retrieval. This is an asynchronous API. The response immediately returns a bill request in `,_jsx(_components.code,{children:`processing`}),` status. Poll the `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-bill-request`,children:`Fetch Bill Request`}),` API with the returned `,_jsx(_components.code,{children:`id`}),` until the status reaches `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`When to use this API`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`When the biller’s `,_jsx(_components.code,{children:`bill_request_config.bill_request_required`}),` is `,_jsx(_components.code,{children:`mandatory`}),` - call this API to retrieve the bill before payment.`]}),`\n`,_jsxs(_components.li,{children:[`When `,_jsx(_components.code,{children:`bill_request_required`}),` is `,_jsx(_components.code,{children:`optional`}),` - call this API to validate the customer’s account or skip and use Direct Pay.`]}),`\n`,_jsxs(_components.li,{children:[`When `,_jsx(_components.code,{children:`bill_request_required`}),` is `,_jsx(_components.code,{children:`not_supported`}),` - skip this step and call `,_jsx(_components.a,{href:`/api/bills/bill-payments/create-bill-payment`,children:`Create a Bill Payment`}),` directly.`]}),`\n`]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Polling URL`})}),_jsxs(_components.p,{children:[`Poll for the final state using `,_jsx(_components.code,{children:`GET /v1/bill_payments/bill_requests/{id}`}),` with the `,_jsx(_components.code,{children:`id`}),` from the response.`]})]}),`\n`,`\n`,`\n`,_jsx(Heading,{level:`2`,id:`request-parameters`,children:`Request Parameters`}),`\n`,_jsx(ParamField,{body:`biller_id`,type:`string`,id:`param-biller-id`,children:_jsxs(_components.p,{children:[`Razorpay’s internal biller id sent in biller info. One of `,_jsx(_components.code,{children:`biller_id`}),` or `,_jsx(_components.code,{children:`gateway_biller_id`}),` is mandatory.`]})}),`\n`,_jsx(ParamField,{body:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id`,children:_jsxs(_components.p,{children:[`NPCI biller id (for example, `,_jsx(_components.code,{children:`TPOW00000MUM01`}),`). One of `,_jsx(_components.code,{children:`biller_id`}),` or `,_jsx(_components.code,{children:`gateway_biller_id`}),` is mandatory.`]})}),`\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:_jsx(_components.p,{children:`Customer mobile number provided at payment create on PA.`})}),`\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:`device`,type:`object`,required:true,id:`param-device`,children:_jsx(_components.p,{children:`Info about the bill payment initiating device.`})}),`\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 request 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.app`,type:`string`,id:`param-device-app`,children:_jsxs(_components.p,{children:[`Application name (for example, `,_jsx(_components.code,{children:`amazon_pay`}),`). Required for `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`mpos`}),` initiating channels.`]})}),`\n`,_jsx(ParamField,{body:`device.mobile`,type:`string`,id:`param-device-mobile`,children:_jsxs(_components.p,{children:[`NPCI channel requirements - End agent’s mobile number for offline channels. Required for `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` initiating channels.`]})}),`\n`,_jsx(ParamField,{body:`device.geocode`,type:`string`,id:`param-device-geocode`,children:_jsxs(_components.p,{children:[`NPCI channel requirements - Latitude, Longitude (for example, `,_jsx(_components.code,{children:`12.9667,77.5667`}),`). Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels.`]})}),`\n`,_jsx(ParamField,{body:`device.ip`,type:`string`,id:`param-device-ip`,children:_jsxs(_components.p,{children:[`NPCI channel requirements - IP address (IPv4 or IPv6). Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),` initiating 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.`]})}),`\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.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(ParamField,{body:`biller_data`,type:`object`,required:true,id:`param-biller-data`,children:_jsx(_components.p,{children:`Bill account holder details. Required for every bill request irrespective of the pay flow.`})}),`\n`,_jsx(ParamField,{body:`biller_data.account_holder`,type:`object`,required:true,id:`param-biller-data-account-holder`,children:_jsxs(_components.p,{children:[`Dynamic key-value pairs that identify the customer’s account at the biller. Razorpay does not control the keys nor the values. Pass them exactly as defined in 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.`]})}),`\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 bill request id created. Store for reference and reconciliation. For example, `,_jsx(_components.code,{children:`billreq_ERNEungCtXpZqM`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`entity`,type:`string`,id:`param-entity`,children:_jsxs(_components.p,{children:[`Entity type. Always `,_jsx(_components.code,{children:`bill_payment.bill_request`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`Request status. Possible values: `,_jsx(_components.code,{children:`processing`}),`, `,_jsx(_components.code,{children:`success`}),`, `,_jsx(_components.code,{children:`failed`}),`. To take next action if the status is not terminal (`,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`), continue polling.`]})}),`\n`,_jsx(ResponseField,{name:`customer`,type:`object`,id:`param-customer-1`,children:_jsx(_components.p,{children:`Customer reference details echoed from the request as dynamic key-value pairs. Returned only when sent in the request. Free-form metadata that you can use for your own tracking and reconciliation.`})}),`\n`,_jsx(ResponseField,{name:`customer.id`,type:`string`,id:`param-customer-id-1`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding your customer reference. Echoed back exactly as sent in the request. Not validated by Razorpay.`})}),`\n`,_jsx(ResponseField,{name:`customer.name`,type:`string`,id:`param-customer-name-1`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer name. Echoed back exactly as sent in the request. Not validated by Razorpay.`})}),`\n`,_jsx(ResponseField,{name:`customer.mobile`,type:`string`,required:true,id:`param-customer-mobile-1`,children:_jsx(_components.p,{children:`Customer mobile number provided at payment create on PA.`})}),`\n`,_jsx(ResponseField,{name:`customer.email`,type:`string`,id:`param-customer-email-1`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer email. Echoed back exactly as sent in the request. Not validated by Razorpay.`})}),`\n`,_jsx(ResponseField,{name:`biller_id`,type:`string`,id:`param-biller-id-1`,children:_jsx(_components.p,{children:`Razorpay’s internal biller id, same as sent in request. Use for reference and reconciliation.`})}),`\n`,_jsx(ResponseField,{name:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id-1`,children:_jsx(_components.p,{children:`NPCI biller id sent in request. Use for reference and reconciliation.`})}),`\n`,_jsx(ResponseField,{name:`gateway`,type:`string`,id:`param-gateway`,children:_jsxs(_components.p,{children:[`Bill payment gateway used. Default value is `,_jsx(_components.code,{children:`bbps`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`created_at`,type:`integer`,id:`param-created-at`,children:_jsx(_components.p,{children:`Request created timestamp at Razorpay (Unix seconds). Audit trail.`})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`biller_id`}),` is missing or invalid.`]}),id:`the-biller-id-is-missing-or-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`The biller id provided does not correspond to a valid or active biller.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Verify the `,_jsx(_components.code,{children:`biller_id`}),` and retry with a valid biller from the Fetch Billers API.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`gateway_biller_id`}),` is missing.`]}),id:`the-gateway-biller-id-is-missing`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`biller_id`}),` is required.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass either a valid `,_jsx(_components.code,{children:`biller_id`}),` or `,_jsx(_components.code,{children:`gateway_biller_id`}),` in the request.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`biller_data.account_holder`}),` values are invalid.`]}),id:`the-biller-data-account-holder-values-are-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Invalid customer parameter format for `,_jsx(_components.code,{children:`{param_name}`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass values matching the biller’s `,_jsx(_components.code,{children:`account_holder_config.params`}),` validation rules (`,_jsx(_components.code,{children:`data_type`}),`, `,_jsx(_components.code,{children:`min_length`}),`, `,_jsx(_components.code,{children:`max_length`}),`, `,_jsx(_components.code,{children:`regex`}),`).`]})]}),_jsxs(Accordion,{title:`Device information is incomplete.`,id:`device-information-is-incomplete`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Device information is incomplete. Missing required field for the initiating channel.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass all device fields required for the chosen `,_jsx(_components.code,{children:`initiating_channel`}),`.`]})]}),_jsxs(Accordion,{title:`No bill found for the provided customer parameters.`,id:`no-bill-found-for-the-provided-customer-parameters`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`No bill found at the biller for the customer details provided.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Confirm the customer details with the user and retry.`]})]}),_jsxs(Accordion,{title:`Unable to fetch bill from NPCI.`,id:`unable-to-fetch-bill-from-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:`}),` Retry the request after a short interval.`]})]}),_jsxs(Accordion,{title:`Invalid or missing customer account holder data.`,id:`invalid-or-missing-customer-account-holder-data`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller rejected the account holder data as invalid or incomplete.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Verify `,_jsx(_components.code,{children:`biller_data.account_holder`}),` keys match the biller’s `,_jsx(_components.code,{children:`account_holder_config`}),`.`]})]}),_jsxs(Accordion,{title:`Biller system temporarily unavailable.`,id:`biller-system-temporarily-unavailable`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller is temporarily unavailable to retrieve the bill.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Retry the request after a short interval.`]})]}),_jsxs(Accordion,{title:`Bill retrieval is not valid for this biller.`,id:`bill-retrieval-is-not-valid-for-this-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`The biller does not support bill retrieval.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Use Direct Pay via the Create a Bill Payment API. Check the biller’s `,_jsx(_components.code,{children:`bill_request_config.bill_request_required`}),` before calling this API.`]})]}),_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 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","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}=_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);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 either retrieve the outstanding bill amount for a customer from a biller or validate the customer’s account details when the biller does not support bill retrieval. This is an asynchronous API. The response immediately returns a bill request in `,_jsx(_components.code,{children:`processing`}),` status. Poll the `,_jsx(_components.a,{href:`/api/bills/bill-payments/fetch-bill-request`,children:`Fetch Bill Request`}),` API with the returned `,_jsx(_components.code,{children:`id`}),` until the status reaches `,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`.`]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`When to use this API`})}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`When the biller’s `,_jsx(_components.code,{children:`bill_request_config.bill_request_required`}),` is `,_jsx(_components.code,{children:`mandatory`}),` - call this API to retrieve the bill before payment.`]}),`\n`,_jsxs(_components.li,{children:[`When `,_jsx(_components.code,{children:`bill_request_required`}),` is `,_jsx(_components.code,{children:`optional`}),` - call this API to validate the customer’s account or skip and use Direct Pay.`]}),`\n`,_jsxs(_components.li,{children:[`When `,_jsx(_components.code,{children:`bill_request_required`}),` is `,_jsx(_components.code,{children:`not_supported`}),` - skip this step and call `,_jsx(_components.a,{href:`/api/bills/bill-payments/create-bill-payment`,children:`Create a Bill Payment`}),` directly.`]}),`\n`]})]}),`\n`,_jsxs(Info,{children:[_jsx(_components.p,{children:_jsx(_components.strong,{children:`Polling URL`})}),_jsxs(_components.p,{children:[`Poll for the final state using `,_jsx(_components.code,{children:`GET /v1/bill_payments/bill_requests/{id}`}),` with the `,_jsx(_components.code,{children:`id`}),` from the response.`]})]}),`\n`,_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`Curl`,numberOfLines:`30`,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:`30`,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/bill_requests`}),_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:`-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:` \"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:` \"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:`}'`})}),`\n`]})})})}),`\n`,_jsxs(ResponseExample,{children:[_jsx(CodeBlock,{filename:`Success (state=processing)`,numberOfLines:`15`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`15`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"billreq_ERNEungCtXpZqM\"`}),_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.bill_request\"`}),_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\"`}),_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 (state=failed)`,numberOfLines:`9`,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:`9`,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 biller id provided does not correspond to a valid or active biller. Verify the biller_id and retry with a valid 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:`\"business\"`}),_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_request\"`}),_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_not_found\"`})]}),`\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:`biller_id`,type:`string`,id:`param-biller-id`,children:_jsxs(_components.p,{children:[`Razorpay’s internal biller id sent in biller info. One of `,_jsx(_components.code,{children:`biller_id`}),` or `,_jsx(_components.code,{children:`gateway_biller_id`}),` is mandatory.`]})}),`\n`,_jsx(ParamField,{body:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id`,children:_jsxs(_components.p,{children:[`NPCI biller id (for example, `,_jsx(_components.code,{children:`TPOW00000MUM01`}),`). One of `,_jsx(_components.code,{children:`biller_id`}),` or `,_jsx(_components.code,{children:`gateway_biller_id`}),` is mandatory.`]})}),`\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:_jsx(_components.p,{children:`Customer mobile number provided at payment create on PA.`})}),`\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:`device`,type:`object`,required:true,id:`param-device`,children:_jsx(_components.p,{children:`Info about the bill payment initiating device.`})}),`\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 request 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.app`,type:`string`,id:`param-device-app`,children:_jsxs(_components.p,{children:[`Application name (for example, `,_jsx(_components.code,{children:`amazon_pay`}),`). Required for `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`mpos`}),` initiating channels.`]})}),`\n`,_jsx(ParamField,{body:`device.mobile`,type:`string`,id:`param-device-mobile`,children:_jsxs(_components.p,{children:[`NPCI channel requirements - End agent’s mobile number for offline channels. Required for `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` initiating channels.`]})}),`\n`,_jsx(ParamField,{body:`device.geocode`,type:`string`,id:`param-device-geocode`,children:_jsxs(_components.p,{children:[`NPCI channel requirements - Latitude, Longitude (for example, `,_jsx(_components.code,{children:`12.9667,77.5667`}),`). Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),`, `,_jsx(_components.code,{children:`pos`}),`, `,_jsx(_components.code,{children:`mpos`}),` channels.`]})}),`\n`,_jsx(ParamField,{body:`device.ip`,type:`string`,id:`param-device-ip`,children:_jsxs(_components.p,{children:[`NPCI channel requirements - IP address (IPv4 or IPv6). Required for `,_jsx(_components.code,{children:`internet`}),`, `,_jsx(_components.code,{children:`mobile`}),` initiating 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.`]})}),`\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.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(ParamField,{body:`biller_data`,type:`object`,required:true,id:`param-biller-data`,children:_jsx(_components.p,{children:`Bill account holder details. Required for every bill request irrespective of the pay flow.`})}),`\n`,_jsx(ParamField,{body:`biller_data.account_holder`,type:`object`,required:true,id:`param-biller-data-account-holder`,children:_jsxs(_components.p,{children:[`Dynamic key-value pairs that identify the customer’s account at the biller. Razorpay does not control the keys nor the values. Pass them exactly as defined in 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.`]})}),`\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 bill request id created. Store for reference and reconciliation. For example, `,_jsx(_components.code,{children:`billreq_ERNEungCtXpZqM`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`entity`,type:`string`,id:`param-entity`,children:_jsxs(_components.p,{children:[`Entity type. Always `,_jsx(_components.code,{children:`bill_payment.bill_request`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`status`,type:`string`,id:`param-status`,children:_jsxs(_components.p,{children:[`Request status. Possible values: `,_jsx(_components.code,{children:`processing`}),`, `,_jsx(_components.code,{children:`success`}),`, `,_jsx(_components.code,{children:`failed`}),`. To take next action if the status is not terminal (`,_jsx(_components.code,{children:`success`}),` or `,_jsx(_components.code,{children:`failed`}),`), continue polling.`]})}),`\n`,_jsx(ResponseField,{name:`customer`,type:`object`,id:`param-customer-1`,children:_jsx(_components.p,{children:`Customer reference details echoed from the request as dynamic key-value pairs. Returned only when sent in the request. Free-form metadata that you can use for your own tracking and reconciliation.`})}),`\n`,_jsx(ResponseField,{name:`customer.id`,type:`string`,id:`param-customer-id-1`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding your customer reference. Echoed back exactly as sent in the request. Not validated by Razorpay.`})}),`\n`,_jsx(ResponseField,{name:`customer.name`,type:`string`,id:`param-customer-name-1`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer name. Echoed back exactly as sent in the request. Not validated by Razorpay.`})}),`\n`,_jsx(ResponseField,{name:`customer.mobile`,type:`string`,required:true,id:`param-customer-mobile-1`,children:_jsx(_components.p,{children:`Customer mobile number provided at payment create on PA.`})}),`\n`,_jsx(ResponseField,{name:`customer.email`,type:`string`,id:`param-customer-email-1`,children:_jsx(_components.p,{children:`Dynamic key-value pair holding the customer email. Echoed back exactly as sent in the request. Not validated by Razorpay.`})}),`\n`,_jsx(ResponseField,{name:`biller_id`,type:`string`,id:`param-biller-id-1`,children:_jsx(_components.p,{children:`Razorpay’s internal biller id, same as sent in request. Use for reference and reconciliation.`})}),`\n`,_jsx(ResponseField,{name:`gateway_biller_id`,type:`string`,id:`param-gateway-biller-id-1`,children:_jsx(_components.p,{children:`NPCI biller id sent in request. Use for reference and reconciliation.`})}),`\n`,_jsx(ResponseField,{name:`gateway`,type:`string`,id:`param-gateway`,children:_jsxs(_components.p,{children:[`Bill payment gateway used. Default value is `,_jsx(_components.code,{children:`bbps`}),`.`]})}),`\n`,_jsx(ResponseField,{name:`created_at`,type:`integer`,id:`param-created-at`,children:_jsx(_components.p,{children:`Request created timestamp at Razorpay (Unix seconds). Audit trail.`})}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(AccordionGroup,{children:[_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`biller_id`}),` is missing or invalid.`]}),id:`the-biller-id-is-missing-or-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`The biller id provided does not correspond to a valid or active biller.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Verify the `,_jsx(_components.code,{children:`biller_id`}),` and retry with a valid biller from the Fetch Billers API.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`gateway_biller_id`}),` is missing.`]}),id:`the-gateway-biller-id-is-missing`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`biller_id`}),` is required.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass either a valid `,_jsx(_components.code,{children:`biller_id`}),` or `,_jsx(_components.code,{children:`gateway_biller_id`}),` in the request.`]})]}),_jsxs(Accordion,{title:_jsxs(_Fragment,{children:[`The `,_jsx(_components.code,{children:`biller_data.account_holder`}),` values are invalid.`]}),id:`the-biller-data-account-holder-values-are-invalid`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsxs(_components.p,{children:[`Invalid customer parameter format for `,_jsx(_components.code,{children:`{param_name}`}),`.`]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass values matching the biller’s `,_jsx(_components.code,{children:`account_holder_config.params`}),` validation rules (`,_jsx(_components.code,{children:`data_type`}),`, `,_jsx(_components.code,{children:`min_length`}),`, `,_jsx(_components.code,{children:`max_length`}),`, `,_jsx(_components.code,{children:`regex`}),`).`]})]}),_jsxs(Accordion,{title:`Device information is incomplete.`,id:`device-information-is-incomplete`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`Device information is incomplete. Missing required field for the initiating channel.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Pass all device fields required for the chosen `,_jsx(_components.code,{children:`initiating_channel`}),`.`]})]}),_jsxs(Accordion,{title:`No bill found for the provided customer parameters.`,id:`no-bill-found-for-the-provided-customer-parameters`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`No bill found at the biller for the customer details provided.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Confirm the customer details with the user and retry.`]})]}),_jsxs(Accordion,{title:`Unable to fetch bill from NPCI.`,id:`unable-to-fetch-bill-from-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:`}),` Retry the request after a short interval.`]})]}),_jsxs(Accordion,{title:`Invalid or missing customer account holder data.`,id:`invalid-or-missing-customer-account-holder-data`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller rejected the account holder data as invalid or incomplete.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Verify `,_jsx(_components.code,{children:`biller_data.account_holder`}),` keys match the biller’s `,_jsx(_components.code,{children:`account_holder_config`}),`.`]})]}),_jsxs(Accordion,{title:`Biller system temporarily unavailable.`,id:`biller-system-temporarily-unavailable`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`502`})]}),_jsx(_components.p,{children:`The biller is temporarily unavailable to retrieve the bill.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Retry the request after a short interval.`]})]}),_jsxs(Accordion,{title:`Bill retrieval is not valid for this biller.`,id:`bill-retrieval-is-not-valid-for-this-biller`,children:[_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code:`}),` `,_jsx(_components.code,{children:`400`})]}),_jsx(_components.p,{children:`The biller does not support bill retrieval.`}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Solution:`}),` Use Direct Pay via the Create a Bill Payment API. Check the biller’s `,_jsx(_components.code,{children:`bill_request_config.bill_request_required`}),` before calling this API.`]})]}),_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 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","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":"Curl","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=\"30\">\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/bill_requests\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\">-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\"> \"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\"> \"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\">}'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"Success (state=processing)","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=\"15\">\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\">\"billreq_ERNEungCtXpZqM\"\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.bill_request\"\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\"\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 (state=failed)","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=\"9\">\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 biller id provided does not correspond to a valid or active biller. Verify the biller_id and retry with a valid 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\">\"business\"\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_request\"\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_not_found\"\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 Request | BBPS API | Razorpay","path":"/v1/bill_payments/bill_requests","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":{"biller_id":[{"type":"string","description":"Razorpay’s internal biller id sent in biller info. One of `biller_id` or `gateway_biller_id` is mandatory."}],"gateway_biller_id":[{"type":"string","description":"NPCI biller id (for example, `TPOW00000MUM01` ). One of `biller_id` or `gateway_biller_id` is mandatory."}],"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 mobile number provided at payment create on PA.","required":true}],"customer.email":[{"type":"string","description":"Dynamic key-value pair holding the customer email. Not validated by Razorpay."}],"device":[{"type":"object","properties":{},"description":"Info about the bill payment initiating device.","required":true}],"device.initiating_channel":[{"type":"object","properties":{},"description":"Channel from which the bill request is initiated. Values: `internet` - Web `mobile` - Mobile App `pos` - Point of Sale `mpos` - Mobile Point of Sale","required":true}],"device.app":[{"type":"string","description":"Application name (for example, `amazon_pay` ). Required for `mobile` , `mpos` initiating channels."}],"device.mobile":[{"type":"string","description":"NPCI channel requirements - End agent’s mobile number for offline channels. Required for `pos` , `mpos` initiating channels."}],"device.geocode":[{"type":"string","description":"NPCI channel requirements - Latitude, Longitude (for example, `12.9667,77.5667` ). Required for `internet` , `mobile` , `pos` , `mpos` channels."}],"device.ip":[{"type":"string","description":"NPCI channel requirements - IP address (IPv4 or IPv6). Required for `internet` , `mobile` initiating channels."}],"device.mac":[{"type":"string","description":"MAC address. Required for `internet` channels."}],"device.os":[{"type":"string","description":"Operating system. Required for `mobile` , `mpos` channels. For example, `android` , `iOS` ."}],"device.imei":[{"type":"string","description":"Device IMEI number. Required for the `mobile` initiating channel."}],"biller_data":[{"type":"object","properties":{},"description":"Bill account holder details. Required for every bill request irrespective of the pay flow.","required":true}],"biller_data.account_holder":[{"type":"object","properties":{},"description":"Dynamic key-value pairs that identify the customer’s account at the biller. Razorpay does not control the keys nor the values. Pass them exactly as defined in the biller’s `account_holder_config` returned by the Fetch Billers API.","required":true}]}}],"examples":{"example":{"value":{"biller_id":"\u003cstring>","gateway_biller_id":"\u003cstring>","customer":{},"customer.id":"\u003cstring>","customer.name":"\u003cstring>","customer.mobile":"\u003cstring>","customer.email":"\u003cstring>","device":{},"device.initiating_channel":{},"device.app":"\u003cstring>","device.mobile":"\u003cstring>","device.geocode":"\u003cstring>","device.ip":"\u003cstring>","device.mac":"\u003cstring>","device.os":"\u003cstring>","device.imei":"\u003cstring>","biller_data":{},"biller_data.account_holder":{}}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"id":[{"type":"string","description":"Razorpay’s bill request id created. Store for reference and reconciliation. For example, `billreq_ERNEungCtXpZqM` ."}],"entity":[{"type":"string","description":"Entity type. Always `bill_payment.bill_request` ."}],"status":[{"type":"string","description":"Request status. Possible values: `processing` , `success` , `failed` . To take next action if the status is not terminal ( `success` or `failed` ), continue polling."}],"customer":[{"type":"object","properties":{},"description":"Customer reference details echoed from the request as dynamic key-value pairs. Returned only when sent in the request. Free-form metadata that you can use for your own tracking and reconciliation."}],"customer.id":[{"type":"string","description":"Dynamic key-value pair holding your customer reference. Echoed back exactly as sent in the request. Not validated by Razorpay."}],"customer.name":[{"type":"string","description":"Dynamic key-value pair holding the customer name. Echoed back exactly as sent in the request. Not validated by Razorpay."}],"customer.mobile":[{"type":"string","description":"Customer mobile number provided at payment create on PA.","required":true}],"customer.email":[{"type":"string","description":"Dynamic key-value pair holding the customer email. Echoed back exactly as sent in the request. Not validated by Razorpay."}],"biller_id":[{"type":"string","description":"Razorpay’s internal biller id, same as sent in request. Use for reference and reconciliation."}],"gateway_biller_id":[{"type":"string","description":"NPCI biller id sent in request. Use for reference and reconciliation."}],"gateway":[{"type":"string","description":"Bill payment gateway used. Default value is `bbps` ."}],"created_at":[{"type":"integer","description":"Request created timestamp at Razorpay (Unix seconds). Audit trail."}]}}],"examples":{"example":{"value":{"id":"\u003cstring>","entity":"\u003cstring>","status":"\u003cstring>","customer":{},"customer.id":"\u003cstring>","customer.name":"\u003cstring>","customer.mobile":"\u003cstring>","customer.email":"\u003cstring>","biller_id":"\u003cstring>","gateway_biller_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 Request | BBPS API | Razorpay - Razorpay","navMaps":{"firstHrefInVersion":{"India":{"href":"/api/bills/bill-payments/create-bill-request","matchLevel":0},"Singapore":{"href":"/sg/home","matchLevel":4},"United States":{"href":"/us/home","matchLevel":4}},"firstHrefInLanguage":{}},"lastModified":"2026-10-08T16:37:54.761Z","gitLastModified":"2026-10-08T16:35:44.000Z","originalFileLocation":"api/bills/bill-payments/create-bill-request.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=\"Initiate an asynchronous request to retrieve a customer\u0026#x27;s outstanding bill from a BBPS biller using Razorpay\u0026#x27;s Bill Payments API. Poll Fetch Bill Request for results.\">\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 Request | BBPS API | Razorpay - Razorpay\">\u003cmeta data-mint-head property=\"og:description\" content=\"Initiate an asynchronous request to retrieve a customer\u0026#x27;s outstanding bill from a BBPS biller using Razorpay\u0026#x27;s Bill Payments API. Poll Fetch Bill Request for results.\">\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-request\">\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+Request+%7C+BBPS+API+%7C+Razorpay\u0026amp;description=Initiate+an+asynchronous+request+to+retrieve+a+customer%27s+outstanding+bill+from+a+BBPS+biller+using+Razorpay%27s+Bill+Payments+API.+Poll+Fetch+Bill+Request+for+re\u0026amp;theme=a4f414a96152b37051aa45a2\u0026amp;signature=1e317f570a16a60420e1ec383e60f627c3dd2bc1250edc8aee4db0f895eec4df\">\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 Request | BBPS API | Razorpay - Razorpay\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Initiate an asynchronous request to retrieve a customer\u0026#x27;s outstanding bill from a BBPS biller using Razorpay\u0026#x27;s Bill Payments API. Poll Fetch Bill Request for results.\">\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+Request+%7C+BBPS+API+%7C+Razorpay\u0026amp;description=Initiate+an+asynchronous+request+to+retrieve+a+customer%27s+outstanding+bill+from+a+BBPS+biller+using+Razorpay%27s+Bill+Payments+API.+Poll+Fetch+Bill+Request+for+re\u0026amp;theme=a4f414a96152b37051aa45a2\u0026amp;signature=1e317f570a16a60420e1ec383e60f627c3dd2bc1250edc8aee4db0f895eec4df\">\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-request\">\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-request.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-request#webpage\",\"url\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-request\",\"name\":\"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.\",\"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-request#apireference\",\"headline\":\"Create a Bill Request | BBPS API | Razorpay\",\"name\":\"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.\",\"url\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-request\",\"mainEntityOfPage\":{\"@id\":\"https://razorpay.com/docs/api/bills/bill-payments/create-bill-request#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-request.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","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"},{"title":"Create a Bill Request | BBPS API | Razorpay","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 Request | 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"]}