Skip to main content

Understand the context object and schema

When integrating with the GBG GO API, you will pass customer data using the context object. This object contains structured information required for identity verification, document processing, and biometric validation.
This page documents the input schema for API requests. For information about API response data, see the Response advice schema page.

What is the context object?

The context object is a structured data model that holds customer details and other metadata needed during a journey. It consists of multiple nested objects, each representing different aspects of the customer’s identity and verification details.

Where does the schema come from?

Each customer journey is designed in the GBG GO platform, and every published journey has a schema that defines the expected structure of the context object. You should:
  • Retrieve the schema for a journey from the Journey Dashboard in the GBG GO platform.
  • Use the schema as the source of truth when structuring API requests.
  • Ensure that data types and required fields match those defined in the schema.

Why is the schema important?

  • It dictates the format in which data should be sent.
  • It ensures compatibility between the API and the verification modules.
  • It reduces errors by validating input data before submission.

Key objects in the context schema

The schema defines multiple objects within the context, each containing required and optional fields, such as:
  • Identity Object: Contains personal details such as name, date of birth, and contact information.
  • Documents Array: Simple document identifiers (type, number, country) used for data verification checks in context.subject.documents.
  • IdentityDocument Object: Full document verification schema including images, classification, and validation details.
  • Biometrics Object: Stores biometric data such as face images used for verification.
The schema may vary depending on the journey configuration. Always refer to the schema retrieved from the Journey Dashboard for the most up-to-date structure.

How to use the table below

The following table provides a detailed breakdown of all possible fields in the context object. It includes field names, descriptions, expected data types, and whether the field is required or optional. Use this reference when constructing API requests to ensure all necessary data is included in the correct format:

Person

This schema represents the structure of context.subject or context.subject.identity depending on your journey configuration.
PropertyTypeDescription
uidstringUnique identifier for the subject
titlestringTitle of the individual
firstNamestringGiven name of the individual
middleNamesarray of stringsAny additional registered names
lastNamesarray of stringsFamily names of the individual
lastNamesAtBirtharray of stringsFamily names at birth
aliasesarray of NamesObjectAlternative names used by the person
relatedPersonsarray of RelatedPersonRelated persons with relationship type
dateOfBirthDateBirth date of the individual
genderstringGender of the individual
currentAddressAddressCurrent residence of the individual
previousAddressesarray of PreviousAddressPast residences with date range
placeOfBirthAddressBirthplace of the individual
documentsarray of DocumentsIdentity documents with type, number, and country
phonesarray of PhonesContact numbers
emailsarray of EmailsEmail addresses
socialsarray of SocialsSocial media accounts

Sample data

{
  "uid": "user-12345",
  "title": "Mr",
  "firstName": "David",
  "middleNames": ["James"],
  "lastNames": ["Jones"],
  "lastNamesAtBirth": ["Smith"],
  "aliases": [
    {
      "firstName": "Dave",
      "lastNames": ["Johnson"]
    }
  ],
  "relatedPersons": [
    {
      "relationship": "mother",
      "firstName": "Sarah",
      "lastNames": ["Jones"]
    }
  ],
  "dateOfBirth": "1985-06-15",
  "gender": "Male",
  "currentAddress": {
    "addressString": "128 Queen Victoria Street, London, EC4V 4BJ, GBR"
  },
  "previousAddresses": [
    {
      "address": {
        "addressString": "45 Oxford St, Manchester, M1 5AN, GBR"
      },
      "dateRange": {
        "fromDate": "2000-01-01",
        "toDate": "2010-12-31"
      }
    }
  ],
  "placeOfBirth": {
    "locality": "London",
    "country": "GBR"
  },
  "documents": [
    {
      "type": "CPF Number",
      "number": "87565779318",
      "country": "BRA"
    }
  ],
  "phones": [
    {
      "type": "mobile",
      "number": "+44 207 4281250"
    }
  ],
  "emails": [
    {
      "type": "work",
      "email": "[email protected]"
    }
  ],
  "socials": [
    {
      "type": "LinkedIn",
      "identity": "davidjones123"
    }
  ]
}

Supporting Schemas

RelatedPerson

PropertyTypeDescription
relationshipstringRelationship type, for example, "mother", "father", "maternalGrandFather", etc.)
titlestringTitle of the related person
firstNamestringGiven name of the related person
middleNamesarray of stringsAdditional registered names of the related person
lastNamesarray of stringsFamily names of the related person
lastNamesAtBirtharray of stringsFamily names at birth of the related person

PreviousAddress

PropertyTypeDescription
addressAddressAddress object
dateRangeDateRangeDate range object specifying the duration of residence

Phones

