v2.2-rc2 is not ratified and MUST NOT be used for production. Current: v2.1. Changelog
This is v2.2-rc2 — a release candidate for the v2.2 standards, published for review and not yet ratified. It MUST NOT be used as the basis for a production implementation. For the current standards, switch to v2.1 using the version selector. See the v2.1 → v2.2-rc2 changelog for every change in this version.
Confirmation of Payee — Requirements v2.2-rc22 min read
The User Journeys for this service also apply and must be adhered to.
The tables below list the rules that apply to Confirmation of Payee. The Hub receives and validates the TPP's request, then calls your Ozone Connect POST /customers/action/cop-query endpoint with the IBAN alone. You are responsible for returning the name(s) you hold against that account, accurately — the Hub performs the name matching.
Create Cop Query
/customers/action/cop-querydata.account.identification (the IBAN). The request carries no name from v2.2, so there is nothing to compare against: you must not attempt to match, and must not filter, rank, or omit holders on any basis. The Hub owns the matching rules and applies them to what you return.200 with a data array containing one entry per account holder — a joint account returns one entry per holder, in any order. Each entry carries id, name and accountStatus. For personal accounts, name.fullName is mandatory; givenName, middleName, familyName and alsoKnownAs are optional — supply them where held separately. For business accounts, populate name.businessName; alsoKnownAs is optional.accountStatus on every entry with the status of the account, using the same code set as status on GET /accounts/{accountId}: Active, Inactive, Dormant, Unclaimed, Deceased, Suspended or Closed. A joint account must return the same value on every entry. The Hub returns it to the TPP as AccountStatus.verifiedClaims / verification envelope and the wider customer data it carried in v2.1 — emiratesId, birthDate, nationality, residentialAddress, salary, and the rest — are removed from this operation and must not be sent. Confirmation of Payee is not carried out under a consent.200 with an empty data array. Do not use 204, 404, 201, or 202.403 with errorCode: Consent.AccountTemporarilyBlocked and errorMessage: The account is blocked from receiving payments. Applies when the block is temporary — e.g. account status is Suspended.403 with errorCode: Consent.PermanentAccountAccessFailure and errorMessage: The account is blocked from receiving payments. Applies when the block is permanent — e.g. account status is Closed, Deceased, or Unclaimed.200 with an empty data array.Opt-out
200 with an empty data array (see row 8 of the table above).