# Retrieve additional recipient account requirements dynamically

If refreshRequirementsOnChange=true for any group.key in the GET response, send this POST request with the updated create recipient account request payload. The response returns the additional required fields for that key based on the updated key value.

For example, when address.country is set to US, the address.state field becomes required. To retrieve the list of valid state names, use the POST operation to requery with the updated /accounts payload. The response returns the valid state names in the key’s valuesAllowed array.

Endpoint: POST /quotes/{quoteId}/account-requirements
Security: UserToken

## Path parameters:

  - `quoteId` (string, required)
    Quote ID (supports long or UUID-based IDs).

## Query parameters:

  - `originatorLegalEntityType` (string)
    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.
    Enum: "BUSINESS", "PRIVATE"

## Header parameters:

  - `Accept-Minor-Version` (integer)
    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.
    Enum: 1

  - `X-External-Correlation-Id` (string)
    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"

## Request fields (application/json):

  - `currency` (string)
    3-character currency code.
    Example: "GBP"

  - `type` (string)
    Recipient account type. These are currency/route-specific, for example, sort_code, iban, email.
    Example: "sort_code"

  - `profile` (integer)
    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.
    Example: 30000000

  - `accountHolderName` (string)
    Recipient full name.
    Example: "John Doe"

  - `ownedByCustomer` (boolean)
    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.
    Example: true

  - `details` (object)
    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.legalType` (string)
    Recipient legal type.
    Enum: "PRIVATE", "BUSINESS"

  - `details.sortCode` (string)
    Sort code (GBP example).
    Example: "040075"

  - `details.accountNumber` (string)
    Account number (GBP example).
    Example: "37778842"

  - `details.dateOfBirth` (string)
    Date of birth in ISO 8601 date format. Only required for certain currency routes. Call the retrieve recipient account requirements endpoint to confirm.
    Example: "1961-01-01"

  - `ultimateBeneficiary` (object,null)
    The details about the ultimate beneficiary for this recipient, if present. If absent, the ultimate beneficiary _is_ the recipient.

  - `ultimateBeneficiary.accountNumber` (string,null)
    Ultimate beneficiary account number.
    Example: "37778842"

  - `ultimateBeneficiary.bankName` (string,null)
    Ultimate beneficiary bank name.
    Example: "Wise Payments Limited"

  - `ultimateBeneficiary.bankCode` (string,null)
    Ultimate beneficiary bank code.
    Example: "026073150"

  - `ultimateBeneficiary.name` (object, required)
    Ultimate beneficiary name details.

  - `ultimateBeneficiary.name.fullName` (string, required)
    Ultimate beneficiary full name.
    Example: "John Doe"

  - `ultimateBeneficiary.address` (object,null)
    Ultimate beneficiary address.

  - `ultimateBeneficiary.address.country` (string)
    Example: "US"

  - `ultimateBeneficiary.address.firstLine` (string)

  - `ultimateBeneficiary.address.postCode` (string)

  - `ultimateBeneficiary.address.city` (string)

  - `ultimateBeneficiary.address.state` (string)

  - `ultimateBeneficiary.bankAddress` (object,null)
    Ultimate beneficiary bank address.

  - `ultimateBeneficiary.bankAddress.country` (string)
    Example: "US"

  - `ultimateBeneficiary.bankAddress.firstLine` (string)

  - `ultimateBeneficiary.bankAddress.postCode` (string)

  - `ultimateBeneficiary.bankAddress.city` (string)

  - `ultimateBeneficiary.bankAddress.state` (string)

## Response 200 fields (application/json):

  - `type` (string)
    Requirement group identifier (route/payout-method specific).
    Example: "south_korean_paygate"

  - `title` (string)
    Human-readable title for the requirement group.
    Example: "PayGate"

  - `usageInfo` (string)
    Optional usage/help text.

  - `fields` (array)
    List of UI field groups to collect required data.

  - `fields.name` (string)
    Display name of this group.
    Example: "E-mail"

  - `fields.group` (array)
    The actual fields within this group.

  - `fields.group.key` (string)
    Key to include in JSON when submitting recipient details.
    Example: "email"

  - `fields.group.name` (string)
    Human-readable label.
    Example: "E-mail"

  - `fields.group.type` (string)
    UI field type.
    Example: "text"

  - `fields.group.refreshRequirementsOnChange` (boolean)
    If true, changing this field can alter requirements; call the POST account-requirements endpoint with updated data to refresh requirements.

  - `fields.group.required` (boolean)
    Indicates whether this field is mandatory.
    Example: true

  - `fields.group.displayFormat` (string)
    Optional display formatting hint.

  - `fields.group.example` (string)
    Example value for the field (may be empty string).
    Example: "example@example.ex"

  - `fields.group.minLength` (integer)
    Minimum allowed length, when applicable.

  - `fields.group.maxLength` (integer)
    Maximum allowed length, when applicable.

  - `fields.group.validationRegexp` (string)
    Regex pattern for validation, when applicable.
    Example: "^[^\\s]+@[^\\s]+\\.[^\\s]{2,}$"

  - `fields.group.valuesAllowed` (array,null)
    Allowed values for select/radio inputs; null for free-text/date inputs.

  - `fields.group.valuesAllowed.key` (string)
    Machine-readable value.
    Example: "PRIVATE"

  - `fields.group.valuesAllowed.name` (string)
    Human-readable value label.
    Example: "Person"

  - `fields.group.validationAsync` (string)
    Deprecated. This validation will instead be performed when submitting the request.


