Skip to content

Commit

Permalink
Release commit for 3.9.5
Browse files Browse the repository at this point in the history
  • Loading branch information
JumioMobileTeam committed Oct 23, 2023
1 parent 6717cf5 commit 8d8697e
Show file tree
Hide file tree
Showing 213 changed files with 17,110 additions and 15,808 deletions.
344 changes: 94 additions & 250 deletions README.md

Large diffs are not rendered by default.

209 changes: 56 additions & 153 deletions docs/changelog.md

Large diffs are not rendered by default.

Binary file added docs/images/authentication.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/bam_checkout.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/capturing_methods/autocapture_01.jpg
Binary file not shown.
Binary file removed docs/images/capturing_methods/autocapture_02.jpg
Binary file not shown.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.
Binary file removed docs/images/capturing_methods/mrz_scanning_01.jpg
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/capturing_methods/mrz_scanning_02.jpg
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/capturing_methods/nfc_scanning_01.jpg
Binary file not shown.
Binary file added docs/images/capturing_methods/nfc_scanning_01.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/capturing_methods/nfc_scanning_02.jpg
Binary file not shown.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/capturing_methods/nfc_scanning_03.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed docs/images/consent/consent_active_checked.jpg
Diff not rendered.
Binary file removed docs/images/consent/consent_active_unchecked.jpg
Diff not rendered.
Binary file removed docs/images/consent/consent_passive.jpg
Diff not rendered.
Binary file added docs/images/custom_ui_happy_path_diagram.jpg
Binary file added docs/images/document_verification.jpg
Diff not rendered.
Diff not rendered.
Binary file added docs/images/id_verification.jpg
Binary file added docs/images/images_overview/driver_license_US.png
Binary file added docs/images/images_overview/manual_capture.png
Diff not rendered.
Binary file removed docs/images/setup_tool.png
Diff not rendered.
Binary file modified docs/images/surface_tool.png
281 changes: 281 additions & 0 deletions docs/integration_authentication.md

Large diffs are not rendered by default.

339 changes: 339 additions & 0 deletions docs/integration_bam-checkout.md

Large diffs are not rendered by default.

254 changes: 254 additions & 0 deletions docs/integration_document-verification.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,254 @@
![Document Verification](images/document_verification.jpg)

# Document Verification SDK for Android
Document Verification is a powerful solution to enable scanning various types (Utility Bill, Bank statement and many others) of your customer's documents in your mobile application within seconds, also supporting data extraction on documents like Utility Bills and Bank Statements (see [Supported documents for data extraction](https://github.com/Jumio/implementation-guides/blob/master/netverify/document-verification.md#supported-documents))

