CoP/PNV/VoP

PayPoint provides account holder verification services to help organisations validate that the name provided for an account matches the name held by the customer’s bank.

Confirmation of Payee (CoP) and Payer Name Verification (PVN) supports UK account verification using the customer’s Name, Sort Code and Account Number.

Verification of Payee (VoP) extends account name verification to supported international accounts, using the customer’s Name and International Bank Account Number (IBAN).

Both services enable clients to verify account holders details during customer onboarding, when setting up or amending payment details, or before initiating payments. 

PayPoint provides APIs or portal access for: 

  • Real-time single account verification

  • High-volume batch account verification

  • CoP/PVN checks for UK bank accounts

  • VoP checks for supported international bank accounts

What Account Holder Verification Solves

Organisations collecting bank account details need confidence that the account information supplied belongs to the intended customer or payee/payer. Account holder verification provides an additional validation step by checking the supplied name against the account information held by the relevant bank.

PayPoint supports this through CoP/PNV for UK accounts and VoP for supported international accounts.

How CoP/PNV Works

CoP/PVN verifies the account holder’s name by querying the customer’s bank or building society. The responding institution makes the decision and returns a match result.

Useful Verification Behaviours

  • For personal accounts, the exact registered name must be provided.

  • For joint accounts, either name on the account may be supplied (order does not matter).

  • For business accounts, the registered company name or trading name must be provided.

  • Customers may opt out of CoP/PVN with their bank — in these cases, no positive/negative match will be returned.

All matching logic is performed by the customer’s own bank, not PayPoint.

Process Flow

The typical verification flow involves:

  1. Client submits account holder's name + sort code + account number

  2. PayPoint routes the request to the responding bank

  3. Bank validates name and returns a match result

  4. Client decides whether to proceed, ask the user to correct the name, or block the transaction

CoP Process Flow

API Access & Documentation

PayPoint provides separate CoP/PVN and VoP APIs for account holder verification.

  • CoP/PVN uses the customer’s Name, Sort Code and Account Number for UK account checks.

  • VoP uses the customer’s Name and IBAN for supported international account checks.

Both services support single and batch verification requests.

Full endpoint specifications are provided in the API Documentation

BACK TO TOP   ⇧

FAQS

What are the difference between single and batch requests?

Singleton Requests

  • Fully synchronous

  • Typical response time: ~1 second (dependent on responding bank)

  • CoP/PVN scheme rules require a 3-second wait before retrying once

  • PayPoint timeout ≈ 7 seconds

  • Clients may set a shorter local timeout if desired

Batch Requests

  • Submitted as batch jobs

  • PayPoint serialises requests internally

  • Results are available once all individual checks complete

  • Client polls the batch results endpoint

  • Ideal for onboarding or nightly cleansing

What are the Rate limits?

Sandbox

The sandbox connects to the live CoP network, but is rate‑limited:

  • 10 requests per 60 seconds

  • 100 requests per day

Limits apply per x‑api‑key, shared across team members. Performance may be slower than production due to reduced scaling and cold‑start effects.

Production

  • 10 TPS per client for single requests

  • No submission limit for batch uploads

  • Batch processing runs at 20 TPS

  • Maximum batch file size: 2.7 MB (≈ 10,000 accounts)

How can we do automated testing?

The sandbox returns live CoP/PVN results, which may include personal data. For automated testing, PayPoint provides a complete set of canned responses using the dummy sort code 00‑00‑00. These are listed below at: Test Bank Account & Response

These simulate all possible CoP/PVN match outcomes without touching real customer data.

How does name matching work?

Name matching is controlled entirely by the responding bank. While scheme rules define minimum expectations, banks may handle edge cases differently.

Banks cannot return “No Match” when:

  • First name and surname are reversed

  • Family name matches and the provided first name is a common variant (e.g., William/Bill, Elizabeth/Liz)

  • First name contains a single spelling error

  • Family name contains a single spelling error

Banks cannot return a “Full Match” unless:

  • Family name is an exact match

  • First character of the first name is correct

Banks may occasionally exceed these rules and return Full Match for slight deviations — behaviour varies by institution.

BACK TO TOP   ⇧

Test Bank Account Details & Responses

CoP/PVN

A set of dummy accounts is available under sort code 00‑00‑00, covering the full spectrum of CoP/PVN response codes. Using any valid live sort code will query real bank accounts and return genuine responses.

