Skip to content

Latest commit

 

History

History
561 lines (428 loc) · 45.6 KB

callback.md

File metadata and controls

561 lines (428 loc) · 45.6 KB

Jumio

Callback

The callback is the authoritative answer from Jumio. Specify a callback URL (for constraints see Configuring Settings in the Customer Portal) to automatically receive the result for each transaction.

Revision history

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

Table of contents


Usage

Once Jumio has sent the callback, save it on your side and send us a response of 200 OK.

Any validation of the content should be done afterwards. In case you face any issues, please contact Jumio Technical Support at [email protected] with a sample.

Jumio callback IP list

Whitelist these IP addresses for callbacks, and use them to verify that the callback originated from Jumio.

US data center:

34.202.241.227
34.226.103.119
34.226.254.127
52.52.51.178
52.53.95.123
54.67.101.173

Use the hostname callback.jumio.com to look up the most current IP addresses.

EU data center:

34.253.41.236
35.157.27.193
52.48.0.25
52.57.194.92
52.58.113.86
52.209.180.134

Use the hostname callback.lon.jumio.com to look up the most current IP addresses.

SGP data center:

3.0.109.121
52.76.184.73
52.77.102.92

Use the hostname callback.core-sgp.jumio.com to look up the most current IP addresses.

Callback for ID Verification

An HTTP POST request is sent to your specified callback URL containing an application/x-www-form-urlencoded formatted string with the transaction result.

To specify a global callback URL in the Customer Portal, see Configuring Settings in the Customer Portal.

A callback URL can also be specified per transaction. See instructions for ID Verification Web v4, performNetverify, and our SDK for Android and iOS.

For Android/iOS: ID verification must be enabled to receive the callback.

ID Verification Web

User journey state transaction state Callback
Not started Pending => Failed Transaction will be cleaned-up from pending to failed after the authorization token lifetime expires
Callback: Verification status NO_ID_UPLOADED
Drop off during first attept Pending => Failed Transaction will be finished 15 minutes after the last update
Callback: Verification status NO_ID_UPLOADED
Drop off during second or third attempt Done Transaction will be finished 15 minutes after the last update
Callback: Verification status ERROR_NOT_READABLE_ID with previous reject reason
Finished Done Callback: Verification status depends on the result

ID Verification Mobile (Android/iOS)

User journey state transaction state Callback
Drop off Pending => Failed Transaction will be cleaned-up from pending to failed 15 minutes after last update
Callback: verification status NO_ID_UPLOADED
Finished Done ID verification will be performed
Callback: verification status depends on the result (see table below)

Parameters

The following parameters are posted to your callback URL for ID Verification Web, ID Verification API and ID Verification Mobile iOS/Android.

Required items appear in bold type.

Parameter Max. Length Description Notes
callBackType NETVERIFYID
jumioIdScanReference 36 Jumio’s reference number for each transaction
verificationStatus Possible states:
• APPROVED_VERIFIED
• DENIED_FRAUD
• DENIED_UNSUPPORTED_ID_TYPE 1
• DENIED_UNSUPPORTED_ID_COUNTRY 1
• ERROR_NOT_READABLE_ID
• NO_ID_UPLOADED
idScanStatus SUCCESS if verificationStatus = APPROVED_VERIFIED, otherwise ERROR
idScanSource Possible values:
• WEB ( NVW4 before capture method is selected)
• WEB_CAM ( NVW4 with camera capture)
• WEB_UPLOAD ( NVW4 with file upload)
• API (performNetverify)
• SDK (mobile)
idCheckDataPositions • OK if verificationStatus = APPROVED_VERIFIED
• otherwise N/A
idCheckDocumentValidation • OK if verificationStatus = APPROVED_VERIFIED
• otherwise N/A
idCheckHologram • OK if verificationStatus = APPROVED_VERIFIED
• otherwise N/A
idCheckMRZcode • OK for passports and supported ID cards if verificationStatus = APPROVED_VERIFIED and MRZ check is enabled
• otherwise N/A
not returned for DEU, HKG, JPN, NLD, SGP, KOR if NV masking is enabled 4
idCheckMicroprint • OK if verificationStatus = APPROVED_VERIFIED
• otherwise N/A
idCheckSecurityFeatures • OK if verificationStatus = APPROVED_VERIFIED
• otherwise N/A
idCheckSignature • OK if verificationStatus = APPROVED_VERIFIED
• otherwise N/A
transactionDate Timestamp (UTC) of the transaction creation
format: YYYY-MM-DDThh:mm:ss.SSSZ
callbackDate Timestamp (UTC) of the callback creation
format: YYYY-MM-DDThh:mm:ss.SSSZ
identityVerification Identity verification as JSON object,
ONLY if verificationStatus = APPROVED_VERIFIED

see table Identity Verification below
activation required
idType Possible types:
• PASSPORT
• DRIVING_LICENSE
• ID_CARD
• VISA

