Skip to main content
The UK Confirmation of Payee (CoP) scheme enables real-time verification of account details before making payments. This synchronous verification service validates account numbers, sort codes, and account holder names against the receiving bank’s records. Processing mode: synchronous

Verification capabilities

  • Account status: ACTIVE, NOT_FOUND, FORBIDDEN
  • Beneficiary name match status: FULL_MATCH, PARTIAL_MATCH, NO_MATCH
  • Optional beneficiary name disclosure (in cases of PARTIAL_MATCH)
  • Account type match status: MATCH or NO_MATCH
All banks participating in the UK Confirmation of Payee (CoP) scheme are supported.
country
string
required
Must be one of GB, GG, GI, IM, JE
creditorAccount.id.value
string
required
Account number in local format (8 digits)
creditorAccount.id.type
string
required
Must be ACCOUNT_NUMBER
creditorAgent.clearingSystemMemberId.memberId
string
required
Sort code (6 digits)
creditor.type
string
required
Account holder type. Must be one of:
  • INDIVIDUAL - Personal account
  • BUSINESS - Business account
creditor.name
string
required
Account holder name for matching

Scheme response codes

The CoP scheme returns specific response codes that indicate the verification outcome. These codes are mapped to high-level status fields.
schemeResponseCodeDescriptionaccountStatusnameMatchStatusaccountTypeMatchStatus
(none)Full matchACTIVEFULL_MATCHMATCH
UK_COP_ANNMNot a matchACTIVENO_MATCH
UK_COP_MBAMClose matchACTIVEPARTIAL_MATCHMATCH
UK_COP_BANMName matches, account type mismatch (expected personal, actual business)ACTIVEFULL_MATCHNO_MATCH
UK_COP_PANMName matches, account type mismatch (expected business, actual personal)ACTIVEFULL_MATCHNO_MATCH
UK_COP_BAMMClose match, account type mismatch (expected personal, actual business)ACTIVEPARTIAL_MATCHNO_MATCH
UK_COP_PAMMClose match, account type mismatch (expected business, actual personal)ACTIVEPARTIAL_MATCHNO_MATCH
UK_COP_AC01Account does not existNOT_FOUND
UK_COP_IVCRUnable to locate account based on the reference dataNOT_FOUND
UK_COP_ACNSAccount not supported for CoPFORBIDDEN
UK_COP_OPTOPayee has opted out of CoPFORBIDDEN
UK_COP_CASSAccount has been switched using the Current Account Switch ServiceFORBIDDEN
UK_COP_SCNSSort code does not belong to the responderFORBIDDEN
You can either use schemeResponseCode directly, or rely on the derived accountStatus, accountHolderName.matchStatus, and accountType.matchStatus fields in your integration.

Examples

Full match

When the name, account, and account type all match perfectly, no scheme response code is returned.
Request
{
  "details": {
    "country": "GB",
    "creditorAccount": {
      "id": {
        "value": "55065204",
        "type": "ACCOUNT_NUMBER"
      }
    },
    "creditorAgent": {
      "clearingSystemMemberId": {
        "memberId": "300000"
      }
    },
    "creditor": {
      "type": "INDIVIDUAL",
      "name": "Jonathan Smith"
    }
  }
}
Response
{
  "id": "5a0a2fc7-0946-4774-ae37-3cbefed212c0",
  "createdDate": "2026-08-22T15:18:51.801733Z",
  "updatedDate": "2026-08-22T15:18:51.801733Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "matchStatus": "FULL_MATCH"
    },
    "accountType": {
      "matchStatus": "MATCH"
    }
  }
}

Not a match

The provided name does not match the account holder name.
Request
{
  "details": {
    "country": "GB",
    "creditorAccount": {
      "id": {
        "value": "55065204",
        "type": "ACCOUNT_NUMBER"
      }
    },
    "creditorAgent": {
      "clearingSystemMemberId": {
        "memberId": "300000"
      }
    },
    "creditor": {
      "type": "INDIVIDUAL",
      "name": "John Smith"
    }
  }
}
Response
{
  "id": "0713a7e4-7051-490c-80ad-de45d63fb2ae",
  "createdDate": "2026-08-22T15:19:25.241335Z",
  "updatedDate": "2026-08-22T15:19:25.241335Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "matchStatus": "NO_MATCH"
    },
    "schemeResponseCode": "UK_COP_ANNM"
  }
}

