Validate an account name (CoP/VoP)

Validate a counterparty's account name against their account details when adding a counterparty or making a transfer to a new or existing counterparty.

Caution

The CoP check is not a complete fraud-prevention tool, and it does not guarantee the person is who they claim to be. It only confirms that the name and account details your provide match the bank's records.

Even if the counterparty's details match, you should still exercise due caution when transferring funds.

Availability & Sandbox behaviour
  • This feature is only available to businesses in the supported regions. If you would like to make use of it, please contact Revolut API Support.
  • In Sandbox, this feature is only available for testing. While incomplete or invalid requests will return production-like error responses, complete and valid requests in Sandbox do not undergo real validation and will always return cannot_be_checked.

The validation relies on different underlying services, depending on the recipient's payment scheme (region and currency). These factors determine which fields you must provide and what response you get.

Request

Counterparty account details

Request body
Body any

The account number of the counterparty.

The sort code of the counterparty's account.

The name of the business counterparty.

Required when the account type is business (individual_name is not specified).

The name of the individual counterparty, split into first name and last name.

Required when the account type is personal (company_name isn't specified).

The first name of the recipient.

The last name of the recipient.

Response

Account name validation result

Note
  • The actual results returned in the response come from the CoP services, not from Revolut. The Business API passes them on as received.

    Because of this, the descriptions below should be treated as an approximation rather than complete documentation.

  • The responses differ depending on the CoP service, even when the schema appears the same. Make sure that you refer to the appropriate response variant.

Response body
Body any

Possible values: [matched, close_match, not_matched, cannot_be_checked, temporarily_unavailable]

The result of the check.

Possible values for UK:

  • matched: The name and account type match the provided details.

  • close_match: The name and/or account type are similar to the provided values:

    • The name is a match, but the account type is incorrect. For example, an individual recipient's name was provided under company_name. The actual account type is returned.
    • The name is similar to the provided values. Account type is correct. The actual name is returned.
    • The name is similar to the provided values, and the account type is incorrect. The actual values are returned.

    The actual values are returned.

  • not_matched: The name and account type don't match the provided values.

  • cannot_be_checked: The check cannot be performed and retries won't help. For example, the recipient's bank doesn't support CoP.

  • temporarily_unavailable: The check cannot be performed right now. For example, the recipient's bank didn't respond to our request. You should retry the request later.

A code which explains why a given result was returned, and the service that returned it. For example, it might happen that the details you provided match the account details, but you specified the counterparty as an individual, and the account type is business.

Possible values: [uk_cop, eu_cop, ro_cop, au_cop]

The reason type. Determines the service used for the validation that returned the reason code. For UK, the values is: uk_cop.

Possible values: [close_match, individual_account_name_matched, company_account_name_matched, individual_account_close_match, company_account_close_match, not_matched, account_does_not_exist, account_switched, cannot_be_checked]

The reason code. Possible values for UK:

  • close_match: The provided name is similar to the account name, the account type is correct. The actual name is returned.
  • individual_account_name_matched: The names match but the counterparty is an individual, not a business.
  • company_account_name_matched: The names match but the counterparty is a business, not an individual.
  • individual_account_close_match: The provided name is similar to the account name, and the account type is incorrect – the counterparty is an individual, not a business. The actual name is returned.
  • company_account_close_match: The provided name is similar to the account name, and the account type is incorrect - the counterparty is a business, not an individual. The actual name is returned.
  • not_matched: The account details don't match the provided values.
  • account_does_not_exist: The account does not exist.
  • account_switched: The account has been switched using the Current Account Switching Service. Please contact the recipient for updated account details.
  • cannot_be_checked: The account cannot be checked.

The name of the recipient when the account type is business. Provided only if individual_name is not specified.

When the name is a close match, the actual full name is returned, otherwise, the name you provided is returned.

The name of the recipient when the account type is personal. Provided only if company_name is not specified.

When the name is a close match, the actual first and last names are returned in full.

The first name of the recipient.

The last name of the recipient.

Was this page helpful?