Compliance Suite – Integration Guide

Modified on Tue, 12 May at 3:59 PM

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

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article