Close match

The name is a close match and the account type is correct.
Request
{
  "details": {
    "country": "GB",
    "creditorAccount": {
      "id": {
        "value": "55065204",
        "type": "ACCOUNT_NUMBER"
      }
    },
    "creditorAgent": {
      "clearingSystemMemberId": {
        "memberId": "300000"
      }
    },
    "creditor": {
      "type": "INDIVIDUAL",
      "name": "Jonathan Smyth"
    }
  }
}
Response
{
  "id": "d472fb1a-6db7-4aa7-a0b3-091806a11de1",
  "createdDate": "2026-08-22T15:24:07.595352Z",
  "updatedDate": "2026-08-22T15:24:07.595352Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "verifiedName": "Jonathan Smith",
      "matchStatus": "PARTIAL_MATCH"
    },
    "accountType": {
      "matchStatus": "MATCH"
    },
    "schemeResponseCode": "UK_COP_MBAM"
  }
}

Name match, account type mismatch

The payer intended to pay a business account, but the actual account is a personal account. The name matches.
Request
{
  "details": {
    "country": "GB",
    "creditorAccount": {
      "id": {
        "value": "55065204",
        "type": "ACCOUNT_NUMBER"
      }
    },
    "creditorAgent": {
      "clearingSystemMemberId": {
        "memberId": "300000"
      }
    },
    "creditor": {
      "type": "BUSINESS",
      "name": "Jonathan Smith"
    }
  }
}
Response
{
  "id": "77e7a5a9-0f24-431a-af05-7a711f5b1d3b",
  "createdDate": "2026-08-22T15:29:38.905247Z",
  "updatedDate": "2026-08-22T15:29:38.905247Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "matchStatus": "FULL_MATCH"
    },
    "accountType": {
      "matchStatus": "NO_MATCH"
    },
    "schemeResponseCode": "UK_COP_PANM"
  }
}

Close match, account type mismatch

The payer intended to pay a business account, but the actual account is a personal account. The name is a close match.
Request
{
  "details": {
    "country": "GB",
    "creditorAccount": {
      "id": {
        "value": "55065204",
        "type": "ACCOUNT_NUMBER"
      }
    },
    "creditorAgent": {
      "clearingSystemMemberId": {
        "memberId": "300000"
      }
    },
    "creditor": {
      "type": "BUSINESS",
      "name": "Jonathan Smyth"
    }
  }
}
Response
{
  "id": "de64f40d-25ce-47d1-9c80-9b0f9366a327",
  "createdDate": "2026-08-22T15:30:53.536011Z",
  "updatedDate": "2026-08-22T15:30:53.536011Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "verifiedName": "Jonathan Smith",
      "matchStatus": "PARTIAL_MATCH"
    },
    "accountType": {
      "matchStatus": "NO_MATCH"
    },
    "schemeResponseCode": "UK_COP_PAMM"
  }
}

Account does not exist

The account does not exist in the CoP Responder’s books.
Request
{
  "details": {
    "country": "GB",
    "creditorAccount": {
      "id": {
        "value": "55065205",
        "type": "ACCOUNT_NUMBER"
      }
    },
    "creditorAgent": {
      "clearingSystemMemberId": {
        "memberId": "300000"
      }
    },
    "creditor": {
      "type": "INDIVIDUAL",
      "name": "Jonathan Smith"
    }
  }
}
Response
{
  "id": "0beaa1b3-fd9a-4885-80ad-b4bf23638452",
  "createdDate": "2026-08-22T15:34:08.871065Z",
  "updatedDate": "2026-08-22T15:34:08.871065Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "NOT_FOUND",
    "schemeResponseCode": "UK_COP_AC01"
  }
}