Currently, Jumio only supports US and China visas in certain cases. Visas from other countries will be rejected as unsupported with idType = VISA
idSubtype 255 Possible subtypes if idType = ID_CARD
• NATIONAL_ID
• CONSULAR_ID
• ELECTORAL_ID
• RESIDENT_PERMIT_ID
• TAX_ID
• STUDENT_ID
• PASSPORT_CARD_ID
• MILITARY_ID
• PUBLIC_SAFETY_ID
• HEALTH_ID
• OTHER_ID
• VISA
• UNKNOWN

Possible subtypes if idType = DRIVING_LICENSE
• REGULAR_DRIVING_LICENSE
• LEARNING_DRIVING_LICENSE

Possible subtypes if idType = PASSPORT
• E_PASSPORT (only for mobile)
idCountry 3 Possible countries:
ISO 3166-1 alpha-3 country code
• XKX (Kosovo)
rejectReason Reject reason as JSON object if verificationStatus = DENIED_FRAUD or ERROR_NOT_READABLE_ID, see tables below
idScanImage 255 URL to retrieve the image of the transaction (JPEG or PNG) if available 2
idScanImageFace 255 URL to retrieve the face image of the transaction (JPEG or PNG) if available 2
idScanImageBackside 255 URL to retrieve the back side image of the transaction (JPEG or PNG) if available 2
idNumber 200 Identification number of the document as available on the ID if enabled, otherwise if provided
idFirstName 200 • First name of the customer as available on the ID if enabled, otherwise if provided

• For following documents, N/A returned (if name contains non-Latin characters)
- if idCountry = CHN and idType = DRIVING_LICENSE or ID_CARD
- if idCountry = KOR and idType = DRIVING_LICENSE or ID_CARD
- if idCountry = JPN and idType = DRIVING_LICENSE
- if idCountry = RUS and idType = ID_CARD
idLastName 200 • Last name of the customer as available on the ID if enabled, otherwise if provided

• For following documents, Chinese name as printed on the document returned (if enabled)
- if idCountry = CHN and idType = DRIVING_LICENSE or ID_CARD
(first name and last name)

• Only if full name is printed in Latin characters
- if idCountry = KOR and idType = DRIVING_LICENSE
(first name and last name)

• For following documents, N/A returned (if name contains non-Latin characters)
- if idCountry = CHN and idType = DRIVING_LICENSE or ID_CARD
- if idCountry = KOR and idType = DRIVING_LICENSE or ID_CARD
- if idCountry = JPN and idType = DRIVING_LICENSE
- if idCountry = RUS and idType = ID_CARD
activation required for Chinese name extraction
idDob 10 Date of birth in the format YYYY-MM-DD as available on the ID if enabled, otherwise if provided

If idCountry = HKG, IND date of birth can be incomplete, possible values e.g.:
• Year-Month-Day: 1990-12-09
• Year only: 1990-01-01
• Year-Month: 1990-12-01
• Year-Day: 1990-01-09
Additional parameter originDob will be provided
not returned for KOR if NV masking is enabled 4
idExpiry 10 Date of expiry in the format YYYY-MM-DD as available on the ID if enabled, otherwise if provided
idUsState 255 Possible values if idType = PASSPORT or ID_CARD:
• Last two characters of ISO 3166-2:US state code
• Last 2-3 characters of ISO 3166-2:AU state code
• Last two characters of ISO 3166-2:CA state code
ISO 3166-1 country name
• XKX (Kosovo)
• Free text - if it can't be mapped to a state/country code

If idType = DRIVING_LICENSE:
• Last two characters of ISO 3166-2:US state code
• Last 2-3 characters of ISO 3166-2:AU state code
• Last two characters of ISO 3166-2:CA state code
personalNumber 14 Personal number of the document • if idType = PASSPORT and if data available on the document not returned for NLD, DEU, KOR if NV masking is enabled 4
idAddress Address as JSON object in RAW format, see tables below 3 activation required
merchantIdScanReference 100 Your reference for each transaction
merchantReportingCriteria 100 Your reporting criteria for each transaction
customerId 100 ID of the customer as provided
clientIp IP address of the client in the format xxx.xxx.xxx.xxx
firstAttemptDate Timestamp (UTC) of the first transaction attempt
format: YYYY-MM-DDThh:mm:ss.SSSZ
optionalData1 255 Optional field of MRZ line 1 not returned for NLD ID if NV masking is enabled 4
optionalData2 255 Optional field of MRZ line 2
dni 255 DNI as available on the ID if idCountry = ESP and idSubtype = NATIONAL_ID
curp 255 CURP is available if idCountry = MEX and idType = PASSPORT, DRIVING_LICENSE, or ID_CARD and idSubtype = ELECTORAL_ID activation required
gender 2 Possible values: M, F
• if idCountry = FRA, HKG and idSubtype = NATIONAL_ID (MRZ type CNIS)
• if idCountry = BHR, SGP and idType = PASSPORT, ID_CARD, DRIVING_LICENSE
• if idCountry = CHL and idType = ID_CARD
• if idCountry = PHL and idType = DRIVING_LICENSE
• if idCountry = PER and idType = PASSPORT, ID_CARD
• if idType = VISA and additional extraction for Visa enabled
• if readable: best effort
activation required
presetCountry 3 Possible countries:
ISO 3166-1 alpha-3 country code
• XKX (Kosovo)
presetIdType Possible ID types: PASSPORT, DRIVING_LICENSE, ID_CARD
dlCarPermission 255 Only available if:
•Extraction supported for specific country
•verificationStatus = APPROVED_VERIFIED