## Table of Contents
- [Release Notes](#release-notes)
- [Setup](#setup)
- [Dependencies](#dependencies)
- [Initialization](#integration)
- [Configuration](#configuration)
- [Customization](#customization)
- [SDK Workflow](#sdk-workflow)
- [Callback](#callback)
- [Javadoc](https://jumio.github.io/mobile-sdk-android/)

## Release Notes
Please refer to our [Change Log](changelog.md) for more information. Current SDK version: 3.9.2

For breaking technical changes, please read our [transition guide](transition-guide_document-verification.md)

## Setup
The [basic setup](../README.md#basics) is required before continuing with the following setup for DocumentVerification.

Using the SDK requires an activity declaration in your AndroidManifest.xml.

```
<activity
android:name="com.jumio.dv.DocumentVerificationActivity"
android:theme="@style/Theme.DocumentVerification"
android:hardwareAccelerated="true"
android:configChanges="orientation|screenSize|screenLayout|keyboardHidden"/>
```

You can specify your own theme (see [Customization](#customizing-look-and-feel) chapter). The orientation can be sensor based or locked with the attribute `android:screenOrientation`.


## Dependencies
Below there is a list of dependices the application will need to work in Android. Some modules are mandatory, others are optinal. If an optional module is __not linked__, some functionalities such as certain methods may not be available, but the library size will be reduced. The [Sample app](../sample/JumioMobileSample/) apk size with the products ID Verification, BAM, Document Verification and Authentication included is currently around __18 MB__.

```
dependencies {
// mandatory
implementation "com.jumio.android:core:3.9.2@aar" // Jumio core library
implementation "com.jumio.android:dv:3.9.2@aar" // Document verification library
implementation "androidx.appcompat:appcompat:1.2.0"
implementation "androidx.room:room-runtime:2.2.6"
implementation "com.google.android.material:material:1.2.1"
}
```
__Note:__ Version numbers may vary.

#### Root Detection
Applications implementing the SDK shall not run on rooted devices. Use either the below method or a self-devised check to prevent usage of SDK scanning functionality on rooted devices.
```
DocumentVerificationSDK.isRooted(Context context);
```

#### Device Supported Check
Call the method `isSupportedPlatform` to check if the device is supported.
```
DocumentVerificationSDK.isSupportedPlatform();
```

Check the Android Studio [sample app](../sample/JumioMobileSample/) to learn the most common use.

## Initialization
Log into your Jumio customer portal. You can find your customer API token and API secret on the __Settings__ page under __API credentials__ tab. To create an instance for the SDK, perform the following call as soon as your activity is initialized.

```
private static String YOURAPITOKEN = ""; 
private static String YOURAPISECRET = "";
DocumentVerificationSDK documentVerificationSDK = DocumentVerificationSDK.create(yourActivity, YOURAPITOKEN, YOURAPISECRET, JumioDataCenter.US);
```
Make sure that your customer API token and API secret are correct, specify an instance
of your activity and provide a reference to identify the scans in your reports (max. 100 characters or `null`). If your customer account is in the EU data center, use `JumioDataCenter.EU` instead. Alternatively, use `JumioDataCenter.SG` for Singapore.

__Note:__ We strongly recommend storing all credentials outside of your app!

## Configuration

### Document Type
Use `setType()` to pass the document type.
```
documentVerificationSDK.setType("DOCUMENTTYPE");
```

Possible types:

* BC (Birth certificate)
* BS (Bank statement)
* CAAP (Cash advance application)
* CB (Council bill)
* CC (Credit card)
* CCS (Credit card statement)
* CRC (Corporate resolution certificate)
* HCC (Health care card)
* IC (Insurance card)
* LAG (Lease agreement)
* LOAP (Loan application)
* MEDC (Medicare card)
* MOAP (Mortgage application)
* PB (Phone bill)
* SEL (School enrolment letter)
* SENC (Seniors card)
* SS (Superannuation statement)
* SSC (Social security card)
* STUC (Student card)
* TAC (Trade association card)
* TR (Tax return)
* UB (Utility bill)
* VC (Voided check)
* VT (Vehicle title)
* WWCC (Working with children check)
* CUSTOM (Custom document type)

#### Custom Document Type
Use the following method to pass your custom document code. Maintain your custom document code within your Jumio customer portal under the tab __Settings__ --> __Document Verification__ --> __Custom__.
```
documentVerificationSDK.setCustomDocumentCode("YOURCUSTOMDOCUMENTCODE");
```

### Country Selection
You can specify issuing country using [ISO 3166-1 alpha-3](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3) country codes. In the example down below the United States ("USA") have been preselected. Use "XKX" for Kosovo.
```
documentVerificationSDK.setCountry("USA");
```

### Transaction Identifiers
Use the following property to identify the scan in your reports (max. 100 characters).
```
documentVerificationSDK.setReportingCriteria("YOURREPORTINGCRITERIA");
```

Use the following property to identify the scan in your reports (max. 100 characters).
```
documentVerificationSDK.setCustomerInternalReference("YOURSCANREFERENCE");
```

You can also set a user reference (max. 100 characters).
```
documentVerificationSDK.setUserReference("USERREFERENCE");
```

__Note:__ Transaction identifiers must not contain sensitive data like PII (Personally Identifiable Information) or account login.

### Callback
A callback URL can be specified for individual transactions constraints see chapter [Callback URL](#callback-url). This setting overrides your Jumio customer settings.
```
documentVerificationSDK.setCallbackUrl("YOURCALLBACKURL");
```
__Note:__ The callback URL must not contain sensitive data like PII (Personally Identifiable Information) or account login.


### Data Extraction
Data extraction is automatically enabled when it is activated for your account. Use the following setting to disable the extraction on a transaction level:

```
documentVerificationSDK.setEnableExtraction(false);
```

__Note:__ If you would like to enable extraction for your account in general, please contact your Account Manager, or reach out to Jumio Support at support@jumio.com or [online](https://support.jumio.com).

### Camera Handling
Use setCameraPosition to configure the default camera (front or back).
```
documentVerificationSDK.setCameraPosition(JumioCameraPosition.FRONT);
```

Use setDocumentName to override the document label on Help screen.
```
documentVerificationSDK.setDocumentName(“YOURDOCNAME”);
```

## Customization

### Customize Look and Feel
The SDK can be customized to fit your application’s look and feel by specifying `Theme.DocumentVerification` as a parent style of your own custom theme. Click on the element `Theme.DocumentVerification` in the manifest while holding Ctrl and Android Studio will display the available items. Change the colors of the styles attributes to fit your requirements.

There are two possibilities for applying the customized theme that was explained in the previous chapter:
* Customizing theme in AndroidManifest
* Customizing theme at runtime

#### Customizing Theme in AndroidManifest
Apply the '`CustomDocumentVerificationTheme` that you defined before by replacing `Theme.DocumentVerification` in the AndroidManifest.xml:
```
<activity
android:name="com.jumio.dv.DocumentVerificationActivity"
android:theme="@style/CustomDocumentVerificationTheme"
... />
```

### Customizing Theme at Runtime
To customize the theme at runtime, overwrite the theme that is used for Document Verification in the manifest by adding the line of code below. Use the resource id of a customized theme that uses `Theme.DocumentVerification` as parent.
```
documentVerificationSDK.setCustomTheme(CUSTOMTHEME);
```

## SDK Workflow

### Starting the SDK
To show the SDK, call the respective method below within your activity or fragment.

Activity: `DocumentVerificationSDK.start();`
Fragment: `startActivityForResult(documentVerificationSDK.getIntent(),DocumentVerificationSDK.REQUEST_CODE);`

__Note:__ The default request code is 300. To use another code, override the public static variable `DocumentVerificationSDK.REQUEST_CODE` before displaying the SDK.

### Retrieving Information
Implement the standard `onActivityResult()` method in your activity or fragment for successful scans (`Activity.RESULT_OK`) and user cancellation notifications (`Activity.RESULT_CANCELED`). Call `documentVerificationSDK.destroy()` once you received the result.

```
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == DocumentVerificationSDK.REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
// OBTAIN PARAMETERS HERE
// YOURCODE
} else if (resultCode == Activity.RESULT_CANCELED) {
String scanReference = data.getStringExtra(DocumentVerificationSDK.EXTRA_SCAN_REFERENCE);
String errorMessage = data.getStringExtra(DocumentVerificationSDK.EXTRA_ERROR_MESSAGE);
String errorCode = data.getStringExtra(DocumentVerificationSDK.EXTRA_ERROR_CODE);
// YOURCODE
}
// CLEANUP THE SDK AFTER RECEIVING THE RESULT
if (documentVerificationSDK != null) {
documentVerificationSDK.destroy();
documentVerificationSDK = null;
}
}
}
```

#### Error Codes
List of all **_error codes_** that are available via the `code` property of the DocumentVerificationError object. The first letter (A-K) represents the error case. The remaining characters are represented by numbers that contain information helping us understand the problem situation([x][yyyy]).

|Code | Message | Description |
| :--------------:|:----------|:---------------|
|A[x][yyyy]| We have encountered a network communication problem | Retry possible, user decided to cancel |
|B[x][yyyy]| Authentication failed | Secure connection could not be established, retry impossible |
|C[x]0401| Authentication failed | API credentials invalid, retry impossible |
|E[x]0000| No Internet connection available | Retry possible, user decided to cancel |
|F00000| Scanning not available this time, please contact the app vendor | Resources cannot be loaded, retry impossible |
|G00000| Cancelled by end-user | No error occurred |
|H00000| The camera is currently not available | Camera cannot be initialized, retry impossible |
|I00000| Certificate not valid anymore. Please update your application | End-to-end encryption key not valid anymore, retry impossible |
|K10400| Unsupported document code defined. Please contact Jumio support | An unsupported document code has been set, retry impossible |

__Note:__ Please always include the whole code when filing an error related issue to our support team.

## Callback
To get information about callbacks, __Netverify Retrieval API,__ __Netverify Delete API,__ and Global ID Verification settings and more, please read our [page with server related information](https://github.com/Jumio/implementation-guides/blob/master/netverify/callback.md).

0 comments on commit 8d8697e

Please sign in to comment.