ID Verification Web Implementation Guide
This guide explains how to integrate ID Verification into a web application, configure workflows, display the verification journey, and retrieve results.
Initiating a ID Verification transaction
Call the RESTful API POST endpoint /initiate with a JSON object containing the properties described below to create a transaction for each user. You will receive a JSON object in the response containing a timestamp, Jumio transaction reference (scan reference), and a URL which you can use to present ID Verification to your user.
HTTP Request Method: POSTREST
- URL (US): https://netverify.com/api/v4/initiateREST
- URL (EU): https://lon.netverify.com/api/v4/initiateREST
- URL (SGP): https://core-sgp.jumio.com/api/v4/initiate
Jumio Netverify customers are now subject to default rate limits of 3 per second and 180 per minute for initiate requests.
Authentication and Encryption
ID Verification API calls are protected using HTTP Basic Authentication. Your Basic Auth credentials are constructed using your API token as the user-id and your API secret as the password. You can view and manage your API token and secret in the Customer Portal under Settings > API credentials.
Never share your API token, API secret, or Basic Auth credentials with anyone — not even Jumio Support.
The TLS Protocol is required to securely transmit your data, and we strongly recommend using the latest version. For information on cipher suites supported by Jumio during the TLS handshake see Supported cipher suites.
Request Headers
The following fields are required in the header section of your request:
Accept: application/json
Content-Type: application/jsonContent-Length: see [RFC-7230](https://datatracker.ietf.org/doc/html/rfc7230#section-3.3.2)
Authorization: (see [RFC 7617](https://datatracker.ietf.org/doc/html/rfc7617)) User-Agent: YourCompany YourApp/v1.0
Jumio requires the User-Agent value to reflect your business or entity name for API troubleshooting.
Request Body
The body of your initiate API request allows you to
- provide your own internal tracking information for the user and transaction.
- specify what user information is captured and by which method.
- indicate where the user should be directed after the user journey.
- select the language to be displayed.
- preset options to enhance the user journey.
Values set in your API request will override the corresponding settings configured in the Customer Portal.
Required items appear in bold type.
| Name | Type | Max. Length | Description |
|---|---|---|---|
| customerInternalReference1 | string | 100 | Your internal reference for the transaction. |
| userReference1 | string | 100 | Your internal reference for the user. |
| reportingCriteria | string | 100 | Your reporting criteria for the transaction. |
| successUrl2 | string | 2047 | Redirects to this URL after a successful transaction. Overrides Success URL in the Customer Portal. |
| errorUrl2 | string | 255 | Redirects to this URL after an unsuccessful transaction. Overrides Error URL in the Customer Portal. |
| callbackUrl2 | string | 255 | Sends verification result to this URL upon completion. Overrides Callback URL in the Customer Portal. |
| workflowId | integer | 3 | Applies this acquisition workflow to the transaction. Overrides Capture method in the Customer Portal. See supported workflowId values. |
| presets1 | JSON | - | Preset options to enhance the user journey. See supported preset values. |
| locale | string | 5 | Renders content in the specified language. Overrides Default locale in the Customer Portal. See supported locale values. |
| tokenLifetimeInMinutes | number | Max. value: 86400 | Time in minutes until the authorization token expires. (minimum: 5, maximum: 86400). Overrides Authorization token lifetime in the Customer Portal. |
1 Values must not contain Personally Identifiable Information (PII) or other sensitive data such as email addresses. 2 See URL constraints for Callback, Error, and Success URLs.
Supported workflowId Values
Acquisition workflows allow you to set a combination of verification and capture method options.
Identity Verification must be enabled for your account to use an ID + Identity workflowId.
| Value | Verification type | Capture method |
|---|---|---|
| 100 | ID only | camera + upload |
| 101 | ID only | camera only |
| 102 | ID only | upload only |
| 200 | ID + Identity | camera + upload |
| 201 | ID + Identity | camera only |
| 202 | ID + Identity | upload only |
Supported presets Values
It is possible to specify presets for ID Verification, for Identity Verification, for both together, or for neither. For each preset you use, all values must be passed together as a JSON array (see Sample request) for the request to be valid.
ID Verification presets
Preset country and document type - Preset the country and document type to bypass the selection screen.
Required items appear in bold type.
| Name | Type | Max. length | Description |
|---|---|---|---|
| index | integer | 1 | must be set to 1 |
| country | string | 3 | Possible values:ISO 3166-1 alpha-3 country code and XKX (Kosovo) |
| type | string | 15 | Possible values:PASSPORT, DRIVING_LICENSE, ID_CARD |
Identity Verification presets
Identity Verification in ID Verification allows you to make sure the person submitting the ID for verification is the same person in the ID photo. This comprises two steps: the Face Match step and the optional Liveness Check step. The Face Match step allows us to compare the face in the ID photo with the face of the person submitting the transaction for similarity, and the additional Liveness Check ensures that person is present during the transaction.
Identity Verification can be enabled with the Face Match step only or in conjunction with a Liveness Check.
Biometric Face Capture
ID Verification's liveness detection technology creates a three-dimensional map of your user's face, providing unprecedented accuracy for the Liveness Check, and creates an enrollment transaction for the use of the Authentication feature.
To use Biometric Face Capture, Identity Verification and Biometric Face Capture must be enabled for your account by Jumio Support.
Biometric Face Capture requires that the user has access to a camera. In order to ensure that Biometric Face Capture is always used for the Liveness Check, your users must be restricted to using their camera either for the entire transaction, or for the Identity Verification step.
This can be accomplished by:
- changing your Capture method in the Settings area of the Customer Portal to Webcam only for the entire transaction.
- including workflowId 201 to specify "ID + Identity, camera only" in the API request when you initate a ID Verification transaction.
- asking Jumio Support to enable Force Camera for Identity to allow upload of the ID image, but force the user to use a camera for the Identity Verification step.
| capture method | when | result |
|---|---|---|
| upload only | always | user asked to upload selfie |
| camera + upload | user uploads ID image | user asked to upload selfie |
| camera + upload | camera not available | user asked to upload selfie |
| camera + upload | browser not supported | user asked to upload selfie |
| camera only | camera not available | error 9820 |
| camera only | browser not supported | error 9820 |
Supported locale Values
Hyphenated combination of ISO 639-1:2002 alpha-2 language code plus ISO 3166-1 alpha-2 country (where applicable).
Expand the table below
| Value | Locale |
|---|---|
| ar | Arabic |
| bg | Bulgarian |
| cs | Czech |
| da | Danish |
| de | German |
| el | Greek |
| en | American English (default) |
| en-GB | British English |
| es | Spanish |
| es-MX | Mexican Spanish |
| et | Estonian |
| fi | Finnish |
| fr | French |
| he | Hebrew |
| hr | Croatian |
| hu | Hungarian |
| hy | Armenian |
| id | Indonesian |
| it | Italian |
| ja | Japanese |
| ka | Georgian |
| km | Khmer |
| ko | Korean |
| lt | Lithuanian |
| ms |
Response
Unsuccessful requests will return the relevant HTTP status code and information about the cause of the error.
Successful requests will return HTTP status code 200 OK along with a JSON object containing the information described below.
Required items appear in bold type.
| Name | Type | Max. length | Description |
|---|---|---|---|
| timestamp | String | 24 | Timestamp (UTC) of the response. Format: YYYY-MM-DDThh:mm:ss.SSSZ |
| transactionReference | String | 36 | Jumio reference number for the transaction. |
| redirectUrl | String | URL used to load the ID Verification client. |
Examples
Sample Request
POST https://netverify.com/api/v4/initiate/ HTTP/1.1
Accept: application/json
Content-Type: application/json
Content-Length: 1234
User-Agent: Example Corp SampleApp/1.0.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
{
"customerInternalReference" : "transaction_1234",
"userReference" : "user_1234",
"successUrl" : "https://www.yourcompany.com/success",
"errorUrl" : "https://www.yourcompany.com/error",
"callbackUrl" : "https://www.yourcompany.com/callback",
"reportingCriteria" : "myReport1234",
"workflowId" : 200,
"presets" :
[
{
"index" : 1,
"country" : "AUT",
"type" : "PASSPORT"
}
],
"locale" : "en-GB"
}
Sample requests cannot be run as-is. Replace example data with your own values.
Sample Response
{
"timestamp": "2018-07-03T08:23:12.494Z",
"transactionReference": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"redirectUrl": "https://yourcompany.netverify.com/web/v4/app?locale=en-GB&authorizationToken=xxx"
}
Configuring settings in the Customer Portal
In the Settings screen of the Customer Portal you can customize your settings and brand your ID Verification page. Save changes using your Customer Portal password to activate them.
Values set in your API request will override the corresponding settings configured in the Customer Portal.