Possible values:
• YES
• NO
• NOT_READABLE

Currently, we support car permission extraction for the following countries:
• Austria
•Belarus
•Belgium
•Bulgaria
•Croatia
•Czech Republic
•Denmark
•Estonia
•Finland
•France
•Germany
•Gibraltar
•Guernsey
•Greece
•Hungary
•Iceland
•Ireland
•Isle of Man
•Italy
•Jersey
•Latvia
•Liechtenstein
•Lithuania
•Luxembourg
•Macedonia
•Malta
•Moldova
•Republic of Montenegro
•Netherlands
•Norway
•Poland
•Portugal
•Romania
•Russian Federation
•Serbia
•Slovakia
•Slovenia
•Spain
•Sweden
•Switzerland
•Ukraine
•United Kingdom
•Taiwan (For Taiwan date is not extracted however it is given as mentioned below) DL categories:
- category:大型重型機車
- availability:no
- category:普通重型機車
- availability:yes
activation required
dlCategories JSON object Driver license categories as JSON object, see table below

Supported countries:
• Austria
• Belgium
• Bulgaria
• France
• Germany
• Great Britain
• Italy
• Latvia
• Lithuania
• Netherlands
• Romania
• Spain
• Taiwan
activation required
nationality 3 Possible values:
ISO 3166-1 alpha-3 country code (if MRZ contains nationality)
activation required
passportNumber 255 Passport number if idType = VISA and additional extraction for Visa enabled activation required
durationOfStay 255 Duration of stay if idType = VISA and additional extraction for Visa enabled activation required
numberOfEntries 255 Number of entries if idType = VISA and additional extraction for Visa enabled activation required
visaCategory 255 Visa category if idType = VISA and additional extraction for Visa enabled activation required
originDob 10 Original format of date of birth if idCountry = IND
Possible values e.g.:
• Year/Month/Day: 1990/12/09
• Year only: 1990//
• Year/Month: 1990/12/
• Year/Day: 1990//09

issuingAuthority 50 Issuing authority of the document (if issuing authority extraction is enabled)
• if idCountry = ITA
activation required
issuingDate 10 Issuing date of the document (if issuing date extraction enabled) activation required
issuingPlace 50 Issuing place of the document (if issuing place extraction is enabled)
• if idCountry = COL, ITA
activation required
livenessImages URLs to the liveness images of the transaction (JPEG or PNG) if available 5
placeOfBirth 256 Place of birth of document holder
• if idCountry = AFG, AGO, AIA, ALB, AND, ARE, ARM, ATG, AUS, AUT, AZE, BDI, BEL, BEN, BFA, BGD, BGR, BHR, BHS, BIH, BLR, BLZ, BMU, BOL, BRA, BRB, BRN, BTN, BWA, CAF, CAN, DEU, ESP, FRA, GBR, HKG, HUN, IDN, IND, IRL, ITA, NGA, NLD, PAK, PHL, POL, PRT, ROU, SGP, RUS, TUR, UKR, USA
activation required
facemap 255 URL to the facemap of the transaction if available activation required
taxNumber 255 Tax number of the document
• if idCountry = ITA and idType = HEALTH_ID or TAX_ID
activation required
cpf 255 CPF number of the document activation required
registrationNumber 255 Registration number of the document activation required
mothersName 255 Name of the document holder's mother activation required
fathersName 255 Name of the document holder's father activation required
personalIdentificationNumber 255 Personal identification number as available on the ID
• if idCountry = GEO and idSubtype = PASSPORT
• if idCountry = COL and idSubtype = ID_CARD
• if idCountry = LTU and idSubtype = DRIVING_LICENSE
• if idCountry = TUR and idSubtype = ID_CARD, DRIVING_LICENSE
• if idCountry = ROU and idSubtype = ID_CARD, DRIVING_LICENSE
• if idCountry = ISR and idSubtype = DRIVING_LICENSE
activation required
rgNumber 255 "General Registration" number for idCountry = BRA activation required
voterIdNumber 255 "Clave de elector" number for idCountry = MEX activation required
issuingNumber 255 "Numero de emission" number for idCountry = MEX activation required
expiryDateParts Object containing the expiry date information (year, month, day) from the corresponding fields on the document 6
Example:
{"year": "2022",
"month": "08",
"day": "31"}
dateOfBirthParts Object containing the date of birth information (year, month, day) from the corresponding fields on the document 6
Example:
{"year": "2022",
"month": "08",
"day": "31"}
issuingDateParts Object containing the issuing date information (year, month, day) from the corresponding fields on the document 6
Example:
{"year": "2022",
"month": "08",
"day": "31"}

