---
title: "Check transfer field requirements"
method: POST
path: "/pay/fields"
tags: ["Transfers"]
---

# Check transfer field requirements

`POST /pay/fields`

## Request

- Base URL: `https://b2b.revolut.com/api/1.0`
- URL: `https://b2b.revolut.com/api/1.0/pay/fields`
- Auth: HTTP bearer

Retrieve the list of conditionally required or applicable fields for a specific transfer destination together with their constraints.

:::note [Note]
This feature is not available in Sandbox.
:::

When creating a payment via the [`/pay` endpoint](https://developer.revolut.com/docs/api/business#create-payment), certain fields (such as `transfer_reason_code`, `charge_bearer`, or `exchange_reason_code`) become required or applicable depending on the source account, destination corridor, and business profile.
This read-only endpoint allows you to discover these contextual fields dynamically, along with their validation rules and available options.

:::tip
A **destination corridor** is a specific combination of bank country and currency representing a supported payment destination (e.g. GBP to GB, USD to US).
:::

Only the fields relevant to the specific context are returned.
Universally required fields (such as `amount`, `account_id`, `receiver`, and `request_id`) are always required and are intentionally excluded from this response.

For more details, see the guides: **Check transfer field requirements** section in [Bank transfers](https://developer.revolut.com/docs/guides/manage-accounts/transfers/bank-transfers#check-transfer-field-requirements) or [Card transfers](https://developer.revolut.com/docs/guides/manage-accounts/transfers/card-transfers#check-transfer-field-requirements).

## Request body

- PaymentRequirementsRequest: The request details to evaluate payment requirements.
  - `account_id` string, uuid, required: The ID of the account from which the transfer will be made.
  - `receiver` PaymentReceiver, required: The details of the transfer recipient. If the counterparty has multiple payment methods available (e.g. 2 accounts, or 1 account and 1 card), you must specify the account (`account_id`) or card (`card_id`) to which you want to transfer the money.
    - `counterparty_id` string, uuid, required: The ID of the receiving counterparty.
    - `account_id` string, uuid: The ID of the receiving counterparty's account. Used for bank transfers. If the counterparty has multiple payment methods available, use it to specify the account to which you want to send the money.
    - `card_id` string, uuid: The ID of the receiving counterparty's card. Used for card transfers. If the counterparty has multiple payment methods available, use it to specify the card to which you want to send the money.

## Response `200`

The applicable and conditionally required fields for the specified transfer destination

- PaymentRequirementsResponse: The response containing applicable payment fields and their validation rules.
  - `fields` PaymentRequirementsField[], required: A list of applicable and conditionally required fields for the specific payment context.
    - `name` string, required: The name of the field to be provided in the [`/pay` endpoint](https://developer.revolut.com/docs/business#create-payment) request body. Matches the field names in the `/pay` endpoint exactly. E.g. `reference`, `charge_bearer`, `transfer_reason_code`, `exchange_reason_code`, `fiscal_code`. Universally required fields (such as `amount`, `account_id`, `receiver`, and `request_id`) are always required and are intentionally excluded from this response. For field descriptions, see the [`/pay` endpoint](https://developer.revolut.com/docs/business#create-payment) request body.
    - `required` boolean, required: Indicates whether this field must be provided for the given transfer.
    - `validation` PaymentRequirementsFieldValidation: Validation rules applied to the field.
      - `min_length` integer: The minimum allowed character length for the field value.
      - `max_length` integer: The maximum allowed character length for the field value.
      - `regex` PaymentRequirementsFieldRegex: Regular expression validation rules.
        - `pattern` string, required: The regex pattern the field value must match.
        - `description` string, required: A human-readable description of the regex constraint.
    - `options` PaymentRequirementsFieldOption[]: A list of allowed values for the field (enum). If provided, the field value must be one of these options.
      - `value` string, required: The accepted value to be passed to the API.
      - `default` boolean: Indicates the default option for the field if there is one.

## Other responses

- `400`: Bad request For example: - the request is invalid (e.g. malformed body, validation failure) - both `account_id` and `card_id` are provided in `receiver` (only one of these values can be provided in a single request)
- `404`: Not found Returned when the specified counterparty, account, or card was not found.
- `default`: Unexpected error

---

[API](https://skmtc.dev/revolut/apis/business-api.md) - [All operations](https://skmtc.dev/revolut/apis/business-api/llms.txt) - [OpenAPI document](https://skmtc.dev/revolut/apis/business-api/revisions/be089d9fa8b4?raw)
