Webhook Payload

All webhook payloads sent out from the QoreID system have a uniform structure.

Below are examples of the structure of webhook payloads sent from the QoreID system for realtime (eg. digital identity) and lastmile (eg. address) verifications. Only data related to the verification carried out will be available in the webhook payload.

Sample Webhook Payload Structures for NIN (realtime) completed, Address (lastmile) started and Workflow (address after NIN step was already completed) step started.
{
  "event": "identity",
  "event_type": "verification_completed",
  "data": {
    "id": 1,
    "applicant": {
      "firstname": "John",
      "lastname": "Doe",
      "middlename": "James",
      "phone": "080000000000",
      "dob": "2001-01-01",
      "email": "[email protected]"
    },
    "status": {
      "status": "verified",
      "state": "complete"
    },
    "summary": {
      "nin_check": {
        "status" : "PARTIAL_MATCH",
        "fieldMatches": {
          "firstname": true,
          "lastname": true,
          "dob": false,
          "phoneNumber": false,
          "gender": false,
          "emailAddress": false
        }
      }       
    },
    "nin": {
      //NIN verification details
      
    }
  }
}
{
    event: "address",
    event_type: "verification_completed",
    data: {
        id: 1,
        summary: null,
        customerReference: "1",
        address: {
            id: 1,
            verificationTypeCode: "address",
            organisationId: 1,
            userId: null,
            approvedAt: "2023-08-04T15:57:53.000Z",
            requestedAt: "2023-08-04T11:42:30.000Z",
            identityVerificationId: null,
            requestSource: "api",
            archived: false,
            apiReference: null,
            stateId: 25,
            stateName: "Lagos",
            lgaId: 514,
            lgaName: "Lagos Mainland",
            applicationId: 1,
            neighbor: {
                comment: "The address exists and the applicant lives at the address and this was confirmed by a neighbor living in the compound. The nearest landmark to the address is carwash bus stop",
                firstname: null,
                lastname: null,
                phone: ""
            },
            countryName: "Nigeria",
            isLive: true,
            isDuplicate: false,
            location: {
                city: "ADEKUNLE",
                initialLatitude: 6.4883519,
                initialLongitude: 3.3820116,
                landmark: "ADEKUNLE",
                latitude: 6.4860838,
                lgaName: "Lagos Mainland",
                locationUrl: "https://maps.google.com/?q=6.4883519,3.3820116",
                longitude: 3.3063121,
                stateName: "Lagos",
                street: "EBUTE META, GLOVER STREET"
            },
            addressBasic: {
                addressType: ""
            },
            business: {
                area: "commercial",
                businessName: null,
                businessType: null,
                canContactPoc: null,
                id: null,
                isKnown: null,
                isOwnerKnown: null,
                name: null,
                nameFound: "",
                ownerVisitsFrequently: null,
                rcNumber: null,
                type: null
            },
            isVague: true,
            customerReference: "1",
            paymentMethodCode: "standard",
            applicant: {
                organisationId: 1,
                applicantId: null,
                customerReference: "1",
                firstname: "John",
                middlename: null,
                lastname: "Doe",
                phone: "+2347030000000",
                email: null,
                dob: "1960-10-01",
                gender: null,
                maritalStatus: null,
                photo: null,
                imageId: null,
                faceId: null
            },
            price: 2,
            agentComment: "Verification completed",
            agentSubmittedAt: "2023-08-04T15:51:00.000Z",
            rejectedAt: null,
            interiorPhotos: {},
            exteriorPhotos: {
                photo1: "https://media.qoreid.com/v1/file/eyJh...",
                photo2: "https://media.qoreid.com/v1/file/eyJh..",
                photo3: "https://media.qoreid.com/v1/file/eyJh..",
            },
            extraPhotos: {},
            status: {
                status: "VERIFIED",
                subStatus: "VERIFIED",
                state: "COMPLETE"
            }
        }
    }
}
{
  "event": "workflow",
  "event_type": "step_verification_started",
  "data": {
    "id": 1,
    "customerReference": "abcd",
    "applicant": {
      "firstname": "John",
      "lastname": "Doe",
      "middlename": "James",
      "phone": "080000000000",
      "dob": "2001-01-01",
      "email": "[email protected]"
    },
    "status": {
      "status": "in_progress",
      "state": "in_progress"
    },
    "summary": {
   		"nin_check": {
        "status" : "TRANSPOSED_MATCH",
        "fieldMatches": {
          "firstname": true,
          "lastname": true,
          "dob": false,
          "phoneNumber": false,
          "gender": false,
          "emailAddress": false
        }
      },
      "address_check": "in_progress"
    },
    "nin": {
      //NIN verification details
      
    },
    "address": {
      //Address verification details
      
    }
  }
}

The webhook payload

Webhook Payload Data Fields

FieldDescriptionValues
idThe QoreID unique ID for the verification request
customerReferenceThe client/user’s unique reference for the verification request.

Not available for identity events (i.e realtime verification).
applicantBio data for the individual on whom the verification request is being carried out.
summary.{verification_type}_check.statusThe name match status of the verification where matching has been carried out.

All digital identity verification ( nin, bvn, drivers_license, voters_card) require name match.
If the status is NO_MATCH the verification data will not be made available due to data protection policy.
EXACT_MATCH, PARTIAL_MATCH, TRANSPOSED_MATCH, NO_MATCH
status.statusThis is the status of the verification request.

Note:
- within_range and out_of_range statuses only apply to digital address verification
- pending and failed statuses only apply to workflow verification
- id_mismatch status only applies to identity (realtime) verification
pending, in_progress, verified, unverified, id_mismatch, failed, within_range, out_of_range
status.stateThis is the state of the verification request.

Note:
- pending state only applies to workflow verification, indicating when no input has been sent to any step.
pending, in_progress, complete
{verification_type}The actual verification data for the request. This is available for all verification carried out on collections, however the workflow report type (standard or comprehensive) will determine whether this will be part of the webhook for the workflow or not.

Standard report type would omit this part of the payload and only send the summary data to the user.

Not available for realtime verification where summary.{verification_type}_check.status is NO_MATCH.