Our legacy IDV and AML API will soon be formally decommissioned.
To keep your service running smoothly, you will need to migrate to the new version of the IDV and AML suite, as the legacy API will not be supported or accessible after 1 April. The new version provides enhanced performance, improved reliability, and expanded functionality.
What you need to do:
1. Start migrating to the new IDV and AML product as soon as you can, using the replacement mutations.
2. Complete integration and testing before 1 April 2026.
Please follow this migration guide to assist you through the process.
New Query
idAccessibleJurisdictionCapabilities Query
Given an ISO 3166-1, 3 letter country code will return all check types and capabilities accessible by your account. This excludes unsupported jurisdictions.
Request Format
query GetJurisdictionCapabilities($jurisdiction: String!) {
idAccessibleJurisdictionCapabilities(jurisdiction: $jurisdiction) {
jurisdiction
pricingTier
supportedCheckTypes
supportedDocumentTypes
supportedLanguages
vendorConstraints
}
}Where $jurisdiction is the ISO 3166-1 3 letter country code for a supported jurisdiction
Example Response
{
"data": {
"idAccessibleJurisdictionCapabilities": {
"jurisdiction": "GBR",
"pricingTier": "standard",
"supportedCheckTypes": [
"PSAM",
"IDV",
"AML",
"BANK_ACCOUNT_VERIFICATION",
"PHONE_VERIFICATION"
],
"supportedDocumentTypes": [
"PASSPORT",
"DRIVING_LICENCE",
"NATIONAL_INSURANCE",
"NATIONAL_ID",
"ELECTORAL_ROLL"
],
"supportedLanguages": [
"en-GB",
"en"
],
"vendorConstraints": {}
}
}
}Replaced Queries
idCheckV2 Query
Queries replaced
- Check
- UkCheck
Request Format
With this being GQL you can exclude any fields you do not want to retrieve for these queries.
query GetCheck($checkId: String!) {
idCheckV2(checkId: $checkId) {
checkId
checkTypes
configVersion
createdAt
isMonitored
jurisdiction
legacy_id
reference
requestedByEmail
requestedByUsername
result
status
updatedAt
auditLogs {
action
actionDescription
category
checkId
correlationId
createdAt
entityId
entityType
id
ipAddress
isUserVisible
newValues
oldValues
sessionId
severity
userAgent
userId
}
monitoringChanges {
changedBy
changes
changeSource
checkId
checkType
createdAt
externalReference
id
metadata
provider
}
notes {
content
createdAt
id
title
updatedAt
}
person {
dateOfBirth
email
firstName
id
lastName
middleName
mobileNumber
sex
title
}
results {
document
}
submittedData {
checkTypes
configVersion
isMonitored
jurisdiction
message
reference
}
}
}
Status field values: “COMPLETED”, “PENDING”, “UNKNOWN”, “ERROR”
Result field values: “PASSED”, “PASSED_OVERRIDDEN “, “REQUIRES_REVIEW “, “FAILED_OVERRIDDEN “, “ERROR “, “FAILED” or “NONE”.
Example Response
{
"data": {
"idCheckV2": {
"checkId": "00000000-0000-0000-0000-000000000000",
"checkTypes": [
"IDV"
],
"configVersion": "v2.1.0",
"createdAt": "2025-11-07T14:56:18.229Z",
"isMonitored": false,
"jurisdiction": "GBR",
"legacy_id": "",
"reference": "CHECK_XXXXXXXX",
"requestedByEmail": "joebloggs@email.com",
"requestedByUsername": "Joe Bloggs ",
"result": "PASSED",
"status": "COMPLETED",
"updatedAt": "2025-11-07T14:59:00.597Z",
"auditLogs": [
{Audit Log Object}
],
"monitoringChanges": [],
"notes": [],
"person": {
"dateOfBirth": "1990-01-01",
"email": "joebloggs@email.com",
"firstName": "Jane",
"id": "00000000-0000-0000-0000-000000000000",
"lastName": "Doe",
"middleName": null,
"mobileNumber": "+447777777777",
"sex": "Female",
"title": "Mrs"
},
"results": {
"document": null
},
"submittedData": {
"checkTypes": [
"IDV"
],
"configVersion": "v2.1.0",
"isMonitored": false,
"jurisdiction": "GBR",
"message": null,
"reference": "CHECK_ XXXXXXXX"
}
}
}
}
idChecksV2 Query
Queries Replaced
- Checks
Request Format
query GetChecks {
idChecksV2 {
totalCount
totalFailedCount
totalInProgressCount
totalNeedsReviewCount
totalPassedCount
items {
checkId
checkTypes
createdAt
isMonitored
jurisdiction
name
reference
result
status
updatedAt
}
pageInfo {
endCursor
hasNextPage
hasPreviousPage
startCursor
}
}
}Example Response
{
"data": {
"idChecksV2": {
"totalCount": 31,
"totalFailedCount": 0,
"totalInProgressCount": 5,
"totalNeedsReviewCount": 18,
"totalPassedCount": 8,
"items": [
{
"checkId": "00000000-0000-0000-0000-000000000000",
"checkTypes": [
"IDV"
],
"createdAt": "2025-11-07T14:56:18.229Z",
"isMonitored": false,
"jurisdiction": "GBR",
"name": "Jane Doe",
"reference": "CHECK_XXXXX",
"result": "PASSED",
"status": "COMPLETED",
"updatedAt": "2025-11-07T14:59:00.597Z"
}
],
"pageInfo": {
"endCursor": "00000000-0000-0000-0000-000000000000",
"hasNextPage": true,
"hasPreviousPage": false,
"startCursor": "00000000-0000-0000-0000-000000000000"
}
}
}
}
Replaced Mutations
idCreateCheckV2Mutation
Mutations Replaced
- createCheck
- createUkCheck
Mutation Format
mutation {
idCreateCheckV2(
input: {
checkTypes: "String"
configVersion: "String"
idv: {
emailNotification: bool,
smsNotification: bool,
personalizationOptions : { PersonalizationOptions }
}
isMonitored: bool
person: { CreatePersonInput }
psam: { PsamConfigINput }
reference: "String"
jurisdiction: "String"
message: "String"
}
) {
checkId
errors
}
}“checkTypes” options (as well as jurisdictions) will depend on the customer account configuration. Use aforementioned idAccessibleJurisdictionCapabilities query to see what’s accessible by your account.
Input Types
CreatePersonInput
input CreatePersonInput {
firstName: String
middleName: String
lastName: String
mobileNumber: String
landlineNumber: String
email: String
dateOfBirth: String
sex: String
title: String
ssn: String
politicalRole: String
addresses: [CreateAddressInput]
documentNumber: String
expiryDate: String
countryOfOrigin: String
documentType: String
state: String
shortDocumentNumber: String
documentVersion: String
bankAccountNumber: String
sortCode: String
iban: String
bic: String
bankName: String
}CreateAddressInput
input CreateAddressInput {
line1: String
line2: String
line3: String
line4: String
buildingName: String
buildingNumber: String
street: String
secondaryStreet: String
building: String
subBuilding: String
city: String
postcode: String
country: String
state: String
primary: Boolean
firstResidenceDate: String
lastResidenceDate: String
}PersonalizationOptions
input PersonalizationOptions {
companyLogoUrl: String
emailFromName: String
emailSubject: String
emailTemplate: String
emailTemplateId: String
primaryBrandColour: String
}Email notification personalization options. “emailFromName” is a custom “from” name to be displayed alongside “from” email address (which is immutable and set by Red Flag Alert).
“emailTemplate” is a handlebars HTML email template for maximum appearance personalization.
“primaryBrandColour” is hex colour value to be applied somewhere in your template.
idCreateNoteV2 Mutation
Mutations Replaced
- createNote
Mutation Format
mutation {
idCreateNoteV2(noteRequest: { checkId: "String", content: "String", title: "String" }) {
message
success
}
}Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article