Skip to main content

Confirmation of Payee (CoP)

Confirmation of Payee (CoP) is a payee checking service that helps prevent UK domestic payments from being sent to the wrong account. It does this by making sure the payee account details provided match the details held by their provider.

You can access Confirmation of Payee in two ways:

  • Through our API if you want to embed Confirmation of Payee into your platform
  • Through our app

How does it work?

When a payee's account details (name, account number and sort code) are provided, we check them against the receiving firm’s records.

After the check is performed, you'll get one of the following results:

  • Match: The details provided match the details at the receiving firm
  • Close match: The name is similar but not an exact match, or the account type is incorrect - we'll suggest the correct details
  • No match: The details provided do not match the receiving firm’s records, the account does not support CoP or the account has moved to another firm
  • Account not found: We couldn't find a valid account matching those details
  • Verification unavailable: We couldn't perform verification at this time
caution

Payments made to payees where you have not received a 'match' carry the risk of funds being sent to the wrong account

Performing a CoP check

Making a CoP request

You need the following details to perform a CoP check.

  • Payee name: name - this could be an individual, two named individuals on a joint account or a business name
  • Account type: account-classification - set to either to personal or business
  • Sort code: bank-id
  • Account number: account-number
  • Secondary reference: secondary_reference_data
info

secondary reference is extra information needed to identify certain accounts. This could be, for example, a building society roll number or a credit card number. This is an optional field and will only need to be provided if required by the account provider.

Here's an example request:

curl 'https://..' \
-H 'Content-Type: application/json' \
-H "Authorization: GriffinAPIKey $GRIFFIN_API_KEY" \
--data '
{
"account": {
"account-number": "12345678",
"bank-id": "123456",
"account-classification": "personal",
"name": "John Smith",
"secondary_reference_data": "12345678910"
},
},

Receiving a Match

Match result means that all the details provided - the name, account number, account type (personal or business), and, if relevant, secondary reference - match what the receiving firm has on record.

When this happens, we mark the account details as verified.

tip

When showing a Match result to your customers, make sure to provide visual confirmation that the details are verified - such as a tick ✅

Here's an example Match response:

200
{
"cop-request-url": "https://...",
"account": {
"account-number": "12345678",
"bank-id": "123456",
"account-classification": "personal",
"name": "John Smith",
"secondary_reference_data": "12345678910",
},
"cop-response": {
"status": "verified",
"result": "match",
}
}

Receiving a Close Match

Close Match result happens when the account number (and secondary reference, if needed) matches the same details held at the receiving firm, but we find a discrepancy:

A discrepancy in payee name:

  • close-match-name - the name is slightly different (like Jamie Lud instead of Jamie Lu)

A discrepancy in both payee name and account type:

  • close-match-name-business-personal - the name is slightly different and a business account was provided when it's actually a personal account
  • close-match-name-personal-business - the name is slightly different and a personal account was provided when it's actually a business account

Only a discrepancy in account type:

  • match-name-business-personal - the name is a match but a business account was provided when it's actually a personal account
  • match-name-personal-business - the name is a match but a personal account was provided when it's actually a business account

When you get a Close Match, we'll suggest the correct account details.

tip

When showing a Close Match result to your customers make sure to:

Clearly explain the reason why it's a Close Match and ask them to review the details again.

Show the suggested correct details, with options to:

  • Accept and proceed with the suggested details or edit the details to match the suggested details
  • Accept and proceed with the details that did not match
  • Cancel the process

If they want to proceed with details that do not match, clearly suggest that they check the details and warn them about the risks of funds ending up in the wrong account. We also recommend that you show this warning every time a customer wants to make a payment to this payee.

caution

The CoP check status will remain unverified until you run another check with the correct details.

Here's an example Close Match response:

200
{
"cop-request-url": "https://...",
"account": {
"account-number": "12345678",
"bank-id": "123456",
"account-classification": "personal",
"name": "John Smith",
"secondary_reference_data": "12345678910",
},
"cop-response": {
"status": "unverified",
"result": "close-match",
"reason": "close-match-name",
"suggested-name": "Jane Smith",
}
}

Receiving a No Match

No Match result means the details you provided did not match the records by the payee’s provider. This can happen for several reasons:

no-match-name - the name provided doesn't match the name on the identified account.

no-match-secondary-ref - there's been an issue with the secondary reference - either it wasn't provided, or it doesn't match the one on the identified account.

account-not-supported - the account doesn't support Confirmation of Payee because:

  • The receiving firm isn't supported
  • The account holder has opted out
  • This specific account isn't supported

account-switched - the account has been moved to a different firm.

When you get a No Match, the CoP check status will be unverified.

tip

When showing a No Match result to your customers make sure to:

Clearly explain to them that the details provided did not match the details they were checked against, the reason why and that they need to review the details again.

Provide the following options:

  • Accept and proceed with the details that did not match
  • Edit the details
  • Cancel the process

If they want to proceed with details that do not match, clearly suggest that they check the details and warn them about the risks of funds ending up in the wrong account. We also recommend that you show this warning every time a customer wants to make a payment to this payee.

Here's an example of a No Match response

200
{
"cop-request-url": "https://...",
"account": {
"account-number": "12345678",
"bank-id": "123456",
"account-classification": "personal",
"name": "John Smith",
"secondary_reference_data": "12345678910"
},
"cop-response": {
"status": "unverified",
"result": "no-match",
"reason": "no-match-name",
}
}

Handling an Account Not Found error

Account Not Found happens when we can't find an account and/or receiving firm based on the details you provided.

In this case, you'll get a 400 error response with the code account-not-found.

tip

When showing an Account Not Found error to your customers make sure to:

Clearly explain to them that an account was not found and that they need to review the details.

Provide them with the following options:

  • Edit the details
  • Cancel the process
caution

The user should not be able to proceed with creating a payee until a valid CoP check is completed.

Here's an example response:

400
{
"title": "Account not found",
"detail": "Could not find an account for those details",
"code": "account-not-found",
}

Handling a Verification Unavailable error

Verification Unavailable means we can't check the details right now due to a service outage.

When this happens, you'll get a 503 error response with the code verification-unavailable.

tip

When showing a Verification Unavailable error to your customers make sure to:

Clearly explain to them that verification is not possible at this time and that they need to try again later.

Provide them with the following options:

  • Edit the details
  • Cancel the process
caution

The user should not be able to proceed with creating a payee until a valid CoP check is completed.

Here's an example response:

503
{
"title": "Verification unavailable",
"detail": "Verification is currently not possible, please retry later",
"code": "verification-unavailable",
}

Next up. find out how to create a payee.