object containing the date information (year, month, day) from the corresponding fields on the document.

1 Transaction is declined as unsupported if the ID is not supported by Jumio, or not marked as accepted in your customer portal settings.
2 For ID types that are configured to support a separate scan of the front side and back side, there is a separate image of the front side (idScanImage) and the back side (idScanImageBackside). If Identity Verification is enabled, there is also a picture of the face (idScanImageFace).
3 Address recognition is performed for supported IDs, if enabled. Please check Supported documents for Address Extraction to see which supported documents. The address parameters are a part of the JSON object, if they are available on the ID.
4 Fields containing certain kinds of personally identifying information are not returned if NV masking is enabled for the Netherlands, Germany, or South Korea. See ID Verification masking for more information.
5 Liveness images are returned only for transactions containing Identity Verification submitted via the Android and iOS SDKs. The number of images can vary and may not be returned in chronological order.
6 If one of the values such as "day" is not included in the document it will also not be returned in the object. For examples and additional details, refer to our Knowledge Base.

Retrieving images

Use HTTP GET with Basic Authorization using your API token and secret as userid and password.
Header: The following parameters are mandatory in the header section of your request.

  • Accept: image/jpeg, image/png
  • User-Agent: YOURCOMPANYNAME YOURAPPLICATIONNAME/VERSION

    The value for User-Agent must contain a reference to your business or entity for Jumio to be able to identify your requests. (e.g. YourCompanyName YourAppName/1.0.0). Without a proper User-Agent header, Jumio will take longer to diagnose API issues.

The TLS protocol is required during the TLS handshake (see Supported cipher suites) and we strongly recommend using the latest version.

Timestamp format

Timestamp are sent in format: YYYY-MM-DDThh:mm:ss.SSSZ with constraint that SSS (milliseconds) can either be

  • Not included: YYYY-MM-DDThh:mm:ssZ
  • 1 digit: YYYY-MM-DDThh:mm:ss.SZ
  • 2 digits: YYYY-MM-DDThh:mm:ss.SSZ
  • 3 digits: YYYY-MM-DDThh:mm:ss.SSSZ

We encourage to use a standard library to convert the timestamp received from Jumio as the timeformat is valid with and without the SSS milliseconds.

Supported documents for address extraction

Country ID card Driving license Passport Callback format
Australia No Yes No RAW
Bahrain No Yes No RAW
Canada No Yes No RAW
France Yes Yes Yes RAW
Germany Yes No No RAW
India Yes No No RAW
Indonesia Yes No No RAW
Ireland No Yes No RAW
Malaysia Yes No No RAW
Malta Yes Yes No RAW
Mexico Yes No No RAW
Peru Yes Yes No RAW
Romania Yes No No RAW
Singapore Yes No No RAW
Spain Yes No No RAW
United Kingdom No Yes No RAW
United States Yes Yes No RAW
Italy Yes Yes Yes RAW

RAW address format

Parameter idAddress Max. Length Description
line1 100 Line item 1
line2 100 Line item 2
line3 100 Line item 3
line4 100 Line item 4
line5 100 Line item 5
country 3 Possible countries:
ISO 3166-1 alpha-3 country code
• XKX (Kosovo)
postalCode 15 Postal code
city 64 City
subdivision 100 Subdivision (Region, State, Province, Emirate, Department, ...)
formattedAddress Complete address in a formatted way

Reject reason

Parameter rejectReason Type Max. Length Description
rejectReasonCode String 5 see below
rejectReasonDescription String 64 Possible codes and descriptions for verification status DENIED_FRAUD:
100 MANIPULATED_DOCUMENT
105 FRAUDSTER
106 FAKE
107 PHOTO_MISMATCH
108 MRZ_CHECK_FAILED
109 PUNCHED_DOCUMENT
110 CHIP_DATA_MANIPULATED (only available for ePassport)
111 MISMATCH_PRINTED_BARCODE_DATA
112 CHIP_MISSING
113 MISMATCHING_DATA_REPEATED_FACE1
114 DIGITAL_MANIPULATION
115 MISMATCH_HRZ_MRZ_DATA
116 SUPERIMPOSED_TEXT
118 MISMATCH_FRONT_BACK

