> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Validate data for a Recipient

> Check that the user's Recipient data is valid before creation

### Path parameters

<ParamField path="UserId" type="string" required>
  The unique identifier of the user.
</ParamField>

### Body parameters

<ParamField body="DisplayName" type="string" required>
  Length: 1–50; cannot contain: `&,'/` (pattern:`^(?!.*[&,'/]).{1,50}$`)

  A user-friendly name to identify the account. This value cannot be changed once the recipient is created.
</ParamField>

<ParamField body="PayoutMethodType" type="string" required>
  **Possible values:** `InternationalBankTransfer`, `LocalBankTransfer`

  The payout method of the recipient:

  * `InternationalBankTransfer` – The account can receive non-local currencies via SWIFT or else uses local rails for local currencies by default.
  * `LocalBankTransfer` – The account can **only** receive the corresponding local `Currency` for the `Country` (e.g. `EUR` to a SEPA country, `GBP` to a UK account, `PLN` to a Polish IBAN, etc.)
</ParamField>

<ParamField body="RecipientType" type="string" required>
  **Possible values:** `Individual`, `Business`

  The recipient type:

  * `Individual` – An account held by a natural person, requiring the `IndividualRecipient` property.
  * `Business` – An account held by a legal entity, requiring the `BusinessRecipient` property.
</ParamField>

<ParamField body="Currency" type="string" required>
  **Possible values:** `AED`, `AUD`, `CAD`, `CHF`, `CNH`, `CZK`, `DKK`, `EUR`, `GBP`, `HKD`, `HUF`, `ILS`, `JPY`, `MXN`, `NOK`, `NZD`, `PLN`, `RON`, `SAR`, `SEK`, `SGD`, `TRY`, `USD`, `ZAR`

  The currency of the recipient.
</ParamField>

<ParamField body="Country" type="string" required>
  Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

  The destination country of the payout method.
</ParamField>

<ParamField body="RecipientScope" type="string">
  **Possible values:** `PAYIN`, `PAYOUT`

  **Default value:** `PAYOUT`

  The scope of the recipient:

  * `PAYOUT` – Usable for payouts and in pay-in use cases. A `PAYOUT` recipient can only be created by a user with the `UserCategory` `OWNER` and requires SCA. You need to use the returned `PendingUserAction.RedirectUrl` value, adding your encoded `returnUrl` as a query parameter, to redirect the user to the [hosted SCA session](/guides/sca/session) so they can complete the necessary steps.
  * `PAYIN` - Not usable for payouts but only usable for pay-in use cases, such as direct debit and refunds using payouts. A `PAYIN` recipient can be created by a user with the `UserCategory` `PAYER` or `OWNER`, and does not require SCA.
</ParamField>

<ParamField body="Tag" type="string">
  Max. length: 255 (pattern: `^.{0,255}$`)

  Custom data that you can add to this object. This value cannot be changed once the recipient is created.
</ParamField>

