API

AccountRequirement

The fields a recipient account needs, for a quote's route.

Operations

Every route this entity exposes. Each route links to its own reference on this page.

Method Route SDK operation Returns
POST /quotes/{quoteId}/account-requirements create Updated account requirements based on provided data
GET /quotes/{quoteId}/account-requirements list Dynamic account requirements for building a recipient form

Examples

One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.

Golang

Construct client as shown in the Golang setup, then call the operations:

account_requirements, err := client.AccountRequirement(nil).List(map[string]any{"quote_id": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(account_requirements)
created, err := client.AccountRequirement(nil).Create(map[string]any{"quote_id": "example", "ultimateBeneficiary": map[string]any{}}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)

Lua

Construct client as shown in the Lua setup, then call the operations:

local account_requirements, err = client:AccountRequirement():list({ quote_id = "example" })
local created, err = client:AccountRequirement():create({ quote_id = "example", ultimateBeneficiary = {} })

PHP

Construct client as shown in the PHP setup, then call the operations:

$account_requirements = $client->AccountRequirement()->list(["quote_id" => "example"]);
$created = $client->AccountRequirement()->create(["quote_id" => "example", "ultimateBeneficiary" => []]);

Python

Construct client as shown in the Python setup, then call the operations:

account_requirements = client.AccountRequirement().list({"quote_id": "example"})
created = client.AccountRequirement().create({ "quote_id": "example", "ultimateBeneficiary": {} })

Ruby

Construct client as shown in the Ruby setup, then call the operations:

account_requirements = client.AccountRequirement.list({ "quote_id" => "example" })
created = client.AccountRequirement.create({ "quote_id" => "example", "ultimateBeneficiary" => {} })

TypeScript

Construct client as shown in the TypeScript setup, then call the operations:

const account_requirements = await client.AccountRequirement().list({ quote_id: "example" })
const created = await client.AccountRequirement().create({ quote_id: "example", ultimateBeneficiary: {} })

Fields

Field Type Required Description
accountHolderName string No Recipient full name.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type.
fields array No List of UI field groups to collect required data.
ownedByCustomer boolean No Indicates whether the recipient account is owned by the profile owner.
profile integer No Personal or business profile ID of the sender.
title string No Human-readable title for the requirement group.
type string No Recipient account type.
ultimateBeneficiary one,object,null Yes The details about the ultimate beneficiary for this recipient, if present.
usageInfo string No Optional usage/help text.

create

POST /quotes/{quoteId}/account-requirements

Operation ID: recipientAccountRequirementsPost.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
quoteId path string Yes Quote ID (supports long or UUID-based IDs).
originatorLegalEntityType query enum: BUSINESS, PRIVATE No Legal entity type override for the actual sender. Correspondent partners must include the originatorLegalEntityType query parameter to ensure the correct requirements are returned in the response. This parameter indicates whether the actual sender is PRIVATE or BUSINESS. When not included, the request is assumed to be for a BUSINESS entity, as Wise has no way of knowing if the true sender on a third-party transfer is a business or private individual.
Accept-Minor-Version header enum: 1 No Set to 1 to ensure the response includes both the recipient name and email fields, which are required to support currencies such as KRW, JPY and RUB.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
accountHolderName string No Recipient full name.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type. Common examples include legalType, sortCode, accountNumber, email, dateOfBirth, etc. Use the retrieve recipient account requirements endpoint to determine what is required for a specific recipient.
details.accountNumber string No Account number (GBP example).
details.dateOfBirth string No Date of birth in ISO 8601 date format. Only required for certain currency routes. Call the retrieve recipient account requirements endpoint to confirm.
details.legalType enum: PRIVATE, BUSINESS No Recipient legal type.
details.sortCode string No Sort code (GBP example).
ownedByCustomer boolean No Indicates whether the recipient account is owned by the profile owner. While optional, we recommend setting to true for self-transfers (such as a user sending money to their own account in another country or currency). Distinguishing self-transfers from third-party transfers improves routing and processing efficiency.
profile integer (int64) No Personal or business profile ID of the sender. We recommend passing the business profile ID if multiple users manage your business account so all users authorized on the business account can access the recipient.
type string No Recipient account type. These are currency/route-specific, for example, sort_code, iban, email.
ultimateBeneficiary object,null No The details about the ultimate beneficiary for this recipient, if present. If absent, the ultimate beneficiary is the recipient.
ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
ultimateBeneficiary.address object,null No Ultimate beneficiary address.
ultimateBeneficiary.address.city string No
ultimateBeneficiary.address.country string No
ultimateBeneficiary.address.firstLine string No
ultimateBeneficiary.address.postCode string No
ultimateBeneficiary.address.state string No
ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
ultimateBeneficiary.bankAddress.city string No
ultimateBeneficiary.bankAddress.country string No
ultimateBeneficiary.bankAddress.firstLine string No
ultimateBeneficiary.bankAddress.postCode string No
ultimateBeneficiary.bankAddress.state string No
ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
ultimateBeneficiary.name object Yes Ultimate beneficiary name details.
ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary full name.

Responses

200: Updated account requirements based on provided data

application/json

Property Type Required Description
[].fields array of object No List of UI field groups to collect required data.
[].fields[].group array of object No The actual fields within this group.
[].fields[].group[].displayFormat string No Optional display formatting hint.
[].fields[].group[].example string No Example value for the field (may be empty string).
[].fields[].group[].key string No Key to include in JSON when submitting recipient details.
[].fields[].group[].maxLength integer No Maximum allowed length, when applicable.
[].fields[].group[].minLength integer No Minimum allowed length, when applicable.
[].fields[].group[].name string No Human-readable label.
[].fields[].group[].refreshRequirementsOnChange boolean No If true, changing this field can alter requirements; call the POST account-requirements endpoint with updated data to refresh requirements.
[].fields[].group[].required boolean No Indicates whether this field is mandatory.
[].fields[].group[].type string No UI field type.
[].fields[].group[].validationAsync string No Deprecated. This validation will instead be performed when submitting the request.
[].fields[].group[].validationRegexp string No Regex pattern for validation, when applicable.
[].fields[].group[].valuesAllowed array,null No Allowed values for select/radio inputs; null for free-text/date inputs.
[].fields[].name string No Display name of this group.
[].title string No Human-readable title for the requirement group.
[].type string No Requirement group identifier (route/payout-method specific).
[].usageInfo string No Optional usage/help text.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

list

GET /quotes/{quoteId}/account-requirements

Operation ID: recipientAccountRequirementsGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
quoteId path string Yes Quote ID (supports long or UUID-based IDs).
originatorLegalEntityType query enum: BUSINESS, PRIVATE No Legal entity type override for the actual sender. Correspondent partners must include the originatorLegalEntityType query parameter to ensure the correct requirements are returned in the response. This parameter indicates whether the actual sender is PRIVATE or BUSINESS. When not included, the request is assumed to be for a BUSINESS entity, as Wise has no way of knowing if the true sender on a third-party transfer is a business or private individual.
addressRequired query boolean No When set to true, the response always returns address as required, even if not required by the specific currency route. Include this query parameter set to true to force the address requirement regardless of currency. {% admonition type="warning" %} Address requirement fields are subject to change. Be sure to build your integration in a way that handles unrecognized or changed fields. {% /admonition %}
Accept-Minor-Version header enum: 1 No Set to 1 to ensure the response includes both the recipient name and email fields, which are required to support currencies such as KRW, JPY and RUB.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: Dynamic account requirements for building a recipient form

application/json

Property Type Required Description
[].fields array of object No List of UI field groups to collect required data.
[].fields[].group array of object No The actual fields within this group.
[].fields[].group[].displayFormat string No Optional display formatting hint.
[].fields[].group[].example string No Example value for the field (may be empty string).
[].fields[].group[].key string No Key to include in JSON when submitting recipient details.
[].fields[].group[].maxLength integer No Maximum allowed length, when applicable.
[].fields[].group[].minLength integer No Minimum allowed length, when applicable.
[].fields[].group[].name string No Human-readable label.
[].fields[].group[].refreshRequirementsOnChange boolean No If true, changing this field can alter requirements; call the POST account-requirements endpoint with updated data to refresh requirements.
[].fields[].group[].required boolean No Indicates whether this field is mandatory.
[].fields[].group[].type string No UI field type.
[].fields[].group[].validationAsync string No Deprecated. This validation will instead be performed when submitting the request.
[].fields[].group[].validationRegexp string No Regex pattern for validation, when applicable.
[].fields[].group[].valuesAllowed array,null No Allowed values for select/radio inputs; null for free-text/date inputs.
[].fields[].name string No Display name of this group.
[].title string No Human-readable title for the requirement group.
[].type string No Requirement group identifier (route/payout-method specific).
[].usageInfo string No Optional usage/help text.
401: Unauthorized
403: Forbidden
404: Not Found
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.