Account Holder Verification

📘

This page documents version 2 of the endpoint. Refer to Account Holder Verification (v1) for version 1, including a guide to migrate to version 2.

The Account Holder Verification (AHV) endpoint allows you to verify an account holder's identity before initiating a payment.

This helps reduce fraud and prevents payments from being misdirected, ensuring that payments are sent to the correct recipient or debited from the correct payer account before processing.

Supported verification services

AHV supports the following verification services depending on the payment method / scheme:

  • Confirmation of Payee (CoP - UK): used for GBP payments via Faster Payments
  • Verification of Payee (VoP - EU): used for EUR payments via SEPA (SCT / SCT Inst / SDD)
  • Confirmation of Payee (CoP - AU): used for AUD payments via the Australian scheme (BSB + Account Number)

How it works

After you submit an AHV request, we automatically route the request to the correct scheme (VoP or CoP) based on the verificationAccount details.

You can receive the verification result via:

  • the Webhook service (event type: AccountHolderVerification ), or
  • by calling the AHV GET endpoint.

The result will indicate whether the provided details return Match, Close match, No match, or Error. See the request example and response example for implementation details. The response may also include a reasonCode and descriptions (depending on scheme and outcome).

Request Rules

When making a request, the following rules apply:

  • verificationName must be provided
  • verificationAccount must be provided and must include:
    • account: IBAN (for VoP) or local account number (for CoP UK/AU)
    • financialInstitution:
      • optional BIC (for VoP) or
      • Sort Code (for CoP UK) or
      • **BSB (for CoP AU)
    • country: country code of the account (recommended; required where it cannot be derived)
  • verificationType
    • Required for CoP requests: must be "Personal" or "Business"
    • Not required for VoP requests

How the verification type is determined from the payload

There is no explicit field in the request to select CoP UK, VoP EU or CoP AU. Instead, the verification type is automatically inferred from the contents of the request:

Verification service applied

Country Code

account Format

financialInstitution Format

Notes

CoP (UK)

GB

GB Account Number

Sort Code

For GBP payments via Faster Payments

VoP (EU)

SEPA country codes (e.g. DE, PT, NL) / optional

IBAN

Optional BIC / empty

For EUR payments via SEPA Credit Transfer, SEPA Instant, SEPA Direct Debit.

Note: A GB-IBAN is also always treated as VoP (not CoP).

CoP (AU)

AU

AU Account Number

BSB

For AUD via Australian scheme. Simulator uses BSB + accountNumber.

Important notes:

  • IBANs will always be checked using the VoP service, even if they are GB IBANs
  • To trigger a request via CoP UK, you must specify both an account number and sort code
  • Invalid or mixed combinations will result in a validation error

Reason Codes (CoP Only)

The following reason codes apply only to Confirmation of Payee (CoP) requests. They are defined by the UK CoP scheme and provide additional context on the verification result, indicating the level of match or any issues identified during the verification process.

Note: VoP (Verification of Payee for SEPA) does not provide the same set of granular reason codes as CoP.

Reason CodeCode DescriptionDetailed DescriptionAccount Name Passed Back
ANNMAccount Name does Not MatchThe CoP Responder has performed the matching and confirms it is not a matchNo
MBAMThere may be a match on the Account NameThe CoP Responder has performed the matching and it is a close matchYes
BANMBusiness account, name matchesThe CoP Requester indicated that the Payer intends to pay a personal account, but the actual account is a business account and the name matchesNo
PANMPersonal account, name matchesThe CoP Requester indicated that the Payer intends to pay a business account, but the actual account is a personal account and the name matchesNo
BAMMBusiness account, name may be a matchThe CoP Requester indicated that the Payer intends to pay a personal account, but the actual account is a business account and the name is a close matchYes
PAMMPersonal account, name may be a matchThe CoP Requester indicated that the Payer intends to pay a business account, but the actual account is a personal account and the name is a close matchYes
AC01Incorrect Account NumberAccount does not exist in the CoP Responder's booksNo
IVCRInvalid Customer ReferenceThe CoP Responder was unable to locate the customer account based on the secondary reference data contained within the SecondaryIdentification fieldNo
ACNSAccount type Not Supported for CoPAccount not supported for CoP by the CoP ResponderNo
OPTOOpted out of CoP SchemePayee has been opted out of the CoP service by the CoP ResponderNo
CASSAccount has been switchedThe Payee's account has been switched using the Current Account Switch Service (CASS)No
SCNSSort code not supported at endpointThe CoP Responder has incorrectly received a CoP request for a sort code that does not belong to themNo
Error400 Bad requestRequest has malformed, missing or non-compliant JSON body or URL parametersNo
Error401 UnauthorisedAuthorization header missing or invalid tokenNo
Error403 ForbiddenToken has incorrect scope, or a security policy was violated, used when a CoP Requester tries to access a resource that it does not have permission to access.No
Error404 Not FoundCoP API is not supported by the Payee ASPSPNo
Error405 Method not allowedThe CoP Requester tried to access the resource with a method that is not supportedNo
Error406 Not acceptableThe request contained an accept header that requested a content-type other than application/JSON and a character set other than UTF-8No
Error429 Too Many RequestsThe CoP Responder should include a Retry-After header in the response indicating how long the CoP Requester must wait before retrying the operationNo
Error500 Internal server errorSomething went wrong on the API gateway or micro-serviceNo
Error503 Service UnavailableThe CoP Responder’s service is down for maintenance. The CoP Responder should include a Retry-After header in the response indicating how long the CoP Requester must wait before retrying the operationNo