BankAccount - Accountype -- ResponseCode --- ShortDescription | StatusDescription

  • Any - Personal Or Business -- MATC --- Full Match | The account name provided is a match.

  • 11111111 - Personal -- ANNM --- No Match Found | The account name provided is not the same as the name held on the Account.

  • 11111112 - Personal -- MBAM --- Partial Match | The account name provided is not the same as the name held on the Account. It's a close match.

  • 11111113 - Personal -- BANM --- Full Match - Business Account not Personal | The account name provided is a match but the account is a Business Account not a Personal one.

  • 11111113 - Business -- MATC --- Full Match

  • 11111114 - Business -- PANM --- Full Match - Personal Account not Business | The account name provided is a match but the account is a Personal Account not a Business one.

  • 11111114 - Personal -- MATC --- Full Match

  • 11111115 - Personal -- BAMM --- Partial Match - Business Account not Personal | This is a Business Account not a Personal one. The account name provided is not the same, it's a close match.

  • 11111115 - Business -- MATC --- Full Match

  • 11111116 - Business -- PAMM --- Partial Match - Personal Account not Business | This is a Personal Account not a Business one. The account name provided is not the same, it's a close match.

  • 11111116 - Personal -- MATC --- Full Match

  • 11111117 - Personal -- AC01 --- Account Number Not Found | The account details supplied do not exist. Please check details with recipient.

  • 11111118 - Personal -- IVCR --- Reference Not Found | The secondary reference details supplied were not found. Please check details with recipient.

  • 11111119 - Personal -- ACNS --- Account Does Not Support CoP Check | Unable to check the name as the type of account is not supported for CoP checks.

  • 11111120 - Personal -- OPTO --- Match Unavailable - Customer Opted Out | Unable to check the name as the account holder has opted out of the CoP scheme.

  • 11111121 - Personal -- CASS --- Match Unavailable - Account Switched using CASS | The Account has been switched, please contact the recipient for updated Account details.

  • 11111122 - Personal -- SCNS --- Sort Code Not Found Unable to check the name. | The request has been routed to a responder who does not own the sort code. This would only normally happen due to an issue with the CoP directory, not anything in the request message. This is also the message we return if we cannot find the sort code in the directory to route the request to the right responder.

  • 11111123 - Personal -- SECMISS --- Secondary Reference Missing | The account details provided require a Secondary Reference value before name can be checked. Please check with recipient. ( Note: An empty string or no Secondary Reference needs to be provided, to get a 'Secondary Reference Missing' response.)

  • 11111123 - Personal -- MATC --- Full Match | Note: Any value needs to be provided as the secondary reference to get a Full Match

  • 11111124 - Personal -- FOURHUN --- 400 Error Occurred | Unable to check the name, try again later.

  • 11111125 - Personal -- HTTPERR --- HTTP Error occurred Unable to check the name, try again later.

  • Not for Testing - Personal -- TOOMANY --- Too Many Requests | Too Many Requests to Partner Banks - Please try again later

  • 11111127 - Personal -- NOROUTE --- Unable to find a Participant Bank | Unable to find a Participant Bank to handle this request

VoP

IBAN - CustomerName -- Name Validation Response

  • DE93999999990000000001 - VoP Test Payee -- MTCH: full match.

  • DE66999999990000000002 - VoP Test Payee -- CMTC: close match; returned name is 'VoP Test Payee Ltd.'

  • DE39999999990000000003 - VoP Test Payee -- NMTC`: no match

  • DE12999999990000000004 - VoP Test Payee -- NOAP: verification unavailable.

 IBAN - Identification Type -- Identification Value --- Identifier Validation Response

  • DE93999999990000000001 - LEI -- TEST0000000000000172 --- MTCH: full match.

  • DE66999999990000000002 - LEI -- TEST0000000000000172 --- Invalid CMTC: technical failure, not an identity close match.

  • DE39999999990000000003 - LEI -- TEST0000000000000172 --- NMTC: no match.

  • DE12999999990000000004 - LEI -- TEST0000000000000172 --- NOAP: verification unavailable.

 IBAN - Identification Type -- Identification Value --- Identifier Validation Response

  • DE93999999990000000001 - BIC -- TESTDEFFXXX --- MTCH: full match.

  • DE66999999990000000002 - BIC -- TESTDEFFXXX --- Invalid CMTC: technical failure, not an identity close match.

  • DE39999999990000000003 - BIC -- TESTDEFFXXX --- NMTC: no match.

  • DE12999999990000000004 - BIC -- TESTDEFFXXX --- NOAP: verification unavailable.

Where Identification Type is any of the following: BANK, CBID, CHID, CINC, COID, CUST, DUNS, EMPL, GS1G, SREN, SRET, TXID, BDID and BOID, then:

 IBAN - Identification Issuer -- Identifier Validation Response

  • DE93999999990000000001 - 0001234567 -- MTCH: full match.

  • DE66999999990000000002 - 0001234567 -- Invalid CMTC: technical failure, not an identity close match.

  • DE39999999990000000003 - 0001234567 -- NMTC: no match.

  • DE12999999990000000004 - 0001234567 -- NOAP: verification unavailable.