Possible codes and descriptions for verificationStatus = ERROR_NOT_READABLE_ID:
102 PHOTOCOPY_BLACK_WHITE
103 PHOTOCOPY_COLOR
104 DIGITAL_COPY
200 NOT_READABLE_DOCUMENT
201 NO_DOCUMENT
202 SAMPLE_DOCUMENT
206 MISSING_BACK
207 WRONG_DOCUMENT_PAGE
209 MISSING_SIGNATURE
210 CAMERA_BLACK_WHITE
211 DIFFERENT_PERSONS_SHOWN (documents of multiple people in one image)
213 INVALID_WATERMARK
214 MISSING_FRONT
300 MANUAL_REJECTION
rejectReasonDetails JSON object / JSON array Reject reason details as JSON object (if only one item is returned) or JSON array (containing JSON objects) if rejectReasonCode = 100 or 200, see table below

1activation required

Reject reason details

Parameter rejectReasonDetails Type Max. Length Description
detailsCode String 5 see below
detailsDescription String 32 Possible codes and descriptions for rejectReasonCode = 100:
1001 PHOTO
1002 DOCUMENT_NUMBER
1003 EXPIRY
1004 DOB
1005 NAME
1006 ADDRESS
1007 SECURITY_CHECKS
1008 SIGNATURE
1009 PERSONAL_NUMBER
10011 PLACE_OF_BIRTH

Possible codes and descriptions for rejectReasonCode = 200:
2001 BLURRED
2002 BAD_QUALITY
2003 MISSING_PART_DOCUMENT
2004 HIDDEN_PART_DOCUMENT
2005 DAMAGED_DOCUMENT
2006 GLARE
2007 MISSING_MANDATORY_DATAPOINTS

Identity Verification

Required items appear in bold type.

Parameter identityVerification Max. Length Description
similarity 1 Possible values:
• MATCH
• NO_MATCH
• NOT_POSSIBLE (not executed or bad quality of face on document)
validity 2 Possible values:
• TRUE
• FALSE
reason Provided if validity = FALSE
Possible values:
• SELFIE_CROPPED_FROM_ID
• ENTIRE_ID_USED_AS_SELFIE
• MULTIPLE_PEOPLE
• SELFIE_IS_SCREEN_PAPER_VIDEO
• SELFIE_MANIPULATED
• AGE_DIFFERENCE_TOO_BIG
• NO_FACE_PRESENT
• FACE_NOT_FULLY_VISIBLE
• BAD_QUALITY
• BLACK_AND_WHITE
• LIVENESS_FAILED 3

1 Is the person on the selfie the same as the one on the document?
2 Is it a live person?
3 Potential reasons LIVENESS_FAILED:

  • User tries to spoof the system
  • User does not want to show his face at all but wants to complete the onboarding
  • User does not look straight into the camera
  • User does not finish the the Identity Verification process
  • User has bad lighting conditions (too dark, too bright, reflections on face, not enough contrast, …)
  • User is covering (parts) of his face with a scarf, hat, or something similar
  • User is not able to align his face with the oval
  • A different person is performing the Identity Verification in the second step than in the first one

Driver License Categories

Required items appear in bold type.

Parameter dlCategories Max. Length Description
category 10 String in Latin or Traditional Chinese characters
issueDate Issue date in the format YYYY-MM-DD
expiryDate Date of expiry in the format YYYY-MM-DD as available on the driver license
isReadable Possible value:
• FALSE
availability Possible values:
• yes
• no
• not readable

ID Verification Masking

Extracting certain sensitive information from identity documents in the Netherlands, Germany, and South Korea is prohibited by law for customers with a business presence in those countries. These customers can elect to enable ID Verification masking to protect this sensitive data.

When masking is enabled for these countries, certain fields cannot be extracted and returned in the callback. The information contained in these fields is masked before the user's image is stored.

Country Document Affected parameters (not returned in the callback)
Germany Passport idCheckMRZcode, idNumber
Germany ID card idCheckMRZcode, idNumber
Hong Kong Passport idCheckMRZcode, idNumber
Hong Kong ID card idNumber
Japan ID card idNumber
Netherlands Passport idCheckMRZcode, personalNumber
Netherlands ID card idCheckMRZcode, personalNumber
Netherlands Driver license image is masked, no extracted data fields are affected
Singapore Passport idCheckMRZcode,idNumber
Singapore Driver license idNumber
Singapore ID card idNumber
South Korea Passport idCheckMRZcode, personalNumber
South Korea ID card idNumber
South Korea Driver license idNumber

Sample Callbacks

Sample callback (URL-encoded POST): Approved and verified

