Payer Name Verification (PNV)

Confirming a link between the payer and the bank account details provided when creating DDIs (Mandates)

Payer Name Verification is an service closely related to and based on the UK Confirmation of Payee system. It is available to any Direct Debit Collections client to be used when capturing a Direct Debit Instruction (Mandate) from a payer to establish a link between the Payer and the bank account provided. The payer name check API provides a match or alternate no-match/close match/mismatch indicators that should be integrated into your Direct Debit Instruction capture Customer Experience (CX)

An example DDI Capture screen incorporating Payer Name Verification.

Updated signup experience recommendations are available in the guide Direct Debit Collections DDI setup CX - A guide for Sponsored Customers available from your Modulr account or implementation contact. When updating your customer experience (CX) please be aware that the overall journey and flow must be approved by Modulr as you Sponsoring PSP; this is done by submitting draft or final process to your account and/or implementation contacts for review.

📘

How do I access Payer Name Verification?

PNV was introduced for all Direct Debit Collections clients on 1st June 2025. New clients after this date will automatically have access. Existing clients will need a small contract amend to access the service, this is available via your Modulr account manager.

Important Information

Use of the service

The service must only be used with the sole intention of creating a Direct Debit Instruction for future Direct Debits to be collected into a Modulr account. The use of the service for any other purpose is forbidden and is a violation of the terms and conditions of the service, usage of the service in relation to volumes Direct Debit Instructions is actively monitored by Modulr & scheme.

Recording of PNV check ID

Each call to the Payer Name Check API returns a unique ID, the endpoint is not idempotent and multiple checks with the same details will return an ID for each check. It is important that you store this ID within your system as evidence of the check, as it can be used in any future Direct Debit Indemnity Claim (DDIC) to confirm a check took place & the result by passing this ID to Modulr in a support enquiry.

Interpreting Payer Name Verification responses

The table below illustrates the

result.codeHTTP Status CodeResult DescriptionRecommended Action
MATCHED201The account name and account type match the name and accountType provided.You can proceed with the creation of the Direct Debit Instruction
NOT_MATCHED201The account name and account type do not match the name and accountType provided.The account details should be checked carefully, and you are advised not to proceed with the creation of the Direct Debit instruction. The Payer should edit the details if possible, and submit another account name check request before proceeding.
CLOSE_MATCH201The name provided is similar to the account name. The actual account name is provided in result.name.The account details were similar but not wholly correct, you should update the DDI with the result provided or ask the Payer to amend & try again.
BUSINESS_ACCOUNT_NAME_MATCHED201The account name matches the name provided but the account is a business account, not a personal account.The account details were matched but indicated as the wrong type of account. You should confirm with the Payer before proceeding with the DDI
PERSONAL_ACCOUNT_NAME_MATCHED201The account name matches the name provided but the account is a personal account, not a business account.The account details were matched but indicated as the wrong type of account. You should confirm with the Payer before proceeding with the DDI
BUSINESS_ACCOUNT_CLOSE_MATCH201The name provided is similar to the account name and the account is a business account, not a personal account. The actual account name is provided in result.name.The account details were similar but not wholly correct, you should update the DDI with the result provided or ask the Payer to amend & try again.
PERSONAL_ACCOUNT_CLOSE_MATCH201The name provided is similar to the account name and the account is a personal account, not a business account. The actual account name is provided in result.name.The account details were matched but indicated as the wrong type of account. You should confirm with the Payer & update to actual name before proceeding with the DDI
ACCOUNT_DOES_NOT_EXIST201The account does not exist.Account does not exist at the Paying Bank. You should not proceed with creation of the DDI as this will result in a Bank Rejected AUDDIS advice.
ACCOUNT_NOT_SUPPORTED201The account does not support account name check requests.You should check the account details carefully, potentially using other tools such as Open Banking AIS and proceed only if you are satisfied that they are correct
ACCOUNT_SWITCHED201The account has been switched using the Current Account Switching Service.You should ideally not proceed & ask the Payer the new account details if possible. Under CASS, DDIs to the old account details will be redirected, but this involves additional messages from the old paying bank that may delay creation of the DDI (Mandate) on the new account
WRONG_PARTICIPANT500The account name check cannot be completed for the account number and sort code provided.You should check the account details carefully, potentially using other tools such as Open Banking AIS and proceed only if you are satisfied that they are correct
NO_RESPONSE201The bank did not respond to the account name check request. Try again later.You should check the account details carefully, potentially using other tools such as Open Banking AIS and proceed only if you are satisfied that they are correct
NOT_ENROLLED201The account name check could not be completed as the bank does not accept account name check requests.You should check the account details carefully, potentially using other tools such as Open Banking AIS and proceed only if you are satisfied that they are correct

Testing your integration within the sandbox environment

  • You must always use sort code 000000
  • We will always return a MATCHED result

To test other scenarios as listed below, you can provide the desired result in the secondaryAccountId field prefixed with a percent sign. For some results, we will append "z" to the end of the name string.

{
  "accountNumber": "12345678",
  "accountType": "PERSONAL",
  "name": "Joe Bloggs",
  "paymentAccountId": "A123AAA4",
  "sortCode": "000000"
}
{
  "id": "C12001569Z",
  "result": {
    "code": "MATCH"
  }
}
{
  "accountNumber": "12345678",
  "accountType": "PERSONAL",
  "name": "Joe Bloggs",
  "paymentAccountId": "A123AAA4",
  "sortCode": "000000",
  "secondaryAccountId": "%CLOSE_MATCH"
}
{
  "id": "C12001569Z",
  "result": {
    "code": "CLOSE_MATCH",
    "name": "Joseph Bloggsz"
  }
}