<Tabs>
  <Tab title="Individual">
    <ParamField body="IndividualRecipient" type="object" required>
      The account holder if the `RecipientType` is `Individual`.

      Only one of `IndividualRecipient` or `BusinessRecipient` is required.
    </ParamField>

    <Expandable title="properties">
      <ParamField body="FirstName" type="string" required>
        Length: 1–255; cannot contain: `()&,.:_/` (Pattern: `^(?!.*[()&,.:_/]).{1,255}$`)

        The first name of the individual account holder.
      </ParamField>

      <ParamField body="LastName" type="string" required>
        Length: 1–255; cannot contain: `()&,.:_/` (Pattern: `^(?!.*[()&,.:_/]).{1,255}$`)

        The last name of the individual account holder.
      </ParamField>

      <ParamField body="Address" type="object" required>
        Information about the address.

        <Expandable title="properties">
          <ParamField body="AddressLine1" type="string" required>
            Length: 1–255; cannot contain: `()/` (Pattern: `^(?!.*[()/]).{1,255}$`)

            The first line of the address.
          </ParamField>

          <ParamField body="AddressLine2" type="string">
            Length: 1–255; cannot contain: `()/` (Pattern: `^(?!.*[()/]).{1,255}$`)

            The second line of the address.
          </ParamField>

          <ParamField body="City" type="string" required>
            Length: 1-80; cannot contain: `&,.:_'` (pattern: `^(?!.*[&,.:_]).{1,80}$`)

            The city of the address.
          </ParamField>

          <ParamField body="Region" type="string">
            Length: 1–10; cannot contain: `&,.:_'-/` (pattern: `^(?!.*[&,.:_/]).{1,50}$`)

            The region of the address.
          </ParamField>

          <ParamField body="PostalCode" type="string" required>
            Length: 1–10; cannot contain: `()&,.:_'/` (pattern: `^(?!.*[()&,.:_'/]).{1,10}$`)

            The postal code of the address.
          </ParamField>

          <ParamField body="Country" type="string" required>
            Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

            The country of the address.
          </ParamField>
        </Expandable>
      </ParamField>
    </Expandable>
  </Tab>

  <Tab title="Business">
    <ParamField body="BusinessRecipient" type="object" required>
      The account holder if the `RecipientType` is `Business`.

      Only one of `IndividualRecipient` or `BusinessRecipient` is required.
    </ParamField>

    <Expandable title="properties">
      <ParamField body="BusinessName" type="string" required>
        Length: 1–255; cannot contain: `(),.:/` (Pattern: `^(?!.*[(),.:/]).{1,255}$`)

        The name of the business account holder.
      </ParamField>

      <ParamField body="Address" type="object" required>
        Information about the address.

        <Expandable title="properties">
          <ParamField body="AddressLine1" type="string" required>
            Length: 1–255; cannot contain: `()/` (Pattern: `^(?!.*[()/]).{1,255}$`)

            The first line of the address.
          </ParamField>

          <ParamField body="AddressLine2" type="string">
            Length: 1–255; cannot contain: `()/` (Pattern: `^(?!.*[()/]).{1,255}$`)

            The second line of the address.
          </ParamField>

          <ParamField body="City" type="string" required>
            Length: 1-80; cannot contain: `&,.:_'` (pattern: `^(?!.*[&,.:_]).{1,80}$`)

            The city of the address.
          </ParamField>

          <ParamField body="Region" type="string">
            Length: 1–10; cannot contain: `&,.:_'-/` (pattern: `^(?!.*[&,.:_/]).{1,50}$`)

            The region of the address.
          </ParamField>

          <ParamField body="PostalCode" type="string" required>
            Length: 1–10; cannot contain: `()&,.:_'/` (pattern: `^(?!.*[()&,.:_'/]).{1,10}$`)

            The postal code of the address.
          </ParamField>

          <ParamField body="Country" type="string" required>
            Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

            The country of the address.
          </ParamField>
        </Expandable>
      </ParamField>
    </Expandable>
  </Tab>
</Tabs>

<br />

