Skip to content

Latest commit

 

History

History
385 lines (250 loc) · 15.7 KB

netverify-authentication-facemap.md

File metadata and controls

385 lines (250 loc) · 15.7 KB

Jumio

Authentication with Facemap Storage on Customer Premise

This is a reference manual and configuration guide for Jumio Authentication with facemap storage on customer premise. It describes the workflow and how to initiate an Authentication transaction.

This feature allows you to use Authentication with needing to store the ID Verification PII data in the Jumio infrastructure.

You will retrieve the facemap (which represents the face identity of the user) using the ID Verification Retrieval API or ID Verification Callback. This facemap needs to be stored in your system. When you want to authenticate this user, you will send us the facemap using our server to server API to create a new Authentication transaction. You can start the user journey in your mobile app or web journey. Once the user completes the face capture process we will perform our 3D liveness checks on the face and compare it with the facemap identity you provide in the API call. Results of this transaction will let you know if the person is live and is the same person that was onboarded on your system.

Revision history

Information about changes to features and improvements documented in each release is available in our Revision history.

Table of contents



Preparation

Preconditions

The following conditions must be met before using this feature:

  • The original ID Verification transaction needs to be deleted
  • That ID Verification transaction has to be
    • verificationStatus = APPROVED_VERIFIED
    • similarity = MATCH
    • validity = TRUE

Enable functionality

If you need this function enabled or are unsure if it is enabled on your account, please reach out to your Account Manager directly or contact the Jumio Support team at [email protected].


Store facemap

You must use either the callback or Retrieval API to get the facemap of a ID Verification transaction and store this on your system.

⚠️ You are responsible to store the facemap to the proper user in your system. Jumio does not check if the facemap of the person belongs to the onboarded user and will only compare the facemap which was sent in for authentication with the ID Verification transaction.

Callback for ID Verification

The callback parameter facemap contains an URL to the facemap of the transaction.

See Callback for ID Verification for further information.

ID Verification Retrieval API

The response parameter facemap will be returned when retrieving the details of a transaction.

See the ID Verification Retrieval API Implementation Guide for further details.



Initiating a transaction

ID Verification Mobile

Call the RESTful API POST endpoint /initiateAuthentication 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 new authentication transaction reference to start authentication.

HTTP Request Method: POST
REST URL (US): https://netverify.com/api/authentication/v1/facemap/initiate
REST URL (EU): https://lon.netverify.com/api/authentication/v1/facemap/initiate
REST URL (SGP): https://core-sgp.jumio.com/api/authentication/v1/facemap/initiate

⚠️ A new transaction will be created and the facemap will be temporarily stored until the transaction reaches a final state (max. 15 minutes).
⚠️ If multiple transactions has been created for the same enrollmentTransactionReference within 15 minutes only the last one will successfully work. For the first ones the user will not be able to finish them, they will get a final state of EXPIRED.

Authentication and encryption

Authentication 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: multipart/form-data
Authorization: (see RFC 7617)
User-Agent: YourCompany YourApp/v1.0

ℹ️ Jumio requires the User-Agent value to reflect your business or entity name for API troubleshooting.

Request body

Required items appear in bold font.

Name Type Content-Type Description
enrollmentMetadata object application/json The metadata required to initiate an authentication transaction.
See supported enrollmentMetadata values.
facemap byte array application/octet-stream The enrollment facemap bytes.

Supported enrollmentMetadata values

Required items appear in bold font.

Value enrollmentMetadata
enrollmentTransactionReference The transaction reference from the onboarding ID verification to be used for authentication.

This is the Jumio scan reference of the original ID Verification transaction.
userReference Your internal reference for the user.
callbackUrl1 Sends verification result to this URL upon completion. Overrides Callback URL in the Customer Portal.

1 See URL constraints for Callback, Error, and Success URLs.


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 font.

Name Type Max. length Description
authenticationTransactionReference String 36 Jumio reference number for the Authentication transaction.

Examples

Sample request

POST https://netverify.com/api/v4/initiateAuthentication/ HTTP/1.1
Accept: application/json
Content-Type: multipart/form-data
User-Agent: Example Corp SampleApp/1.0.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="facemap"; filename="facemap.bin"


------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="enrollmentMetadata"

{
	"enrollmentMetadata": {
		"enrollmentTransactionReference": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  		"userReference": "user_1234",
		"callbackUrl": "https://www.yourcompany.com/callback"
	}
}
------WebKitFormBoundary7MA4YWxkTrZu0gW--

