Skip to main content
POST

Overview

Submit one or more candidates for background verification in a single API call. The platform creates a BGV case for each candidate and triggers all requested checks asynchronously — the API returns immediately after accepting and validating the payload. You receive a webhook notification at your configured URL when each case reaches a terminal state.

Authorization

Every request must include your API key as a Bearer token:
API keys are scoped to your organisation. Contact support to obtain or rotate a key.

BGV Lifecycle

Use the case_id from the response to download the final report via the BGV Report Download endpoint.

Webhook Notification

When a case completes (all requested checks are processed), a POST request is sent to your configured webhook URL. The payload includes the case_id so you can map it back to the candidate you submitted. Webhook payload (example):
On receiving this webhook, use the case_id to call the Report Download API and fetch the final report.

Request Structure

A request has two top-level arrays: The checks you list in checks are applied uniformly to all candidates. Each candidate must carry the fields required by those checks (see the tables below).

Supported Checks


Input Fields Per Check

For each check you request, the candidate object must carry the fields below. Date fields accept DD/MM/YYYY, DD-MM-YYYY or YYYY-MM-DD and must be past dates (unless noted). Phone numbers accept a bare 10-digit number or E.164 and are normalised to E.164.

criminal_check

aml_check

credit_report_check

detailed_epfo_check

education_check

Requires name and a non-empty education_details array. Each entry:

employment_verification_manual_check

Requires name and a non-empty employment_details array. Each entry:

ref_check

Requires name and a non-empty reference_details array. Each employer block:

physical_address_check

Requires name, email, phone and a non-empty addresses array. One verification runs per address entry.

social_media_check


Address object

Used by credit_report_check, physical_address_check, and (for address_type) social_media_check. Each candidate may submit at most one Current and one Permanent address.

Responses

On success the API returns the created cases. Use each case_id to track the case and download its report.

Error responses

Validation error (example):

Notes

  • Maximum 500 candidates per request.
  • If any candidate (or any nested entry within a candidate) fails validation, the entire request is rejected — there are no partial submissions.
  • case_id and candidate_id in the response are the same 32-character hex value.

Authorizations

Authorization
string
header
required

API key issued by KonnectNXT. Pass as Authorization: Bearer <your_api_key>.

Body

application/json
checks
enum<string>[]
required

List of check types to run for every candidate in this request. At least one check must be provided. Unknown keys are rejected with a 400.

Minimum array length: 1
Available options:
criminal_check,
aml_check,
credit_report_check,
detailed_epfo_check,
education_check,
employment_verification_manual_check,
ref_check,
physical_address_check,
social_media_check
Example:
candidates
object[]
required

Array of candidate objects. Maximum 500 candidates per request. Every candidate must supply the fields required by the checks listed in checks.

Required array length: 1 - 500 elements

Response

Candidates accepted, checks triggered asynchronously

status
enum<string>
Available options:
success
Example:

"success"

code
integer
Example:

200

message
string
Example:

"BGV initiation+submission successful. Checks triggered asynchronously."

data
object
errors
any | null

Always null on a successful response.

Example:

null

credits_used
number

Credits consumed by this submission.

Example:

5

credits_remaining
number

Credits remaining in the organisation account after this submission.

Example:

9962419