idExpiry=2022-12-31&idType=PASSPORT&idDob=1990-01-01&idCheckSignature=OK&idCheckDataPositions=OK&idCheckHologram=OK&idCheckMicroprint=OK&idCheckDocumentValidation=OK&idCountry=USA&idScanSource=SDK&idFirstName=FIRSTNAME&verificationStatus=APPROVED_VERIFIED&jumioIdScanReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&personalNumber=N%2FA&merchantIdScanReference=YOURIDSCANREFERENCE&idCheckSecurityFeatures=OK&idCheckMRZcode=OK&idScanImage=https%3A%2F%2Fnetverify.com%2Frecognition%2Fv1%2Fidscan%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Ffront&callBackType=NETVERIFYID&clientIp=xxx.xxx.xxx.xxx&idLastName=LASTNAME&idAddress=%7B%22city%22%3A%22MIAMI%22%2C%22country%22%3A%22USA%22%2C%22formattedAddress%22%3A%22414+SOUTHWEST+AVE%2C+MIAMI%2C+FL%2C+33184%2C+USA%22%2C%22line1%22%3A%22414+SOUTHWEST+AVE%22%2C%22postalCode%22%3A%2233184%22%2C%22subdivision%22%3A%22FL%22%7D&idScanStatus=SUCCESS&identityVerification=%7B%22similarity%22%3A%22MATCH%22%2C%22validity%22%3Atrue%7D&idNumber=P1234

Sample callback (URL-encoded POST): Fraud

idType=PASSPORT&idCheckSignature=N%2FA&rejectReason=%7B%20%22rejectReasonCode%22%3A%22100%22%2C%20%22rejectReasonDescription%22%3A%22MANIPULATED_DOCUMENT%22%2C%20%22rejectReasonDetails%22%3A%20%5B%7B%20%22detailsCode%22%3A%20%221001%22%2C%20%22detailsDescription%22%3A%20%22PHOTO%22%20%7D%2C%7B%20%22detailsCode%22%3A%20%221004%22%2C%20%22detailsDescription%22%3A%20%22DOB%22%20%7D%5D%7D&idCheckDataPositions=N%2FA&idCheckHologram=N%2FA&idCheckMicroprint=N%2FA&idCheckDocumentValidation=N%2FA&idCountry=USA&idScanSource=SDK&verificationStatus=DENIED_FRAUD&jumioIdScanReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&merchantIdScanReference=YOURSCANREFERENCE&idCheckSecurityFeatures=N%2FA&idCheckMRZcode=N%2FA&idScanImage=https%3A%2F%2Fnetverify.com%2Frecognition%2Fv1%2Fidscan%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Ffront&callBackType=NETVERIFYID&clientIp=xxx.xxx.xxx.xxx&idScanStatus=ERROR

Callback for Authentication

An HTTP POST request is sent to your specified callback URL containing an application/x-www-form-urlencoded formatted string with the transaction result.

To specify a global callback URL in the Customer Portal, see Configuring Settings in the Customer Portal.

A callback URL can also be specified per transaction in our Android and iOS SDK.

Parameters

Required items appear in bold type.

Parameter Type Max. Length Description
callbackDate string Timestamp of the callback in the format:
YYYY-MM-DDThh:mm:ss.SSSZ
transactionReference string 36 Jumio’s reference number for the Authentication transaction
enrollmentTransactionReference string 36 Jumio’s reference number of the enrollment transaction (ID)
transactionResult string Possible values:
• PASSED
• FAILED
• INVALID
• EXPIRED
transactionDate string Timestamp of the transaction in the format:
YYYY-MM-DDThh:mm:ss.SSSZ
scanSource string Possible values:
• SDK
• WEB
callBackType string NETVERIFY_AUTHENTICATION
idScanImageFace string URL to retrieve the face image of the transaction (JPEG or PNG) 1
livenessImages JSON array URLs to the liveness images of the transaction (JPEG or PNG) 1 2
userReference string Your internal reference for the user.

1 Retrieve the images of the transaction.
2 The number of images can vary and may not be returned in chronological order.

Retrieving Images

Use HTTP GET with Basic Authorization using your API token and secret, as userid and password.
Header: The following parameters are mandatory in the header section of your request.

  • Accept: image/jpeg, image/png
  • User-Agent: YOURCOMPANYNAME YOURAPPLICATIONNAME/VERSION

    The value for User-Agent must contain a reference to your business or entity for Jumio to be able to identify your requests. (e.g. YourCompanyName YourAppName/1.0.0). Without a proper User-Agent header, Jumio will take longer to diagnose API issues.

The TLS protocol is required during the TLS handshake (see Supported cipher suites) and we strongly recommend using the latest version.

Timestamp format

Timestamp are sent in format: YYYY-MM-DDThh:mm:ss.SSSZ with constraint that SSS (milliseconds) can either be

  • Not included: YYYY-MM-DDThh:mm:ssZ
  • 1 digit: YYYY-MM-DDThh:mm:ss.SZ
  • 2 digits: YYYY-MM-DDThh:mm:ss.SSZ
  • 3 digits: YYYY-MM-DDThh:mm:ss.SSSZ

We encourage to use a standard library to convert the timestamp received from Jumio as the timeformat is valid with and without the SSS milliseconds.

Sample Callback

Sample callback (URL-encoded POST): Passed

