ClearBank

Confirmation of Payee (CoP)

Overview

Confirmation of Payee (CoP) is a new way of giving you greater assurance that you are sending payments to the intended beneficiary. It not only helps in preventing accidental, misdirected payments but also reduces the risk associated with Authorised Push Payment (APP) fraud. CoP is a scheme agnostic, peer-to-peer messaging service between accredited participants and sits completely outside of the payment journey i.e., a CoP check can be made prior to setting up a payee or making a payment.

ClearBank is now a CoP participant and will provide this account name checking service to those customers who use ClearBank sort codes linked to our bank code.

CoP Receive and Respond (Inbound)

Responding to a CoP request from an external participant requires us to complete a fuzzy matching check on the account in question. To do so successfully, we need the following account information:

  • The name of the legal owner of the account
  • Nature of funds held in the account i.e., Personal or Business
  • Operating nature of the account i.e., Single or Joint

For your real and virtual accounts to be CoP-ready, you will need to use the following PATCH endpoints to update your accounts:

If you have chosen to use the ClearBank CoP service, all your real and virtual accounts will be opted in by default, at the time of account creation.

For a real or virtual account to be opted out from using this service, you can use the following PUT endpoints:

  • PUT/ v1/Cop/opt/accounts/{accountId}
  • PUT/ v1/Cop/opt/accounts/{accountId}/virtual/{VirtualAccountId}

Further information about opting out from using our CoP service along with your responsibilities can be found in our Confirmation of Payee (CoP) Operating Guide. This document can be found in the Reference Documents section in the Knowledge Centre.

Update an account to opt out from using the ClearBank CoP service

put/v1/Cop/opt/accounts/{accountId}

This endpoint is used to update an account to either opt out from using our Confirmation of Payee (CoP) service or remain opted in.

You must provide a reason why you are opting an account out from using this service. However, you do not need to provide a reason to opt an account back in.

Parameters

  • accountId string, path, Required

    The unique identifier for the account. This can be retrieved from GET/v2/Accounts.

Request Payload (application/json)

  • optOut boolean, Required

    Set to false by default. To opt out, set the value of this property to true.

  • optOutReason string

    Reason for opting out from using our CoP service. Mandatory only when the value for optOut is set to true.

    Maximum length
    200

request

{
"optOut": true,
"optOutReason": "string"
}
Code copied

Response (application/json)

  • 204 No Content
  • 400 Bad Request
  • 404 Not Found
  • 500 Server Error

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Update a virtual account to opt out from using the ClearBank CoP service

put/v1/Cop/opt/accounts/{accountId}/virtual/{virtualAccountId}

This endpoint is used to update a virtual account to either opt out from using our Confirmation of Payee (CoP) service or remain opted in.

You must provide a reason why you are opting a virtual account out from using this service. However, you do not need to provide a reason to opt an account back in.

Parameters

  • accountId string, path, Required

    The unique identifier for the account. This can be retrieved from GET/v2/Accounts.

  • virtualAccountId string, path, Required

    The unique identifier for the virtual account. This can be retrieved from GET /v2/Accounts/{accountId}/Virtual.

Request Payload (application/json)

  • optOut boolean, Required

    Set to false by default. To opt out, set the value of this property to true.

  • optOutReason string

    Reason for opting out from using our CoP service. Mandatory only when the value for optOut is set to true.

    Maximum length
    200

request

{
"optOut": true,
"optOutReason": "string"
}
Code copied

Response (application/json)

  • 204 No Content
  • 400 Bad Request
  • 404 Not Found
  • 500 Server Error

Bad Request

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

Not Found

{
"type": "string",
"title": "string",
"status": 0,
"detail": "string",
"instance": "string",
"property1": null,
"property2": null
}
Code copied

CoP Send (Outbound)

Sending a CoP request to an external participant requires us to pass the request to the participant so that they can complete a fuzzy matching check on the account in question. To be able to send a CoP (Outbound) request to an external participant, you will need to use the following POST endpoint so that the exact name registered with the payee’s account can be confirmed:

  • POST /open-banking/outbound/v1/name-verification

Once confirmed, we pass the result of the matching check back to you which you can then expose to your customer. Pay.UK have provided a messaging standard for you to follow. Further information about the messaging standard along with your responsibilities can be found in our Confirmation of Payee (CoP) Operating Guide. This document can be found in the Reference Documents section in the Knowledge Centre.

Confirm the exact name registered with the payee’s account

post/open-banking/outbound/v1/name-verification

This endpoint is used to confirm the exact name registered with the payee’s account.

Parameters

    Request Payload (application/json)

    • SchemeName string, Required

      Indicates the sort code and account number associated with the payee’s account. The value should always be: SortCodeAccountNumber.

    • LegalOwnerType string, Required

      Nature of funds held in the account. Valid options are: Personal, Business.

    • Identification string, Required

      Payee's sort code and account number, used by an Account Servicing Payment Service Provider (ASPSP) to identify the account. In case the account number contains less than 8-digits, it can be padded with preceding zeros to make the length up to 8. The format should always be SortCodeAccountNumber (e.g., “04040412345678”).

    • OwnerName string, Required

      The name used to identify the owner of the account in comma-delimited format. This consists of three parts separated by a comma in a structured or unstructured format. For personal accounts in the structured format: the first part will be the salutation, the second part will be the forename and the third part will be the surname (e.g., “Mr John Smith” will be represented as “Mr, John, Smith”). Only the third part will be used for personal accounts in the unstructured format (e.g., “Mr John Smith” will be represented as “,,Mr John Smith”). Only the third part will be used for business accounts (e.g., “ClearBank Ltd” will be represented as “,,ClearBank Ltd”).

      Minimum length
      1
      Maximum length
      140
    • SecondaryIdentification string

      Payment reference information as provided by the payer. If provided, this information may be used by the payee’s ASPSP to identify the account.

      Minimum length
      0
      Maximum length
      140
    • EndToEndIdentification string

      A unique value which can be used to identify the CoP request and then used in any subsequent payment initiations to link them to this CoP request.

      Minimum length
      0
      Maximum length
      140

    request

    {
    "SchemeName": "string",
    "LegalOwnerType": "string",
    "Identification": "string",
    "OwnerName": "string",
    "SecondaryIdentification": "string",
    "EndToEndIdentification": "string"
    }
    Code copied

    Response (application/json)

    • 200 Success
    • 400 Bad Request
    • 403 Forbidden
    • 422 Client Error

    Success

    {
    "Data": {
    "VerificationReport": {
    "Matched": true,
    "Name": "string",
    "ReasonCode": "string",
    "ReasonCodeDescription": "string",
    "MatchedBank": "string"
    }
    }
    }
    Code copied

    Bad Request

    {
    "Error": {
    "Reason": "string"
    }
    }
    Code copied