Skip to main content

Verifying UK ID (eKYC) - API only (v1)

Electronic Know Your Customer check against UK credit bureau and electoral roll data, returning a tiered identity corroboration result​

The eKYC UK step verifies a person's identity by cross-referencing their data against UK credit bureau and electoral roll sources via a configured screening provider. It consumes a BasicIdentity and an ExtendedIdentity data block and returns a result — verified, inconclusive, or not_verified — together with the contributing bureau sources.

The configuration identifier selects one or two bureaus (for example Experian and Equifax) and how they are combined: a single bureau, a fallback to the second bureau, or both bureaus every time. The route follows the provider's overall result for the configured bureaus:

  • a full 2+2 pass (two elements corroborated by two independent sources) routes to verified;
  • a partial result, or bureaus that disagree, routes to inconclusive; and
  • a fail, or no data found, routes to not_verified.

How bureaus that disagree are combined depends on your configuration identifier. Each bureau that returned a result is listed in services, with its own status, match tier and sources.

The verificationProcessId in the Verification data block corresponds to the vendor-assigned transaction ID. The session ID is sent to the provider as the client reference, so you can match the provider's records to the session.


Key features​

  • UK-specific bureau network: queries Electoral Roll, Credit Lenders, and related UK data sources
  • Tiered corroboration: 2+2, 2+1, 1+1 match tiers report how strongly the identity was corroborated
  • Multi-bureau: one or two bureaus per check, with a per-bureau breakdown in services
  • Address-aware: consumes UK address fields (residentHouseName) from ExtendedIdentity alongside standard address fields
  • Headless: no end-user interaction required; the step executes entirely server-side

Configuration​

OptionTypeRequiredDescription
providerstringNoeKYC provider. Currently only NCINO is supported. Accepted values: NCINO.
configuration_identifierstringYesnCino bundle identifier that selects the bureaus to query and how they are combined (e.g. "IDN_UK_2+2_005"). Configured by the provider during onboarding.

Example configuration​

{
"provider": "NCINO",
"configuration_identifier": "IDN_UK_2+2_005"
}

Input data blocks​

Both data blocks are required. Session creation is rejected if either is missing, or if any of the mandatory fields listed below are absent or incomplete, because the screening provider needs all of them to run the check.

Data blockRequiredDescription
BasicIdentityYesPersonal details of the person to verify. Mandatory: givenName, familyName, birthDate (full date — year, month and day all required; partial dates are rejected). No optional fields.
ExtendedIdentityYesAddress of the person to verify. Mandatory: residentPostalCode; at least one of residentHouseNumber or residentHouseName. Optional: residentStreet, residentCity, residentState (county), mobilePhoneNumber.
info

Session creation fails with error code MISSING_INPUT_DATA_BLOCKS (HTTP 412) if any mandatory field is missing or incomplete. The message field in the response lists the missing fields in dot notation (e.g. "Missing required input data: basicIdentity.givenName, extendedIdentity.residentPostalCode"). This prevents the step from executing with data that the screening provider would reject.


Routes​

RouteDescription
verifiedThe provider reports a full 2+2 pass — two identity elements corroborated by at least two independent sources.
not_verifiedThe provider reports a fail, or no bureau returned any data. The Verification data block is produced with status "rejected"; sources and services still list what each bureau matched.
inconclusiveThe provider reports a partial result — some elements corroborated but not sufficient for a full pass, or bureaus that disagree. See services for each bureau’s outcome.

Output data blocks​

RouteData blocks produced
verifiedVerification
not_verifiedVerification
inconclusiveVerification

Example payloads​

Verification — verified — single bureau
{
"status": "verified",
"terminationReason": null,
"methods": [
{
"type": "eKYCUK",
"matchTier": "2+2",
"sources": [
{
"name": "Electoral Roll",
"matchedElements": [
"givenName",
"familyName",
"residentAddress"
]
},
{
"name": "Credit Lenders (CAIS)",
"matchedElements": [
"givenName",
"familyName",
"residentAddress",
"birthDate"
]
}
],
"services": [
{
"id": "DATA_EKYC_UK_005",
"status": "verified",
"matchTier": "2+2",
"sources": [
{
"name": "Electoral Roll",
"matchedElements": [
"givenName",
"familyName",
"residentAddress"
]
},
{
"name": "Credit Lenders (CAIS)",
"matchedElements": [
"givenName",
"familyName",
"residentAddress",
"birthDate"
]
}
]
}
]
}
],
"provider": null,
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-07-15T09:45:00.000Z",
"verificationProcessId": "f4a8c1b2-3e7d-4f2a-9b5c-1d2e3f4a5b6c"
}
Verification — inconclusive — two bureaus disagree
{
"status": "inconclusive",
"terminationReason": null,
"methods": [
{
"type": "eKYCUK",
"matchTier": null,
"sources": [
{
"name": "Electoral Roll",
"matchedElements": [
"givenName",
"familyName",
"residentAddress"
]
},
{
"name": "Credit Lenders (CAIS)",
"matchedElements": [
"givenName",
"familyName",
"residentAddress",
"birthDate"
]
}
],
"services": [
{
"id": "DATA_EKYC_UK_007_B",
"status": "rejected",
"matchTier": null,
"sources": []
},
{
"id": "DATA_EKYC_UK_005",
"status": "verified",
"matchTier": "2+2",
"sources": [
{
"name": "Electoral Roll",
"matchedElements": [
"givenName",
"familyName",
"residentAddress"
]
},
{
"name": "Credit Lenders (CAIS)",
"matchedElements": [
"givenName",
"familyName",
"residentAddress",
"birthDate"
]
}
]
}
]
}
],
"provider": null,
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-07-15T09:46:00.000Z",
"verificationProcessId": "a1b2c3d4-5678-4abc-9def-abcdef012345"
}
Verification — not_verified — no data found
{
"status": "rejected",
"terminationReason": null,
"methods": [
{
"type": "eKYCUK",
"matchTier": null,
"sources": [],
"services": [
{
"id": "DATA_EKYC_UK_007_B",
"status": "rejected",
"matchTier": null,
"sources": []
}
]
}
],
"provider": null,
"trustFramework": null,
"assuranceLevel": null,
"verifiedAt": "2026-07-15T09:47:00.000Z",
"verificationProcessId": "c3d4e5f6-7890-4bcd-ef01-234567890123"
}