---
title: "Retrieve recipient account requirements dynamically (step-by-step)"
method: POST
path: "/v1/quotes/{quoteId}/account-requirements"
tags: ["recipient"]
---

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

`POST /v1/quotes/{quoteId}/account-requirements`

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](/api-reference/recipient/recipientaccountrequirementsget) for a full overview of how the account requirements flow works.

## Path parameters

- `quoteId` string, required

## Query parameters

- `originatorLegalEntityType` 'BUSINESS' | 'PRIVATE'

## Headers

- `Accept-Minor-Version` 1
- `X-External-Correlation-Id` string, uuid

## Request body

- RecipientCreateRequest — Create a recipient (beneficiary) account request for POST /v1/accounts. The required fields inside `details` depend on currency/route; use the account-requirements endpoints (e.g. /v1/quotes/{quoteId}/account-requirements) to discover the exact required fields.
  - `currency` string — 3 character currency code.
  - `type` string — Recipient account type (currency/route-specific), e.g. sort_code, iban, email.
  - `profile` integer — 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.
  - `accountHolderName` string — Recipient full name.
  - `ownedByCustomer` boolean — 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.
  - `details` object — Currency/route-specific recipient fields. Common examples include legalType, sortCode, accountNumber, email, dateOfBirth, etc. Use account-requirements APIs to determine what is required.
    - `legalType` 'PRIVATE' | 'BUSINESS' — Recipient legal type (when applicable).
    - `sortCode` string — Sort code (GBP example).
    - `accountNumber` string — Account number (GBP example).
    - `dateOfBirth` string — Date of birth in ISO 8601 date format (Optional for GBP example).
  - `ultimateBeneficiary` object, nullable — The information of the ultimate beneficiary for this recipient, if present. If absent, the ultimate beneficiary is the recipient.
    - `accountNumber` string, nullable — Ultimate beneficiary account number.
    - `bankName` string, nullable — Ultimate beneficiary bank name.
    - `bankCode` string, nullable — Ultimate beneficiary bank code.
    - `name` object, required — Ultimate beneficiary name details.
      - `fullName` string, required — Ultimate beneficiary full name.
    - `address` object, nullable — Ultimate beneficiary address.
      - `country` string
      - `firstLine` string
      - `postCode` string
      - `city` string
      - `state` string
    - `bankAddress` object, nullable — Ultimate beneficiary bank address.
      - `country` string
      - `firstLine` string
      - `postCode` string
      - `city` string
      - `state` string

## Response `200`

Updated account requirements based on provided data.

- object[] — Dynamic account-requirements response used to build recipient forms. The structure and the fields returned vary by currency, recipient type, route, and sometimes previously provided inputs. Treat this as a schema for a dynamically generated form definition rather than a fixed set of recipient fields.
  - `type` string — Requirement group identifier (route/payout-method specific).
  - `title` string — Human-readable title for the requirement group.
  - `usageInfo` string — Optional usage/help text.
  - `fields` object[] — List of UI field groups to collect required data.
    - `name` string — Display name of this group.
    - `group` object[] — The actual fields within this group.
      - `key` string — Key to include in JSON when submitting recipient details.
      - `name` string — Human-readable label.
      - `type` string — UI field type.
      - `refreshRequirementsOnChange` boolean — If true, changing this field can alter requirements; call the POST account-requirements endpoint with updated data to refresh requirements.
      - `required` boolean — Indicates whether this field is mandatory.
      - `displayFormat` string — Optional display formatting hint.
      - `example` string — Example value for the field (may be empty string).
      - `minLength` integer — Minimum allowed length, when applicable.
      - `maxLength` integer — Maximum allowed length, when applicable.
      - `validationRegexp` string — Regex pattern for validation, when applicable.
      - `validationAsync` string — Deprecated. This validation will instead be performed when submitting the request.
      - `valuesAllowed` object[], nullable — Allowed values for select/radio inputs; null for free-text/date inputs.
        - `key` string — Machine-readable value.
        - `name` string — Human-readable value label.

## Other responses

- `429` — Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

---

[API](https://skmtc.net/wise/apis/platform-api.md) · [All operations](https://skmtc.net/wise/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wise/platform-api/revisions/4907a1d269ab/schema)