scanSource=SDK&transactionReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&enrollmentTransactionReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&callBackType=NETVERIFY_AUTHENTICATION&livenessImages=%5B%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F1%22%2C%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F2%22%2C%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F3%22%2C%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F4%22%2C%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F5%22%2C%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F6%22%2C%22https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fliveness%2F7%22%5D&idScanImageFace=https%3A%2F%2Fnetverify.com%2Fapi%2Fnetverify%2Fv2%2Fauthentications%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fimages%2Fface&callbackDate=2019-05-30T08%3A37%3A35.822Z&transactionDate=2019-05-29T08%3A37%3A24.344Z&transactionResult=PASSED

Callback for Document Verification

Parameters

The following parameters are posted to your callback URL for Document Verification and Document Verification API.

Required items appear in bold type.

Parameter Type Max. Length Description
scanReference String 36 Jumio's reference number for each transaction
timestamp String Timestamp (UTC) of the response
format: YYYY-MM-DDThh:mm:ss.SSSZ
transaction JSON object Transaction related data, see table below
document JSON object Document related data, see table below

Transaction

Required items appear in bold type.

Parameter transaction Type Max. Length Description
date String Timestamp (UTC) of the transaction creation
format: YYYY-MM-DDThh:mm:ss.SSSZ
status String Possible states:
• DONE
• FAILED (if initialized acquisition is not successfully finalized within 15 minutes after creation/last update)
source String Possible values:
• DOC_UPLOAD (Document Verification)
• DOC_API (Document Verification API)
• DOC_SDK (Document Verification Mobile)
merchantScanReference String 255 Your reference for each transaction
customerId String 255 ID of the customer
merchantReportingCriteria String 255 Your reporting criteria for each transaction
clientIp String 100 IP address of the client if provided for the Document Verification API

Document

Required items appear in bold type.

Parameter document Type Max. Length Description
status String Possible states:
⦁ UPLOADED (default) 1
⦁ EXTRACTED if supported document for data extraction provided 2
⦁ DISCARDED if no supported document for data extraction provided
country String 3 Possible countries:
ISO 3166-1 alpha-3 country code
⦁ XKX (Kosovo)
type String Possible types:
⦁ CC (Credit card, front and back side)
⦁ BS (Bank statement, front side)
⦁ IC (Insurance card, front side)
⦁ UB (Utility bill, front side)
⦁ CAAP (Cash advance application, front and back side)
⦁ CRC (Corporate resolution certificate, front and back side)
⦁ CCS (Credit card statement, front and back side)
⦁ LAG (Lease agreement, front and back side)
⦁ LOAP (Loan application, front and back side)
⦁ MOAP (Mortgage application, front and back side)
⦁ TR (Tax return, front and back side)
⦁ VT (Vehicle title, front side)
⦁ VC (Voided check, front side)
⦁ STUC (Student card, front side)
⦁ HCC (Health care card, front side)
⦁ CB (Council bill, front side)
⦁ SENC (Seniors card, front side)
⦁ MEDC (Medicare card, front side)
⦁ BC (Birth certificate, front side)
⦁ WWCC (Working with children check, front side)
⦁ SS (Superannuation statement, front side)
⦁ TAC (Trade association card, front side)
⦁ SEL (School enrolment letter, front side)
⦁ PB (Phone bill, front side)
⦁ SSC (Social security card, front side)
⦁ CUSTOM (Custom document type)
⦁ OTHER (Other document type)
images JSON array URLs to the images of the transaction (JPEG or PNG) 3
originalDocument String URL to the originally submitted document of the transaction (PDF) if available 3
customDocumentCode String 100 Your custom document code (maintained in your Jumio customer portal) if type = CUSTOM
extractedData JSON object Extracted data if status = EXTRACTED, see Supported documents for Data Extraction

1 This also applies for document type CCS where no masking was needed as no full PAN is displayed.
2 If masking has been done, status will be always EXTRACTED as well. This applies to all documents uploaded with type CC, as well as to documents uploaded with type CCS where a ful PAN is displayed.
3 Retrieve the images of the transaction.

Retrieving Images

Use HTTP GET with Basic Authorization using your API token and secret, as userid and password.
Header: The following parameters are mandatory in the header section of your request.

  • Accept: image/jpeg, image/png
  • User-Agent: YOURCOMPANYNAME YOURAPPLICATIONNAME/VERSION

    The value for User-Agent must contain a reference to your business or entity for Jumio to be able to identify your requests. (e.g. YourCompanyName YourAppName/1.0.0). Without a proper User-Agent header, Jumio will take longer to diagnose API issues.

The TLS protocol is required during the TLS handshake (see Supported cipher suites) and we strongly recommend using the latest version.

Timestamp format

Timestamp are sent in format: YYYY-MM-DDThh:mm:ss.SSSZ with constraint that SSS (milliseconds) can either be:

  • Not included: YYYY-MM-DDThh:mm:ssZ
  • 1 digit: YYYY-MM-DDThh:mm:ss.SZ
  • 2 digits: YYYY-MM-DDThh:mm:ss.SSZ
  • 3 digits: YYYY-MM-DDThh:mm:ss.SSSZ

