Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Hyperrails - Documentation","colors":{"primary":"#000000","light":"#B5FD85","dark":"#B5FD85"},"logo":{"light":"https://mintcdn.com/spotflow-35c4e57d/MzCwgkAXdZHJ-ozD/logo/hyperrail-logo.svg?fit=max\u0026auto=format\u0026n=MzCwgkAXdZHJ-ozD\u0026q=85\u0026s=36b2762fcd322fd0ead27debbfa4f0d2","dark":"https://mintcdn.com/spotflow-35c4e57d/MzCwgkAXdZHJ-ozD/logo/hyperrail-logo.svg?fit=max\u0026auto=format\u0026n=MzCwgkAXdZHJ-ozD\u0026q=85\u0026s=36b2762fcd322fd0ead27debbfa4f0d2"},"favicon":"https://mintcdn.com/spotflow-35c4e57d/uup8yiheAahgEkJJ/favicon.svg?fit=max\u0026auto=format\u0026n=uup8yiheAahgEkJJ\u0026q=85\u0026s=0cdc549443f5992203085786298dba72","appearance":{"default":"dark","strict":true},"background":{"decoration":"grid","color":{"light":"#ffffff","dark":"#000"}},"navbar":{"links":[{"href":"https://app.hyperrails.io/","label":"Get Started"}]},"fonts":{"family":"IBM Plex Sans"},"styling":{"codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"spotflow-35c4e57d","hasAudioNarration":false,"actualSubdomain":"spotflow-35c4e57d","customDomains":["docs.hyperrails.io"],"gitSource":{"type":"github","owner":"hyper-rail","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6ab3bc9ddd372f63393ce5ed","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API reference","count":31},{"language":"default","tag":"Documentation","count":25},{"language":"default","tag":"Exchange","count":12},{"language":"default","tag":"Features","count":11},{"language":"default","tag":"Guides","count":6},{"language":"default","tag":"Payout","count":5},{"language":"default","tag":"Wallets and Balances","count":4},{"language":"default","tag":"API Reference","count":3},{"language":"default","tag":"Dynamic Accounts","count":3},{"language":"default","tag":"Rates","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"llms-txt-v2","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":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/hyperrail-quote/authorize-quote-payment","slug":"/api-reference/hyperrail-quote/authorize-quote-payment","pageMetadata":{"title":"Authorize Quote Payment","openapi":"PUT /partners/marketplace/quote/{id}/payment/authorize","description":"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.","href":"/api-reference/hyperrail-quote/authorize-quote-payment"},"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: \"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Authorize Quote Payment","openapi":"PUT /partners/marketplace/quote/{id}/payment/authorize","description":"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.","href":"/api-reference/hyperrail-quote/authorize-quote-payment"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Authorize Quote Payment","description":"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.","tags":["Marketplace"],"parameters":["1241dcc9-0d7d-49bf-a38b-4433e4882be5"],"requestBody":"a55a22dc-53ac-42fa-ac25-68c1552e8467","responses":{"200":"cb572513-9d87-4a25-9acd-ff9f6079ab7c","400":"0753c546-b25d-43fa-acec-7918ec51aea4","401":"5f908e81-4ec8-4e25-b59d-c36bfa0e322f","404":"a93bb9e6-4b2b-4d72-82be-31bd32e52ba2"},"method":"put","type":"path","servers":["7acd88bb-7a76-4beb-9560-194f5533ef52"],"security":["f7386558-c10f-4119-a30c-2d0c5d1bf2c2"],"path":"/partners/marketplace/quote/{id}/payment/authorize","baseUrlOptions":["https://api.hyperrails.io/api/v1"],"title":"Authorize Quote Payment","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1241dcc9-0d7d-49bf-a38b-4433e4882be5":{"name":"id","in":"path","required":true,"description":"The unique quote identifier.","schema":{"type":"string","format":"uuid","example":"9d1c5f6a-4b2e-4d31-9f7a-1c2b3d4e5f60","isRequired":true,"description":"The unique quote identifier.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"otp":{"type":"string","description":"The one-time PIN sent to the payer to authorize the payment.","example":"123456","isRequired":true,"uniqueKey":"otp","typeLabel":"string"}},"required":["otp"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"otp":"123456"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"cb572513-9d87-4a25-9acd-ff9f6079ab7c":{"description":"Payment authorized and processing","content":{"application/json":{"schema":{"type":"object","properties":{"quoteId":{"type":"string","format":"uuid","description":"Unique quote identifier","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","uniqueKey":"quoteId","typeLabel":"string\u003cuuid>"},"status":{"type":"string","description":"Quote status","enum":["pending","awaiting_payment","completed","expired","cancelled"],"example":"pending","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"source":{"type":"string","description":"Source currency","example":"NGN","uniqueKey":"source","typeLabel":"string"},"destination":{"type":"string","description":"Destination currency","example":"USDT","uniqueKey":"destination","typeLabel":"string"},"chain":{"type":"string","description":"Blockchain network","example":"BASE","uniqueKey":"chain","typeLabel":"string"},"amount":{"type":"number","description":"Requested amount","example":50000,"uniqueKey":"amount","typeLabel":"number"},"totalSourceAmount":{"type":"number","description":"Total amount in source currency","example":50000,"uniqueKey":"totalSourceAmount","typeLabel":"number"},"totalDestinationAmount":{"type":"number","description":"Total amount in destination currency","example":31.65,"uniqueKey":"totalDestinationAmount","typeLabel":"number"},"clientId":{"type":"string","format":"uuid","description":"Client identifier","uniqueKey":"clientId","typeLabel":"string\u003cuuid>"},"mode":{"type":"string","description":"Operating mode","enum":["live","sandbox"],"example":"live","uniqueKey":"mode","typeLabel":"enum\u003cstring>"},"ttl":{"type":"integer","description":"Time to live in seconds","example":300,"uniqueKey":"ttl","typeLabel":"integer"},"allocationResult":{"type":"object","properties":{"totalSourceAmount":{"type":"number","description":"Total source amount across all allocations","example":50000,"uniqueKey":"allocationResult.totalSourceAmount","typeLabel":"number"},"weightedAverageRate":{"type":"number","description":"Weighted average exchange rate","example":1580.5,"uniqueKey":"allocationResult.weightedAverageRate","typeLabel":"number"},"totalDestinationAmount":{"type":"number","description":"Total destination amount across all allocations","example":31.65,"uniqueKey":"allocationResult.totalDestinationAmount","typeLabel":"number"},"allocations":{"type":"array","description":"Individual provider allocations","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Allocation identifier","uniqueKey":"allocationResult.allocations.items.[INDEX].id","typeLabel":"string\u003cuuid>"},"clientId":{"type":"string","format":"uuid","description":"Client identifier","uniqueKey":"allocationResult.allocations.items.[INDEX].clientId","typeLabel":"string\u003cuuid>"},"poolId":{"type":"string","format":"uuid","description":"Liquidity pool identifier","uniqueKey":"allocationResult.allocations.items.[INDEX].poolId","typeLabel":"string\u003cuuid>"},"poolAccountId":{"type":"string","format":"uuid","description":"Pool account identifier","uniqueKey":"allocationResult.allocations.items.[INDEX].poolAccountId","typeLabel":"string\u003cuuid>"},"allocatedAmount":{"type":"number","description":"Amount allocated from this provider","example":31.65,"uniqueKey":"allocationResult.allocations.items.[INDEX].allocatedAmount","typeLabel":"number"},"sourceAmount":{"type":"number","description":"Source amount for this allocation","example":50000,"uniqueKey":"allocationResult.allocations.items.[INDEX].sourceAmount","typeLabel":"number"},"rate":{"type":"number","description":"Exchange rate for this allocation","example":1580.5,"uniqueKey":"allocationResult.allocations.items.[INDEX].rate","typeLabel":"number"},"reference":{"type":"string","description":"Allocation reference code","example":"REF-001","uniqueKey":"allocationResult.allocations.items.[INDEX].reference","typeLabel":"string"},"metadata":{"type":"object","description":"Additional allocation metadata","additionalProperties":{"type":"string","uniqueKey":"allocationResult.allocations.items.[INDEX].metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"allocationResult.allocations.items.[INDEX].metadata","typeLabel":"object"}},"uniqueKey":"allocationResult.allocations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"allocationResult.allocations","typeLabel":"object[]"}},"uniqueKey":"allocationResult","typeLabel":"object"},"metadata":{"type":"object","properties":{"bankPayIn":{"type":"object","properties":{"accountName":{"type":"string","description":"Bank account name","example":"Spotflow Ltd","uniqueKey":"metadata.bankPayIn.accountName","typeLabel":"string"},"accountNumber":{"type":"string","description":"Bank account number","example":"0123456789","uniqueKey":"metadata.bankPayIn.accountNumber","typeLabel":"string"},"bankName":{"type":"string","description":"Bank name","example":"Access Bank","uniqueKey":"metadata.bankPayIn.bankName","typeLabel":"string"},"reference":{"type":"string","description":"Payment reference","example":"PAY-REF-001","uniqueKey":"metadata.bankPayIn.reference","typeLabel":"string"}},"uniqueKey":"metadata.bankPayIn","typeLabel":"object"},"cryptoPayIn":{"type":"object","properties":{"addressId":{"type":"string","format":"uuid","description":"Address identifier","uniqueKey":"metadata.cryptoPayIn.addressId","typeLabel":"string\u003cuuid>"},"address":{"type":"string","description":"Blockchain wallet address","example":"0x95222290dd7278aa3ddd389cc1e1d165cc4bafe5","uniqueKey":"metadata.cryptoPayIn.address","typeLabel":"string"},"chain":{"type":"string","description":"Blockchain network","example":"BASE","uniqueKey":"metadata.cryptoPayIn.chain","typeLabel":"string"},"token":{"type":"string","description":"Token symbol","example":"USDT","uniqueKey":"metadata.cryptoPayIn.token","typeLabel":"string"},"addressType":{"type":"string","description":"Address type","example":"deposit","uniqueKey":"metadata.cryptoPayIn.addressType","typeLabel":"string"},"expectedAmount":{"type":"number","description":"Expected deposit amount","example":50000,"uniqueKey":"metadata.cryptoPayIn.expectedAmount","typeLabel":"number"},"externalReference":{"type":"string","description":"External reference ID","uniqueKey":"metadata.cryptoPayIn.externalReference","typeLabel":"string"},"status":{"type":"string","description":"Address status","enum":["active","pending","expired"],"example":"active","uniqueKey":"metadata.cryptoPayIn.status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"Address creation timestamp","example":"2026-04-01T10:55:46.254Z","uniqueKey":"metadata.cryptoPayIn.createdAt","typeLabel":"string\u003cdate-time>"},"expiresAt":{"type":"string","format":"date-time","description":"Address expiration timestamp","example":"2026-04-01T10:55:46.256Z","uniqueKey":"metadata.cryptoPayIn.expiresAt","typeLabel":"string\u003cdate-time>"},"virtualAccountId":{"type":"string","description":"Virtual account identifier","uniqueKey":"metadata.cryptoPayIn.virtualAccountId","typeLabel":"string"},"derivationIndex":{"type":"integer","description":"HD wallet derivation index","example":0,"uniqueKey":"metadata.cryptoPayIn.derivationIndex","typeLabel":"integer"},"warningMessage":{"type":"string","description":"Warning message for user","uniqueKey":"metadata.cryptoPayIn.warningMessage","typeLabel":"string"}},"uniqueKey":"metadata.cryptoPayIn","typeLabel":"object"}},"uniqueKey":"metadata","typeLabel":"object"},"chatMetadata":{"type":"object","description":"Metadata for chat-based quote negotiation","properties":{"conversationId":{"type":"string","description":"Chat conversation identifier","uniqueKey":"chatMetadata.conversationId","typeLabel":"string"},"chatQuoteId":{"type":"string","description":"Chat-specific quote identifier","uniqueKey":"chatMetadata.chatQuoteId","typeLabel":"string"},"listingId":{"type":"string","description":"Listing identifier","uniqueKey":"chatMetadata.listingId","typeLabel":"string"},"initialListingRate":{"type":"string","description":"Initial rate from listing","uniqueKey":"chatMetadata.initialListingRate","typeLabel":"string"},"negotiationStartedAt":{"type":"string","format":"date-time","description":"Negotiation start timestamp","uniqueKey":"chatMetadata.negotiationStartedAt","typeLabel":"string\u003cdate-time>"},"quoteSentAt":{"type":"string","format":"date-time","description":"Quote sent timestamp","uniqueKey":"chatMetadata.quoteSentAt","typeLabel":"string\u003cdate-time>"},"acceptedAt":{"type":"string","format":"date-time","description":"Quote acceptance timestamp","uniqueKey":"chatMetadata.acceptedAt","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"chatMetadata","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"quoteId":"9d1c5f6a-4b2e-4d31-9f7a-1c2b3d4e5f60","status":"awaiting_payment","source":"XOF","destination":"USDT","amount":"20000","totalSourceAmount":"12250000","totalDestinationAmount":"20000","fee":"1500","mode":"test","ttl":720,"externalReference":"cli_be2828cf-5004-4694-8a79-47538573985b","metadata":{"mobileMoneyPayIn":{"provider":"MTN_CI","phoneNumber":"2250700000000","attemptReference":"mm_5f2a91c4e7b8","authorizationMode":"otp","status":"INPROGRESS","message":"Payment is being processed","expiresAt":"2026-09-15T12:34:56Z"}}},"examples":{"Example":{"title":"Example","value":{"quoteId":"9d1c5f6a-4b2e-4d31-9f7a-1c2b3d4e5f60","status":"awaiting_payment","source":"XOF","destination":"USDT","amount":"20000","totalSourceAmount":"12250000","totalDestinationAmount":"20000","fee":"1500","mode":"test","ttl":720,"externalReference":"cli_be2828cf-5004-4694-8a79-47538573985b","metadata":{"mobileMoneyPayIn":{"provider":"MTN_CI","phoneNumber":"2250700000000","attemptReference":"mm_5f2a91c4e7b8","authorizationMode":"otp","status":"INPROGRESS","message":"Payment is being processed","expiresAt":"2026-09-15T12:34:56Z"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"0753c546-b25d-43fa-acec-7918ec51aea4":{"description":"Bad request - Invalid or expired OTP","content":{"application/json":{"schema":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","description":"Error code","example":"INVALID_CURRENCY","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Error message","example":"Invalid source currency. Supported: NGN, GHS","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","description":"Additional error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"INVALID_OTP","message":"The OTP provided is invalid or has expired"},"examples":{"Example":{"title":"Example","value":{"code":"INVALID_OTP","message":"The OTP provided is invalid or has expired"}}},"exampleType":"examples"}},"exampleType":"examples"},"5f908e81-4ec8-4e25-b59d-c36bfa0e322f":{"description":"Unauthorized - Invalid or missing authentication token","content":{"application/json":{"schema":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","description":"Error code","example":"INVALID_CURRENCY","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Error message","example":"Invalid source currency. Supported: NGN, GHS","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","description":"Additional error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"INVALID_CURRENCY","message":"Invalid source currency. Supported: NGN, GHS","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"a93bb9e6-4b2b-4d72-82be-31bd32e52ba2":{"description":"Not found - No quote exists with the given id","content":{"application/json":{"schema":{"required":["code","message"],"type":"object","properties":{"code":{"type":"string","description":"Error code","example":"INVALID_CURRENCY","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Error message","example":"Invalid source currency. Supported: NGN, GHS","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"details":{"type":"object","description":"Additional error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"INVALID_CURRENCY","message":"Invalid source currency. Supported: NGN, GHS","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f7386558-c10f-4119-a30c-2d0c5d1bf2c2":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API key authentication using Bearer token","scopes":[]}}},"servers":{"7acd88bb-7a76-4beb-9560-194f5533ef52":{"description":"Live server","url":"https://api.hyperrails.io/api/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"API key authentication using Bearer token","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key authentication using Bearer token","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"spotflow-35c4e57d","siteName":"Hyperrails - Documentation","title":"Authorize Quote Payment - Hyperrails - Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T11:48:52.392Z","originalFileLocation":"api-reference/hyperrail-quote/authorize-quote-payment.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"dark\";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=\"dark\"}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=\"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hyperrails - Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Authorize Quote Payment - Hyperrails - Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hyperrails - Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://spotflow-35c4e57d.mintlify.site/_mintlify/api/og/v2?division=Exchange\u0026amp;title=Authorize+Quote+Payment\u0026amp;description=Submits+an+OTP+to+authorize+an+in-progress+mobile+money+payment.+Only+used+for+providers+that+send+the+payer+a+code+after+payment+initiation+%28post-auth%29.+For+pr\u0026amp;theme=53cf077eef7a68dff590df8a\u0026amp;signature=fb1585fa6a2bc27d7fbe5d13177c97153a241c5e0026374f35347583e6167553\">\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=\"Authorize Quote Payment - Hyperrails - Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://spotflow-35c4e57d.mintlify.site/_mintlify/api/og/v2?division=Exchange\u0026amp;title=Authorize+Quote+Payment\u0026amp;description=Submits+an+OTP+to+authorize+an+in-progress+mobile+money+payment.+Only+used+for+providers+that+send+the+payer+a+code+after+payment+initiation+%28post-auth%29.+For+pr\u0026amp;theme=53cf077eef7a68dff590df8a\u0026amp;signature=fb1585fa6a2bc27d7fbe5d13177c97153a241c5e0026374f35347583e6167553\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/spotflow-35c4e57d/N33Z6y1gPffBO22K/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hyperrails - Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/hyperrail-quote/authorize-quote-payment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.hyperrails.io/#organization\",\"name\":\"Hyperrails - Documentation\",\"url\":\"https://docs.hyperrails.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/spotflow-35c4e57d/MzCwgkAXdZHJ-ozD/logo/hyperrail-logo.svg?fit=max\u0026auto=format\u0026n=MzCwgkAXdZHJ-ozD\u0026q=85\u0026s=36b2762fcd322fd0ead27debbfa4f0d2\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.hyperrails.io#website\",\"name\":\"Hyperrails - Documentation\",\"url\":\"https://docs.hyperrails.io\",\"publisher\":{\"@id\":\"https://docs.hyperrails.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment#webpage\",\"url\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment\",\"name\":\"Authorize Quote Payment\",\"description\":\"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.\",\"dateModified\":\"2026-09-23T11:48:52.392Z\",\"isPartOf\":{\"@id\":\"https://docs.hyperrails.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Exchange\",\"item\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/create-express-quote\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Authorize Quote Payment\",\"item\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment#apireference\",\"headline\":\"Authorize Quote Payment\",\"name\":\"Authorize Quote Payment\",\"description\":\"Submits an OTP to authorize an in-progress mobile money payment. Only used for providers that send the payer a code after payment initiation (post-auth). For providers where the payer receives the code before paying, pass the OTP directly in the accept-quote request instead.\",\"url\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.hyperrails.io/api-reference/hyperrail-quote/authorize-quote-payment#webpage\"},\"dateModified\":\"2026-09-23T11:48:52.392Z\",\"publisher\":{\"@id\":\"https://docs.hyperrails.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.hyperrails.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hyperrails - Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hyperrails - Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"scroll","pages":[{"title":"Documentation","href":"/documentation/onboarding"}]},{"tab":"API reference","groups":[{"group":"API Reference","icon":"history","pages":[{"title":"API Reference","sidebarTitle":"Introduction","icon":"code","href":"/api-reference/introduction"},{"title":"Authentication","icon":"lock","href":"/api-reference/authentication"},{"title":"Error Codes","icon":"radiation","href":"/api-reference/error-codes"}]},{"group":" ISO20022 Compliance","icon":"wallet","pages":[{"title":"Endpoint Mapping","icon":"map","href":"/api-reference/iso20022/endpoint-mapping"}]},{"group":"Wallets and Balances","icon":"wallet","pages":[{"title":"Get All Balances","openapi":"GET /partners/balances","href":"/api-reference/hyperrail-wallet/get"},{"title":"Get Balance By ID","openapi":"GET /partners/balances/{accountId}","href":"/api-reference/hyperrail-wallet/get-balance-id"},{"title":"Get Balance By Currency","openapi":"GET /partners/balances/currency/{currency}","href":"/api-reference/hyperrail-wallet/get-balance-currency"},{"title":"Get Main Stablecoin balance","openapi":"GET /wallets/main/balances","href":"/api-reference/hyperrail-wallet/get-stablecoin-balance"}]},{"group":"Rates","icon":"arrow-up-right-dots","pages":[{"title":"Get Rate","openapi":"GET /partners/rates","href":"/api-reference/rate/get-rate"},{"title":"Get Rate Stream","openapi":"GET /partners/marketplace/rates/stream","href":"/api-reference/rate/rate-stream"}]},{"group":"Exchange","icon":"money-bill","pages":[{"title":"Create Instant Trade","openapi":"POST /partners/marketplace/express/quote","href":"/api-reference/hyperrail-quote/create-express-quote"},{"title":"Create Payment Intent","openapi":"POST /partners/marketplace/intent","href":"/api-reference/hyperrail-quote/create-payment-intent"},{"title":"Accept Quote","openapi":"PUT /partners/marketplace/quote/{id}/accept","href":"/api-reference/hyperrail-quote/accept-quote"},{"title":"Get Mobile Money Currencies","openapi":"GET /partners/marketplace/mobile-money/currencies","href":"/api-reference/hyperrail-quote/get-mmo-currencies"},{"title":"Get Mobile Money Providers","openapi":"GET /partners/marketplace/mobile-money/providers","href":"/api-reference/hyperrail-quote/get-mmo-providers"},{"title":"Get Trade Payment Status","openapi":"GET /partners/marketplace/quote/{id}/payment/status","href":"/api-reference/hyperrail-quote/get-order-status"},{"title":"Get Quote By ID","openapi":"GET /partners/marketplace/quote/{id}","href":"/api-reference/hyperrail-quote/get-quote-id"},{"title":"Complete a Quote By its ID","openapi":"PUT /partners/marketplace/quote/{id}/complete","description":"Fetches the final status and payment instructions for a completed marketplace quote session.","href":"/api-reference/hyperrail-quote/get-complete-quote-id"},{"title":"Authorize Quote Payment","openapi":"PUT /partners/marketplace/quote/{id}/payment/authorize","href":"/api-reference/hyperrail-quote/authorize-quote-payment"},{"title":"Edit Quote","openapi":"PUT /partners/marketplace/quote/{id}/add","description":"Updates an existing quote session by adding or modifying the pool allocation details, including amount and direction.","href":"/api-reference/hyperrail-quote/edit-quote"},{"title":"Cancel Quote","openapi":"PUT /partners/marketplace/quote/{id}/cancel","href":"/api-reference/hyperrail-quote/cancel-quote"},{"title":"Remove Quote Item","openapi":"PUT /partners/marketplace/quote/{id}/remove/{itemId}","href":"/api-reference/hyperrail-quote/delete-quote-item"}]},{"group":"Payout","icon":"money-bill","pages":[{"title":"Create Fiat Payout","openapi":"POST /partners/payouts","href":"/api-reference/payout/withdrawal"},{"title":"Create Wallet Payout","openapi":"POST /partners/wallets/payouts","href":"/api-reference/payout/wallet-payout"},{"title":"Get Payout Status","openapi":"GET /partners/payouts/{reference}","href":"/api-reference/payout/payout-status"},{"title":"Get All Banks","openapi":"GET /transfers/banks/{currency}","href":"/api-reference/payout/list-banks"},{"title":"Resolve Bank Account","openapi":"GET /transfers/resolve-account","href":"/api-reference/payout/resolve-account"}]},{"group":"Dynamic Accounts","icon":"vault","pages":[{"openapi":"POST /accounts","title":"Create Dynamic Virtual Account","href":"/api-reference/dynamic-accounts/create-dynamic-account"},{"openapi":"GET /accounts/{id}","title":"Get Dynamic Virtual Account by ID","href":"/api-reference/dynamic-accounts/dynamic-account-id"},{"openapi":"GET /accounts","title":"Get All Dynamic Virtual Accounts","href":"/api-reference/dynamic-accounts/list-dynamic-account"}]},{"group":"Marketplace","pages":[{"title":"Exchange Clients List","openapi":"GET /partners/marketplace/listings","href":"/api-reference/listings/liquidity-providers"}]}]}]},"basePath":"","title":"Authorize Quote Payment - Hyperrails - Documentation","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}