<Tabs>
  <Tab title="InternationalBankTransfer">
    <ParamField body="InternationalBankTransfer" type="object" required>
      The account details if `PayoutMethodType` is `InternationalBankTransfer`.

      Only one of `InternationalBankTransfer` or `LocalBankTransfer` is required.

      The `InternationalBankTransfer` depends on the `Currency` and `Country`.

      <Expandable title="properties" defaultOpen>
        <ParamField body="AccountNumber" type="string" required>
          Format: The format returned by the [schema](/api-reference/recipients/view-recipient-schema) endpoint depending on the `Currency` and `Country`

          The account number of the account. For IBAN countries, the `AccountNumber` format is the local IBAN one. For other countries, the format depends on the `Country` and should be retrieved from the [GET View the schema for a Recipient](/api-reference/recipients/view-recipient-schema) endpoint.
        </ParamField>

        <ParamField body="BIC" type="string">
          Format: The format returned by the [schema](/api-reference/recipients/view-recipient-schema) endpoint depending on the `Currency` and `Country`

          The BIC of the account.

          For countries that don't use IBAN, the `BIC` is required. For countries that use IBAN, this field is ignored because the BIC generated automatically from the IBAN and returned in the response.
        </ParamField>
      </Expandable>
    </ParamField>
  </Tab>

  <Tab title="LocalBankTransfer">
    <ParamField body="LocalBankTransfer" type="object" required>
      The account details if `PayoutMethodType` is `LocalBankTransfer`, depending on the `Currency`.

      One of:

      <Tabs>
        <Tab title="CAD">
          <ParamField body="CAD" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="AccountNumber" type="string" required>
                Format: 7–35 digits (pattern: `^\\d{7,35}$`)

                The account number of the Canadian account.
              </ParamField>

              <ParamField body="InstitutionNumber" type="string" required>
                Format: 3 digits (pattern: `^\\d{3}$`)

                The institution number of the Canadian account.
              </ParamField>

              <ParamField body="BranchCode" type="string" required>
                Format: 5 digits (pattern: `^\\d{5}$`)

                The branch code of the Canadian account.
              </ParamField>

              <ParamField body="BankName" type="string" required>
                Length: 1–50

                The bank name of the Canadian account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="CHF">
          <ParamField body="CHF" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="CZK">
          <ParamField body="CZK" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="DKK">
          <ParamField body="DKK" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="EUR">
          <ParamField body="EUR" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="GBP">
          <ParamField body="GBP" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="AccountNumber" type="string" required>
                Format: 8 digits (pattern: `^\\d{8}$`)

                The account number of the UK account.
              </ParamField>

              <ParamField body="SortCode" type="string" required>
                Format: 6 digits (pattern: `^\\d{6}$`)

                The sort code of the UK account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="HUF">
          <ParamField body="HUF" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        {/* <Tab title="MXN">
                <ParamField body="MXN" type="object" required>
                <Expandable title="properties" defaultOpen>
                  <ParamField body="BIC" type="string" required>
                  Format: 8–11 alphanumeric characters (pattern: `^[0-9a-zA-Z]{8}([0-9a-zA-Z]{3})?$`)

                  The BIC of the Mexican account.
                  </ParamField>
                  <ParamField body="Clabe" type="string" required>
                  Format: 18 digits (pattern: `^\\d{18}$`)

                  The CLABE of the Mexican account.
                  </ParamField>
                </Expandable>
                </ParamField>
                </Tab> */}

        <Tab title="NOK">
          <ParamField body="NOK" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="PLN">
          <ParamField body="PLN" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="RON">
          <ParamField body="RON" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="SEK">
          <ParamField body="SEK" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="IBAN" type="string" required>
                Format: A valid IBAN (pattern: `^[a-zA-Z]{2}\\d{2}\\s*(\\w{4}\\s*){2,7}\\w{1,4}\\s*$`)

                The IBAN of the account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>

        <Tab title="USD">
          <ParamField body="USD" type="object" required>
            <Expandable title="properties" defaultOpen>
              <ParamField body="AccountNumber" type="string" required>
                Format: 8–12 alphanumeric characters (pattern: `^[0-9a-zA-Z]{8,12}$`)

                The account number of the US account.
              </ParamField>

              <ParamField body="ABA" type="string" required>
                Format: 9 digits (pattern: `^\\d{9}$`)

                The ABA routing number of the US account.
              </ParamField>

              <ParamField body="FFC" type="string">
                Format: 8-12 digits then `FFC` then a space then a sting of characters up to 140 total length (pattern: `^(?=.{0,140}$)[0-9]{8,12}/FFC [0-9a-zA-Z/\\-?:().,'+ ]+$`)

                FFC transfer information for the US account.
              </ParamField>
            </Expandable>
          </ParamField>
        </Tab>
      </Tabs>
    </ParamField>
  </Tab>
</Tabs>

### Responses