PropertyTypeDescriptionExample
typestringType of phone (landline, mobile, fax, etc.)"mobile"
numberstringPhone number in international format"+44 207 4281250"
Sample data
[
  {
    "type": "mobile",
    "number": "+44 207 4281250"
  }
]

Documents

This is a simplified document schema used in context.subject.documents for data verification checks. For full document verification with images and classification, see the IdentityDocument schema below.
PropertyTypeDescriptionExample
typestringType of document, for example, Passport, and CPF Number"CPF Number"
numberstringThe document number"87565779318"
countrystringCountry code (ISO 3166-1 alpha-2 or alpha-3)"BRA"
Sample data
[
  {
    "type": "CPF Number",
    "number": "87565779318",
    "country": "BRA"
  }
]

Emails

PropertyTypeDescriptionExample
typestringType of email (home, work, etc.)"home"
emailstringEmail address"[email protected]"
Sample data
[
  {
    "type": "home",
    "email": "[email protected]"
  }
]

Address

PropertyTypeDescriptionExample
linesarray of stringsAddress in multiple lines["128 Queen Victoria Street", "London"]
addressStringstringAddress in a single line"128 Queen Victoria Street, London, EC4V 4BJ, GBR"
premisestringBuilding number"128"
buildingstringBuilding number (alternative)"792"
thoroughfarestringStreet name"Queen Victoria Street"
localitystringCity or town"London"
postalCodestringPostal or ZIP code"EC4V 4BJ"
countrystringISO2 or ISO3 country code"GBR"
administrativeAreastringState or administrative region"RJ"
organizationstringAssociated company or organization"GB Group"
Sample data
{
  "addressString": "128 Queen Victoria Street, London, EC4V 4BJ, GBR",
  "locality": "London",
  "country": "GBR",
  "postalCode": "EC4V 4BJ",
  "organization": "GB Group"
}

NamesObject

PropertyTypeDescriptionExample
titlestringTitle of the individual"Mr"
firstNamestringGiven name"David"
middleNamesarray of stringsAdditional registered names["James"]
lastNamesarray of stringsFamily names["Jones"]
lastNamesAtBirtharray of stringsFamily names at birth["Smith"]
Sample data
{
  "title": "Mr",
  "firstName": "David",
  "middleNames": ["James"],
  "lastNames": ["Jones"],
  "lastNamesAtBirth": ["Smith"]
}

DateTime

An ISO 8601 timestamp, with no optional bits:
  1. Hyphens MUST be used to separate the date components.
  2. Day and month should be 2 digits.
  3. Colons MUST be used to separate the time components.
  4. Timestamps MUST NOT contain milliseconds.
  5. Timestamp MUST indicate the timezone, either as a time offset or a Zulu time indicator.
PropertyTypeFormatPattern
DateTimestringdate-time`^\d4-\d2-\d2T\d2:\d2:\d2(([+-]\d2:\d2)Z)$`
Sample data
"2019-01-04T14:38:25Z"

TimeRange

PropertyTypeDescription
startDateTimeStart timestamp
endDateTimeEnd timestamp
Sample data
{
  "start": "2023-06-15T08:30:00Z",
  "end": "2023-06-15T17:00:00Z"
}

Date

PropertyTypeDescription
DatestringSpecified in year, month, and day separated by - (ISO 8601 format)
Sample data
"2000-01-01"

DateRange

PropertyTypeDescription
fromDateDateStart date
toDateDateEnd date
Sample data
{
  "fromDate": "2015-05-10",
  "toDate": "2020-12-31"
}

Location

PropertyTypeDescription
latitudestringLatitude of the location
longitudestringLongitude of the location
geoAccuracystringAccuracy of the geolocation data
what3wordsstringA What3Words designation with . separator
Sample data
{
  "latitude": "51.5074",
  "longitude": "-0.1278",
  "geoAccuracy": "high",
  "what3words": "bearable.expecting.comical"
}

ResponseErrors

Typical error response format returned by a GBG API.
PropertyTypeDescription
statusintThe HTTP status code, for example, 404
messagestringA human-readable message giving more detail about the error
errorstringmessage describing the error for troubleshooting purposes
Sample data
{
  "status": 404,
  "message": "Not Found Error, validate resource Id",
  "error": "not-found-error"
}
Some error responses may also include additional information about the error, such as API path or timestamp.
Sample data
{
  "location": "Authorization",
  "code": 1106,
  "problem": "The token is invalid",
  "action": "Please pass a valid token for access"
}
Next, lets proceed to the Identity Documents Schema

IdentityDocument