We encourage to use a standard library to convert the timestamp received from Jumio as the timeformat is valid with and without the SSS milliseconds.

Extracted Data

Parameter extractedData Type Max. Length Description
firstName String 255 First name if readable
lastName String 255 Last name if readable
name String 100 Full name if readable
accountNumber String 34 Bank account number of the customer from a bank statement
pan String 20 Personal account number of credit card
issueDate String Issue date in the format YYYY-MM-DD
expiryDate String Date of expiry in the format YYYY-MM-DD
ssn String 255 Social security number if readable
signatureAvailable String true if signature available, otherwise false
swiftCode String 20 BIC/SWIFT code
address JSON object Address as JSON object in RAW format if status = EXTRACTED, see table below

RAW address format

Parameter address Max. Length Description
line1 100 Line item 1
line2 100 Line item 2
line3 100 Line item 3
line4 100 Line item 4
line5 100 Line item 5
countryCode 3 Possible countries of residence:
ISO 3166-1 alpha-3 country code
• XKX (Kosovo)
postalCode 15 Postal code
city 64 City
subdivision 50 Name of subdivision
formattedAddress Complete address in a formatted way

Supported documents for data extraction

The following data points will be extracted for all documents printed in a Latin-script character set, provided that a minimum of one of these data points are available for extraction. If the document does not meet these extraction criteria, only the document image will be saved — no data extraction will be performed.

Type Extracted data
BS (bank statement) name, issueDate, address, accountNumber, swiftCode
UB (utility bill) name, issueDate, address, dueDate
CCS (credit card statement) name, issueDate, address, cardNumberLastFourDigits
OTHER (Other document type) name, issueDate, address
CC (credit card) 1 name, pan, expiryDate (currently returned as issueDate)
SSC (Social Security card) 1,2 firstName, lastName, ssn, signatureAvailable

1 For CC and SSC all data points need to be available for extraction.
2 USA only.

Sample Callbacks

Sample callback (URL-encoded POST): UPLOADED

timestamp=2017-06-06T12%3A06%3A49.016Z&scanReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&document=%7B%22type%22%3A%22SSC%22%2C%22country%22%3A%22AUT%22%2C%22images%22%3A%5B%22https%3A%2F%2Fretrieval.netverify.com%2Fapi%2Fnetverify%2Fv2%2Fdocuments%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fpages%2F1%22%5D%2C%22status%22%3A%22UPLOADED%22%7D&transaction=%7B%22customerId%22%3A%22CUSTOMERID%22%2C%22date%22%3A%222014-10-17T06%3A37%3A51.969Z%22%2C%22merchantScanReference%22%3A%22YOURSCANREFERENCE%22%2C%22source%22%3A%22DOC_SDK%22%2C%22status%22%3A%22DONE%22%7D

Sample callback (URL-encoded POST): EXTRACTED

timestamp=2017-06-06T12%3A06%3A49.016Z&scanReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&document=%7B%22type%22%3A%22SSC%22%2C%22country%22%3A%22USA%22%2C%22extractedData%22%3A%7B%22firstName%22%3A%22FIRSTNAME%22%2C%22lastName%22%3A%22LASTNAME%22%2C%22signatureAvailable%22%3Atrue%2C%22ssn%22%3A%22xxxxxxxxx%22%7D%2C%22images%22%3A%5B%22https%3A%2F%2Fretrieval.netverify.com%2Fapi%2Fnetverify%2Fv2%2Fdocuments%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fpages%2F1%22%5D%2C%22status%22%3A%22EXTRACTED%22%7D&transaction=%7B%22customerId%22%3A%22CUSTOMERID%22%2C%22date%22%3A%222014-10-17T06%3A37%3A51.969Z%22%2C%22merchantScanReference%22%3A%22YOURSCANREFERENCE%22%2C%22source%22%3A%22DOC_SDK%22%2C%22status%22%3A%22DONE%22%7D

Sample callback (URL-encoded POST): DISCARDED

timestamp=2017-06-06T12%3A06%3A49.016Z&scanReference=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx&document=%7B%22type%22%3A%22SSC%22%2C%22country%22%3A%22USA%22%2C%22images%22%3A%5B%22https%3A%2F%2Fretrieval.netverify.com%2Fapi%2Fnetverify%2Fv2%2Fdocuments%2Fxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx%2Fpages%2F1%22%5D%2C%22status%22%3A%22DISCARDED%22%7D&transaction=%7B%22customerId%22%3A%22CUSTOMERID%22%2C%22date%22%3A%222014-10-17T06%3A37%3A51.969Z%22%2C%22merchantScanReference%22%3A%22YOURSCANREFERENCE%22%2C%22source%22%3A%22DOC_SDK%22%2C%22status%22%3A%22DONE%22%7D

ID Verification Retrieval API

If your server was not able to receive or process the callback, you can use the Retrieval API to retrieve the results of your transaction.


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