{"templateId":"markdown","sharedDataIds":{"api-docs-api-reference/@latest/index.yaml":"api-docs-api-reference/@latest/index.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","openapi-code-sample","openapi-response-sample"]},"type":"markdown"},"seo":{"title":"Transfer Requirements","siteUrl":"https://docs.wise.com","projectTitle":"Wise Platform","description":"Wise Platform offer domestic and cross-border payments tools for technology platforms, banks and financial institutions."},"dynamicMarkdocComponents":["openapi"],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"transfer-requirements","__idx":0},"children":["Transfer Requirements"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Transfer requirements vary by currency route, transfer amount, and regulatory region. Use the transfer requirements endpoint to dynamically discover which fields are needed before creating a transfer. You can use this to build a dynamic UI that adapts to each transfer's specific needs."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Transfer requirements can change at any time. It is important to use this API to fetch requirements dynamically and avoid hardcoding them."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How it works"]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-1-get-initial-requirements","__idx":2},"children":["Step 1: Get initial requirements"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Prepare the request body you would use to ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/standard-transfer/transfercreate"},"children":["create a transfer"]},", then post it to the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/transfer/transferrequirementsvalidate"},"children":["transfer requirements"]}," endpoint to discover any additional required fields."]},{"$$mdtype":"Tag","name":"OpenApiCodeSample","attributes":{"descriptionFile":"api-docs-api-reference/@latest/index.yaml","operationId":"transferRequirementsValidate","parameters":{},"environments":{},"codeSamplesResolved":[{"lang":"shell","title":"curl","source":"curl -i -X POST \\\n  https://api.wise.com/2026Q4/transfer-requirements \\\n  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \\\n  -d '{\n    \"targetAccount\": 8692237,\n    \"quoteUuid\": \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n    \"originatorLegalEntityType\": \"PRIVATE\",\n    \"details\": {\n      \"reference\": \"Invoice 2026-001\",\n      \"sourceOfFunds\": \"verification.source.of.funds.salary\",\n      \"transferPurpose\": \"verification.transfers.purpose.pay.bills\"\n    }\n  }'"},{"lang":"javascript","title":"JavaScript","source":"const resp = await fetch(\n  `https://api.wise.com/2026Q4/transfer-requirements`,\n  {\n    method: 'POST',\n    headers: {\n      'Content-Type': 'application/json',\n      'X-External-Correlation-Id': 'f47ac10b-58cc-4372-a567-0e02b2c3d479',\n      Authorization: 'Bearer <YOUR_JWT_HERE>'\n    },\n    body: JSON.stringify({\n      targetAccount: 8692237,\n      quoteUuid: '8fa9be20-ba43-4b15-abbb-9424e1481050',\n      originatorLegalEntityType: 'PRIVATE',\n      details: {\n        reference: 'Invoice 2026-001',\n        sourceOfFunds: 'verification.source.of.funds.salary',\n        transferPurpose: 'verification.transfers.purpose.pay.bills'\n      }\n    })\n  }\n);\n\nconst data = await resp.json();\nconsole.log(data);"},{"lang":"javascript","title":"Node.js","source":"import fetch from 'node-fetch';\n\nasync function run() {\n  const resp = await fetch(\n    `https://api.wise.com/2026Q4/transfer-requirements`,\n    {\n      method: 'POST',\n      headers: {\n        'Content-Type': 'application/json',\n        'X-External-Correlation-Id': 'f47ac10b-58cc-4372-a567-0e02b2c3d479',\n        Authorization: 'Bearer <YOUR_JWT_HERE>'\n      },\n      body: JSON.stringify({\n        targetAccount: 8692237,\n        quoteUuid: '8fa9be20-ba43-4b15-abbb-9424e1481050',\n        originatorLegalEntityType: 'PRIVATE',\n        details: {\n          reference: 'Invoice 2026-001',\n          sourceOfFunds: 'verification.source.of.funds.salary',\n          transferPurpose: 'verification.transfers.purpose.pay.bills'\n        }\n      })\n    }\n  );\n\n  const data = await resp.json();\n  console.log(data);\n}\n\nrun();"},{"lang":"python","title":"Python","source":"import requests\n\nurl = \"https://api.wise.com/2026Q4/transfer-requirements\"\n\npayload = {\n  \"targetAccount\": 8692237,\n  \"quoteUuid\": \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n  \"originatorLegalEntityType\": \"PRIVATE\",\n  \"details\": {\n    \"reference\": \"Invoice 2026-001\",\n    \"sourceOfFunds\": \"verification.source.of.funds.salary\",\n    \"transferPurpose\": \"verification.transfers.purpose.pay.bills\"\n  }\n}\n\nheaders = {\n  \"Content-Type\": \"application/json\",\n  \"X-External-Correlation-Id\": \"f47ac10b-58cc-4372-a567-0e02b2c3d479\",\n  \"Authorization\": \"Bearer <YOUR_JWT_HERE>\"\n}\n\nresponse = requests.post(url, json=payload, headers=headers)\n\ndata = response.json()\nprint(data)"},{"lang":"java","title":"Java","source":"import java.net.*;\nimport java.net.http.*;\nimport java.util.*;\n\npublic class App {\n  public static void main(String[] args) throws Exception {\n    var httpClient = HttpClient.newBuilder().build();\n\n    var payload = String.join(\"\\n\"\n      , \"{\"\n      , \" \\\"targetAccount\\\": 8692237,\"\n      , \" \\\"quoteUuid\\\": \\\"8fa9be20-ba43-4b15-abbb-9424e1481050\\\",\"\n      , \" \\\"originatorLegalEntityType\\\": \\\"PRIVATE\\\",\"\n      , \" \\\"details\\\": {\"\n      , \"  \\\"reference\\\": \\\"Invoice 2026-001\\\",\"\n      , \"  \\\"sourceOfFunds\\\": \\\"verification.source.of.funds.salary\\\",\"\n      , \"  \\\"transferPurpose\\\": \\\"verification.transfers.purpose.pay.bills\\\"\"\n      , \" }\"\n      , \"}\"\n    );\n\n    var host = \"https://api.wise.com\";\n    var pathname = \"/2026Q4/transfer-requirements\";\n    var request = HttpRequest.newBuilder()\n      .POST(HttpRequest.BodyPublishers.ofString(payload))\n      .uri(URI.create(host + pathname ))\n      .header(\"Content-Type\", \"application/json\")\n      .header(\"X-External-Correlation-Id\", \"f47ac10b-58cc-4372-a567-0e02b2c3d479\")\n      .header(\"Authorization\", \"Bearer <YOUR_JWT_HERE>\")\n      .build();\n\n    var response = httpClient.send(request, HttpResponse.BodyHandlers.ofString());\n\n    System.out.println(response.body());\n  }\n}"},{"lang":"csharp","title":"C#","source":"using System;\nusing System.Net.Http;\nusing System.Threading.Tasks;\nusing System.Text;\nusing System.Text.Json;\n\npublic class Program\n{\n  public static async Task Main()\n  {\n    System.Net.Http.HttpClient client = new()\n    {\n      DefaultRequestHeaders =\n      {\n        {\"X-External-Correlation-Id\", \"f47ac10b-58cc-4372-a567-0e02b2c3d479\"},\n        {\"Authorization\", \"Bearer <YOUR_JWT_HERE>\"},\n      }\n    };\n\n    string json = JsonSerializer.Serialize(new\n    {\n      targetAccount = \"8692237\",\n      quoteUuid = \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n      originatorLegalEntityType = \"PRIVATE\",\n      details = new {\n        reference = \"Invoice 2026-001\",\n        sourceOfFunds = \"verification.source.of.funds.salary\",\n        transferPurpose = \"verification.transfers.purpose.pay.bills\"\n      }\n    });\n\n    using StringContent postData = new(json, Encoding.UTF8, \"application/json\");\n    using HttpResponseMessage request = await client.PostAsync(\"https://api.wise.com/2026Q4/transfer-requirements\", postData);\n    string response = await request.Content.ReadAsStringAsync();\n\n    Console.WriteLine(response);\n  }\n}"},{"lang":"php","title":"PHP","source":"/**\n * Requires libcurl\n */\n\n$curl = curl_init();\n\n$payload = array(\n  \"targetAccount\" => 8692237,\n  \"quoteUuid\" => \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n  \"originatorLegalEntityType\" => \"PRIVATE\",\n  \"details\" => array(\n    \"reference\" => \"Invoice 2026-001\",\n    \"sourceOfFunds\" => \"verification.source.of.funds.salary\",\n    \"transferPurpose\" => \"verification.transfers.purpose.pay.bills\"\n  )\n);\n\ncurl_setopt_array($curl, [\n  CURLOPT_HTTPHEADER => [\n    \"Authorization: Bearer <YOUR_JWT_HERE>\",\n    \"Content-Type: application/json\",\n    \"X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479\"\n  ],\n  CURLOPT_POSTFIELDS => json_encode($payload),\n  CURLOPT_URL => \"https://api.wise.com/2026Q4/transfer-requirements\",\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n]);\n\n$response = curl_exec($curl);\n$error = curl_error($curl);\n\ncurl_close($curl);\n\nif ($error) {\n  echo \"cURL Error #:\" . $error;\n} else {\n  echo $response;\n}"},{"lang":"go","title":"Go","source":"package main\n\nimport (\n  \"fmt\"\n  \"bytes\"\n  \"net/http\"\n  \"io/ioutil\"\n)\n\nfunc main() {\n  reqUrl := \"https://api.wise.com/2026Q4/transfer-requirements\"\n  var data = []byte(`{\n    \"targetAccount\": 8692237,\n    \"quoteUuid\": \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n    \"originatorLegalEntityType\": \"PRIVATE\",\n    \"details\": {\n      \"reference\": \"Invoice 2026-001\",\n      \"sourceOfFunds\": \"verification.source.of.funds.salary\",\n      \"transferPurpose\": \"verification.transfers.purpose.pay.bills\"\n    }\n  }`)\n  req, err := http.NewRequest(\"POST\", reqUrl, bytes.NewBuffer(data))\n  if err != nil {\n    panic(err)\n  }\n  req.Header.Add(\"Content-Type\", \"application/json\")\n  req.Header.Add(\"X-External-Correlation-Id\", \"f47ac10b-58cc-4372-a567-0e02b2c3d479\")\n  req.Header.Add(\"Authorization\", \"Bearer <YOUR_JWT_HERE>\")\n  res, err := http.DefaultClient.Do(req)\n  if err != nil {\n    panic(err)\n  }\n  defer res.Body.Close()\n  body, err := ioutil.ReadAll(res.Body)\n  if err != nil {\n    panic(err)\n  }\n\n  fmt.Println(res)\n  fmt.Println(string(body))\n}"},{"lang":"ruby","title":"Ruby","source":"require 'json'\nrequire 'uri'\nrequire 'net/http'\nrequire 'openssl'\n\nurl = URI('https://api.wise.com/2026Q4/transfer-requirements')\n\nhttp = Net::HTTP.new(url.host, url.port)\nhttp.use_ssl = true\n\nrequest = Net::HTTP::Post.new(url)\nrequest['Content-Type'] = 'application/json'\nrequest['X-External-Correlation-Id'] = 'f47ac10b-58cc-4372-a567-0e02b2c3d479'\nrequest['Authorization'] = 'Bearer <YOUR_JWT_HERE>'\nrequest.body = {\n  targetAccount: 8692237,\n  quoteUuid: '8fa9be20-ba43-4b15-abbb-9424e1481050',\n  originatorLegalEntityType: 'PRIVATE',\n  details: {\n    reference: 'Invoice 2026-001',\n    sourceOfFunds: 'verification.source.of.funds.salary',\n    transferPurpose: 'verification.transfers.purpose.pay.bills'\n  }\n}.to_json\n\nresponse = http.request(request)\nputs response.read_body\n"},{"lang":"r","title":"R","source":"library(httr)\n\nbody = '{\n   \"targetAccount\": 8692237,\n   \"quoteUuid\": \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n   \"originatorLegalEntityType\": \"PRIVATE\",\n   \"details\": {\n    \"reference\": \"Invoice 2026-001\",\n    \"sourceOfFunds\": \"verification.source.of.funds.salary\",\n    \"transferPurpose\": \"verification.transfers.purpose.pay.bills\"\n   }\n}'\n\nurl = \"https://api.wise.com/2026Q4/transfer-requirements\"\n\ndata_req <- POST(\n  url,\n  add_headers(\"Content-Type\" = \"application/json\", \"X-External-Correlation-Id\" = \"f47ac10b-58cc-4372-a567-0e02b2c3d479\", \"Authorization\" = \"Bearer <YOUR_JWT_HERE>\"),\n  body = body,\n  encode = \"json\",\n  verbose()\n)\n\ncontent(data_req)"},{"lang":"json","title":"Payload application/json","source":"{\n  \"targetAccount\": 8692237,\n  \"quoteUuid\": \"8fa9be20-ba43-4b15-abbb-9424e1481050\",\n  \"originatorLegalEntityType\": \"PRIVATE\",\n  \"details\": {\n    \"reference\": \"Invoice 2026-001\",\n    \"sourceOfFunds\": \"verification.source.of.funds.salary\",\n    \"transferPurpose\": \"verification.transfers.purpose.pay.bills\"\n  }\n}"}]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-2-check-for-dynamic-fields","__idx":3},"children":["Step 2: Check for dynamic fields"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Analyze the returned list of fields. The example response includes ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reference"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceOfFunds"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferPurpose"]}," fields. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reference"]}," field is optional in this example. The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceOfFunds"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferPurpose"]}," fields are required and both have ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refreshRequirementsOnChange: true"]},", which indicates that additional fields may become required depending on the selected value."]},{"$$mdtype":"Tag","name":"OpenApiResponseSample","attributes":{"descriptionFile":"api-docs-api-reference/@latest/index.yaml","operationId":"transferRequirementsValidate","responseSamplesResolved":[{"lang":"json","title":"200 application/json","source":"[\n  {\n    \"type\": \"transfer\",\n    \"fields\": [\n      {\n        \"name\": \"Transfer reference\",\n        \"group\": [\n          {\n            \"key\": \"reference\",\n            \"name\": \"Transfer reference\",\n            \"type\": \"text\",\n            \"refreshRequirementsOnChange\": false,\n            \"required\": false,\n            \"displayFormat\": null,\n            \"example\": null,\n            \"minLength\": null,\n            \"maxLength\": 10,\n            \"validationRegexp\": \"[a-zA-Z0-9- ]*\",\n            \"validationAsync\": null,\n            \"valuesAllowed\": null\n          }\n        ]\n      },\n      {\n        \"name\": \"Transfer purpose\",\n        \"group\": [\n          {\n            \"key\": \"transferPurpose\",\n            \"name\": \"Transfer purpose\",\n            \"type\": \"select\",\n            \"refreshRequirementsOnChange\": true,\n            \"required\": true,\n            \"displayFormat\": null,\n            \"example\": null,\n            \"minLength\": null,\n            \"maxLength\": null,\n            \"validationRegexp\": null,\n            \"validationAsync\": null,\n            \"valuesAllowed\": [\n              {\n                \"key\": \"verification.transfers.purpose.purchase.property\",\n                \"name\": \"Buying property abroad\"\n              },\n              {\n                \"key\": \"verification.transfers.purpose.pay.bills\",\n                \"name\": \"Rent or other property expenses\"\n              },\n              {\n                \"key\": \"verification.transfers.purpose.mortgage\",\n                \"name\": \"Mortgage payment\"\n              },\n              {\n                \"key\": \"verification.transfers.purpose.pay.tuition\",\n                \"name\": \"Tuition fees or studying expenses\"\n              },\n              {\n                \"key\": \"verification.transfers.purpose.send.to.family\",\n                \"name\": \"Sending money home to family\"\n              },\n              {\n                \"key\": \"verification.transfers.purpose.living.expenses\",\n                \"name\": \"General monthly living expenses\"\n              },\n              {\n                \"key\": \"verification.transfers.purpose.other\",\n                \"name\": \"Other\"\n              }\n            ]\n          },\n          {\n            \"key\": \"transferPurposeSubTransferPurpose\",\n            \"name\": \"Please select a specific reason for your transfer\",\n            \"type\": \"select\",\n            \"refreshRequirementsOnChange\": true,\n            \"required\": true,\n            \"displayFormat\": null,\n            \"example\": null,\n            \"minLength\": null,\n            \"maxLength\": null,\n            \"validationRegexp\": null,\n            \"validationAsync\": null,\n            \"valuesAllowed\": [\n              {\n                \"key\": \"INTERPRETATION_SERVICE\",\n                \"name\": \"Interpretation service\"\n              },\n              {\n                \"key\": \"TRANSLATION_SERVICE\",\n                \"name\": \"Translation service\"\n              },\n              {\n                \"key\": \"HUMAN_RESOURCE_SERVICE\",\n                \"name\": \"Human resource service\"\n              },\n              {\n                \"key\": \"SOFTWARE_DEVELOPMENT_SERVICE\",\n                \"name\": \"Software development service\"\n              }\n            ]\n          }\n        ]\n      },\n      {\n        \"name\": \"Source of funds\",\n        \"group\": [\n          {\n            \"key\": \"sourceOfFunds\",\n            \"name\": \"Source of funds\",\n            \"type\": \"select\",\n            \"refreshRequirementsOnChange\": true,\n            \"required\": true,\n            \"displayFormat\": null,\n            \"example\": null,\n            \"minLength\": null,\n            \"maxLength\": null,\n            \"validationRegexp\": null,\n            \"validationAsync\": null,\n            \"valuesAllowed\": [\n              {\n                \"key\": \"verification.source.of.funds.salary\",\n                \"name\": \"Salary\"\n              },\n              {\n                \"key\": \"verification.source.of.funds.investment\",\n                \"name\": \"Investments (stocks, properties, etc.)\"\n              },\n              {\n                \"key\": \"verification.source.of.funds.inheritance\",\n                \"name\": \"Inheritance\"\n              },\n              {\n                \"key\": \"verification.source.of.funds.loan\",\n                \"name\": \"Loan\"\n              },\n              {\n                \"key\": \"verification.source.of.funds.other\",\n                \"name\": \"Other\"\n              }\n            ]\n          }\n        ]\n      }\n    ]\n  }\n]"},{"lang":"json","title":"429 application/json","source":"{}"}]},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-3-refresh-with-selected-values","__idx":4},"children":["Step 3: Refresh with selected values"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["POST to the endpoint again with values set for all fields that have ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refreshRequirementsOnChange: true"]},". For example, selecting a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceOfFunds"]}," value of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["verification.source.of.funds.other"]}," may require an additional ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceOfFundsOther"]}," text field."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"step-4-repeat-until-complete","__idx":5},"children":["Step 4: Repeat until complete"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Continue calling POST with updated values whenever a field with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["refreshRequirementsOnChange: true"]}," changes. Once all dynamic fields are resolved, you have the complete set of fields to compose a valid request to create a transfer."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"common-requirement-fields","__idx":6},"children":["Common requirement fields"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["As transfer requirements are part of a dynamic form, the list of options can change. The fields below are the most common requirements and when they apply, but others may be included. Always design your integration to work dynamically with this endpoint."]}]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transfer Reference"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["reference"]},") — General reference or memo field. Mandatory for some transfers (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["required"]}," will be true). Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minLength"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxLength"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationRegexp"]}," in your interface to minimize errors."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Originator Legal Entity Type"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["originatorLegalEntityType"]},") — Feature flag to identify the type of sender. Allowed values are ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PRIVATE"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BUSINESS"]},". Note this field is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["required"]}," from March 2026 for all new and existing Correspondent Send integrations."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transfer Purpose"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferPurpose"]},") — A select list of values to help understand the purpose of the transfer. Often required when transfers are over a certain size or through a particular route. As an option is selected, you must refresh requirements, as additional fields could become required."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Sub Transfer Purpose"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferPurposeSubTransferPurpose"]},") — A secondary select list of values to further help understand the purpose of the transfer."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Source of Funds"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sourceOfFunds"]},") — A select list of values to help understand the source of the funds."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transfer Nature"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferNature"]},") — A select list of values to help understand the reason for the transfer, only for routes to and from BRL. Note that transfer nature needs to be added to a quote through creation or update in order to correctly calculate the IOF tax."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Transfer Purpose Invoice Number"]}," (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferPurposeInvoiceNumber"]},") — Mandatory for trade related transfers (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["required"]}," will be true for these cases). Use ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["minLength"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["maxLength"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["validationRegexp"]}," in your interface to minimize errors."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["originatorLegalEntityType"]}," field is currently optional, but will become ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["required"]}," from March 2026 for all new and existing ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Correspondent Send Integrations"]},". Please update your integration to include this field as soon as possible."]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Transfers to-BRL or from-BRL require a transfer nature (see: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transferNature"]},"). Transfer nature has some special handling:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Be aware when rendering this field that labels might be present more than once under the same key."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The chosen value must be added when creating a quote or via an update of an existing quote."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Failure to include a transfer nature as instructed will prevent the transfer from being sent."]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-endpoints","__idx":7},"children":["Related endpoints"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/standard-transfer/transfercreate"},"children":["Create a transfer"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-reference/transfer/transferrequirementsvalidate"},"children":["Validate transfer requirements"]}]}]}]},"headings":[{"value":"Transfer Requirements","id":"transfer-requirements","depth":1},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Step 1: Get initial requirements","id":"step-1-get-initial-requirements","depth":3},{"value":"Step 2: Check for dynamic fields","id":"step-2-check-for-dynamic-fields","depth":3},{"value":"Step 3: Refresh with selected values","id":"step-3-refresh-with-selected-values","depth":3},{"value":"Step 4: Repeat until complete","id":"step-4-repeat-until-complete","depth":3},{"value":"Common requirement fields","id":"common-requirement-fields","depth":2},{"value":"Related endpoints","id":"related-endpoints","depth":2}],"frontmatter":{"seo":{"title":"Transfer Requirements"}},"lastModified":"2026-09-04T07:44:14.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/guides/developer/api-guides/transfer-requirements","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}