Skip to content

Retrieve recipient account requirements dynamically (step-by-step)

Request

POST the same recipient account payload that you will POST to /v1/accounts.

Use this endpoint after setting any field that has refreshRequirementsOnChange=true in the GET response, to discover any additional required fields.

See the GET endpoint for a full overview of how the account requirements flow works.

Security
UserToken
Path
quoteIdstringrequired

Quote ID (supports long or UUID based IDs).

Query
originatorLegalEntityTypestring

Legal entity type override for the actual sender.

Enum:"BUSINESS""PRIVATE"
Headers
Accept-Minor-Versioninteger

Set to 1 to enable v1.1.

Value:1
X-External-Correlation-Idstring, (uuid), <= 36 characters

Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Example:f47ac10b-58cc-4372-a567-0e02b2c3d479
Bodyapplication/jsonrequired
currencystring

3 character currency code.

Example:"GBP"
typestring

Recipient account type (currency/route-specific), e.g. sort_code, iban, email.

Example:"sort_code"
profileinteger, (int64)

Personal or business profile ID of the sender. It is highly advised to pass the business profile ID in this field if your business account is managed by multiple users, so that the recipient can be accessed by all users authorized on the business account.

Example:30000000
accountHolderNamestring

Recipient full name.

Example:"John Doe"
ownedByCustomerboolean

Indicates whether the recipient account is owned by the profile owner (self-transfer), such as a user sending money to their own account in another country or currency. Set to true for self-transfers. We strongly recommend setting this field, as distinguishing self-transfers from third-party transfers improves routing and processing efficiency.

Example:true
detailsobject

Currency/route-specific recipient fields. Common examples include legalType, sortCode, accountNumber, email, dateOfBirth, etc. Use account-requirements APIs to determine what is required.

curl -i -X POST \
  'https://api.wise.com/v1/quotes/{quoteId}/account-requirements?originatorLegalEntityType=BUSINESS' \
  -H 'Accept-Minor-Version: 1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
  -d '{
    "currency": "GBP",
    "type": "sort_code",
    "profile": 30000000,
    "accountHolderName": "John Doe",
    "ownedByCustomer": true,
    "details": {
      "legalType": "PRIVATE",
      "sortCode": "040075",
      "accountNumber": "37778842",
      "dateOfBirth": "1961-01-01"
    }
  }'

Responses

Updated account requirements based on provided data.

Headers
X-External-Correlation-Idstring, (uuid), <= 36 characters

Echoed back when X-External-Correlation-Id was included in the request. Learn more.

Example:"f47ac10b-58cc-4372-a567-0e02b2c3d479"
x-trace-idstring

Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.

Example:"fba501b6d453b96789f52338f019341f"
Bodyapplication/json
Array [
typestring

Requirement group identifier (route/payout-method specific).

Example:"south_korean_paygate"
titlestring

Human-readable title for the requirement group.

Example:"PayGate"
usageInfostring

Optional usage/help text.

Example:null
fieldsArray of objects

List of UI field groups to collect required data.

]
Response
[ { "type": "south_korean_paygate", "title": "PayGate", "usageInfo": null, "fields": [ {}, {}, {}, {}, {}, {} ] } ]