<AccordionGroup>
  <Accordion title="200" defaultOpen>
    *No response body – 200 HTTP code indicates the request is valid against the schema*
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="400 - Parameter or data errors" defaultOpen>
    Example 400 error:

    ```json theme={null}
    {
        "Id": "1a8bff3c-37a4-4a1a-9219-d00a5fd19865",
        "Message": "One or several required parameters are missing or incorrect. An incorrect resource ID also raises this kind of error.",
        "Type": "param_error",
        "Date": 1779197001,
        "Errors": {
            "IndividualRecipient.Address.PostalCode": "LENGTH_MORE_THAN_MAX",
            "LocalBankTransfer.GBP.AccountNumber": "INVALID_FORMAT. Regex validation: ^\\d{8}$",
            "LocalBankTransfer.GBP.SortCode": "INVALID_FORMAT. Regex validation: ^\\d{6}$"
        }
    }
    ```

    The following `Errors` values may be returned for a given parameter:

    * `REQUIRED` – Value is required but not present in the request.
    * `LENGTH_MORE_THAN_MAX` – String length is greater than required length.
    * `LENGTH_LESS_THAN_MIN` – String length is less than required length.
    * `INVALID_FORMAT` – Value doe not match expected pattern.
    * `NOT_IN_ALLOWED_VALUES` – Value is not a valid `PayoutMethodType`, `RecipientType`, `Currency` or `Country`.
    * `UNSUPPORTED_COUNTRY` – Country not allowed (see [country restrictions](/guides/users/country-restrictions) article for details).
    * `UNSUPPORTED_CURRENCY` – Currency is a valid ISO 4217 format but not yet supported for Recipients.
    * `UNSUPPORTED_PAYOUT_METHOD_FOR_CURRENCY` – Payout method is not supported for the `Currency` and `Country` combination.
    * `CLIENT_NOT_FOUND` – `ClientId` making the request does not exist.
    * `USER_NOT_FOUND` – `UserId` for which the request is made does not exist.
    * `INVALID_SORT_CODE` – Sort code for this account is not valid.
    * `INVALID_ACCOUNT_NUMBER` – Account number is not valid.
    * `INVALID_IBAN` – IBAN is not valid.
    * `INVALID_BIC` – BIC is not valid.
    * `IBAN_DOES_NOT_CORRESPOND_TO_ACCOUNT_COUNTRY` – IBAN or account number does not match the `Country` value (for example, `Country` is `GB` but the IBAN starts with `FR`).
    * `BIC_DOES_NOT_CORRESPOND_TO_ACCOUNT_COUNTRY` – Bank identifier does not match the `Country` value (for example, `Country` is `JP` but the BIC indicates US). - `UNSUPPORTED_IBAN` – IBAN is valid but not supported:
      * If `LocalBankTransfer`, the IBAN country is not part of SEPA and the local currency is not EUR.
      * If `InternationalBankTransfer`, the IBAN country is not GB or is not part of SEPA and local currency is not EUR.
    * `INVALID_ACCOUNT_NUMBER_AND_SORT_CODE_COMBINATION` – GB sort code and account number combination is not valid.
  </Accordion>
</AccordionGroup>

<ResponseExample>
  ```json 200 theme={null}
  // No response body
  ```
</ResponseExample>

<RequestExample>
  ```json REST - EUR, international, business, PAYOUT theme={null}
  {
      "DisplayName": "Alex Smith EUR international payout account",
      "PayoutMethodType": "InternationalBankTransfer",
      "RecipientType": "Business",
      "Currency": "EUR",
      "Country": "FR",
      "Tag": "Created using the Mangopay API Postman collection",
      "BusinessRecipient": {
          "BusinessName": "Alex Smith Consulting",
          "Address": {
              "AddressLine1": "3 rue de la Cité",
              "AddressLine2": "Appartement 7",
              "City": "Paris",
              "Region": "Ile de France",
              "PostalCode": "75001",
              "Country": "FR"
          }
      },
      "InternationalBankTransfer": {
          "AccountNumber": "FR7630004000031234567890143"
      }
  }
  ```

  ```json REST - GBP, local, individual, PAYIN theme={null}
  {
      "DisplayName": "Alex Smith GBP local pay-in account",
      "PayoutMethodType": "LocalBankTransfer",
      "RecipientType": "Individual",
      "Currency": "GBP",
      "Country": "GB",
      "Tag": "Created using the Mangopay API Postman collection",
      "RecipientScope": "PAYIN",
      "IndividualRecipient": {
          "FirstName": "Alex",
          "LastName": "Smith",
          "Address": {
              "AddressLine1": "10 Kingsway",
              "City": "London",
              "PostalCode": "WC2B 6LH",
              "Country": "GB"
          }
      },
      "LocalBankTransfer": {
          "GBP": {
              "SortCode": "200000",
              "AccountNumber": "55779911"
          }
      }
  }
  ```
</RequestExample>
