{
"type": "automation_not_active",
"detail": "Automation must be active to simulate a deposit",
"code": "ValidationError",
"status": 422,
"values": [
"<string>"
]
}
{
"type": "automation_not_active",
"detail": "Automation must be active to simulate a deposit",
"code": "ValidationError",
"status": 422,
"values": [
"<string>"
]
}
Transfers
Create a new transfer
Creates a new transfer using the specified source and destination details.
{
"type": "automation_not_active",
"detail": "Automation must be active to simulate a deposit",
"code": "ValidationError",
"status": 422,
"values": [
"<string>"
]
}
{
"type": "automation_not_active",
"detail": "Automation must be active to simulate a deposit",
"code": "ValidationError",
"status": 422,
"values": [
"<string>"
]
}
Use the playground below to try this endpoint directly, or review the OpenAPI details in the right panel.
A unique string used to prevent duplicate operations. Each POST request must use a new idempotency key. Use a UUIDv4 string. Example: idemp-123e4567-e89b-12d3-a456-426614174000
Optional branding for a transfer. Supported for ACH transfers (ach_debit, ach_credit, same_day_ach_credit) and outbound wire payouts (destination.transfer_type: wire). Not supported for rtp_credit or fednow_credit. Branding does not change which Account funds the transfer (the Account in the request path), the source or destination, or destination.wire_memo. Omit brand to send the transfer unbranded. See Branded Transfers.
Transfer successfully created. Creation is not settlement. Track status until it reaches complete, canceled, or failed.
A money movement between a source and a destination. Returned by the create, get, and list transfer endpoints. The same shape is used everywhere a Transfer is exposed to API consumers.
Structured failure details for a failed transfer. Usually null. Populated when status is failed and Brale has structured failure details for the transfer — most commonly for ACH returns, outbound wire returns, and other rail/provider failures. Clients should not assume failure is always present for every failed transfer; check for null before reading nested fields.
One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like transaction_id and payment_details are populated by Brale as the underlying leg settles.
One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like transaction_id and payment_details are populated by Brale as the underlying leg settles.
Optional. When returned with a value of true, the source funding for this transfer was simulated in testnet rather than coming from a real payment. Not every simulated transfer is guaranteed to include this field. Not present for production-funded transfers.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Brale","description":"API documentation for issuing, moving, and managing stablecoins on any blockchain with Brale.","colors":{"primary":"#000000","light":"#6938EF","dark":"#18181B"},"logo":{"light":"https://mintcdn.com/brale/8ZhoPWIKA3trPz7_/images/brale/brale-logo-light.svg?fit=max\u0026auto=format\u0026n=8ZhoPWIKA3trPz7_\u0026q=85\u0026s=9d75182cc1a672349f431ab9462b2b14","dark":"https://mintcdn.com/brale/8ZhoPWIKA3trPz7_/images/brale/brale-logo-dark.svg?fit=max\u0026auto=format\u0026n=8ZhoPWIKA3trPz7_\u0026q=85\u0026s=b440c6595e79456e4bec0a5be2bb6b8e"},"favicon":"https://mintcdn.com/brale/8ZhoPWIKA3trPz7_/favicon.svg?fit=max\u0026auto=format\u0026n=8ZhoPWIKA3trPz7_\u0026q=85\u0026s=5ea8e718e80214027ad6dd92fd6a4116","navbar":{"links":[],"primary":{"type":"button","label":"Dashboard","href":"https://app.brale.xyz"}},"footer":{"socials":{"github":"https://github.com/Brale-xyz"}},"seo":{"metatags":{"canonical":"https://docs.brale.xyz","og:site_name":"Brale"},"indexing":"navigable"},"integrations":{"ga4":{"measurementId":"G-ZM1CBNJ9KC"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"API Keys","icon":"key","href":"https://app.brale.xyz"},{"anchor":"API Logs","icon":"database","href":"https://app.brale.xyz/api?tab=activity"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"/changelog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"brale","hasAudioNarration":false,"actualSubdomain":"brale","customDomains":["docs.brale.xyz"],"gitSource":{"type":"github","owner":"brale-xyz","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae244080326181be736c7d2","collectionId":"5695940d-5513-4587-ae59-e5dd0abcb54e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae244080326181be736c7d2"},"feedback":{"thumbs":true,"edits":false,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae244080326181be736c7d2","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API reference","count":42},{"language":"default","tag":"Guides","count":24},{"language":"default","tag":"API Docs","count":19},{"language":"default","tag":"Workflows","count":18},{"language":"default","tag":"Information","count":15},{"language":"default","tag":"Webhooks","count":13},{"language":"default","tag":"Key concepts","count":10},{"language":"default","tag":"Tokenization","count":9},{"language":"default","tag":"Accounts","count":6},{"language":"default","tag":"Addresses","count":6}]},"assistantConfig":{"enableAskAiButton":true,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/brale/create-transfer","slug":"/api-reference/brale/create-transfer","pageMetadata":{"title":"Create a new transfer","description":"Creates a new transfer using the specified source and destination details.","openapi":"POST /accounts/{account_id}/transfers","href":"/api-reference/brale/create-transfer"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a new transfer using the specified source and destination details.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={p:`p`,..._provideComponents(),...props.components};return _jsx(_components.p,{children:`Use the playground below to try this endpoint directly, or review the OpenAPI details in the right panel.`})}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":"Create a new transfer","description":"Creates a new transfer using the specified source and destination details.","openapi":"POST /accounts/{account_id}/transfers","href":"/api-reference/brale/create-transfer"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Transfers","Orders"],"operationId":"createTransfer","summary":"Create a new transfer","description":"Creates a new transfer using the specified source and destination details.","parameters":["398ae3a6-97d4-4c80-beb8-d51f1fb1c938","96ec670e-db9c-4226-ac92-c4cc6c32465a"],"requestBody":"1cb6b0ef-caa9-4bd3-bc01-e6d9284f6bea","responses":{"201":"467b5ea3-db81-4e3e-bd41-652a5b6bff90","422":"68fca71a-d590-4424-9bd8-817139744a22","503":"4ad6067a-2561-448c-bd3d-85a1471de074"},"method":"post","type":"path","servers":["d90858c1-e971-4f58-9495-890ae9e516f2"],"security":["c1af3ab6-45cc-44b8-9619-f12174d44816"],"path":"/accounts/{account_id}/transfers","baseUrlOptions":["https://api.brale.xyz"],"title":"Create a new transfer","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"398ae3a6-97d4-4c80-beb8-d51f1fb1c938":{"name":"account_id","in":"path","required":true,"description":"The ID of the account","schema":{"title":"Kusid","type":"string","format":"ksuid","pattern":"^[a-zA-Z0-9]{27}$","example":"2VcUIIsgARwVbEGlIYbhg6fGG57","isRequired":true,"description":"The ID of the account","uniqueKey":"","typeLabel":"string\u003cksuid>"}},"96ec670e-db9c-4226-ac92-c4cc6c32465a":{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","isRequired":true,"description":"A unique string used to prevent duplicate operations. Each POST request must use a new idempotency key. Use a UUIDv4 string. Example: `idemp-123e4567-e89b-12d3-a456-426614174000`\n","uniqueKey":"","typeLabel":"string"},"example":"idemp-123e4567-e89b-12d3-a456-426614174000","description":"A unique string used to prevent duplicate operations. Each POST request must use a new idempotency key. Use a UUIDv4 string. Example: `idemp-123e4567-e89b-12d3-a456-426614174000`\n"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["amount","source","destination"],"properties":{"amount":{"title":"Amount","type":"object","description":"Monetary value with explicit currency","additionalProperties":false,"properties":{"value":{"type":"string","example":"11234.88","isRequired":true,"uniqueKey":"amount.value","typeLabel":"string"},"currency":{"type":"string","example":"USD","isRequired":true,"uniqueKey":"amount.currency","typeLabel":"string"}},"required":["value","currency"],"isRequired":true,"uniqueKey":"amount","typeLabel":"Amount · object"},"source":{"type":"object","additionalProperties":false,"title":"PaymentData","properties":{"transfer_type":{"type":"string","isRequired":true,"uniqueKey":"source.transfer_type","typeLabel":"string"},"value_type":{"type":"string","isRequired":true,"uniqueKey":"source.value_type","typeLabel":"string"},"address_id":{"type":"string","description":"Preferred Address identifier","uniqueKey":"source.address_id","typeLabel":"string"},"financial_institution_id":{"type":"string","deprecated":true,"description":"Legacy—use address_id","uniqueKey":"source.financial_institution_id","typeLabel":"string"},"wire_memo":{"type":"string","description":"Optional memo or payment reference text sent with outbound wire transfers. Only applies when transfer_type is wire.","uniqueKey":"source.wire_memo","typeLabel":"string"},"ach_description":{"type":"string","description":"Optional short description shown after the sender name on the recipient's ACH bank statement. Set it on the ACH leg: `destination.ach_description` for payouts (`ach_credit`, `same_day_ach_credit`) and `source.ach_description` for `ach_debit`. Does not apply to `wire`, `rtp_credit`, or `fednow_credit`. Only the first 10 characters are used. Use letters, numbers, and spaces. Unsupported characters are removed and longer values are cut to 10 characters. If omitted, the description defaults to `PAYOUT` for payouts and `PAYMENT` for ACH debits. Independent of `brand`, which sets the sender name. Not currently returned on GET transfer responses. Exact display varies by receiving bank.","uniqueKey":"source.ach_description","typeLabel":"string"}},"required":["transfer_type","value_type"],"isRequired":true,"uniqueKey":"source","typeLabel":"PaymentData · object"},"destination":{"type":"object","additionalProperties":false,"title":"PaymentData","properties":{"transfer_type":{"type":"string","isRequired":true,"uniqueKey":"destination.transfer_type","typeLabel":"string"},"value_type":{"type":"string","isRequired":true,"uniqueKey":"destination.value_type","typeLabel":"string"},"address_id":{"type":"string","description":"Preferred Address identifier","uniqueKey":"destination.address_id","typeLabel":"string"},"financial_institution_id":{"type":"string","deprecated":true,"description":"Legacy—use address_id","uniqueKey":"destination.financial_institution_id","typeLabel":"string"},"wire_memo":{"type":"string","description":"Optional memo or payment reference text sent with outbound wire transfers. Only applies when transfer_type is wire.","uniqueKey":"destination.wire_memo","typeLabel":"string"},"ach_description":{"type":"string","description":"Optional short description shown after the sender name on the recipient's ACH bank statement. Set it on the ACH leg: `destination.ach_description` for payouts (`ach_credit`, `same_day_ach_credit`) and `source.ach_description` for `ach_debit`. Does not apply to `wire`, `rtp_credit`, or `fednow_credit`. Only the first 10 characters are used. Use letters, numbers, and spaces. Unsupported characters are removed and longer values are cut to 10 characters. If omitted, the description defaults to `PAYOUT` for payouts and `PAYMENT` for ACH debits. Independent of `brand`, which sets the sender name. Not currently returned on GET transfer responses. Exact display varies by receiving bank.","uniqueKey":"destination.ach_description","typeLabel":"string"}},"required":["transfer_type","value_type"],"isRequired":true,"uniqueKey":"destination","typeLabel":"PaymentData · object"},"brand":{"oneOf":[{"type":"object","additionalProperties":false,"description":"Optional branding for a transfer. Supported for ACH transfers (`ach_debit`, `ach_credit`, `same_day_ach_credit`) and outbound wire payouts (`destination.transfer_type: wire`). Not supported for `rtp_credit` or `fednow_credit`. Branding does not change which Account funds the transfer (the Account in the request path), the source or destination, or `destination.wire_memo`. Omit `brand` to send the transfer unbranded. See [Branded Transfers](/guides/2nd-and-3rd-party-transfers).","required":["account_id"],"properties":{"account_id":{"type":"string","description":"ID of the verified Account whose identity is presented to the counterparty. For ACH, this is the name on bank statement line items. For outbound wires, this Account's verified identity is used as the wire sender (originator). This is an Account ID, not free-form display text.","isRequired":true,"uniqueKey":"brand.oneOf.0.account_id","typeLabel":"string"}},"uniqueKey":"brand.oneOf.0","typeLabel":"object"},{"type":"null","additionalProperties":false,"description":"Optional branding for a transfer. Supported for ACH transfers (`ach_debit`, `ach_credit`, `same_day_ach_credit`) and outbound wire payouts (`destination.transfer_type: wire`). Not supported for `rtp_credit` or `fednow_credit`. Branding does not change which Account funds the transfer (the Account in the request path), the source or destination, or `destination.wire_memo`. Omit `brand` to send the transfer unbranded. See [Branded Transfers](/guides/2nd-and-3rd-party-transfers).","required":["account_id"],"properties":{"account_id":{"type":"string","description":"ID of the verified Account whose identity is presented to the counterparty. For ACH, this is the name on bank statement line items. For outbound wires, this Account's verified identity is used as the wire sender (originator). This is an Account ID, not free-form display text."}},"uniqueKey":"brand.oneOf.1","typeLabel":"null"}],"uniqueKey":"brand","typeLabel":"object | null"},"note":{"type":"string","uniqueKey":"note","typeLabel":"string"}},"title":"CreateTransfer","uniqueKey":"","typeLabel":"CreateTransfer · object"},"examples":{"ach_debit_to_solana":{"title":"ach_debit_to_solana","value":{"amount":{"value":"2500.00","currency":"USD"},"source":{"address_id":"2VcUIonJeVQzFoBuC7LdFT0dRe4","value_type":"USD","transfer_type":"ach_debit"},"destination":{"address_id":"35LWXNTO2jem13nXCLyciFdi162","value_type":"SBC","transfer_type":"solana"}}},"wire_offramp_with_brand":{"title":"wire_offramp_with_brand","value":{"amount":{"value":"10000.00","currency":"USD"},"source":{"address_id":"35LWXNTO2jem13nXCLyciFdi162","value_type":"SBC","transfer_type":"polygon"},"destination":{"address_id":"2MhCCIHulVdXrHiEuQDJvnKbSkl","value_type":"USD","transfer_type":"wire","wire_memo":"Invoice 1048"},"brand":{"account_id":"2VcUIIsgARwVbEGlIYbhg6fGG57"}}},"rtp_payout":{"title":"rtp_payout","value":{"amount":{"value":"150.00","currency":"USD"},"source":{"address_id":"35LWXNTO2jem13nXCLyciFdi162","value_type":"SBC","transfer_type":"ethereum"},"destination":{"address_id":"2MhCCIHulVdXrHiEuQDJvnKbSkl","value_type":"USD","transfer_type":"rtp_credit"}}},"fednow_payout":{"title":"fednow_payout","description":"Pays out USD over FedNow from a funded Brale internal Address. The source `value_type` and `transfer_type` must match the token and network held by the source Address. The destination bank Address must be `active` and list `fednow_credit` in `transfer_types`.","value":{"amount":{"value":"1.00","currency":"USD"},"source":{"address_id":"2VcUIonJeVQzFoBuC7LdFT0dRe4","value_type":"USDB","transfer_type":"spark"},"destination":{"address_id":"2MhCCIHulVdXrHiEuQDJvnKbSkl","value_type":"USD","transfer_type":"fednow_credit"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"467b5ea3-db81-4e3e-bd41-652a5b6bff90":{"description":"Transfer successfully created. Creation is not settlement. Track `status` until it reaches `complete`, `canceled`, or `failed`.","content":{"*/*":{"schema":{"title":"Transfer","type":"object","description":"A money movement between a source and a destination. Returned by the create, get, and list transfer endpoints. The same shape is used everywhere a Transfer is exposed to API consumers.","properties":{"id":{"title":"Kusid","type":"string","format":"ksuid","pattern":"^[a-zA-Z0-9]{27}$","example":"2VcUIIsgARwVbEGlIYbhg6fGG57","uniqueKey":"id","typeLabel":"string\u003cksuid>"},"status":{"type":"string","description":"Lifecycle stage of the transfer","enum":["pending","processing","complete","canceled","failed","refunding","refunded"],"example":"pending","uniqueKey":"status","typeLabel":"enum\u003cstring>"},"failure":{"oneOf":[{"type":"object","title":"TransferFailure","description":"Structured failure details for a failed transfer. Usually `null`. Populated when `status` is `failed` and Brale has structured failure details for the transfer — most commonly for ACH returns, outbound wire returns, and other rail/provider failures. Clients should not assume `failure` is always present for every failed transfer; check for `null` before reading nested fields.","example":null,"properties":{"type":{"type":"string","description":"Error classification for the failure, for example `ach_return` or `wire_return`.","example":"ach_return","uniqueKey":"failure.oneOf.0.type","typeLabel":"string"},"occurred_at":{"type":"string","format":"date-time","description":"When Brale recorded the failure. This is not necessarily the exact time the bank returned the payment.","example":"2026-04-07T00:05:12.102000Z","uniqueKey":"failure.oneOf.0.occurred_at","typeLabel":"string\u003cdate-time>"},"retriable":{"type":"boolean","description":"Whether the failure is considered retriable. When `true`, Brale may automatically retry the underlying operation; when `false`, the failure is permanent.","example":false,"uniqueKey":"failure.oneOf.0.retriable","typeLabel":"boolean"},"ach_return":{"oneOf":[{"type":"object","description":"ACH-only return details. Present for ACH return failures; `null` or not set for wire returns, on-chain failures, and other rail failures.","properties":{"code":{"type":"string","description":"ACH return code (e.g. `R01` — Insufficient Funds).","example":"R01","uniqueKey":"failure.oneOf.0.ach_return.oneOf.0.code","typeLabel":"string"},"reason":{"type":"string","description":"Human-readable description of the ACH return reason.","example":"Insufficient Funds","uniqueKey":"failure.oneOf.0.ach_return.oneOf.0.reason","typeLabel":"string"},"category":{"type":"string","description":"Simplified taxonomy of the ACH return. `administrative` covers bank issues that may be retriable. `unauthorized` covers customer disputes. `general` covers everything else.","enum":["administrative","unauthorized","general"],"example":"administrative","uniqueKey":"failure.oneOf.0.ach_return.oneOf.0.category","typeLabel":"enum\u003cstring>"}},"uniqueKey":"failure.oneOf.0.ach_return.oneOf.0","typeLabel":"object"},{"type":"null","description":"ACH-only return details. Present for ACH return failures; `null` or not set for wire returns, on-chain failures, and other rail failures.","properties":{"code":{"type":"string","description":"ACH return code (e.g. `R01` — Insufficient Funds).","example":"R01"},"reason":{"type":"string","description":"Human-readable description of the ACH return reason.","example":"Insufficient Funds"},"category":{"type":"string","description":"Simplified taxonomy of the ACH return. `administrative` covers bank issues that may be retriable. `unauthorized` covers customer disputes. `general` covers everything else.","enum":["administrative","unauthorized","general"],"example":"administrative"}},"uniqueKey":"failure.oneOf.0.ach_return.oneOf.1","typeLabel":"null"}],"uniqueKey":"failure.oneOf.0.ach_return","typeLabel":"object | null"},"wire_return":{"oneOf":[{"type":"object","description":"Wire-only return details. Present when `type` is `wire_return` for a returned outbound wire; `null` or not set for other failures. Has no `category` field; the ACH return taxonomy does not apply.","properties":{"code":{"type":"string","description":"The provider's wire return reason code when available (for example, `AC04`). When the provider supplies no code, Brale sets `WIRE_RETURN`, a Brale fallback marker that is not an ISO 20022 bank reason code.","example":"AC04","uniqueKey":"failure.oneOf.0.wire_return.oneOf.0.code","typeLabel":"string"},"reason":{"oneOf":[{"type":"string","description":"Human-readable return reason, when available.","example":"Account closed","uniqueKey":"failure.oneOf.0.wire_return.oneOf.0.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"Human-readable return reason, when available.","example":"Account closed","uniqueKey":"failure.oneOf.0.wire_return.oneOf.0.reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"failure.oneOf.0.wire_return.oneOf.0.reason","typeLabel":"string | null"}},"uniqueKey":"failure.oneOf.0.wire_return.oneOf.0","typeLabel":"object"},{"type":"null","description":"Wire-only return details. Present when `type` is `wire_return` for a returned outbound wire; `null` or not set for other failures. Has no `category` field; the ACH return taxonomy does not apply.","properties":{"code":{"type":"string","description":"The provider's wire return reason code when available (for example, `AC04`). When the provider supplies no code, Brale sets `WIRE_RETURN`, a Brale fallback marker that is not an ISO 20022 bank reason code.","example":"AC04"},"reason":{"oneOf":[{"type":"string","description":"Human-readable return reason, when available.","example":"Account closed"},{"type":"null","description":"Human-readable return reason, when available.","example":"Account closed"}]}},"uniqueKey":"failure.oneOf.0.wire_return.oneOf.1","typeLabel":"null"}],"uniqueKey":"failure.oneOf.0.wire_return","typeLabel":"object | null"}},"uniqueKey":"failure.oneOf.0","typeLabel":"TransferFailure · object"},{"type":"null","uniqueKey":"failure.oneOf.1","typeLabel":"null"}],"uniqueKey":"failure","typeLabel":"TransferFailure · object | null"},"source":{"title":"TransferEndpoint","description":"One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like `transaction_id` and `payment_details` are populated by Brale as the underlying leg settles.","type":"object","properties":{"value_type":{"type":"string","example":"USD","isRequired":true,"uniqueKey":"source.value_type","typeLabel":"string"},"transfer_type":{"type":"string","example":"wire","isRequired":true,"uniqueKey":"source.transfer_type","typeLabel":"string"},"address_id":{"title":"Kusid","type":"string","format":"ksuid","pattern":"^[a-zA-Z0-9]{27}$","example":"2VcUIIsgARwVbEGlIYbhg6fGG57","uniqueKey":"source.address_id","typeLabel":"string\u003cksuid>"},"financial_institution_id":{"type":"string","deprecated":true,"description":"Legacy — use `address_id`.","uniqueKey":"source.financial_institution_id","typeLabel":"string"},"wire_memo":{"type":"string","description":"Optional memo or payment reference text sent with outbound wire transfers. Only applies when `transfer_type` is `wire` on the destination leg.","uniqueKey":"source.wire_memo","typeLabel":"string"},"transaction_id":{"type":"string","description":"On-chain transaction hash or off-chain payment reference. Present in responses once the leg has been submitted to the network. Not included in create requests.","example":"0xdd5646ea…","uniqueKey":"source.transaction_id","typeLabel":"string"},"payment_details":{"title":"PaymentDetails","type":"object","description":"Underlying payment metadata for a transfer leg. Response-only. Appears on `source.payment_details` for inbound fiat-funded transfers (wire, ACH, and FedNow) and on `destination.payment_details` for outbound wire and ACH transfers. Optional and may be absent depending on the rail and on whether the underlying bank metadata is available yet. Fields are rail-specific. For example, `imad` applies only to wires and `trace_number` only to ACH. Do not expect wire or ACH identifiers on `fednow_credit` legs.","properties":{"received_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the underlying payment was received or posted.","example":"2026-04-07T00:01:24.514000Z","uniqueKey":"source.payment_details.received_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the underlying payment was received or posted.","example":"2026-04-07T00:01:24.514000Z","uniqueKey":"source.payment_details.received_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.received_at","typeLabel":"string\u003cdate-time> | null"},"sender_name":{"oneOf":[{"type":"string","description":"Name of the originating sender, when available.","example":"Originator Name","uniqueKey":"source.payment_details.sender_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the originating sender, when available.","example":"Originator Name","uniqueKey":"source.payment_details.sender_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.sender_name","typeLabel":"string | null"},"sender_bank_name":{"oneOf":[{"type":"string","description":"Originating bank name, when available.","example":"JPMorgan Chase Bank","uniqueKey":"source.payment_details.sender_bank_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Originating bank name, when available.","example":"JPMorgan Chase Bank","uniqueKey":"source.payment_details.sender_bank_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.sender_bank_name","typeLabel":"string | null"},"sender_bank_routing_number":{"oneOf":[{"type":"string","description":"Originating bank routing number, when available.","example":"000000123","uniqueKey":"source.payment_details.sender_bank_routing_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Originating bank routing number, when available.","example":"000000123","uniqueKey":"source.payment_details.sender_bank_routing_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.sender_bank_routing_number","typeLabel":"string | null"},"payment_reference":{"oneOf":[{"type":"string","description":"Sender-provided payment reference or memo, when available. For inbound wires, Brale may also populate this field from \"Instruction for Creditor Agent,\" which some banks label \"Message to receiving bank.\" This fallback is used only when no existing memo, Originator-to-Beneficiary Information (OBI), or remittance reference is available. Existing reference precedence is preserved.","example":"Simulated Wire","uniqueKey":"source.payment_details.payment_reference.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender-provided payment reference or memo, when available. For inbound wires, Brale may also populate this field from \"Instruction for Creditor Agent,\" which some banks label \"Message to receiving bank.\" This fallback is used only when no existing memo, Originator-to-Beneficiary Information (OBI), or remittance reference is available. Existing reference precedence is preserved.","example":"Simulated Wire","uniqueKey":"source.payment_details.payment_reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.payment_reference","typeLabel":"string | null"},"imad":{"oneOf":[{"type":"string","description":"Wire IMAD / tracking identifier, when available.","example":"20260406XOIZJDPP953495","uniqueKey":"source.payment_details.imad.oneOf.0","typeLabel":"string"},{"type":"null","description":"Wire IMAD / tracking identifier, when available.","example":"20260406XOIZJDPP953495","uniqueKey":"source.payment_details.imad.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.imad","typeLabel":"string | null"},"trace_number":{"oneOf":[{"type":"string","description":"ACH trace identifier for the underlying payment, when available. Appears on `source.payment_details` for inbound ACH-funded transfers and on `destination.payment_details` for outbound ACH transfers (`ach_credit` and `same_day_ach_credit`) once the trace number is assigned.","example":"021000029876543","uniqueKey":"source.payment_details.trace_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"ACH trace identifier for the underlying payment, when available. Appears on `source.payment_details` for inbound ACH-funded transfers and on `destination.payment_details` for outbound ACH transfers (`ach_credit` and `same_day_ach_credit`) once the trace number is assigned.","example":"021000029876543","uniqueKey":"source.payment_details.trace_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.trace_number","typeLabel":"string | null"},"sent_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the outbound payment was sent, when available. Appears on `destination.payment_details` for outbound wire and ACH transfers.","example":"2026-04-07T00:04:58.000000Z","uniqueKey":"source.payment_details.sent_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the outbound payment was sent, when available. Appears on `destination.payment_details` for outbound wire and ACH transfers.","example":"2026-04-07T00:04:58.000000Z","uniqueKey":"source.payment_details.sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"source.payment_details.sent_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"source.payment_details","typeLabel":"PaymentDetails · object"}},"required":["value_type","transfer_type"],"uniqueKey":"source","typeLabel":"TransferEndpoint · object"},"destination":{"title":"TransferEndpoint","description":"One side (source or destination) of a Transfer. The same shape is used in create requests and in responses. Response-only fields like `transaction_id` and `payment_details` are populated by Brale as the underlying leg settles.","type":"object","properties":{"value_type":{"type":"string","example":"USD","isRequired":true,"uniqueKey":"destination.value_type","typeLabel":"string"},"transfer_type":{"type":"string","example":"wire","isRequired":true,"uniqueKey":"destination.transfer_type","typeLabel":"string"},"address_id":{"title":"Kusid","type":"string","format":"ksuid","pattern":"^[a-zA-Z0-9]{27}$","example":"2VcUIIsgARwVbEGlIYbhg6fGG57","uniqueKey":"destination.address_id","typeLabel":"string\u003cksuid>"},"financial_institution_id":{"type":"string","deprecated":true,"description":"Legacy — use `address_id`.","uniqueKey":"destination.financial_institution_id","typeLabel":"string"},"wire_memo":{"type":"string","description":"Optional memo or payment reference text sent with outbound wire transfers. Only applies when `transfer_type` is `wire` on the destination leg.","uniqueKey":"destination.wire_memo","typeLabel":"string"},"transaction_id":{"type":"string","description":"On-chain transaction hash or off-chain payment reference. Present in responses once the leg has been submitted to the network. Not included in create requests.","example":"0xdd5646ea…","uniqueKey":"destination.transaction_id","typeLabel":"string"},"payment_details":{"title":"PaymentDetails","type":"object","description":"Underlying payment metadata for a transfer leg. Response-only. Appears on `source.payment_details` for inbound fiat-funded transfers (wire, ACH, and FedNow) and on `destination.payment_details` for outbound wire and ACH transfers. Optional and may be absent depending on the rail and on whether the underlying bank metadata is available yet. Fields are rail-specific. For example, `imad` applies only to wires and `trace_number` only to ACH. Do not expect wire or ACH identifiers on `fednow_credit` legs.","properties":{"received_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the underlying payment was received or posted.","example":"2026-04-07T00:01:24.514000Z","uniqueKey":"destination.payment_details.received_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the underlying payment was received or posted.","example":"2026-04-07T00:01:24.514000Z","uniqueKey":"destination.payment_details.received_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.received_at","typeLabel":"string\u003cdate-time> | null"},"sender_name":{"oneOf":[{"type":"string","description":"Name of the originating sender, when available.","example":"Originator Name","uniqueKey":"destination.payment_details.sender_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Name of the originating sender, when available.","example":"Originator Name","uniqueKey":"destination.payment_details.sender_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.sender_name","typeLabel":"string | null"},"sender_bank_name":{"oneOf":[{"type":"string","description":"Originating bank name, when available.","example":"JPMorgan Chase Bank","uniqueKey":"destination.payment_details.sender_bank_name.oneOf.0","typeLabel":"string"},{"type":"null","description":"Originating bank name, when available.","example":"JPMorgan Chase Bank","uniqueKey":"destination.payment_details.sender_bank_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.sender_bank_name","typeLabel":"string | null"},"sender_bank_routing_number":{"oneOf":[{"type":"string","description":"Originating bank routing number, when available.","example":"000000123","uniqueKey":"destination.payment_details.sender_bank_routing_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"Originating bank routing number, when available.","example":"000000123","uniqueKey":"destination.payment_details.sender_bank_routing_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.sender_bank_routing_number","typeLabel":"string | null"},"payment_reference":{"oneOf":[{"type":"string","description":"Sender-provided payment reference or memo, when available. For inbound wires, Brale may also populate this field from \"Instruction for Creditor Agent,\" which some banks label \"Message to receiving bank.\" This fallback is used only when no existing memo, Originator-to-Beneficiary Information (OBI), or remittance reference is available. Existing reference precedence is preserved.","example":"Simulated Wire","uniqueKey":"destination.payment_details.payment_reference.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sender-provided payment reference or memo, when available. For inbound wires, Brale may also populate this field from \"Instruction for Creditor Agent,\" which some banks label \"Message to receiving bank.\" This fallback is used only when no existing memo, Originator-to-Beneficiary Information (OBI), or remittance reference is available. Existing reference precedence is preserved.","example":"Simulated Wire","uniqueKey":"destination.payment_details.payment_reference.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.payment_reference","typeLabel":"string | null"},"imad":{"oneOf":[{"type":"string","description":"Wire IMAD / tracking identifier, when available.","example":"20260406XOIZJDPP953495","uniqueKey":"destination.payment_details.imad.oneOf.0","typeLabel":"string"},{"type":"null","description":"Wire IMAD / tracking identifier, when available.","example":"20260406XOIZJDPP953495","uniqueKey":"destination.payment_details.imad.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.imad","typeLabel":"string | null"},"trace_number":{"oneOf":[{"type":"string","description":"ACH trace identifier for the underlying payment, when available. Appears on `source.payment_details` for inbound ACH-funded transfers and on `destination.payment_details` for outbound ACH transfers (`ach_credit` and `same_day_ach_credit`) once the trace number is assigned.","example":"021000029876543","uniqueKey":"destination.payment_details.trace_number.oneOf.0","typeLabel":"string"},{"type":"null","description":"ACH trace identifier for the underlying payment, when available. Appears on `source.payment_details` for inbound ACH-funded transfers and on `destination.payment_details` for outbound ACH transfers (`ach_credit` and `same_day_ach_credit`) once the trace number is assigned.","example":"021000029876543","uniqueKey":"destination.payment_details.trace_number.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.trace_number","typeLabel":"string | null"},"sent_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the outbound payment was sent, when available. Appears on `destination.payment_details` for outbound wire and ACH transfers.","example":"2026-04-07T00:04:58.000000Z","uniqueKey":"destination.payment_details.sent_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the outbound payment was sent, when available. Appears on `destination.payment_details` for outbound wire and ACH transfers.","example":"2026-04-07T00:04:58.000000Z","uniqueKey":"destination.payment_details.sent_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"destination.payment_details.sent_at","typeLabel":"string\u003cdate-time> | null"}},"uniqueKey":"destination.payment_details","typeLabel":"PaymentDetails · object"}},"required":["value_type","transfer_type"],"uniqueKey":"destination","typeLabel":"TransferEndpoint · object"},"amount":{"title":"Amount","type":"object","description":"Monetary value with explicit currency","additionalProperties":false,"properties":{"value":{"type":"string","example":"11234.88","isRequired":true,"uniqueKey":"amount.value","typeLabel":"string"},"currency":{"type":"string","example":"USD","isRequired":true,"uniqueKey":"amount.currency","typeLabel":"string"}},"required":["value","currency"],"uniqueKey":"amount","typeLabel":"Amount · object"},"note":{"oneOf":[{"type":"string","description":"Optional free-form note attached to the transfer.","example":null,"uniqueKey":"note.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional free-form note attached to the transfer.","example":null,"uniqueKey":"note.oneOf.1","typeLabel":"null"}],"uniqueKey":"note","typeLabel":"string | null"},"automation_id":{"oneOf":[{"type":"string","title":"Kusid","description":"ID of the Automation that created this transfer, when applicable. Omitted for transfers created directly via the API.","format":"ksuid","pattern":"^[a-zA-Z0-9]{27}$","example":"2VcUIIsgARwVbEGlIYbhg6fGG57","uniqueKey":"automation_id.oneOf.0","typeLabel":"string\u003cksuid>"},{"type":"null","uniqueKey":"automation_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"automation_id","typeLabel":"string\u003cksuid> | null"},"funding_simulated":{"type":"boolean","description":"Optional. When returned with a value of `true`, the source funding for this transfer was simulated in testnet rather than coming from a real payment. Not every simulated transfer is guaranteed to include this field. Not present for production-funded transfers.","uniqueKey":"funding_simulated","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","example":"2026-01-01T00:00:00Z","uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","example":"2026-01-01T00:00:00Z","uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"}},"uniqueKey":"","typeLabel":"Transfer · object"},"examples":{"Example":{"title":"Example","value":{"id":"2VcUIIsgARwVbEGlIYbhg6fGG57","status":"pending","failure":null,"source":{"value_type":"USD","transfer_type":"wire","address_id":"2VcUIIsgARwVbEGlIYbhg6fGG57","financial_institution_id":"\u003cstring>","wire_memo":"\u003cstring>","transaction_id":"0xdd5646ea…","payment_details":{"received_at":"2026-04-07T00:01:24.514000Z","sender_name":"Originator Name","sender_bank_name":"JPMorgan Chase Bank","sender_bank_routing_number":"000000123","payment_reference":"Simulated Wire","imad":"20260406XOIZJDPP953495","trace_number":"021000029876543","sent_at":"2026-04-07T00:04:58.000000Z"}},"destination":{"value_type":"USD","transfer_type":"wire","address_id":"2VcUIIsgARwVbEGlIYbhg6fGG57","financial_institution_id":"\u003cstring>","wire_memo":"\u003cstring>","transaction_id":"0xdd5646ea…","payment_details":{"received_at":"2026-04-07T00:01:24.514000Z","sender_name":"Originator Name","sender_bank_name":"JPMorgan Chase Bank","sender_bank_routing_number":"000000123","payment_reference":"Simulated Wire","imad":"20260406XOIZJDPP953495","trace_number":"021000029876543","sent_at":"2026-04-07T00:04:58.000000Z"}},"amount":{"value":"11234.88","currency":"USD"},"note":null,"automation_id":"2VcUIIsgARwVbEGlIYbhg6fGG57","funding_simulated":true,"created_at":"2026-01-01T00:00:00Z","updated_at":"2026-01-01T00:00:00Z"}}},"exampleType":"generated"}},"exampleType":"generated"},"68fca71a-d590-4424-9bd8-817139744a22":{"description":"The request is valid but cannot be processed. Known cases include `insufficient_balance` (the source Address does not hold enough of the source `value_type`) and reuse of an `Idempotency-Key` with a different body or URI. After funding the source Address, retry `insufficient_balance` with the same `Idempotency-Key` and body.\n\nFor an `ach_debit` transfer, Brale can also reject the request when the source bank Address cannot be debited:\n\n- `bank_account_not_linked`: the bank account is not linked through Plaid. Link the bank account before using it for an ACH debit.\n- `bank_account_relink_required`: the bank account's Plaid link has expired. Have the user relink the bank account, then retry.\n- `bank_balance_unavailable`: Brale could not verify the bank account's balance. Retry, or relink the bank account if the error continues.\n- `insufficient_balance`: the transfer amount exceeds the bank account's available balance.\n\nFor a branded transfer, Brale can also reject the request when the Account in `brand.account_id` can't be used as a brand:\n\n- `brand_account_not_verified`: the brand Account is not ready to be used as a brand. Contact support to resolve this, then retry.\n- `brand_account_update_required`: the brand Account can't be used for branded transfers yet. Contact support to resolve this, then retry with the same `Idempotency-Key` and body. Brale does not store this response for the key, so the same request succeeds once support has fixed the brand Account.\n","content":{"application/json":{"schema":{"title":"ApiErrorV2","type":"object","description":"Error envelope returned by newer Brale endpoints.","required":["type"],"properties":{"type":{"type":"string","description":"Machine-readable error type identifier.","example":"automation_not_active","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation of the error.","example":"Automation must be active to simulate a deposit","uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","example":"ValidationError","uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","example":422,"uniqueKey":"status","typeLabel":"integer"},"values":{"type":"array","items":{"type":"string","uniqueKey":"values.items.[INDEX]","typeLabel":"string"},"uniqueKey":"values","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"ApiErrorV2 · object"},"examples":{"Example":{"title":"Example","value":{"type":"automation_not_active","detail":"Automation must be active to simulate a deposit","code":"ValidationError","status":422,"values":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"},"4ad6067a-2561-448c-bd3d-85a1471de074":{"description":"`brand_identity_unavailable`: Brale can't process branded transfers right now. Retry the same request with the same `Idempotency-Key` after a few minutes, and contact support if the error continues. Brale does not store this response for the key.\n","content":{"application/json":{"schema":{"title":"ApiErrorV2","type":"object","description":"Error envelope returned by newer Brale endpoints.","required":["type"],"properties":{"type":{"type":"string","description":"Machine-readable error type identifier.","example":"automation_not_active","isRequired":true,"uniqueKey":"type","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation of the error.","example":"Automation must be active to simulate a deposit","uniqueKey":"detail","typeLabel":"string"},"code":{"type":"string","example":"ValidationError","uniqueKey":"code","typeLabel":"string"},"status":{"type":"integer","example":422,"uniqueKey":"status","typeLabel":"integer"},"values":{"type":"array","items":{"type":"string","uniqueKey":"values.items.[INDEX]","typeLabel":"string"},"uniqueKey":"values","typeLabel":"string[]"}},"uniqueKey":"","typeLabel":"ApiErrorV2 · object"},"examples":{"Example":{"title":"Example","value":{"type":"automation_not_active","detail":"Automation must be active to simulate a deposit","code":"ValidationError","status":422,"values":["\u003cstring>"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c1af3ab6-45cc-44b8-9619-f12174d44816":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the \"Authorization: Bearer \u003ctoken>\" header.\n","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"d90858c1-e971-4f58-9495-890ae9e516f2":{"url":"https://api.brale.xyz","description":"Production server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the \"Authorization: Bearer \u003ctoken>\" header.\n","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Use the Bearer token returned from the Auth endpoint via OAuth2 client_credentials flow. Include the token in the \"Authorization: Bearer \u003ctoken>\" header.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"api-reference/brale-openapi.yaml"},"subdomain":"brale","siteName":"Brale","title":"Create a new transfer - Brale","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-26T16:46:53.937Z","originalFileLocation":"api-reference/brale/create-transfer.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 new transfer using the specified source and destination details.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Brale\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_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/brale/fNz744YuLs689rFY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a new transfer - Brale\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new transfer using the specified source and destination details.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Brale\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.brale.xyz/api-reference/brale/create-transfer\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://brale.mintlify.app/_mintlify/api/og/v2?division=Transfers\u0026amp;title=Create+a+new+transfer\u0026amp;description=Creates+a+new+transfer+using+the+specified+source+and+destination+details.\u0026amp;theme=f9794a4d42010719ff4d7810\u0026amp;signature=60063ff28e14d9bebabe45d99b8ab0f5a1ffdae9417ddeba607232fd733a30c4\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create a new transfer - Brale\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new transfer using the specified source and destination details.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://brale.mintlify.app/_mintlify/api/og/v2?division=Transfers\u0026amp;title=Create+a+new+transfer\u0026amp;description=Creates+a+new+transfer+using+the+specified+source+and+destination+details.\u0026amp;theme=f9794a4d42010719ff4d7810\u0026amp;signature=60063ff28e14d9bebabe45d99b8ab0f5a1ffdae9417ddeba607232fd733a30c4\">\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/brale/fNz744YuLs689rFY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Brale\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.brale.xyz/api-reference/brale/create-transfer\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/brale/create-transfer.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.brale.xyz/#organization\",\"name\":\"Brale\",\"url\":\"https://docs.brale.xyz\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/brale/8ZhoPWIKA3trPz7_/images/brale/brale-logo-light.svg?fit=max\u0026auto=format\u0026n=8ZhoPWIKA3trPz7_\u0026q=85\u0026s=9d75182cc1a672349f431ab9462b2b14\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.brale.xyz#website\",\"name\":\"Brale\",\"url\":\"https://docs.brale.xyz\",\"publisher\":{\"@id\":\"https://docs.brale.xyz/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.brale.xyz/api-reference/brale/create-transfer#webpage\",\"url\":\"https://docs.brale.xyz/api-reference/brale/create-transfer\",\"name\":\"Create a new transfer\",\"description\":\"Creates a new transfer using the specified source and destination details.\",\"dateModified\":\"2026-08-26T16:46:53.937Z\",\"isPartOf\":{\"@id\":\"https://docs.brale.xyz#website\"},\"breadcrumb\":{\"@id\":\"https://docs.brale.xyz/api-reference/brale/create-transfer#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.brale.xyz/api-reference/brale/create-transfer#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Transfers\",\"item\":\"https://docs.brale.xyz/api-reference/brale/list-transfers\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create a new transfer\",\"item\":\"https://docs.brale.xyz/api-reference/brale/create-transfer\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.brale.xyz/api-reference/brale/create-transfer#apireference\",\"headline\":\"Create a new transfer\",\"name\":\"Create a new transfer\",\"description\":\"Creates a new transfer using the specified source and destination details.\",\"url\":\"https://docs.brale.xyz/api-reference/brale/create-transfer\",\"mainEntityOfPage\":{\"@id\":\"https://docs.brale.xyz/api-reference/brale/create-transfer#webpage\"},\"dateModified\":\"2026-08-26T16:46:53.937Z\",\"publisher\":{\"@id\":\"https://docs.brale.xyz/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.brale.xyz#website\"}}]}\u003c/script>","siteName":"Brale","nav":{"global":{"anchors":[{"anchor":"API Keys","icon":"key","href":"https://app.brale.xyz"},{"anchor":"API Logs","icon":"database","href":"https://app.brale.xyz/api?tab=activity"},{"anchor":"Changelog","icon":"clock-rotate-left","href":"/changelog"}]},"tabs":[{"tab":"Information","pages":[{"title":"Information","href":"/documentation/introduction"}]},{"tab":"Tools","pages":[{"title":"Tools","href":"/documentation/commons-stablecoin-format"}]},{"tab":"API Docs","pages":[{"title":"API Docs","href":"/overview/introduction"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/how-to/get-your-account-id"}]},{"tab":"API reference","groups":[{"group":"API overview","pages":[{"title":"Brale Issuance and Orchestration API","href":"/api-reference/brale-introduction"}]},{"group":"Accounts","pages":[{"title":"Retrieve all accounts","openapi":"GET /accounts","href":"/api-reference/brale/list-accounts"},{"title":"Create a customer account","openapi":"POST /accounts","href":"/api-reference/brale/create-account"},{"title":"Retrieve a customer account","openapi":"GET /accounts/{account_id}","href":"/api-reference/brale/get-account"},{"title":"Stage a Verification Document","openapi":"POST /documents","href":"/api-reference/brale/stage-verification-document"},{"title":"List Verification Documents","openapi":"GET /accounts/{account_id}/verification/documents","href":"/api-reference/brale/list-verification-documents"},{"title":"Link Verification Documents","openapi":"PATCH /accounts/{account_id}","href":"/api-reference/brale/link-verification-documents"}]},{"group":"Addresses","pages":[{"title":"Fetch all addresses","openapi":"GET /accounts/{account_id}/addresses","href":"/api-reference/brale/list-addresses"},{"title":"Retrieve an address","openapi":"GET /accounts/{account_id}/addresses/{address_id}","href":"/api-reference/brale/get-address"},{"title":"Create a new external address","openapi":"POST /accounts/{account_id}/addresses/external","href":"/api-reference/brale/create-address"},{"title":"Create a new internal address","openapi":"POST /accounts/{account_id}/addresses/internal","href":"/api-reference/brale/create-internal-address"},{"title":"Update an Address","openapi":"PATCH /accounts/{account_id}/addresses/{address_id}","href":"/api-reference/brale/update-address"},{"title":"Get an address balance","openapi":"GET /accounts/{account_id}/addresses/{address_id}/balance","href":"/api-reference/brale/get-address-balance"}]},{"group":"Automations","pages":[{"title":"Fetch all automations for an account","openapi":"GET /accounts/{account_id}/automations","href":"/api-reference/brale/list-automations"},{"title":"Create an Automation","openapi":"POST /accounts/{account_id}/automations","href":"/api-reference/brale/create-automations"},{"title":"Retrieve a single automation","openapi":"GET /accounts/{account_id}/automations/{id}","href":"/api-reference/brale/get-automations"},{"title":"Archive an Automation","openapi":"PATCH /accounts/{account_id}/automations/{automation_id}","href":"/api-reference/brale/archive-automation"},{"title":"Simulate an Automation deposit","openapi":"api-reference/brale-openapi.yaml POST /accounts/{account_id}/automations/{automation_id}/simulations/deposits","href":"/api-reference/brale/simulate-automation-deposit"}]},{"group":"Transfers","pages":[{"title":"List transfers","sidebarTitle":"List transfers","description":"Returns a paginated list of transfers for a given account, with optional filters.","openapi":"GET /accounts/{account_id}/transfers","href":"/api-reference/brale/list-transfers"},{"title":"Create a new transfer","openapi":"POST /accounts/{account_id}/transfers","href":"/api-reference/brale/create-transfer"},{"title":"Retrieve a single transfer","description":"Retrieve full details for a specific transfer, including source and destination payment details, amount, and status.","openapi":"GET /accounts/{account_id}/transfers/{id}","href":"/api-reference/brale/get-transfer"}]},{"group":"Financial institutions","pages":[{"title":"Fetch all financial institutions","openapi":"GET /accounts/{account_id}/financial-institutions","href":"/api-reference/brale/list-financial-institutions"},{"title":"Create a new external financial institution","openapi":"POST /accounts/{account_id}/financial-institutions/external","href":"/api-reference/brale/create-financial-institution"},{"title":"Fetch a specific financial institution","openapi":"GET /accounts/{account_id}/financial-institutions/{id}","href":"/api-reference/brale/get-financial-institution"},{"title":"Create Plaid link token","openapi":"POST /accounts/{account_id}/plaid/link_token","href":"/api-reference/brale/create-plaid-link-token"},{"title":"Register financial institution account via Plaid and return address ID","openapi":"POST /accounts/{account_id}/plaid/register-account","href":"/api-reference/brale/register-financial-institution-account-via-plaid-and-return-address-id"}]},{"group":"Webhooks","pages":[{"title":"List Webhook Event Types","openapi":"GET /accounts/{account_id}/webhooks/event_types","href":"/api-reference/brale/list-webhook-event-types"},{"title":"Create Webhook Subscription","openapi":"POST /accounts/{account_id}/webhooks","href":"/api-reference/brale/create-webhook-subscription"},{"title":"List Webhook Subscriptions","openapi":"GET /accounts/{account_id}/webhooks","href":"/api-reference/brale/list-webhook-subscriptions"},{"title":"Get Webhook Subscription","openapi":"GET /accounts/{account_id}/webhooks/{subscription_id}","href":"/api-reference/brale/get-webhook-subscription"},{"title":"Update Webhook Subscription","openapi":"PATCH /accounts/{account_id}/webhooks/subscriptions/{subscription_id}","href":"/api-reference/brale/update-webhook-subscription"},{"title":"Archive Webhook Subscription","openapi":"DELETE /accounts/{account_id}/webhooks/subscriptions/{subscription_id}","href":"/api-reference/brale/archive-webhook-subscription"},{"title":"List Webhook Delivery Attempts","openapi":"GET /accounts/{account_id}/webhooks/deliveries","href":"/api-reference/brale/list-webhook-delivery-attempts"}]},{"group":"Tokenization","pages":[{"title":"Create Token Mint","openapi":"POST /accounts/{account_id}/tokens/mints","href":"/api-reference/brale/create-token-mint"},{"title":"List Token Mints","openapi":"GET /accounts/{account_id}/tokens/mints","href":"/api-reference/brale/list-token-mints"},{"title":"Get Token Mint","openapi":"GET /accounts/{account_id}/tokens/mints/{mint_id}","href":"/api-reference/brale/get-token-mint"},{"title":"Create Token Burn","openapi":"POST /accounts/{account_id}/tokens/burns","href":"/api-reference/brale/create-token-burn"},{"title":"List Token Burns","openapi":"GET /accounts/{account_id}/tokens/burns","href":"/api-reference/brale/list-token-burns"},{"title":"Get Token Burn","openapi":"GET /accounts/{account_id}/tokens/burns/{burn_id}","href":"/api-reference/brale/get-token-burn"},{"title":"Create Token Transfer","openapi":"POST /accounts/{account_id}/tokens/transfers","href":"/api-reference/brale/create-token-transfer"},{"title":"List Token Transfers","openapi":"GET /accounts/{account_id}/tokens/transfers","href":"/api-reference/brale/list-token-transfers"},{"title":"Get Token Transfer","openapi":"GET /accounts/{account_id}/tokens/transfers/{transfer_id}","href":"/api-reference/brale/get-token-transfer"}]}]},{"tab":"Brale Status","href":"https://status.brale.xyz"}]},"title":"Create a new transfer - Brale","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}