{
"data": null,
"code": 403,
"message": "API key does not have the required permission",
"status": "Error",
"errors": [
{
"code": "403",
"message": "API key does not have the required permission",
"field": "API key does not have the required permission"
}
]
}
{
"code": 409,
"message": "The request conflicts with the current state of the resource",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "CONFLICT",
"message": "The request conflicts with the current state of the resource",
"field": null
}
]
}
{
"code": 503,
"message": "Credentials could not be verified right now",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "DIRECTORY_UNAVAILABLE",
"message": "Credentials could not be verified right now",
"field": null
}
]
}
Get quote
Reads a quote back by its qut_… id. The key must carry the quotes permission, and the quote must belong to the customer in the path.
{
"data": null,
"code": 403,
"message": "API key does not have the required permission",
"status": "Error",
"errors": [
{
"code": "403",
"message": "API key does not have the required permission",
"field": "API key does not have the required permission"
}
]
}
{
"code": 409,
"message": "The request conflicts with the current state of the resource",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "CONFLICT",
"message": "The request conflicts with the current state of the resource",
"field": null
}
]
}
{
"code": 503,
"message": "Credentials could not be verified right now",
"status": "ERROR",
"data": null,
"errors": [
{
"code": "DIRECTORY_UNAVAILABLE",
"message": "Credentials could not be verified right now",
"field": null
}
]
}
This is a record, not a reservation. Reading a quote neither extends nor consumes it. An expired quote is returned normally, with expired: true — expiry is enforced when you use the quote, on Create pre-transaction, not when you read it.
The source amount as requested — on a reverse quote, the amount that was derived.
sourceChain
string
Network for a stablecoin source. null on a fiat leg.
destinationCurrency
string
destinationAmount
number
What the recipient receives, after fees.
destinationChain
string
Network for a stablecoin destination. null on a fiat leg.
fxRate
number
The partner rate before markup — see the warning below.
chargesTotal
number
Sum of all fee lines.
chargesTotalCurrency
string
Always the source currency.
charges
array
Every fee line, each with its feeCategoryTypeEnum.
expiresOn
string
ISO-8601 instant, ten minutes after generation.
expired
boolean
Computed at read time against expiresOn.
test
boolean
Whether the quote was priced in test mode.
createdOn
string
ISO-8601 instant.
fxRate is not the rate you are charged at. It is the raw partner rate before markup; the markup is charged as a fee line instead. Multiplying sourceAmount by fxRate will not reproduce destinationAmount. Reconcile with the amounts and charges.
This is a deliberately narrower view than the one Generate quote returns — it is the stored record, not the pricing response.
This is a narrower view than Generate quote returns. It is the stored record, so the names differ — charges here is feeList there, and chargesTotal is feeTotal. There is no gasFeeBreakdown, no coupon and no partnerId, and sourceAmount carries the stored four-place scale rather than the two places the pricing response normalises to. Nulls are present rather than omitted.
An expired quote returns exactly this, with expired: true. The record is not deleted and the endpoint does not start refusing it.
The API version this request targets. Required on every /api/v0/* call. Format YYYY-MM.<release>; 2026-09.1 is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with 400.
The customer the quote belongs to. Must be a cus_… reference id, and must belong to your partner account. Malformed, unknown, soft-deleted or another partner's → 404 ERRREF_1001.
The quote to read. Must be a qut_… reference id. Malformed → 400 ERRREF_1000; well-formed but unknown, or belonging to another customer → 404 ERRQUO_1000.
Example:
"qut_4RmP8kY2wN6tJc3VfBxQ"
Response
The stored quote record. Unwrapped — the body is the record itself, with no envelope.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Endl API","description":"Official API documentation for the Endl platform.","colors":{"primary":"#245FFE","light":"#5280FE","dark":"#013FE9"},"logo":{"light":"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/logo/endl-api-light-mode.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=317a3d2271242ccb4a73e8c8cc70884d","dark":"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/logo/endl-api-dark-mode.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=b136951611411c621ca45b782a881f95"},"favicon":"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/favicon.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=535b7fe6b8d30064c6319f5c6521341a","api":{"playground":{"proxy":false}},"footer":{"socials":{"website":"https://endl.io"}},"styling":{"eyebrows":"breadcrumbs","latex":true},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"zaymentfinanceltd","hasAudioNarration":false,"actualSubdomain":"zaymentfinanceltd","customDomains":["docs.endl.io"],"gitSource":{"type":"github","owner":"endl-team","repo":"endl-api-documentation-repo","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adf033c8c0a1951943f3472","collectionId":"ee77d0eb-1dd7-4637-8099-0460519d2752","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adf033c8c0a1951943f3472"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6adf033c8c0a1951943f3472","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API reference","count":128},{"language":"default","tag":"Endpoints","count":123},{"language":"default","tag":"Cards","count":28},{"language":"default","tag":"POBO","count":16},{"language":"default","tag":"Webhooks","count":15},{"language":"default","tag":"Onboarding","count":14},{"language":"default","tag":"Guides","count":14},{"language":"default","tag":"Accounts","count":12},{"language":"default","tag":"Gift Cards","count":11},{"language":"default","tag":"Transactions","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":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":"editor-v7-file-tree","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":"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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#sidebar li[data-group-tag]>button{font-weight:600;background-color:rgba(100,116,139,.12);margin-bottom:2px}#sidebar li[data-group-tag]>button:hover{background-color:rgba(100,116,139,.2)}html.dark #sidebar li[data-group-tag]>button{background-color:rgba(148,163,184,.13)}html.dark #sidebar li[data-group-tag]>button:hover{background-color:rgba(148,163,184,.22)}#sidebar li[data-group-tag][data-active=true]>button{color:#013fe9;background-color:rgba(36,95,254,.16)}#sidebar li[data-group-tag][data-active=true]>button:hover{background-color:rgba(36,95,254,.22)}#sidebar li[data-group-tag][data-active=true]>button svg{color:#013fe9;opacity:1}html.dark #sidebar li[data-group-tag][data-active=true]>button{color:#5280fe;background-color:rgba(82,128,254,.22)}html.dark #sidebar li[data-group-tag][data-active=true]>button:hover{background-color:rgba(82,128,254,.3)}html.dark #sidebar li[data-group-tag][data-active=true]>button svg{color:#5280fe;opacity:1}#sidebar a[aria-current=page]{position:relative;font-weight:600;background-color:rgba(36,95,254,.16)}#sidebar a[aria-current=page]::before{content:\"\";position:absolute;left:0;top:.3rem;bottom:.3rem;width:3px;border-radius:0 2px 2px 0;background:#245ffe}html.dark #sidebar a[aria-current=page]{background-color:rgba(82,128,254,.22)}html.dark #sidebar a[aria-current=page]::before{background:#5280fe}#sidebar a[aria-current=page] span{opacity:1}body:has([role=dialog]) #search-bar-entry{visibility:hidden}body:has([role=dialog])::before{content:\"\";position:fixed;inset:0;z-index:30;background:rgba(2,6,23,.45);backdrop-filter:blur(2px);pointer-events:none}a[href*=\"utm_campaign=poweredBy\"]{display:none!important}"}],"page":{"pagePath":"api-reference/quotes/get-quote","slug":"/api-reference/quotes/get-quote","pageMetadata":{"title":"Get quote","openapi":"api-reference/endl-partner-api.json GET /api/v0/quotes/{userId}/{quoteId}","description":"Reads a quote back by its `qut_…` id. The key must carry the `quotes` permission, and the quote must belong to the customer in the path.","href":"/api-reference/quotes/get-quote"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Reads a quote back by its \", _jsx(_components.code, {\n children: \"qut_…\"\n }), \" id. The key must carry the \", _jsx(_components.code, {\n children: \"quotes\"\n }), \" permission, and the quote must belong to the customer in the path.\"]\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`,em:`em`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`This is a record, not a reservation.`}),` Reading a quote neither extends nor consumes it. An expired quote is returned normally, with `,_jsx(_components.code,{children:`expired: true`}),` — expiry is enforced when you `,_jsx(_components.em,{children:`use`}),` the quote, on `,_jsx(_components.a,{href:`/api-reference/transactions/create-pre-transaction`,children:`Create pre-transaction`}),`, not when you read it.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`what-comes-back`,children:`What comes back`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Notes`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`quoteId`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`qut_…`}),` reference id.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`userId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`The customer the quote belongs to.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sourceCurrency`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`The currency as requested.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sourceAmount`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`The source amount as requested — on a reverse quote, the amount that was derived.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sourceChain`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Network for a stablecoin source. `,_jsx(_components.code,{children:`null`}),` on a fiat leg.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`destinationCurrency`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`destinationAmount`})}),_jsx(_components.td,{children:`number`}),_jsxs(_components.td,{children:[`What the recipient receives, `,_jsx(_components.strong,{children:`after`}),` fees.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`destinationChain`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Network for a stablecoin destination. `,_jsx(_components.code,{children:`null`}),` on a fiat leg.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`fxRate`})}),_jsx(_components.td,{children:`number`}),_jsxs(_components.td,{children:[`The partner rate `,_jsx(_components.strong,{children:`before markup`}),` — see the warning below.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chargesTotal`})}),_jsx(_components.td,{children:`number`}),_jsx(_components.td,{children:`Sum of all fee lines.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`chargesTotalCurrency`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Always the source currency.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`charges`})}),_jsx(_components.td,{children:`array`}),_jsxs(_components.td,{children:[`Every fee line, each with its `,_jsx(_components.code,{children:`feeCategoryTypeEnum`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expiresOn`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`ISO-8601 instant, ten minutes after generation.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`expired`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`Computed at read time against `,_jsx(_components.code,{children:`expiresOn`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`test`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`Whether the quote was priced in test mode.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`createdOn`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`ISO-8601 instant.`})]})]})]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[_jsx(_components.code,{children:`fxRate`}),` is not the rate you are charged at.`]}),` It is the raw partner rate before markup; the markup is charged as a fee line instead. Multiplying `,_jsx(_components.code,{children:`sourceAmount`}),` by `,_jsx(_components.code,{children:`fxRate`}),` will not reproduce `,_jsx(_components.code,{children:`destinationAmount`}),`. Reconcile with the amounts and `,_jsx(_components.code,{children:`charges`}),`.`]})}),`\n`,_jsxs(_components.p,{children:[`This is a deliberately narrower view than the one `,_jsx(_components.a,{href:`/api-reference/quotes/generate-quote`,children:`Generate quote`}),` returns — it is the stored record, not the pricing response.`]}),`\n`,_jsx(Heading,{level:`2`,id:`errors`,children:`Errors`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:_jsx(_components.code,{children:`errors[0].code`})}),_jsx(_components.th,{children:`When`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`400`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ERRREF_1000`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`quoteId`}),` is not a well-formed `,_jsx(_components.code,{children:`qut_…`}),` reference id.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ERRCORE_1005`})}),_jsxs(_components.td,{children:[`The key does not carry the `,_jsx(_components.code,{children:`quotes`}),` permission.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`/api-reference/error-codes#errquo_1000`,children:_jsx(_components.code,{children:`ERRQUO_1000`})})}),_jsxs(_components.td,{children:[`No such quote, `,_jsx(_components.strong,{children:`or`}),` the quote belongs to a different customer.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`404`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`ERRREF_1001`})}),_jsxs(_components.td,{children:[`The `,_jsx(_components.code,{children:`cus_…`}),` in the path is unknown or soft-deleted.`]})]})]})]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`A quote belonging to another customer and a quote that does not exist return the `,_jsx(_components.strong,{children:`same`}),` `,_jsx(_components.code,{children:`404`}),`, deliberately — so quote ids cannot be probed for existence.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`working-request`,children:`Working request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`3`,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:`3`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api-sandbox.endl.io/api/v0/quotes/cus_9HqA2mT7xK4vRb1NdLpZ/qut_4RmP8kY2wN6tJc3VfBxQ`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Api-Key: `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ENDL_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Api-Version: 2026-09.1\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`working-response`,children:`Working response`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`200`}),`, and the body is the quote record itself — no envelope on a success.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`39`,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:`39`,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:` \"quoteId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"qut_4RmP8kY2wN6tJc3VfBxQ\"`}),_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:` \"userId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"cus_9HqA2mT7xK4vRb1NdLpZ\"`}),_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:` \"sourceCurrency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USDC\"`}),_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:` \"sourceAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1000.0000`}),_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:` \"sourceChain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ethereum\"`}),_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:` \"destinationCurrency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USDT\"`}),_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:` \"destinationAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`995.51`}),_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:` \"destinationChain\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tron\"`}),_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:` \"fxRate\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.9990`}),_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:` \"chargesTotal\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`3.50`}),_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:` \"chargesTotalCurrency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USDC\"`}),_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:` \"charges\"`}),_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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"feeType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PLATFORM_FEE\"`}),_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:` \"feeCategoryTypeEnum\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"PLATFORM_FEE\"`}),_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:` \"feeName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Platform fee\"`}),_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:` \"feeAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2.50`}),_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:` \"feeAmountActual\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2.50`}),_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:` \"feeCurrency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USDC\"`}),_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:` \"feePercent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_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:` \"tax\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"feeType\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"GAS_FEE\"`}),_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:` \"feeCategoryTypeEnum\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"GAS_FEE\"`}),_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:` \"feeName\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Gas fee\"`}),_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:` \"feeAmount\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1.00`}),_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:` \"feeAmountActual\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1.00`}),_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:` \"feeCurrency\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"USDC\"`}),_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:` \"feePercent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_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:` \"tax\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\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`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"expiresOn\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-09T11:52:19.317Z\"`}),_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:` \"expired\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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:` \"test\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_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:` \"createdOn\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-09T11:42:19.317Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`This is a narrower view than `,_jsx(_components.a,{href:`/api-reference/quotes/generate-quote`,children:`Generate quote`}),` returns.`]}),` It is the stored record, so the names differ — `,_jsx(_components.code,{children:`charges`}),` here is `,_jsx(_components.code,{children:`feeList`}),` there, and `,_jsx(_components.code,{children:`chargesTotal`}),` is `,_jsx(_components.code,{children:`feeTotal`}),`. There is no `,_jsx(_components.code,{children:`gasFeeBreakdown`}),`, no `,_jsx(_components.code,{children:`coupon`}),` and no `,_jsx(_components.code,{children:`partnerId`}),`, and `,_jsx(_components.code,{children:`sourceAmount`}),` carries the stored four-place scale rather than the two places the pricing response normalises to. Nulls are present rather than omitted.`]})}),`\n`,_jsxs(_components.p,{children:[`An expired quote returns exactly this, with `,_jsx(_components.code,{children:`expired: true`}),`. The record is not deleted and the endpoint does not start refusing it.`]})]})}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":"Get quote","openapi":"api-reference/endl-partner-api.json GET /api/v0/quotes/{userId}/{quoteId}","description":"Reads a quote back by its `qut_…` id. The key must carry the `quotes` permission, and the quote must belong to the customer in the path.","href":"/api-reference/quotes/get-quote"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"What comes back","slug":"what-comes-back","depth":2,"children":[]},{"title":"Errors","slug":"errors","depth":2,"children":[]},{"title":"Working request","slug":"working-request","depth":2,"children":[]},{"title":"Working response","slug":"working-response","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/zaymentfinanceltd/d373d43d77eb6813/custom.js"],"openApiReferenceData":{"operation":{"tags":["Quotes"],"summary":"Get quote","description":"Reads a quote back by its `qut_…` id. The key must carry the `quotes` permission, and the quote must belong to the customer in the path.","responses":{"200":"0a84c998-f8a9-43dd-9d21-40c52af1f1ea","400":"4006a3a2-b2c6-48c3-9d4e-2d348f9248b0","401":"1ecad6b8-e968-493b-965e-1202f7c68601","403":"7ef5c96c-339f-4685-aee1-cf47b79952c1","404":"6a606b80-1241-48ed-b065-3201b7d56ae9","409":"cb69389c-0886-4fd4-bbed-221c464f2865","429":"91b1a5a0-d778-4d01-b1bc-155d76fdc6c2","500":"c9b1bb16-a663-4dce-9fcd-4a1a66575249","502":"8bd3d891-8a0c-4a9a-9140-00fadd5171c7","503":"59d5d050-0004-4fdf-8770-5dc8058c0206"},"parameters":["1a41dab1-b054-465f-828f-a51e86f23c29","e57bdf74-ee74-4041-91dc-5080bf697573","d2d396ae-8c9c-4a84-a57b-809e062cb1f3"],"method":"get","type":"path","servers":["bc33a2d9-c66f-4f15-a24d-5948ed2274d0"],"security":["4a6b0ab2-c34f-4116-8278-64644557d48c"],"path":"/api/v0/quotes/{userId}/{quoteId}","baseUrlOptions":["https://api-sandbox.endl.io"],"title":"Get quote","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"1a41dab1-b054-465f-828f-a51e86f23c29":{"name":"Api-Version","in":"header","required":true,"description":"The API version this request targets. Required on every `/api/v0/*` call. Format `YYYY-MM.\u003crelease>`; `2026-09.1` is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with `400`.","schema":{"type":"string","pattern":"^\\d{4}-\\d{2}\\.\\d+$","default":"2026-09.1","isRequired":true,"description":"The API version this request targets. Required on every `/api/v0/*` call. Format `YYYY-MM.\u003crelease>`; `2026-09.1` is the latest. The version that served the request is echoed back on the response. Missing, malformed or unsupported values are rejected with `400`.","uniqueKey":"","typeLabel":"string"},"example":"2026-09.1"},"e57bdf74-ee74-4041-91dc-5080bf697573":{"name":"userId","in":"path","required":true,"description":"The customer the quote belongs to. Must be a `cus_…` reference id, and must belong to your partner account. Malformed, unknown, soft-deleted or another partner's → `404 ERRREF_1001`.","schema":{"type":"string","example":"cus_9HqA2mT7xK4vRb1NdLpZ","isRequired":true,"description":"The customer the quote belongs to. Must be a `cus_…` reference id, and must belong to your partner account. Malformed, unknown, soft-deleted or another partner's → `404 ERRREF_1001`.","uniqueKey":"","typeLabel":"string"}},"d2d396ae-8c9c-4a84-a57b-809e062cb1f3":{"name":"quoteId","in":"path","required":true,"description":"The quote to read. Must be a `qut_…` reference id. Malformed → `400 ERRREF_1000`; well-formed but unknown, or belonging to another customer → `404 ERRQUO_1000`.","schema":{"type":"string","example":"qut_4RmP8kY2wN6tJc3VfBxQ","isRequired":true,"description":"The quote to read. Must be a `qut_…` reference id. Malformed → `400 ERRREF_1000`; well-formed but unknown, or belonging to another customer → `404 ERRQUO_1000`.","uniqueKey":"","typeLabel":"string"}}},"responses":{"0a84c998-f8a9-43dd-9d21-40c52af1f1ea":{"description":"The stored quote record. **Unwrapped** — the body is the record itself, with no envelope.","content":{"application/json":{"schema":{"type":"object","properties":{"quoteId":{"type":"string","description":"The `qut_…` reference id.","uniqueKey":"quoteId","typeLabel":"string"},"userId":{"type":"string","description":"The customer the quote belongs to.","uniqueKey":"userId","typeLabel":"string"},"sourceCurrency":{"type":"string","description":"The currency as requested.","uniqueKey":"sourceCurrency","typeLabel":"string"},"sourceAmount":{"type":"number","description":"The source amount as requested — on a reverse quote, the amount that was derived. Carries the stored four-place scale.","uniqueKey":"sourceAmount","typeLabel":"number"},"sourceChain":{"oneOf":[{"type":"string","description":"Network for a stablecoin source. `null` on a fiat leg.","uniqueKey":"sourceChain.oneOf.0","typeLabel":"string"},{"type":"null","description":"Network for a stablecoin source. `null` on a fiat leg.","uniqueKey":"sourceChain.oneOf.1","typeLabel":"null"}],"uniqueKey":"sourceChain","typeLabel":"string | null"},"destinationCurrency":{"type":"string","description":"The destination currency.","uniqueKey":"destinationCurrency","typeLabel":"string"},"destinationAmount":{"type":"number","description":"What the recipient receives, **after** fees.","uniqueKey":"destinationAmount","typeLabel":"number"},"destinationChain":{"oneOf":[{"type":"string","description":"Network for a stablecoin destination. `null` on a fiat leg.","uniqueKey":"destinationChain.oneOf.0","typeLabel":"string"},{"type":"null","description":"Network for a stablecoin destination. `null` on a fiat leg.","uniqueKey":"destinationChain.oneOf.1","typeLabel":"null"}],"uniqueKey":"destinationChain","typeLabel":"string | null"},"fxRate":{"type":"number","description":"The partner rate **before markup**. Multiplying `sourceAmount` by `fxRate` will not reproduce `destinationAmount`.","uniqueKey":"fxRate","typeLabel":"number"},"chargesTotal":{"type":"number","description":"Sum of all fee lines. `feeTotal` on Generate quote.","uniqueKey":"chargesTotal","typeLabel":"number"},"chargesTotalCurrency":{"type":"string","description":"Always the source currency.","uniqueKey":"chargesTotalCurrency","typeLabel":"string"},"charges":{"type":"array","description":"Every fee line. `feeList` on Generate quote.","items":{"type":"object","properties":{"feeType":{"type":"string","uniqueKey":"charges.items.[INDEX].feeType","typeLabel":"string"},"feeCategoryTypeEnum":{"type":"string","description":"The one to switch on. Treat the set as open.","uniqueKey":"charges.items.[INDEX].feeCategoryTypeEnum","typeLabel":"string"},"feeName":{"type":"string","uniqueKey":"charges.items.[INDEX].feeName","typeLabel":"string"},"feeAmount":{"type":"number","uniqueKey":"charges.items.[INDEX].feeAmount","typeLabel":"number"},"feeAmountActual":{"type":"number","uniqueKey":"charges.items.[INDEX].feeAmountActual","typeLabel":"number"},"feeCurrency":{"type":"string","uniqueKey":"charges.items.[INDEX].feeCurrency","typeLabel":"string"},"feePercent":{"oneOf":[{"type":"number","uniqueKey":"charges.items.[INDEX].feePercent.oneOf.0","typeLabel":"number"},{"type":"null","uniqueKey":"charges.items.[INDEX].feePercent.oneOf.1","typeLabel":"null"}],"uniqueKey":"charges.items.[INDEX].feePercent","typeLabel":"number | null"},"tax":{"type":"boolean","uniqueKey":"charges.items.[INDEX].tax","typeLabel":"boolean"}},"uniqueKey":"charges.items.[INDEX]","typeLabel":"object"},"uniqueKey":"charges","typeLabel":"object[]"},"expiresOn":{"type":"string","format":"date-time","description":"ISO-8601 instant, ten minutes after generation.","uniqueKey":"expiresOn","typeLabel":"string\u003cdate-time>"},"expired":{"type":"boolean","description":"Computed at read time against `expiresOn`. An expired quote is still returned, with `true`.","uniqueKey":"expired","typeLabel":"boolean"},"test":{"type":"boolean","description":"Whether the quote was priced in test mode.","uniqueKey":"test","typeLabel":"boolean"},"createdOn":{"type":"string","format":"date-time","description":"ISO-8601 instant.","uniqueKey":"createdOn","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"object"},"example":{"quoteId":"qut_4RmP8kY2wN6tJc3VfBxQ","userId":"cus_9HqA2mT7xK4vRb1NdLpZ","sourceCurrency":"USDC","sourceAmount":1000,"sourceChain":"ethereum","destinationCurrency":"USDT","destinationAmount":995.51,"destinationChain":"tron","fxRate":0.999,"chargesTotal":3.5,"chargesTotalCurrency":"USDC","charges":[{"feeType":"PLATFORM_FEE","feeCategoryTypeEnum":"PLATFORM_FEE","feeName":"Platform fee","feeAmount":2.5,"feeAmountActual":2.5,"feeCurrency":"USDC","feePercent":null,"tax":false},{"feeType":"GAS_FEE","feeCategoryTypeEnum":"GAS_FEE","feeName":"Gas fee","feeAmount":1,"feeAmountActual":1,"feeCurrency":"USDC","feePercent":null,"tax":false}],"expiresOn":"2026-10-09T11:52:19.317Z","expired":false,"test":false,"createdOn":"2026-10-09T11:42:19.317Z"},"examples":{"Example":{"title":"Example","value":{"quoteId":"qut_4RmP8kY2wN6tJc3VfBxQ","userId":"cus_9HqA2mT7xK4vRb1NdLpZ","sourceCurrency":"USDC","sourceAmount":1000,"sourceChain":"ethereum","destinationCurrency":"USDT","destinationAmount":995.51,"destinationChain":"tron","fxRate":0.999,"chargesTotal":3.5,"chargesTotalCurrency":"USDC","charges":[{"feeType":"PLATFORM_FEE","feeCategoryTypeEnum":"PLATFORM_FEE","feeName":"Platform fee","feeAmount":2.5,"feeAmountActual":2.5,"feeCurrency":"USDC","feePercent":null,"tax":false},{"feeType":"GAS_FEE","feeCategoryTypeEnum":"GAS_FEE","feeName":"Gas fee","feeAmount":1,"feeAmountActual":1,"feeCurrency":"USDC","feePercent":null,"tax":false}],"expiresOn":"2026-10-09T11:52:19.317Z","expired":false,"test":false,"createdOn":"2026-10-09T11:42:19.317Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"4006a3a2-b2c6-48c3-9d4e-2d348f9248b0":{"description":"`ERRREF_1000` — `quoteId` is not a well-formed `qut_…` reference id.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":400,"message":"Invalid reference id","status":"ERROR","data":null,"errors":[{"code":"ERRREF_1000","message":"Invalid reference id","field":"quoteId"}]},"examples":{"Example":{"title":"Example","value":{"code":400,"message":"Invalid reference id","status":"ERROR","data":null,"errors":[{"code":"ERRREF_1000","message":"Invalid reference id","field":"quoteId"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"1ecad6b8-e968-493b-965e-1202f7c68601":{"description":"Missing or invalid API credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":401,"message":"Authentication Failed!","status":"Error","errors":[{"code":"401","message":"Authentication Failed!","field":"Authentication Failed!"}]},"examples":{"Example":{"title":"Example","value":{"data":null,"code":401,"message":"Authentication Failed!","status":"Error","errors":[{"code":"401","message":"Authentication Failed!","field":"Authentication Failed!"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"7ef5c96c-339f-4685-aee1-cf47b79952c1":{"description":"A valid key that lacks the permission this endpoint requires. Raised at the edge.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":403,"message":"API key does not have the required permission","status":"Error","errors":[{"code":"403","message":"API key does not have the required permission","field":"API key does not have the required permission"}]},"examples":{"Example":{"title":"Example","value":{"data":null,"code":403,"message":"API key does not have the required permission","status":"Error","errors":[{"code":"403","message":"API key does not have the required permission","field":"API key does not have the required permission"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"6a606b80-1241-48ed-b065-3201b7d56ae9":{"description":"`ERRQUO_1000` — no such quote, **or** it belongs to a different customer; the same answer either way, so quote ids cannot be probed. `ERRREF_1001` — the `cus_…` in the path is unknown or soft-deleted.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":404,"message":"Quote not found","status":"ERROR","data":null,"errors":[{"code":"ERRQUO_1000","message":"Quote not found","field":"quoteId"}]},"examples":{"Example":{"title":"Example","value":{"code":404,"message":"Quote not found","status":"ERROR","data":null,"errors":[{"code":"ERRQUO_1000","message":"Quote not found","field":"quoteId"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"cb69389c-0886-4fd4-bbed-221c464f2865":{"description":"The request conflicts with the current state of the resource.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":409,"message":"The request conflicts with the current state of the resource","status":"ERROR","data":null,"errors":[{"code":"CONFLICT","message":"The request conflicts with the current state of the resource","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":409,"message":"The request conflicts with the current state of the resource","status":"ERROR","data":null,"errors":[{"code":"CONFLICT","message":"The request conflicts with the current state of the resource","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"91b1a5a0-d778-4d01-b1bc-155d76fdc6c2":{"description":"The per-API-key request rate limit was exceeded. Carries `X-RateLimit-Limit` and `X-RateLimit-Remaining`.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":429,"message":"Rate limit exceeded, please retry later","status":"Error","errors":[{"code":"429","message":"Rate limit exceeded, please retry later","field":"Rate limit exceeded, please retry later"}]},"examples":{"Example":{"title":"Example","value":{"data":null,"code":429,"message":"Rate limit exceeded, please retry later","status":"Error","errors":[{"code":"429","message":"Rate limit exceeded, please retry later","field":"Rate limit exceeded, please retry later"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"c9b1bb16-a663-4dce-9fcd-4a1a66575249":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":500,"message":"Unexpected error","status":"ERROR","data":null,"errors":[{"code":"INTERNAL_ERROR","message":"Unexpected error","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":500,"message":"Unexpected error","status":"ERROR","data":null,"errors":[{"code":"INTERNAL_ERROR","message":"Unexpected error","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"8bd3d891-8a0c-4a9a-9140-00fadd5171c7":{"description":"Endl could not reach the service behind the edge. Retry with backoff.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"code":502,"message":"Upstream service error","status":"Error","errors":null},"examples":{"Example":{"title":"Example","value":{"data":null,"code":502,"message":"Upstream service error","status":"Error","errors":null}}},"exampleType":"examples"}},"exampleType":"examples"},"59d5d050-0004-4fdf-8770-5dc8058c0206":{"description":"Credentials could not be verified right now. Retry with backoff.","content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"integer","example":400,"description":"The HTTP status, repeated in the body.","uniqueKey":"code","typeLabel":"integer"},"message":{"type":"string","example":"Validation failed","description":"A human-readable summary of the failure.","uniqueKey":"message","typeLabel":"string"},"status":{"type":"string","example":"ERROR","description":"`ERROR` on failure; `SUCCESS` on the equivalent success envelope.","uniqueKey":"status","typeLabel":"string"},"data":{"oneOf":[{"type":"object","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"type":"null","example":null,"description":"`null` on failure — no payload is returned when a request fails.","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"},"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ERRACC_1009","description":"Stable machine-readable error code, `ERR\u003cMODULE>_\u003cnnnn>`. Match on this, never on `message`. See the [error catalogue](/api-reference/error-codes).","uniqueKey":"errors.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"must not be blank","description":"What is wrong with this specific field.","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"},"field":{"type":"string","example":"sourceAmount","description":"Which request field the problem refers to, or `null` when the error is not about a specific input.","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"description":"One entry per field that failed validation. Empty for failures that are not field-level.","uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":503,"message":"Credentials could not be verified right now","status":"ERROR","data":null,"errors":[{"code":"DIRECTORY_UNAVAILABLE","message":"Credentials could not be verified right now","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":503,"message":"Credentials could not be verified right now","status":"ERROR","data":null,"errors":[{"code":"DIRECTORY_UNAVAILABLE","message":"Credentials could not be verified right now","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"4a6b0ab2-c34f-4116-8278-64644557d48c":{"apiKey":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your partner API key.","scopes":[],"schemeName":"apiKey"}}},"servers":{"bc33a2d9-c66f-4f15-a24d-5948ed2274d0":{"url":"https://api-sandbox.endl.io","description":"Sandbox"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"API-KEY","description":"Your partner API key.","scopes":[],"schemeName":"apiKey"},"schema":{"title":"API-KEY","type":"string","description":"Your partner API key.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"API-KEY"}],"title":"apiKey"}]},"originalFileLocation":"api-reference/endl-partner-api.json"},"subdomain":"zaymentfinanceltd","siteName":"Endl API","title":"Get quote - Endl API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T05:55:18.467Z","originalFileLocation":"api-reference/quotes/get-quote.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=\"Reads a quote back by its qut_… id. The key must carry the quotes permission, and the quote must belong to the customer in the path.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Endl API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_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/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Get quote - Endl API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Reads a quote back by its qut_… id. The key must carry the quotes permission, and the quote must belong to the customer in the path.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Endl API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.endl.io/api-reference/quotes/get-quote\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://zaymentfinanceltd.mintlify.app/_mintlify/api/og/v2?division=Quotes\u0026amp;title=Get+quote\u0026amp;description=Reads+a+quote+back+by+its+%60qut_%E2%80%A6%60+id.+The+key+must+carry+the+%60quotes%60+permission%2C+and+the+quote+must+belong+to+the+customer+in+the+path.\u0026amp;theme=668efa5ed0467f58a90d23e2\u0026amp;signature=f74a4eb585108aaec8d413a464d405494dc4a8c943ce49d58c2c1fb03f63632c\">\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=\"Get quote - Endl API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Reads a quote back by its qut_… id. The key must carry the quotes permission, and the quote must belong to the customer in the path.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zaymentfinanceltd.mintlify.app/_mintlify/api/og/v2?division=Quotes\u0026amp;title=Get+quote\u0026amp;description=Reads+a+quote+back+by+its+%60qut_%E2%80%A6%60+id.+The+key+must+carry+the+%60quotes%60+permission%2C+and+the+quote+must+belong+to+the+customer+in+the+path.\u0026amp;theme=668efa5ed0467f58a90d23e2\u0026amp;signature=f74a4eb585108aaec8d413a464d405494dc4a8c943ce49d58c2c1fb03f63632c\">\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/zaymentfinanceltd/V4tezyHprXdvGDz0/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Endl API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#245FFE\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.endl.io/api-reference/quotes/get-quote\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/quotes/get-quote.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.endl.io/#organization\",\"name\":\"Endl API\",\"url\":\"https://docs.endl.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/zaymentfinanceltd/vAyX8M6UjfgZPY1s/logo/endl-api-light-mode.svg?fit=max\u0026auto=format\u0026n=vAyX8M6UjfgZPY1s\u0026q=85\u0026s=317a3d2271242ccb4a73e8c8cc70884d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.endl.io#website\",\"name\":\"Endl API\",\"url\":\"https://docs.endl.io\",\"publisher\":{\"@id\":\"https://docs.endl.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.endl.io/api-reference/quotes/get-quote#webpage\",\"url\":\"https://docs.endl.io/api-reference/quotes/get-quote\",\"name\":\"Get quote\",\"description\":\"Reads a quote back by its qut_… id. The key must carry the quotes permission, and the quote must belong to the customer in the path.\",\"dateModified\":\"2026-10-09T05:55:18.467Z\",\"isPartOf\":{\"@id\":\"https://docs.endl.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.endl.io/api-reference/quotes/get-quote#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.endl.io/api-reference/quotes/get-quote#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.endl.io/api-reference/onboarding/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Quotes\",\"item\":\"https://docs.endl.io/api-reference/quotes/generate-quote\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Get quote\",\"item\":\"https://docs.endl.io/api-reference/quotes/get-quote\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.endl.io/api-reference/quotes/get-quote#apireference\",\"headline\":\"Get quote\",\"name\":\"Get quote\",\"description\":\"Reads a quote back by its qut_… id. The key must carry the quotes permission, and the quote must belong to the customer in the path.\",\"url\":\"https://docs.endl.io/api-reference/quotes/get-quote\",\"mainEntityOfPage\":{\"@id\":\"https://docs.endl.io/api-reference/quotes/get-quote#webpage\"},\"dateModified\":\"2026-10-09T05:55:18.467Z\",\"publisher\":{\"@id\":\"https://docs.endl.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.endl.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Endl API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Endl API","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API reference","groups":[{"group":"Introduction","pages":[{"title":"API reference overview","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Versioning","href":"/api-reference/versioning"},{"title":"Errors and the response envelope","href":"/api-reference/errors"},{"title":"Error codes","href":"/api-reference/error-codes"}]},{"group":"Endpoints","pages":[{"group":"Onboarding","expanded":true,"pages":[{"title":"Onboarding overview","href":"/api-reference/onboarding/introduction"},{"title":"Errors and lifecycle","href":"/api-reference/onboarding/errors"},{"title":"Individual (KYC)","href":"/api-reference/onboarding/individual-kyc"},{"title":"Business (KYB)","href":"/api-reference/onboarding/business-kyb"},{"title":"Create customer","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer","href":"/api-reference/onboarding/create-customer"},{"title":"Get customer","openapi":"api-reference/endl-onboarding-api.json GET /api/v0/customer/{userId}","href":"/api-reference/onboarding/get-customer"},{"title":"Update customer","openapi":"api-reference/endl-onboarding-api.json PUT /api/v0/customer/{userId}","href":"/api-reference/onboarding/update-customer"},{"title":"List customers","openapi":"api-reference/endl-onboarding-api.json GET /api/v0/customer","href":"/api-reference/onboarding/list-customers"},{"title":"Delete customer","openapi":"api-reference/endl-onboarding-api.json DELETE /api/v0/customer/{userId}","href":"/api-reference/onboarding/delete-customer"},{"title":"Generate KYC link","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer/{userId}/kyc-link","href":"/api-reference/onboarding/generate-kyc-link"},{"title":"Upload document","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer/{userId}/documents","href":"/api-reference/onboarding/upload-document"},{"title":"Upload owner document","openapi":"api-reference/endl-onboarding-api.json POST /api/v0/customer/{userId}/ubo/{uboRef}/documents","href":"/api-reference/onboarding/upload-ubo-document"},{"title":"Questionnaire reference","href":"/api-reference/onboarding/questionnaires"},{"title":"Country restrictions","href":"/api-reference/onboarding/country-restrictions"}]},{"group":"Reference data","expanded":true,"pages":[{"title":"List currencies","openapi":"api-reference/endl-partner-api.json GET /api/v0/currencies","href":"/api-reference/reference/list-currencies"},{"title":"List countries","openapi":"api-reference/endl-partner-api.json GET /api/v0/countries","href":"/api-reference/reference/list-countries"},{"title":"List occupations","openapi":"api-reference/endl-partner-api.json GET /api/v0/occupations","href":"/api-reference/reference/list-occupations"},{"title":"List rails","openapi":"api-reference/endl-partner-api.json GET /api/v0/rails","href":"/api-reference/reference/list-rails"},{"title":"Get recipient fields","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipient-fields","href":"/api-reference/reference/get-recipient-fields"},{"title":"Get sender fields","openapi":"api-reference/endl-partner-api.json GET /api/v0/sender-fields","href":"/api-reference/reference/get-sender-fields"}]},{"group":"Wallets","expanded":true,"pages":[{"title":"List wallets","openapi":"api-reference/endl-partner-api.json GET /api/v0/wallets/{userId}","href":"/api-reference/wallets/list-wallets"},{"title":"Create wallet","openapi":"api-reference/endl-partner-api.json POST /api/v0/wallets/{userId}","href":"/api-reference/wallets/create-wallet"},{"title":"Get wallet","openapi":"api-reference/endl-partner-api.json GET /api/v0/wallets/{userId}/{walletId}","href":"/api-reference/wallets/get-wallet"},{"title":"Get wallet balance","openapi":"api-reference/endl-partner-api.json GET /api/v0/wallets/{userId}/{walletId}/balance","href":"/api-reference/wallets/get-wallet-balance"},{"title":"Update wallet","openapi":"api-reference/endl-partner-api.json PATCH /api/v0/wallets/{userId}/{walletId}","href":"/api-reference/wallets/update-wallet"},{"title":"Delete wallet","openapi":"api-reference/endl-partner-api.json DELETE /api/v0/wallets/{userId}/{walletId}","href":"/api-reference/wallets/delete-wallet"}]},{"group":"Accounts","expanded":true,"pages":[{"title":"Accounts API","href":"/api-reference/accounts/introduction"},{"title":"Account statuses","href":"/api-reference/accounts/statuses"},{"title":"Open account","openapi":"api-reference/endl-partner-api.json POST /api/v0/accounts/{userId}","href":"/api-reference/accounts/open-account"},{"title":"List accounts","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}","href":"/api-reference/accounts/list-accounts"},{"title":"List currencies available for opening","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/available-for-opening","href":"/api-reference/accounts/list-accounts-available-for-opening"},{"title":"Get account","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/{accountId}","href":"/api-reference/accounts/get-account"},{"title":"Get account balance","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/{accountId}/balance","href":"/api-reference/accounts/get-account-balance"},{"title":"Get account activity","openapi":"api-reference/endl-partner-api.json GET /api/v0/accounts/{userId}/{accountId}/activity","href":"/api-reference/accounts/get-account-activity"},{"title":"Activate account","openapi":"api-reference/endl-partner-api.json PATCH /api/v0/accounts/{userId}/{accountId}/activate","href":"/api-reference/accounts/activate-account"},{"title":"Deactivate account","openapi":"api-reference/endl-partner-api.json PATCH /api/v0/accounts/{userId}/{accountId}/deactivate","href":"/api-reference/accounts/deactivate-account"},{"title":"Response by currency","href":"/api-reference/accounts/response-by-currency"},{"title":"Accounts errors","href":"/api-reference/accounts/errors"}]},{"group":"Quotes","expanded":true,"pages":[{"title":"Generate quote","openapi":"api-reference/endl-partner-api.json POST /api/v0/quotes/{userId}/generate","description":"Prices a transfer and returns a quote. The key must carry the `quotes` permission.\n\nThe request is bound with `@Valid`, so a missing field fails **before any pricing happens** and every missing field is reported at once.\n\nA quote fixes the FX rate and fees for a short window; confirm it with [Create pre-transaction](/api-reference/transactions/create-pre-transaction).\n\n**The field table above is the whole contract — nothing else you send has any effect.** There is no `recipientId` (the recipient is attached later, on [Submit transaction](/api-reference/transactions/submit-transaction)), no `partnerId` (the quote is filed under the partner the API key authenticated as), and no `overrideGasFee` (merchant-portal only — the partner endpoints clear it before pricing).\n\n### Three rules the schema cannot express\n\nEach produces a `400` that looks arbitrary without the explanation.\n\n**AMT — supply exactly one amount.** Either `source.amount` (a forward quote) or `destination.amount` (a reverse quote, priced backwards from what the recipient should receive), never both. Neither returns *Source or Destination amount is required*; a zero or negative value returns *Source amount must be greater than 0*.\n\n**RAIL — `depositRail` is coupled to `source.currency`.** A `USDC` or `USDT` source must use `CRYPTO`; any other source currency must not.\n\n**CHAIN — `chain` is required on the stablecoin source leg.** On `source` for a stablecoin → fiat quote. On stablecoin → stablecoin it is optional per leg, but a chain you do send is validated.\n\n\u003cNote>\nUnknown properties are **ignored rather than rejected**, so sending the wrong field names produces *missing field* errors rather than *unknown field* ones.\n\u003c/Note>\n\n### Picking the payout rail\n\nThe rail decides which provider serves the corridor. `VND` routes through Paywho, which requires a **bank-transfer payout rail** — sending `CRYPTO` as the `payoutRail` would silently route elsewhere rather than fail, so the quote you get back would not be the one you meant to price.","href":"/api-reference/quotes/generate-quote"},{"title":"Get quote","openapi":"api-reference/endl-partner-api.json GET /api/v0/quotes/{userId}/{quoteId}","href":"/api-reference/quotes/get-quote"}]},{"group":"Recipients","expanded":true,"pages":[{"title":"Add recipient","openapi":"api-reference/endl-partner-api.json POST /api/v0/recipients/{userId}","description":"Creates a recipient the customer can pay out to. Requires the `recipients` permission.\n\nRequired fields vary by corridor — call [Get recipient fields](/api-reference/reference/get-recipient-fields) first and build the body from its answer. Six fields are required on every add: `type`, `currency`, `currencySymbol`, `currencyId`, `payoutRail` and `relationshipToCustomer`. A seventh is the name: `firstName` + `lastName` for `INDIVIDUAL`, `businessName` for `BUSINESS`.\n\n**The payout rail decides which verification the customer needs:**\n\n| `payoutRail` | Customer must have completed |\n| - | - |\n| `AED_LOCAL` | Lorum onboarding |\n| `CRYPTO` | Sumsub KYC |\n| Paywho-settled rails — `BANK_TRANSFER`, `ALIPAY`, `CHINA_UNIONPAY_CARD_TRANSFERS`, `HUMO_UZCARD`, `CASH_PICKUP`, … | Sumsub KYC |\n| `SWIFT` | Keyrails onboarding |\n| Everything else — `ACH`, `FEDWIRE`, `SEPA`, `FPS`, `CHAPS`, … | Bridge KYC |\n\nThis is why a customer can add a recipient on one rail and get a `403` on another.\n\n\u003cNote>\n Send `countryId` in two places. Inside `recipientAddress` it is saved on the recipient.\n At the top level it is used to check the payout rail and, if you leave out\n `recipientAddress.countryTwoLetter` or `countryThreeLetter`, to fill them in; it is not saved.\n\u003c/Note>\n\nThe example below is a VND bank recipient on the `BANK_TRANSFER` rail. Its values come from the reference APIs: `countryId` from [List countries](/api-reference/reference/list-countries) (`241` is Vietnam), `currencyId` from [List currencies](/api-reference/reference/list-currencies) (`110` is VND), and `providerBankId` from the `code` of an option on the `bankId` field in [Get recipient fields](/api-reference/reference/get-recipient-fields).\n\nSee the [Recipients guide](/guides/recipients) for verification timing, the rules that refuse a recipient, and why there is no update.","href":"/api-reference/recipients/add-recipient"},{"title":"List recipients","openapi":"api-reference/endl-partner-api.json POST /api/v0/recipients/{userId}/all","href":"/api-reference/recipients/list-recipients"},{"title":"Get recipient","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipients/{userId}/{recipientId}","href":"/api-reference/recipients/get-recipient"},{"title":"Delete recipient","openapi":"api-reference/endl-partner-api.json DELETE /api/v0/recipients/{userId}/{recipientId}","href":"/api-reference/recipients/delete-recipient"},{"title":"List supported rails","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipients/{userId}/supported-rails","href":"/api-reference/recipients/list-supported-rails"},{"title":"Get counterparty checks","openapi":"api-reference/endl-partner-api.json GET /api/v0/recipients/{userId}/{recipientId}/counterparty-checks","href":"/api-reference/recipients/get-counterparty-checks"}]},{"group":"Transactions","expanded":true,"pages":[{"title":"Create pre-transaction","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/pre-txn","href":"/api-reference/transactions/create-pre-transaction"},{"title":"Submit transaction","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/submit","href":"/api-reference/transactions/submit-transaction"},{"title":"Get transaction","openapi":"api-reference/endl-partner-api.json GET /api/v0/transactions/{userId}/{txnId}","href":"/api-reference/transactions/get-transaction"},{"title":"List transactions","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/all","href":"/api-reference/transactions/list-transactions"},{"title":"Get transaction metadata","openapi":"api-reference/endl-partner-api.json GET /api/v0/transactions/{userId}/metadata","href":"/api-reference/transactions/get-transaction-metadata"},{"title":"List purpose codes","openapi":"api-reference/endl-partner-api.json GET /api/v0/transactions/purpose-codes","href":"/api-reference/transactions/list-purpose-codes"},{"title":"Upload invoice","openapi":"api-reference/endl-partner-api.json POST /api/v0/transactions/{userId}/invoice-upload","href":"/api-reference/transactions/upload-invoice"}]},{"group":"Cards","expanded":true,"pages":[{"title":"Cards overview","href":"/api-reference/cards/introduction"},{"title":"Enrol a customer","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/enrollment","href":"/api-reference/cards/enroll-customer"},{"title":"Get enrolment","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/enrollment","href":"/api-reference/cards/get-enrollment"},{"title":"Add a cardholder","openapi":"api-reference/endl-cards-api.json POST /api/v0/customer/{businessId}/card-users","href":"/api-reference/cards/create-cardholder"},{"title":"List cardholders","openapi":"api-reference/endl-cards-api.json GET /api/v0/customer/{businessId}/card-users","href":"/api-reference/cards/list-cardholders"},{"title":"Get a cardholder","openapi":"api-reference/endl-cards-api.json GET /api/v0/customer/{businessId}/card-users/{cardholderId}","href":"/api-reference/cards/get-cardholder"},{"title":"Issue a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{cardholderId}","href":"/api-reference/cards/issue-card"},{"title":"Issue a single-use card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{cardholderId}/single-use","href":"/api-reference/cards/issue-single-use-card"},{"title":"List cards","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}","href":"/api-reference/cards/list-cards"},{"title":"Get a card","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/{cardId}","href":"/api-reference/cards/get-card"},{"title":"Update a card","openapi":"api-reference/endl-cards-api.json PATCH /api/v0/cards/{customerId}/{cardId}","href":"/api-reference/cards/update-card"},{"title":"Freeze a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/freeze","href":"/api-reference/cards/freeze-card"},{"title":"Unfreeze a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/unfreeze","href":"/api-reference/cards/unfreeze-card"},{"title":"Cancel a card","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/cancel","href":"/api-reference/cards/cancel-card"},{"title":"Get card details","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/{cardId}/details","href":"/api-reference/cards/get-card-details"},{"title":"Card details encryption","href":"/api-reference/cards/encryption"},{"title":"List card transactions","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/transactions","href":"/api-reference/cards/list-card-transactions"},{"title":"Get a card transaction","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/transactions/{transactionId}","href":"/api-reference/cards/get-card-transaction"},{"title":"Get card balance","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/balance","href":"/api-reference/cards/get-card-balance"},{"title":"Get deposit instructions","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/deposit-instructions","href":"/api-reference/cards/get-deposit-instructions"},{"title":"Deposit from the Endl account","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/deposits","href":"/api-reference/cards/create-card-deposit"},{"title":"List deposits","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/deposits","href":"/api-reference/cards/list-card-deposits"},{"title":"Get a deposit","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/deposits/{depositId}","href":"/api-reference/cards/get-card-deposit"},{"title":"Withdraw from the card balance","openapi":"api-reference/endl-cards-api.json POST /api/v0/cards/{customerId}/withdrawals","href":"/api-reference/cards/create-card-withdrawal"},{"title":"List withdrawals","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/withdrawals","href":"/api-reference/cards/list-card-withdrawals"},{"title":"Get a withdrawal","openapi":"api-reference/endl-cards-api.json GET /api/v0/cards/{customerId}/withdrawals/{withdrawalId}","href":"/api-reference/cards/get-card-withdrawal"},{"title":"Card webhook events","href":"/api-reference/cards/events"},{"title":"Card errors","href":"/api-reference/cards/errors"}]},{"group":"POBO","expanded":true,"pages":[{"title":"POBO overview","href":"/api-reference/pobo/introduction"},{"title":"Get owner","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/owner","href":"/api-reference/pobo/get-owner"},{"title":"Create sender","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/senders","href":"/api-reference/pobo/create-sender"},{"title":"List senders","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/senders","href":"/api-reference/pobo/list-senders"},{"title":"Get sender","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/senders/{senderId}","href":"/api-reference/pobo/get-sender"},{"title":"Delete sender","openapi":"api-reference/endl-pobo-api.json DELETE /api/v0/pobo/senders/{senderId}","href":"/api-reference/pobo/delete-sender"},{"title":"Create recipient","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/recipients","href":"/api-reference/pobo/create-recipient"},{"title":"List recipients","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/recipients/all","href":"/api-reference/pobo/list-recipients"},{"title":"Get recipient","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/recipients/{recipientId}","href":"/api-reference/pobo/get-recipient"},{"title":"Delete recipient","openapi":"api-reference/endl-pobo-api.json DELETE /api/v0/pobo/recipients/{recipientId}","href":"/api-reference/pobo/delete-recipient"},{"title":"Generate quote","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/quotes/generate","href":"/api-reference/pobo/generate-quote"},{"title":"Get quote","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/quotes/{quoteId}","href":"/api-reference/pobo/get-quote"},{"title":"Create pre-transaction","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/pre-txn","href":"/api-reference/pobo/create-pre-transaction"},{"title":"Submit transaction","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/submit","href":"/api-reference/pobo/submit-transaction"},{"title":"Get transaction","openapi":"api-reference/endl-pobo-api.json GET /api/v0/pobo/transactions/{txnId}","href":"/api-reference/pobo/get-transaction"},{"title":"List transactions","openapi":"api-reference/endl-pobo-api.json POST /api/v0/pobo/transactions/all","href":"/api-reference/pobo/list-transactions"}]},{"group":"Gift Cards","expanded":true,"pages":[{"title":"Giftcard API overview","href":"/giftcards/overview"},{"title":"Signing requests","href":"/giftcards/authentication"},{"title":"Conventions","href":"/giftcards/conventions"},{"title":"List products","openapi":"api-reference/endl-giftcard-api.json GET /catalog/products","href":"/giftcards/list-products"},{"title":"Create an order","openapi":"api-reference/endl-giftcard-api.json POST /orders","href":"/giftcards/create-order"},{"title":"Get an order","openapi":"api-reference/endl-giftcard-api.json GET /orders/{order_id}","href":"/giftcards/get-order"},{"title":"List orders","openapi":"api-reference/endl-giftcard-api.json GET /orders","href":"/giftcards/list-orders"},{"title":"Retrieve vouchers","openapi":"api-reference/endl-giftcard-api.json GET /orders/{order_id}/vouchers","href":"/giftcards/retrieve-vouchers"},{"title":"Order lifecycle","href":"/giftcards/lifecycle"},{"title":"Error codes","href":"/giftcards/errors"},{"title":"Worked flows","href":"/giftcards/flows"}]},{"group":"Webhooks","expanded":true,"pages":[{"title":"Webhooks overview","href":"/webhooks/overview"},{"title":"Verifying signatures","href":"/webhooks/signature-verification"},{"title":"Create subscription","openapi":"api-reference/endl-webhooks-api.json POST /api/v0/webhooks/subscriptions","href":"/webhooks/create-subscription"},{"title":"List subscriptions","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/subscriptions","href":"/webhooks/list-subscriptions"},{"title":"Get subscription","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/subscriptions/{id}","href":"/webhooks/get-subscription"},{"title":"Update subscription","openapi":"api-reference/endl-webhooks-api.json PATCH /api/v0/webhooks/subscriptions/{id}","href":"/webhooks/update-subscription"},{"title":"Delete subscription","openapi":"api-reference/endl-webhooks-api.json DELETE /api/v0/webhooks/subscriptions/{id}","href":"/webhooks/delete-subscription"},{"title":"Send event to subscription","openapi":"api-reference/endl-webhooks-api.json POST /api/v0/webhooks/subscriptions/{id}/send","href":"/webhooks/send-event"},{"title":"List deliveries","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/events","href":"/webhooks/list-deliveries"},{"title":"Get delivery","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/webhooks/events/{id}","href":"/webhooks/get-delivery"},{"title":"Retry delivery","openapi":"api-reference/endl-webhooks-api.json POST /api/v0/webhooks/events/{id}/retry","href":"/webhooks/retry-delivery"},{"title":"Read the PULL feed","openapi":"api-reference/endl-webhooks-api.json GET /api/v0/events","href":"/webhooks/pull-events"},{"title":"Pagination","href":"/webhooks/pagination"},{"title":"Errors and response envelope","href":"/webhooks/errors"},{"title":"Reference","href":"/webhooks/reference"}]}]}]}]},"title":"Get quote - Endl API","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}