PropertyTypeDescription
idstringUnique identifier for the identity document
deviceCaptureDeviceInfoInformation about the device used for document capture
side1ImagestringImage of the front side of the document
side2ImagestringImage of the back side of the document
mrzstringMachine-readable zone (MRZ) extracted from the document
classificationDocumentClassificationInfoV1Classification details of the document
extractionDocumentExtractionInfoV1Extracted information from the document
validationDocumentValidationInfoV1Validation details of the document
categorystringGeneral category of the document, for example, passport and ID card
typestringSpecific type of document
subTypestringSub-type of the document
formatstringFormat of the document
numberstringUnique identification number on the document
issueDatestring (date)Date when the document was issued
expiryDatestring (date)Date when the document expires
subjectIdentityPersonal details of the document holder
countryCountryCountry of issuance (ISO 3166-1 alpha-2 country code)

Sample data

{
  "id": "123456",
  "device": {
    "type": "scanner",
    "model": "Canon DR-C225",
    "hasContactlessReader": false,
    "hasMagneticStripeReader": false,
    "hasCamera": true,
    "serialNumber": "ABC123456",
    "manufacturer": "Canon"
  },
  "side1Image": "https://example.com/front.jpg",
  "side2Image": "https://example.com/back.jpg",
  "mrz": "P<GBRJONES<<DAVID<<<<<<<<<<<<<<<<<<<<<<<<<1234567890GBR850101M2501017<<<<<<<<<<<<<<04",
  "classification": {
    "ids": ["1234"],
    "category": "Passport",
    "type": "National ID",
    "subtype": "Standard",
    "isDoubleSided": true,
    "hasNFC": false,
    "year": "2020",
    "countryCode": "GB",
    "countryName": "United Kingdom",
    "stateCode": "ENG",
    "stateName": "England",
    "sides": [
      {
        "side": "front",
        "id": "front-id",
        "documentQuality": "good",
        "documentQualityScore": 95
      }
    ]
  },
  "extraction": {
    "aggregatedFields": [
      {
        "label": "Document Number",
        "value": "1234567890",
        "source": "OCR",
        "isNonLatin": false,
        "regionOfInterest": {
          "boundingBox": {
            "x": 100,
            "y": 50,
            "width": 300,
            "height": 100
          },
          "side": "front",
          "spectrum": "visible",
          "imageId": "img-001"
        }
      }
    ],
    "extractedFields": [
      {
        "label": "Full Name",
        "details": [
          {
            "label": "First Name",
            "value": "David",
            "source": "OCR"
          },
          {
            "label": "Last Name",
            "value": "Jones",
            "source": "OCR"
          }
        ]
      }
    ]
  },
  "validation": {
    "validationChecks": [
      {
        "name": "MRZ Check",
        "title": "Machine Readable Zone Validation",
        "info": "Verifies MRZ matches document details",
        "validationResult": "Passed",
        "resultInfo": "Valid MRZ format",
        "weight": "High",
        "regionOfInterests": [
          {
            "boundingBox": {
              "x": 50,
              "y": 200,
              "width": 250,
              "height": 50
            },
            "side": "back",
            "spectrum": "visible",
            "imageId": "img-002"
          }
        ],
        "type": "Security Check"
      }
    ]
  },
  "category": "Passport",
  "type": "International",
  "subType": "Standard",
  "format": "Biometric",
  "number": "A12345678",
  "issueDate": "2015-06-15",
  "expiryDate": "2025-06-15",
  "subject": {
    "firstName": "David",
    "lastName": "Jones",
    "dateOfBirth": "1985-01-01",
    "gender": "Male",
    "nationality": "GBR"
  },
  "country": "GB"
}

Country

PropertyTypeDescription
CountrystringISO 3166-1 alpha-2 country code

Sample data

"GB"

Identity

PropertyTypeDescription
firstNamestringGiven name of the individual
lastNamestringFamily name of the individual
dateOfBirthstring (date)Date of birth in YYYY-MM-DD format
genderstringGender of the individual
nationalitystringNationality (ISO 3166-1 alpha-2 country code)

Sample data

{
  "firstName": "David",
  "lastName": "Jones",
  "dateOfBirth": "1985-01-01",
  "gender": "Male",
  "nationality": "GB"
}

FaceImageBiometricsCapture

PropertyTypeDescription
idstring (nullable)Unique identifier for the biometric capture
faceImageBase64StringOrImageIdFace image in Base64 format or an image ID reference

Sample data

{
  "id": "face-bio-789123",
  "type": "face-recognition",
  "faceImage": "/images/face-image-001"
}

FaceImageCompareBiometricsCapture

PropertyTypeDescription
idstring (nullable)Unique identifier for the biometric comparison
face1ImageBase64StringOrImageIdFirst face image in Base64 format or an image ID reference
face2ImageBase64StringOrImageIdSecond face image in Base64 format or an image ID reference

Sample data

{
  "id": "face-compare-456789",
  "type": "face-recognition",
  "face1Image": "/images/face1-image-002",
  "face2Image": "/images/face2-image-003"
}