⚠️ Sample requests cannot be run as-is. Replace example data with your own values.

Sample response

{
  "authenticationTransactionReference": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
}

ID Verification Web

Call the RESTful API POST endpoint /initiateAuthentication 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 new authentication transaction reference to start authentication.

HTTP Request Method: POST
REST URL (US): https://netverify.com/api/authentication/v1/facemap/initiate
REST URL (EU): https://lon.netverify.com/api/authentication/v1/facemap/initiate
REST URL (SGP): https://core-sgp.jumio.com/api/authentication/v1/facemap/initiate

⚠️ A new transaction will be created and the facemap will be temporarily stored until the transaction reaches a final state (max. 15 minutes).
⚠️ If multiple transactions has been created for the same enrollmentTransactionReference within 15 minutes only the last one will successfully work. For the first ones the user will not be able to finish them, they will get a final state of EXPIRED.

Authentication and encryption

Authentication 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: multipart/form-data
Authorization: (see RFC 7617)
User-Agent: YourCompany YourApp/v1.0

ℹ️ Jumio requires the User-Agent value to reflect your business or entity name for API troubleshooting.

Request body

Required items appear in bold font.

Name Type Content-Type Description
enrollmentMetadata object application/json The metadata required to initiate an authentication transaction.
See supported enrollmentMetadata values.
facemap byte array application/octet-stream The enrollment facemap bytes.

Supported enrollmentMetadata values

Required items appear in bold font.

Value enrollmentMetadata
enrollmentTransactionReference The transaction reference from the onboarding ID verification to be used for authentication.

This is the Jumio scan reference of the original ID Verification transaction.
userReference Your internal reference for the user.
callbackUrl1 Sends verification result to this URL upon completion.
Overrides Callback URL in the Customer Portal.
successUrl1 Redirects to this URL after a successful transaction.
Overrides Success URL in the Customer Portal.
errorUrl1 Redirects to this URL after an unsuccessful transaction.
Overrides Error URL in the Customer Portal.
userReference2 Your internal reference for the user.
locale Renders content in the specified language.
Overrides Default locale in the Customer Portal.
See supported locale values.

1 See URL constraints for Callback, Error, and Success URLs.
2 Values must not contain Personally Identifiable Information (PII) or other sensitive data such as email addresses.


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 font.

Name Type Max. length Description
authenticationTransactionReference String 36 Jumio reference number for the Authentication transaction.
redirectUrl String 255 URL used to load Authentication client. TBD

Examples

Sample request

POST https://netverify.com/api/v4/initiateAuthentication/ HTTP/1.1
Accept: application/json
Content-Type: multipart/form-data
User-Agent: Example Corp SampleApp/1.0.1
Authorization: Basic xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

------WebKitFormBoundary7MA4YWxkTrZu0gW--,
Content-Disposition: form-data; name="facemap"; filename="facemap.bin"


------WebKitFormBoundary7MA4YWxkTrZu0gW--
Content-Disposition: form-data; name="enrollmentMetadata"

{
	"enrollmentMetadata": {
		"enrollmentTransactionReference": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
		"userReference": "transaction_1234", "callbackUrl": "https://www.yourcompany.com/callback",
		"successUrl" : "https://www.yourcompany.com/success", "errorUrl" : "https://www.yourcompany.com/error",
		"tokenLifetimeInMinutes": 5,"locale": "de"
	}
}
------WebKitFormBoundary7MA4YWxkTrZu0gW--

⚠️ Sample requests cannot be run as-is. Replace example data with your own values.

Sample response

{
  "authenticationTransactionReference": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
  "redirectUrl": "https://yourcompany.netverify.com/web/v4/app?authorizationToken=xxxxxxxxxxxxxxlocale=en-GB"
}


Start Authentication

You can use the authenticationTransactionReference to start the Authentication workflow within the SDK, as long as the reference has not been finalized.

A transaction has been finalized once it has one of the final states:

  • PASSED
  • FAILED
  • INVALID
  • EXPIRED

Authentication SDK for Android

Follow the instructions in our mobile guide to start the SDK workflow.


Authentication SDK for iOS

Follow the instructions in our mobile guide to start the SDK workflow.


Authentication for Web

Follow the instructions in our Web guide - Section "Displaying Authentication" to start the web workflow by using the redirectUrl you received before.



© Jumio Corp. 395 Page Mill Road, Suite 150, Palo Alto, CA 94306