GoCardlessDeveloper Docs
Create a sandbox account

Bank Account Holder Verification#

View as Markdown

As part of our compliance process, we perform bank account holder verification checks to reduce the risk of misdirected payments. These checks are mandatory and should be run for every outbound payment.

While the checks themselves cannot be skipped, you remain in control of whether an outbound payment proceeds. Payments with negative verification results can still be submitted, as long as you explicitly approve them (see the approval process for more details). Our role is to provide enough information for you to make an informed decision in these scenarios — whether to proceed or cancel.

This guide explains the different types of bank account holder verification and how to interpret the results.

Confirmation of Payee (CoP)#

Confirmation of Payee (CoP) is the bank account holder verification check used for UK domestic payments. It helps confirm that the recipient's name matches their bank account details, providing greater confidence that payments are sent to the intended recipient. For more information about the service, refer to Pay.UK.

How to understand the verification results#

Once the verification checks are complete, the results are shown on the approval screen. If you are building your own integration, you can also access these results in the outbound payment response, under the verifications object. Within this object, the recipient_bank_account_holder_verification field indicates whether the recipient's account holder name matches their bank account details. It returns one of the following values:

  1. full_match - the account name exactly matches the details provided.
  2. partial_match - the account name is similar but does not match to the details provided.
  3. no_match - the provided name does not match the account details.
  4. unable_to_match - the verification could not be performed due to recipient bank issues or technical issues.

If the result is a partial match, we will also provide the actual_account_name so you can decide if you need to correct the recipient's bank account details.

Performing verification checks before initiating a payment#

If you want to retrieve bank account holder verification results before creating an outbound payment, you can run the verification check in advance. Running these preliminary checks can reduce the time required to initiate the payment.

Use Create a Bank Account Holder Verification to initiate the check, then poll for the result using Get a Bank Account Holder Verification.

Once the verification is complete, you can include it in the links object when creating an outbound payment.

Verifications for pooled accounts#

A pooled account is a single bank account that holds funds on behalf of multiple individuals. Because the sort code and account number alone identify the pooled account itself rather than any individual member within it, an additional account reference (or "roll number") is required to identify the correct sub-account.

If the destination account is a pooled account, pass the roll number using the reference attribute when you call Create a Bank Account Holder Verification. If you don't provide a roll number when verifying a pooled account, the verification result will return unable_to_match.

Creating an outbound payment#

When you later create an outbound payment using a verification that included a reference, you must supply the same reference on the payment.

This is required because:

  • If a reference was needed to identify the individual for the verification check, the same reference is needed to route the payment to that individual within the pooled account.
  • Matching references confirm that the verified account holder and the payment destination are the same person.

If the reference on the outbound payment doesn't match the reference used on the verification, the API returns a mismatch error and the payment isn't created.

What's next?#