{
"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
}
]
}
Add recipient
Creates a recipient the customer can pay out to. Requires the recipients permission.
Required fields vary by corridor — call 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.
The payout rail decides which verification the customer needs:
This is why a customer can add a recipient on one rail and get a 403 on another.
Send countryId in two places. Inside recipientAddress it is saved on the recipient.
At the top level it is used to check the payout rail and, if you leave out
recipientAddress.countryTwoLetter or countryThreeLetter, to fill them in; it is not saved.
The example below is a VND bank recipient on the BANK_TRANSFER rail. Its values come from the reference APIs: countryId from List countries (241 is Vietnam), currencyId from List currencies (110 is VND), and providerBankId from the code of an option on the bankId field in Get recipient fields.
See the Recipients guide for verification timing, the rules that refuse a recipient, and why there is no update.
{
"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
}
]
}
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.
Endl's numeric id for the recipient's country, from List countries. Not saved — the saved country is recipientAddress.countryId. It narrows the payout-rail check to that country (without it, the check accepts any country's rails), and fills in recipientAddress.countryTwoLetter / countryThreeLetter when either is missing — in which case it is required for every rail except AED and CRYPTO.
The recipient's address. Send countryId here as well as at the top level — this one is the country saved on the recipient. Send both ISO codes, or leave either out and it is filled from the top-level countryId. Any key not listed here is rejected with 400.
Address of the receiving bank. Same properties as recipientAddress. Required for GBP, with a valid UK postcode. Also used as the beneficiary bank address on AED payouts. Not specific to business recipients.
The receiving bank's code. Take it from the options of the bankId field in Get recipient fields and send the option's code. Required wherever that endpoint marks bankId as REQUIRED. Top level only, never inside recipientAddress.
{"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":[],"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/recipients/add-recipient","slug":"/api-reference/recipients/add-recipient","pageMetadata":{"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"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n table: \"table\",\n tbody: \"tbody\",\n td: \"td\",\n th: \"th\",\n thead: \"thead\",\n tr: \"tr\",\n ..._provideComponents(),\n ...props.components\n }, {Note} = _components;\n if (!Note) _missingMdxReference(\"Note\", true);\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Creates a recipient the customer can pay out to. Requires the \", _jsx(_components.code, {\n children: \"recipients\"\n }), \" permission.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Required fields vary by corridor — call \", _jsx(_components.a, {\n href: \"/api-reference/reference/get-recipient-fields\",\n children: \"Get recipient fields\"\n }), \" first and build the body from its answer. Six fields are required on every add: \", _jsx(_components.code, {\n children: \"type\"\n }), \", \", _jsx(_components.code, {\n children: \"currency\"\n }), \", \", _jsx(_components.code, {\n children: \"currencySymbol\"\n }), \", \", _jsx(_components.code, {\n children: \"currencyId\"\n }), \", \", _jsx(_components.code, {\n children: \"payoutRail\"\n }), \" and \", _jsx(_components.code, {\n children: \"relationshipToCustomer\"\n }), \". A seventh is the name: \", _jsx(_components.code, {\n children: \"firstName\"\n }), \" + \", _jsx(_components.code, {\n children: \"lastName\"\n }), \" for \", _jsx(_components.code, {\n children: \"INDIVIDUAL\"\n }), \", \", _jsx(_components.code, {\n children: \"businessName\"\n }), \" for \", _jsx(_components.code, {\n children: \"BUSINESS\"\n }), \".\"]\n }), \"\\n\", _jsx(_components.p, {\n children: _jsx(_components.strong, {\n children: \"The payout rail decides which verification the customer needs:\"\n })\n }), \"\\n\", _jsxs(_components.table, {\n children: [_jsx(_components.thead, {\n children: _jsxs(_components.tr, {\n children: [_jsx(_components.th, {\n children: _jsx(_components.code, {\n children: \"payoutRail\"\n })\n }), _jsx(_components.th, {\n children: \"Customer must have completed\"\n })]\n })\n }), _jsxs(_components.tbody, {\n children: [_jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"AED_LOCAL\"\n })\n }), _jsx(_components.td, {\n children: \"Lorum onboarding\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"CRYPTO\"\n })\n }), _jsx(_components.td, {\n children: \"Sumsub KYC\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsxs(_components.td, {\n children: [\"Paywho-settled rails — \", _jsx(_components.code, {\n children: \"BANK_TRANSFER\"\n }), \", \", _jsx(_components.code, {\n children: \"ALIPAY\"\n }), \", \", _jsx(_components.code, {\n children: \"CHINA_UNIONPAY_CARD_TRANSFERS\"\n }), \", \", _jsx(_components.code, {\n children: \"HUMO_UZCARD\"\n }), \", \", _jsx(_components.code, {\n children: \"CASH_PICKUP\"\n }), \", …\"]\n }), _jsx(_components.td, {\n children: \"Sumsub KYC\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsx(_components.td, {\n children: _jsx(_components.code, {\n children: \"SWIFT\"\n })\n }), _jsx(_components.td, {\n children: \"Keyrails onboarding\"\n })]\n }), _jsxs(_components.tr, {\n children: [_jsxs(_components.td, {\n children: [\"Everything else — \", _jsx(_components.code, {\n children: \"ACH\"\n }), \", \", _jsx(_components.code, {\n children: \"FEDWIRE\"\n }), \", \", _jsx(_components.code, {\n children: \"SEPA\"\n }), \", \", _jsx(_components.code, {\n children: \"FPS\"\n }), \", \", _jsx(_components.code, {\n children: \"CHAPS\"\n }), \", …\"]\n }), _jsx(_components.td, {\n children: \"Bridge KYC\"\n })]\n })]\n })]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This is why a customer can add a recipient on one rail and get a \", _jsx(_components.code, {\n children: \"403\"\n }), \" on another.\"]\n }), \"\\n\", _jsx(Note, {\n children: _jsxs(_components.p, {\n children: [\"Send \", _jsx(_components.code, {\n children: \"countryId\"\n }), \" in two places. Inside \", _jsx(_components.code, {\n children: \"recipientAddress\"\n }), \" it is saved on the recipient.\\nAt the top level it is used to check the payout rail and, if you leave out\\n\", _jsx(_components.code, {\n children: \"recipientAddress.countryTwoLetter\"\n }), \" or \", _jsx(_components.code, {\n children: \"countryThreeLetter\"\n }), \", to fill them in; it is not saved.\"]\n })\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"The example below is a VND bank recipient on the \", _jsx(_components.code, {\n children: \"BANK_TRANSFER\"\n }), \" rail. Its values come from the reference APIs: \", _jsx(_components.code, {\n children: \"countryId\"\n }), \" from \", _jsx(_components.a, {\n href: \"/api-reference/reference/list-countries\",\n children: \"List countries\"\n }), \" (\", _jsx(_components.code, {\n children: \"241\"\n }), \" is Vietnam), \", _jsx(_components.code, {\n children: \"currencyId\"\n }), \" from \", _jsx(_components.a, {\n href: \"/api-reference/reference/list-currencies\",\n children: \"List currencies\"\n }), \" (\", _jsx(_components.code, {\n children: \"110\"\n }), \" is VND), and \", _jsx(_components.code, {\n children: \"providerBankId\"\n }), \" from the \", _jsx(_components.code, {\n children: \"code\"\n }), \" of an option on the \", _jsx(_components.code, {\n children: \"bankId\"\n }), \" field in \", _jsx(_components.a, {\n href: \"/api-reference/reference/get-recipient-fields\",\n children: \"Get recipient fields\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"See the \", _jsx(_components.a, {\n href: \"/guides/recipients\",\n children: \"Recipients guide\"\n }), \" for verification timing, the rules that refuse a recipient, and why there is no update.\"]\n })]\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};\nfunction _missingMdxReference(id, component) {\n throw new Error(\"Expected \" + (component ? \"component\" : \"object\") + \" `\" + id + \"` to be defined: you likely forgot to import, pass, or provide it.\");\n}\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"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"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/zaymentfinanceltd/d373d43d77eb6813/custom.js"],"openApiReferenceData":{"operation":{"tags":["Recipients"],"summary":"Add recipient","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.","responses":{"200":"36a31fda-87b5-4fd8-bfaa-dabc7f788048","400":"130cb6eb-c39c-40a9-8e4f-90f0cba0c92e","401":"7cfb1537-ed04-48f4-a842-3007e00baecb","403":"7098c020-89d1-44f7-be16-c762d7a66200","404":"f9c7cebc-0021-46f2-a8a1-add915cd444c","409":"1305e8bd-cb23-49f4-9e92-9fad7898ac6a","429":"0a8f9c86-b4fb-480f-9507-413c33a84b27","500":"0541be5d-fbaf-4f64-9e1f-144db183fe2e","502":"d85d84d7-7047-425c-bfb9-9a29e0e18cdf","503":"6d425d8f-7658-4c23-9228-783c385b79aa"},"parameters":["6216d145-9a68-4580-839f-9d3ad18b71a8","f3bca2f4-0068-450c-b148-48676415981a"],"requestBody":"9f7127f4-66e5-4480-b44c-c90b5bc8a8a2","method":"post","type":"path","servers":["bc33a2d9-c66f-4f15-a24d-5948ed2274d0"],"security":["4a6b0ab2-c34f-4116-8278-64644557d48c"],"path":"/api/v0/recipients/{userId}","baseUrlOptions":["https://api-sandbox.endl.io"],"title":"Add recipient","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true},"dependencies":{"parameters":{"6216d145-9a68-4580-839f-9d3ad18b71a8":{"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"},"f3bca2f4-0068-450c-b148-48676415981a":{"name":"userId","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"The customer the recipient belongs to. Must be a `cus_…` reference id — a UUID is rejected with `400`.","uniqueKey":"","typeLabel":"string"},"example":"cus_9HqA2mT7xK4vRb1NdLpZ","description":"The customer the recipient belongs to. Must be a `cus_…` reference id — a UUID is rejected with `400`."}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","enum":["BUSINESS","INDIVIDUAL"],"description":"`BUSINESS` or `INDIVIDUAL`.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"currency":{"type":"string","description":"ISO 4217 — the currency the recipient is paid in.","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"currencySymbol":{"type":"string","description":"The symbol for that currency.","isRequired":true,"uniqueKey":"currencySymbol","typeLabel":"string"},"currencyId":{"type":"integer","description":"Endl's numeric id for the currency, from [List currencies](/api-reference/reference/list-currencies).","isRequired":true,"uniqueKey":"currencyId","typeLabel":"integer"},"payoutRail":{"type":"string","description":"The rail used to reach the recipient. Decides which verification the customer needs — see above.","isRequired":true,"uniqueKey":"payoutRail","typeLabel":"string"},"relationshipToCustomer":{"type":"string","description":"How the recipient relates to the customer — `SUPPLIER`, `EMPLOYEE`, `SELF`, `SPOUSE`, `SUBSIDIARY_COMPANY`, and others.","isRequired":true,"uniqueKey":"relationshipToCustomer","typeLabel":"string"},"firstName":{"type":"string","description":"Recipient's first name. Required when `type` is `INDIVIDUAL`.","uniqueKey":"firstName","typeLabel":"string"},"lastName":{"type":"string","description":"Recipient's last name. Required when `type` is `INDIVIDUAL`.","uniqueKey":"lastName","typeLabel":"string"},"businessName":{"type":"string","description":"Recipient's legal name. Required when `type` is `BUSINESS`.","uniqueKey":"businessName","typeLabel":"string"},"countryId":{"type":"integer","description":"Endl's numeric id for the recipient's country, from [List countries](/api-reference/reference/list-countries). **Not saved** — the saved country is `recipientAddress.countryId`. It narrows the payout-rail check to that country (without it, the check accepts any country's rails), and fills in `recipientAddress.countryTwoLetter` / `countryThreeLetter` when either is missing — in which case it is required for every rail except AED and `CRYPTO`.","uniqueKey":"countryId","typeLabel":"integer"},"email":{"type":"string","description":"Recipient's email address.","uniqueKey":"email","typeLabel":"string"},"recipientAddress":{"type":"object","description":"The recipient's address. Send `countryId` here as well as at the top level — this one is the country saved on the recipient. Send both ISO codes, or leave either out and it is filled from the top-level `countryId`. Any key not listed here is rejected with `400`.","properties":{"addressLine1":{"type":"string","uniqueKey":"recipientAddress.addressLine1","typeLabel":"string"},"addressLine2":{"type":"string","uniqueKey":"recipientAddress.addressLine2","typeLabel":"string"},"city":{"type":"string","uniqueKey":"recipientAddress.city","typeLabel":"string"},"state":{"type":"string","uniqueKey":"recipientAddress.state","typeLabel":"string"},"region":{"type":"string","uniqueKey":"recipientAddress.region","typeLabel":"string"},"postalCode":{"type":"string","uniqueKey":"recipientAddress.postalCode","typeLabel":"string"},"country":{"type":"string","uniqueKey":"recipientAddress.country","typeLabel":"string"},"countryId":{"type":"integer","description":"Endl's numeric id for the country, from [List countries](/api-reference/reference/list-countries). **Saved on the recipient** and returned on it. Not sent → saved as `null`.","uniqueKey":"recipientAddress.countryId","typeLabel":"integer"},"countryTwoLetter":{"type":"string","description":"ISO 3166-1 alpha-2 code. Used as sent. Left out → filled from the top-level `countryId`.","uniqueKey":"recipientAddress.countryTwoLetter","typeLabel":"string"},"countryThreeLetter":{"type":"string","description":"ISO 3166-1 alpha-3 code. Used as sent. Left out → filled from the top-level `countryId`.","uniqueKey":"recipientAddress.countryThreeLetter","typeLabel":"string"}},"uniqueKey":"recipientAddress","typeLabel":"object"},"institutionalAddress":{"type":"object","description":"Address of the receiving bank. Same properties as `recipientAddress`. Required for GBP, with a valid UK postcode. Also used as the beneficiary bank address on AED payouts. Not specific to business recipients.","properties":{"addressLine1":{"type":"string","uniqueKey":"institutionalAddress.addressLine1","typeLabel":"string"},"addressLine2":{"type":"string","uniqueKey":"institutionalAddress.addressLine2","typeLabel":"string"},"city":{"type":"string","uniqueKey":"institutionalAddress.city","typeLabel":"string"},"state":{"type":"string","uniqueKey":"institutionalAddress.state","typeLabel":"string"},"region":{"type":"string","uniqueKey":"institutionalAddress.region","typeLabel":"string"},"postalCode":{"type":"string","uniqueKey":"institutionalAddress.postalCode","typeLabel":"string"},"country":{"type":"string","uniqueKey":"institutionalAddress.country","typeLabel":"string"},"countryId":{"type":"integer","description":"Endl's numeric id for the country, from [List countries](/api-reference/reference/list-countries).","uniqueKey":"institutionalAddress.countryId","typeLabel":"integer"},"countryTwoLetter":{"type":"string","description":"ISO 3166-1 alpha-2 code.","uniqueKey":"institutionalAddress.countryTwoLetter","typeLabel":"string"},"countryThreeLetter":{"type":"string","description":"ISO 3166-1 alpha-3 code.","uniqueKey":"institutionalAddress.countryThreeLetter","typeLabel":"string"}},"uniqueKey":"institutionalAddress","typeLabel":"object"},"bankName":{"type":"string","description":"Receiving bank name.","uniqueKey":"bankName","typeLabel":"string"},"bankAccountNumber":{"type":"string","description":"Receiving account number.","uniqueKey":"bankAccountNumber","typeLabel":"string"},"ifsc":{"type":"string","description":"IFSC — for Indian rails.","uniqueKey":"ifsc","typeLabel":"string"},"swiftBic":{"type":"string","description":"SWIFT / BIC — for `SWIFT`.","uniqueKey":"swiftBic","typeLabel":"string"},"iban":{"type":"string","description":"IBAN — for `SEPA`.","uniqueKey":"iban","typeLabel":"string"},"sortCode":{"type":"string","description":"Sort code — for UK rails.","uniqueKey":"sortCode","typeLabel":"string"},"bankRoutingNumber":{"type":"string","description":"Routing number — for US rails.","uniqueKey":"bankRoutingNumber","typeLabel":"string"},"bankType":{"type":"string","description":"Set to `us` for a US bank recipient, which must then also carry `accountType`.","uniqueKey":"bankType","typeLabel":"string"},"accountType":{"type":"string","enum":["checking","savings"],"description":"For a US bank recipient (`bankType: \"us\"`): `checking` or `savings`.","uniqueKey":"accountType","typeLabel":"enum\u003cstring>"},"walletAddress":{"type":"string","description":"Destination wallet address — for `CRYPTO`, with `walletChain`.","uniqueKey":"walletAddress","typeLabel":"string"},"walletChain":{"type":"string","description":"Network of `walletAddress` — for `CRYPTO`.","uniqueKey":"walletChain","typeLabel":"string"},"providerBankId":{"type":"string","description":"The receiving bank's code. Take it from the `options` of the `bankId` field in Get recipient fields and send the option's `code`. Required wherever that endpoint marks `bankId` as REQUIRED. Top level only, never inside `recipientAddress`.","uniqueKey":"providerBankId","typeLabel":"string"},"phone":{"type":"string","description":"Recipient's phone number. Digits only, up to 15. No `+`, spaces or dashes.","uniqueKey":"phone","typeLabel":"string"},"dateOfBirth":{"type":"string","description":"Individual's date of birth, `DD-MM-YYYY` (for example `25-01-1994`).","uniqueKey":"dateOfBirth","typeLabel":"string"},"governmentId":{"type":"string","description":"Recipient's ID number. Get recipient fields calls this field `governmentIdNumber`.","uniqueKey":"governmentId","typeLabel":"string"},"governmentIdType":{"type":"string","description":"Type of `governmentId`, from the field's options.","uniqueKey":"governmentIdType","typeLabel":"string"},"bankBranchCode":{"type":"string","description":"Branch code.","uniqueKey":"bankBranchCode","typeLabel":"string"},"bankBranchName":{"type":"string","description":"Branch name. Required for TWD.","uniqueKey":"bankBranchName","typeLabel":"string"},"nationality":{"type":"string","description":"Recipient's nationality, from the field's options.","uniqueKey":"nationality","typeLabel":"string"},"gender":{"type":"string","description":"`M` or `F`.","uniqueKey":"gender","typeLabel":"string"},"occupation":{"type":"string","description":"Recipient's occupation, from the field's options.","uniqueKey":"occupation","typeLabel":"string"},"nativeFirstName":{"type":"string","description":"First name in local script. CNY requires Han characters.","uniqueKey":"nativeFirstName","typeLabel":"string"},"nativeLastName":{"type":"string","description":"Last name in local script.","uniqueKey":"nativeLastName","typeLabel":"string"},"nativeAddress":{"type":"string","description":"Address in local script. Top level, not inside `recipientAddress`.","uniqueKey":"nativeAddress","typeLabel":"string"},"nativeBusinessName":{"type":"string","description":"BUSINESS only. Legal name in local script.","uniqueKey":"nativeBusinessName","typeLabel":"string"},"businessStructure":{"type":"string","description":"BUSINESS only. From the field's options.","uniqueKey":"businessStructure","typeLabel":"string"},"businessRegistrationCountry":{"type":"string","description":"BUSINESS only. From the field's options.","uniqueKey":"businessRegistrationCountry","typeLabel":"string"}},"required":["type","currency","currencySymbol","currencyId","payoutRail","relationshipToCustomer"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"BUSINESS","businessName":"DEU Labs","currency":"VND","currencySymbol":"₫","currencyId":110,"countryId":241,"payoutRail":"BANK_TRANSFER","relationshipToCustomer":"SUPPLIER","providerBankId":"VIETCOMBANK","bankAccountNumber":"0032995678","email":"support@technolabs.com","phone":"84909876543","recipientAddress":{"addressLine1":"12 Nguyen Hue","city":"Ho Chi Minh City","country":"Vietnam","countryId":241}},"examples":{"Example":{"title":"Example","value":{"type":"BUSINESS","businessName":"DEU Labs","currency":"VND","currencySymbol":"₫","currencyId":110,"countryId":241,"payoutRail":"BANK_TRANSFER","relationshipToCustomer":"SUPPLIER","providerBankId":"VIETCOMBANK","bankAccountNumber":"0032995678","email":"support@technolabs.com","phone":"84909876543","recipientAddress":{"addressLine1":"12 Nguyen Hue","city":"Ho Chi Minh City","country":"Vietnam","countryId":241}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"36a31fda-87b5-4fd8-bfaa-dabc7f788048":{"description":"The created recipient, including its `rec_` id and `providerBankId`. **Unwrapped** — no `code`, `message` or `data` wrapper.","content":{"application/json":{"schema":{"type":"object","description":"A recipient, unwrapped. Keys with no value are left out, except inside the two address objects. `alias` is never returned.","properties":{"id":{"type":"string","description":"`rec_…` reference id.","uniqueKey":"id","typeLabel":"string"},"userId":{"type":"string","description":"`cus_…` id of the owning customer.","uniqueKey":"userId","typeLabel":"string"},"type":{"type":"string","description":"`INDIVIDUAL` or `BUSINESS`.","enum":["INDIVIDUAL","BUSINESS"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"firstName":{"type":"string","description":"First name. For a `BUSINESS` recipient this holds the business name.","uniqueKey":"firstName","typeLabel":"string"},"lastName":{"type":"string","description":"Contact detail.","uniqueKey":"lastName","typeLabel":"string"},"email":{"type":"string","description":"Contact detail.","uniqueKey":"email","typeLabel":"string"},"phone":{"type":"string","description":"Contact detail.","uniqueKey":"phone","typeLabel":"string"},"dateOfBirth":{"type":"string","description":"Returned as `YYYY-MM-DD` (sent as `DD-MM-YYYY` on Add recipient).","uniqueKey":"dateOfBirth","typeLabel":"string"},"nationality":{"type":"string","description":"Individual identity detail, where the corridor needs it.","uniqueKey":"nationality","typeLabel":"string"},"gender":{"type":"string","description":"Individual identity detail, where the corridor needs it.","uniqueKey":"gender","typeLabel":"string"},"occupation":{"type":"string","description":"Individual identity detail, where the corridor needs it.","uniqueKey":"occupation","typeLabel":"string"},"governmentId":{"type":"string","description":"Individual identity detail, where the corridor needs it.","uniqueKey":"governmentId","typeLabel":"string"},"governmentIdType":{"type":"string","description":"Individual identity detail, where the corridor needs it.","uniqueKey":"governmentIdType","typeLabel":"string"},"businessStructure":{"type":"string","description":"Business detail.","uniqueKey":"businessStructure","typeLabel":"string"},"businessRegistrationCountry":{"type":"string","description":"Business detail.","uniqueKey":"businessRegistrationCountry","typeLabel":"string"},"bankName":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"bankName","typeLabel":"string"},"bankAccountNumber":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"bankAccountNumber","typeLabel":"string"},"bankRoutingNumber":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"bankRoutingNumber","typeLabel":"string"},"bankBranchCode":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"bankBranchCode","typeLabel":"string"},"bankBranchName":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"bankBranchName","typeLabel":"string"},"iban":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"iban","typeLabel":"string"},"swiftBic":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"swiftBic","typeLabel":"string"},"ifsc":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"ifsc","typeLabel":"string"},"sortCode":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"sortCode","typeLabel":"string"},"accountType":{"type":"string","description":"Bank detail for the rail.","uniqueKey":"accountType","typeLabel":"string"},"providerBankId":{"type":"string","description":"Bank detail for the rail — the receiving bank's code, as sent on Add recipient.","uniqueKey":"providerBankId","typeLabel":"string"},"walletAddress":{"type":"string","description":"Payout wallet, for `CRYPTO` recipients.","uniqueKey":"walletAddress","typeLabel":"string"},"walletChain":{"type":"string","description":"Payout wallet chain, for `CRYPTO` recipients.","uniqueKey":"walletChain","typeLabel":"string"},"recipientAddress":{"type":"object","description":"The recipient's address. **Always present**; inner fields may be `null`.","properties":{"addressLine1":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.addressLine1.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.addressLine1.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.addressLine1","typeLabel":"string | null"},"addressLine2":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.addressLine2.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.addressLine2.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.addressLine2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.city.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.city","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.state.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.state","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.country.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.country","typeLabel":"string | null"},"postalCode":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.postalCode.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.postalCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.postalCode","typeLabel":"string | null"},"countryTwoLetter":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.countryTwoLetter.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.countryTwoLetter.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.countryTwoLetter","typeLabel":"string | null"},"countryThreeLetter":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.countryThreeLetter.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.countryThreeLetter.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.countryThreeLetter","typeLabel":"string | null"},"countryId":{"oneOf":[{"type":"integer","uniqueKey":"recipientAddress.countryId.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"recipientAddress.countryId.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.countryId","typeLabel":"integer | null"},"region":{"oneOf":[{"type":"string","uniqueKey":"recipientAddress.region.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"recipientAddress.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"recipientAddress.region","typeLabel":"string | null"}},"uniqueKey":"recipientAddress","typeLabel":"object"},"institutionalAddress":{"type":"object","description":"The bank's address, same fields. **Always present**; inner fields may be `null`.","properties":{"addressLine1":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.addressLine1.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.addressLine1.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.addressLine1","typeLabel":"string | null"},"addressLine2":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.addressLine2.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.addressLine2.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.addressLine2","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.city.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.city.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.city","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.state.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.state.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.state","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.country.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.country.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.country","typeLabel":"string | null"},"postalCode":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.postalCode.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.postalCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.postalCode","typeLabel":"string | null"},"countryTwoLetter":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.countryTwoLetter.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.countryTwoLetter.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.countryTwoLetter","typeLabel":"string | null"},"countryThreeLetter":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.countryThreeLetter.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.countryThreeLetter.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.countryThreeLetter","typeLabel":"string | null"},"countryId":{"oneOf":[{"type":"integer","uniqueKey":"institutionalAddress.countryId.oneOf.0","typeLabel":"integer"},{"type":"null","uniqueKey":"institutionalAddress.countryId.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.countryId","typeLabel":"integer | null"},"region":{"oneOf":[{"type":"string","uniqueKey":"institutionalAddress.region.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"institutionalAddress.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"institutionalAddress.region","typeLabel":"string | null"}},"uniqueKey":"institutionalAddress","typeLabel":"object"},"currency":{"type":"string","description":"Payout currency.","uniqueKey":"currency","typeLabel":"string"},"currencySymbol":{"type":"string","description":"Payout currency symbol.","uniqueKey":"currencySymbol","typeLabel":"string"},"currencyId":{"type":"integer","description":"Payout currency id.","uniqueKey":"currencyId","typeLabel":"integer"},"payoutRail":{"type":"string","description":"Payout rail, e.g. `ACH`, `SEPA`, `BANK_TRANSFER`, `CRYPTO`.","uniqueKey":"payoutRail","typeLabel":"string"},"relationshipToCustomer":{"type":"string","description":"Relationship to the customer, e.g. `FRIEND`, `SUPPLIER`.","uniqueKey":"relationshipToCustomer","typeLabel":"string"},"wireMessage":{"type":"string","description":"Default memo sent with wires.","uniqueKey":"wireMessage","typeLabel":"string"},"addedToAccountsProvider":{"type":"boolean","description":"Registered with the payout provider.","uniqueKey":"addedToAccountsProvider","typeLabel":"boolean"},"statusAccountsProvider":{"type":"string","description":"Provider status: `PENDING`, `ACTIVE`, `OPEN`, `CLOSED`, `FROZEN`, `EDD`, `DORMANT` (plus `_L2F` variants). Only `ACTIVE` can be paid.","uniqueKey":"statusAccountsProvider","typeLabel":"string"},"statusAccountsProviderUpdatedOn":{"type":"string","description":"ISO 8601 time of the last provider status change.","uniqueKey":"statusAccountsProviderUpdatedOn","typeLabel":"string"},"counterpartyId":{"type":"string","description":"Provider-side id. Opaque.","uniqueKey":"counterpartyId","typeLabel":"string"},"flag":{"type":"string","description":"Country name of the payout currency, for display.","uniqueKey":"flag","typeLabel":"string"},"invoiceMandatory":{"type":"boolean","description":"`true` when a transfer to this recipient must carry an invoice.","uniqueKey":"invoiceMandatory","typeLabel":"boolean"},"isNewKyc":{"type":"boolean","description":"Internal. Do not branch on it.","uniqueKey":"isNewKyc","typeLabel":"boolean"},"deleted":{"type":"boolean","description":"Always `false` in a list.","uniqueKey":"deleted","typeLabel":"boolean"},"createdOn":{"type":"string","description":"ISO 8601 timestamp.","uniqueKey":"createdOn","typeLabel":"string"},"updatedOn":{"type":"string","description":"ISO 8601 timestamp.","uniqueKey":"updatedOn","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"example":{"id":"rec_7Hq2LmN9xVb4TzK1pR8s","userId":"cus_4Fz9QeT2mXb7LpR1sKd8","type":"INDIVIDUAL","firstName":"Van An","lastName":"Nguyen","email":"an.nguyen@example.com","phone":"+84901234567","dateOfBirth":"1990-12-05","bankName":"VIETCOMBANK","bankAccountNumber":"0071000123456","providerBankId":"VIETCOMBANK","recipientAddress":{"addressLine1":"12 Le Loi","addressLine2":null,"city":"Ho Chi Minh City","state":"Ho Chi Minh","country":"Vietnam","postalCode":"700000","countryTwoLetter":"VN","countryThreeLetter":"VNM","countryId":241,"region":null},"institutionalAddress":{"addressLine1":null,"addressLine2":null,"city":null,"state":null,"country":null,"postalCode":null,"countryTwoLetter":null,"countryThreeLetter":null,"countryId":null,"region":null},"currency":"VND","currencySymbol":"₫","currencyId":110,"payoutRail":"BANK_TRANSFER","relationshipToCustomer":"FRIEND","addedToAccountsProvider":false,"flag":"Vietnam","invoiceMandatory":false,"isNewKyc":false,"deleted":false,"createdOn":"2026-10-22T09:15:32.481Z","updatedOn":"2026-10-22T09:15:32.481Z"},"examples":{"Example":{"title":"Example","value":{"id":"rec_7Hq2LmN9xVb4TzK1pR8s","userId":"cus_4Fz9QeT2mXb7LpR1sKd8","type":"INDIVIDUAL","firstName":"Van An","lastName":"Nguyen","email":"an.nguyen@example.com","phone":"+84901234567","dateOfBirth":"1990-12-05","bankName":"VIETCOMBANK","bankAccountNumber":"0071000123456","providerBankId":"VIETCOMBANK","recipientAddress":{"addressLine1":"12 Le Loi","addressLine2":null,"city":"Ho Chi Minh City","state":"Ho Chi Minh","country":"Vietnam","postalCode":"700000","countryTwoLetter":"VN","countryThreeLetter":"VNM","countryId":241,"region":null},"institutionalAddress":{"addressLine1":null,"addressLine2":null,"city":null,"state":null,"country":null,"postalCode":null,"countryTwoLetter":null,"countryThreeLetter":null,"countryId":null,"region":null},"currency":"VND","currencySymbol":"₫","currencyId":110,"payoutRail":"BANK_TRANSFER","relationshipToCustomer":"FRIEND","addedToAccountsProvider":false,"flag":"Vietnam","invoiceMandatory":false,"isNewKyc":false,"deleted":false,"createdOn":"2026-10-22T09:15:32.481Z","updatedOn":"2026-10-22T09:15:32.481Z"}}},"exampleType":"examples"}},"exampleType":"examples"},"130cb6eb-c39c-40a9-8e4f-90f0cba0c92e":{"description":"Validation or a business rule refused the recipient, with the reason in `errors[0]`. Business refusals include: **duplicate account** (the same payout details already exist for this customer — including a Paywho bank-transfer-rail recipient whose account number matches, refused with `Account exists`); **SWIFT not enabled** for the customer; **corridor exclusivity** (once a customer has sent in `INR`, `PKR` recipients are refused, and vice versa); the **India compliance restriction** (customers with a PK/BD nexus are blocked from INR and SWIFT-to-India recipients); and `INR recipients not supported` for any `IMPS` + `INR` recipient that is not an India customer's own `SELF` account. `ERRREC_1001` — a recipient field fails validation. Each failing field is its own `errors[]` entry: `message` gives the reason (for example `First name is required`) and `field` names the field (for example `firstName`).","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":"Recipient param validations failed!","status":"ERROR","data":null,"errors":[{"code":"ERRREC_1001","message":"First name is required","field":"firstName"}]},"examples":{"Example":{"title":"Example","value":{"code":400,"message":"Recipient param validations failed!","status":"ERROR","data":null,"errors":[{"code":"ERRREC_1001","message":"First name is required","field":"firstName"}]}}},"exampleType":"examples"}},"exampleType":"examples"},"7cfb1537-ed04-48f4-a842-3007e00baecb":{"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"},"7098c020-89d1-44f7-be16-c762d7a66200":{"description":"The customer has not completed the verification this payout rail needs — Lorum onboarding for `AED_LOCAL`, Keyrails for `SWIFT`, Bridge KYC for Bridge-backed rails, Sumsub otherwise — or the key lacks `recipients`.","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"},"f9c7cebc-0021-46f2-a8a1-add915cd444c":{"description":"No such resource, or it belongs to another partner.","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":"Resource not found","status":"ERROR","data":null,"errors":[{"code":"NOT_FOUND","message":"Resource not found","field":null}]},"examples":{"Example":{"title":"Example","value":{"code":404,"message":"Resource not found","status":"ERROR","data":null,"errors":[{"code":"NOT_FOUND","message":"Resource not found","field":null}]}}},"exampleType":"examples"}},"exampleType":"examples"},"1305e8bd-cb23-49f4-9e92-9fad7898ac6a":{"description":"Duplicate external account — an ACH/Fedwire recipient with the same account and routing number already exists.","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"},"0a8f9c86-b4fb-480f-9507-413c33a84b27":{"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"},"0541be5d-fbaf-4f64-9e1f-144db183fe2e":{"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"},"d85d84d7-7047-425c-bfb9-9a29e0e18cdf":{"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"},"6d425d8f-7658-4c23-9228-783c385b79aa":{"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":"Add recipient - Endl API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T13:28:07.823Z","originalFileLocation":"api-reference/recipients/add-recipient.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=\"Creates a recipient the customer can pay out to. Requires the recipients permission. Required fields vary by corridor — call 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. The payout rail decides which verification the customer needs: | payoutRail | Customer must have completed | | - | - | | AED_LOCAL | Lorum onboarding | | CRYPTO | Sumsub KYC | | Paywho-settled rails — BANK_TRANSFER, ALIPAY, CHINA_UNIONPAY_CARD_TRANSFERS, HUMO_UZCARD, CASH_PICKUP, … | Sumsub KYC | | SWIFT | Keyrails onboarding | | Everything else — ACH, FEDWIRE, SEPA, FPS, CHAPS, … | Bridge KYC | This is why a customer can add a recipient on one rail and get a 403 on another. Send countryId in two places. Inside recipientAddress it is saved on the recipient. At the top level it is used to check the payout rail and, if you leave out recipientAddress.countryTwoLetter or countryThreeLetter, to fill them in; it is not saved. The example below is a VND bank recipient on the BANK_TRANSFER rail. Its values come from the reference APIs: countryId from List countries (241 is Vietnam), currencyId from List currencies (110 is VND), and providerBankId from the code of an option on the bankId field in Get recipient fields. See the Recipients guide for verification timing, the rules that refuse a recipient, and why there is no update.\">\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=\"Add recipient - Endl API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a recipient the customer can pay out to. Requires the recipients permission. Required fields vary by corridor — call 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. The payout rail decides which verification the customer needs: | payoutRail | Customer must have completed | | - | - | | AED_LOCAL | Lorum onboarding | | CRYPTO | Sumsub KYC | | Paywho-settled rails — BANK_TRANSFER, ALIPAY, CHINA_UNIONPAY_CARD_TRANSFERS, HUMO_UZCARD, CASH_PICKUP, … | Sumsub KYC | | SWIFT | Keyrails onboarding | | Everything else — ACH, FEDWIRE, SEPA, FPS, CHAPS, … | Bridge KYC | This is why a customer can add a recipient on one rail and get a 403 on another. Send countryId in two places. Inside recipientAddress it is saved on the recipient. At the top level it is used to check the payout rail and, if you leave out recipientAddress.countryTwoLetter or countryThreeLetter, to fill them in; it is not saved. The example below is a VND bank recipient on the BANK_TRANSFER rail. Its values come from the reference APIs: countryId from List countries (241 is Vietnam), currencyId from List currencies (110 is VND), and providerBankId from the code of an option on the bankId field in Get recipient fields. See the Recipients guide for verification timing, the rules that refuse a recipient, and why there is no update.\">\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/recipients/add-recipient\">\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=Recipients\u0026amp;title=Add+recipient\u0026amp;description=Creates+a+recipient+the+customer+can+pay+out+to.+Requires+the+%60recipients%60+permission.%0A%0ARequired+fields+vary+by+corridor+%E2%80%94+call+%5BGet+recipient+fields%5D%28%2Fapi-refe\u0026amp;theme=668efa5ed0467f58a90d23e2\u0026amp;signature=2c249a13f20b3e2a5abfb601539e5f482b21772cd40d29a21a15e272fbdb9c94\">\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=\"Add recipient - Endl API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a recipient the customer can pay out to. Requires the recipients permission. Required fields vary by corridor — call 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. The payout rail decides which verification the customer needs: | payoutRail | Customer must have completed | | - | - | | AED_LOCAL | Lorum onboarding | | CRYPTO | Sumsub KYC | | Paywho-settled rails — BANK_TRANSFER, ALIPAY, CHINA_UNIONPAY_CARD_TRANSFERS, HUMO_UZCARD, CASH_PICKUP, … | Sumsub KYC | | SWIFT | Keyrails onboarding | | Everything else — ACH, FEDWIRE, SEPA, FPS, CHAPS, … | Bridge KYC | This is why a customer can add a recipient on one rail and get a 403 on another. Send countryId in two places. Inside recipientAddress it is saved on the recipient. At the top level it is used to check the payout rail and, if you leave out recipientAddress.countryTwoLetter or countryThreeLetter, to fill them in; it is not saved. The example below is a VND bank recipient on the BANK_TRANSFER rail. Its values come from the reference APIs: countryId from List countries (241 is Vietnam), currencyId from List currencies (110 is VND), and providerBankId from the code of an option on the bankId field in Get recipient fields. See the Recipients guide for verification timing, the rules that refuse a recipient, and why there is no update.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://zaymentfinanceltd.mintlify.app/_mintlify/api/og/v2?division=Recipients\u0026amp;title=Add+recipient\u0026amp;description=Creates+a+recipient+the+customer+can+pay+out+to.+Requires+the+%60recipients%60+permission.%0A%0ARequired+fields+vary+by+corridor+%E2%80%94+call+%5BGet+recipient+fields%5D%28%2Fapi-refe\u0026amp;theme=668efa5ed0467f58a90d23e2\u0026amp;signature=2c249a13f20b3e2a5abfb601539e5f482b21772cd40d29a21a15e272fbdb9c94\">\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/recipients/add-recipient\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/recipients/add-recipient.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/recipients/add-recipient#webpage\",\"url\":\"https://docs.endl.io/api-reference/recipients/add-recipient\",\"name\":\"Add recipient\",\"description\":\"Creates a recipient the customer can pay out to. Requires the recipients permission. Required fields vary by corridor — call 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. The payout rail decides which verification the customer needs: | payoutRail | Customer must have completed | | - | - | | AED_LOCAL | Lorum onboarding | | CRYPTO | Sumsub KYC | | Paywho-settled rails — BANK_TRANSFER, ALIPAY, CHINA_UNIONPAY_CARD_TRANSFERS, HUMO_UZCARD, CASH_PICKUP, … | Sumsub KYC | | SWIFT | Keyrails onboarding | | Everything else — ACH, FEDWIRE, SEPA, FPS, CHAPS, … | Bridge KYC | This is why a customer can add a recipient on one rail and get a 403 on another. Send countryId in two places. Inside recipientAddress it is saved on the recipient. At the top level it is used to check the payout rail and, if you leave out recipientAddress.countryTwoLetter or countryThreeLetter, to fill them in; it is not saved. The example below is a VND bank recipient on the BANK_TRANSFER rail. Its values come from the reference APIs: countryId from List countries (241 is Vietnam), currencyId from List currencies (110 is VND), and providerBankId from the code of an option on the bankId field in Get recipient fields. See the Recipients guide for verification timing, the rules that refuse a recipient, and why there is no update.\",\"dateModified\":\"2026-10-23T13:28:07.823Z\",\"isPartOf\":{\"@id\":\"https://docs.endl.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.endl.io/api-reference/recipients/add-recipient#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.endl.io/api-reference/recipients/add-recipient#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.endl.io/api-reference/onboarding/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Add recipient\",\"item\":\"https://docs.endl.io/api-reference/recipients/add-recipient\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.endl.io/api-reference/recipients/add-recipient#apireference\",\"headline\":\"Add recipient\",\"name\":\"Add recipient\",\"description\":\"Creates a recipient the customer can pay out to. Requires the recipients permission. Required fields vary by corridor — call 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. The payout rail decides which verification the customer needs: | payoutRail | Customer must have completed | | - | - | | AED_LOCAL | Lorum onboarding | | CRYPTO | Sumsub KYC | | Paywho-settled rails — BANK_TRANSFER, ALIPAY, CHINA_UNIONPAY_CARD_TRANSFERS, HUMO_UZCARD, CASH_PICKUP, … | Sumsub KYC | | SWIFT | Keyrails onboarding | | Everything else — ACH, FEDWIRE, SEPA, FPS, CHAPS, … | Bridge KYC | This is why a customer can add a recipient on one rail and get a 403 on another. Send countryId in two places. Inside recipientAddress it is saved on the recipient. At the top level it is used to check the payout rail and, if you leave out recipientAddress.countryTwoLetter or countryThreeLetter, to fill them in; it is not saved. The example below is a VND bank recipient on the BANK_TRANSFER rail. Its values come from the reference APIs: countryId from List countries (241 is Vietnam), currencyId from List currencies (110 is VND), and providerBankId from the code of an option on the bankId field in Get recipient fields. See the Recipients guide for verification timing, the rules that refuse a recipient, and why there is no update.\",\"url\":\"https://docs.endl.io/api-reference/recipients/add-recipient\",\"mainEntityOfPage\":{\"@id\":\"https://docs.endl.io/api-reference/recipients/add-recipient#webpage\"},\"dateModified\":\"2026-10-23T13:28:07.823Z\",\"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","href":"/api-reference/quotes/generate-quote"},{"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"}]},{"group":"Recipients","expanded":true,"pages":[{"title":"Add recipient","openapi":"api-reference/endl-partner-api.json POST /api/v0/recipients/{userId}","href":"/api-reference/recipients/add-recipient"},{"title":"List recipients","openapi":"api-reference/endl-partner-api.json POST /api/v0/recipients/{userId}/all","description":"Returns the customer's recipients. Pass `size: 0` (the default) to return all of them in one response.\n\nOnly the filters below are applied. `type`, `status`, `countryId`, `firstName`, `lastName`, `email` and `bankAccountNumber` are accepted but ignored today, so they are not listed.","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":"Add recipient - 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"]}