vouched-python
Install the wheel on Python 3:
pip install --user vouched_python
Create update .env with the following test environment values:
VOUCHED_SERVER=https://verify.woollylabs.com/graphql
TEST_API_KEY_NO_PROD_DANGER=test_key
TEST_JOB_ID=<ID>
API_KEY=api_key
JOB_ID=<ID>
Run tests in the Python 3.7:
pytest
Build Package
To build python package , the wheel will be created in the dist folder. Run:
python setup.py sdist bdist_wheel
Quick start
Here's a very simple server using Vouched for Node.js for authentication
Create the Vouched client
from vouched.api import Client
client = Client(secret_app_key)
Arguments
| Parameter |
Type |
Required |
Description |
| key |
String |
* |
Secret Application Key |
Returns
| Parameter |
Type |
Required |
Description |
| key |
String |
* |
Secret Application Key |
Errors
InvalidRequestError
Update client key
cret_client_key = <SECRET>
data = client.update_secret_client_key(secret_client_key=secret_client_key)
Arguments
| Parameter |
Type |
Required |
Description |
| secretClientKey |
String |
* |
The secret key to be included in the header X-Api-Key of the webhook call. |
Returns
| Parameter |
Type |
Required |
Description |
| secretClientKey |
String |
* |
The updated secretClientKey |
Errors
AuthenticationError
ConnectionError
InvalidRequestError
UnknownSystemError
Submit a verification job
from vouched.utils import image_to_base64
user_photo_base64 = image_to_base64('/opt/app/tests/data/selfie.png')
id_photo_base64 = image_to_base64('/opt/app/tests/data/id.jpg')
job = client.submit(
user_photo=user_photo_base64,
id_photo=id_photo_base64,
properties=[
dict(name='internal_id',value='iid'),
dict(name='internal_username',value='bob'),
],
type='id-verification',
first_name='Janice',
dob='06/22/1990',
last_name='Way'
)
Arguments
| type |
String |
* |
Type of AI job ("id-verification")} |
| callbackURL |
String |
|
Upon the jobs completion, Vouched will POST the job results to the webhook. If the callbackURL is not given, Vouch will process the job in realtime. |
properties |
Object |
|
Arbitrary properties to add to the job, i.e. application ids. Described below. |
parameters |
Object |
* |
Object for id-verification. Described below. |
properties - arbitrary properties to add to the job, i.e. application ids
| type |
String |
* |
Type of AI job ("id-verification")} |
| name |
String |
|
Name of the property |
| value |
String |
|
Value of the property |
parameters - object for id-verification.
| type |
String |
* |
Type of AI job ("id-verification") |
| userPhoto |
String |
Buffer |
|
| idPhoto |
String |
Buffer |
* |
| idPhotoBack |
String |
Buffer |
* |
| firstName |
String |
* |
The users first name. |
| lastName |
String |
* |
The users last name. |
| dob |
String |
* |
Date in the format MM/DD/YYYY. |
Returns
| Parameter |
Type |
Required |
Description |
| job |
Job |
* |
The newly created job. |
Errors
AuthenticationError
ConnectionError
InvalidRequestError
UnknownSystemError
Remove a job
job = client.remove_job(
id='USkjk33'
)
Arguments
| Parameter |
Type |
Required |
Description |
| id |
String |
* |
ID of the job to remove. |
Returns
| Parameter |
Type |
Required |
Description |
| job |
Job |
* |
The newly created job. |
Errors
AuthenticationError
ConnectionError
InvalidRequestError
UnknownSystemError
Provide results on jobs
params := map[string]interface{}{
"page": 1,
"sortBy": "date",
"sortOrder": "desc",
"from": "1990-12-24T04:44:00+00:00",
"to": "2020-12-24T04:44:00+00:00",
"type": "id-verification",
"token": "SESSION_TOKEN",
"status": "active",
"withPhotos": false,
"pageSize": 2,
}
if resp, err := c.Jobs(params); err != nil {
fmt.Printf("Error: %+v\n", err)
} else {
fmt.Printf("Jobs: %+v\n", resp)
}
jobs = client.jobs(
page=1,
page_size=2,
type='id-verification',
token=<TOKEN_FROM_WEB_CLIENT>,
status='active',
sort_by='date',
sort_order='desc',
with_photos=True,
from_date='2017-01-24T04:44:00+00:00',
to_date='2020-12-24T04:44:00+00:00'
)
Arguments
| Parameter |
Type |
Required |
Description |
| id |
String |
* |
ID of the job to remove. |
| type |
String |
|
Type of job ("id-verification"). |
| ids |
[ID] |
|
Filter by a list of job IDs. |
| page |
String |
|
Paginate list by page where the page starts at 1, defaults to 1. |
| pageSize |
String |
|
The number of items for a page, max 1000, defaults to 100. |
| sortBy |
String |
|
Sort the list from ("date", "status"). |
| sortOrder |
String |
|
Order the sort from ("asc", "desc"). |
| status |
String |
|
Filter by status from ("active","completed") |
| to |
String |
|
Filter by submitted to ISO8601 date. |
| from |
String |
|
Filter by submitted from ISO8601 date. |
| withPhotos |
Boolean |
|
Defaults to False. The returned job will contain detailed information idPhoto, idPhotoBack, and userPhoto. |
Returns
| Parameter |
Type |
Required |
Description |
| jobs |
[Job] |
* |
The removed job. |
| totalPages |
Int |
* |
Total number of pages of jobs. |
| pageSize |
Int |
* |
The requested page size. |
| page |
Int |
* |
The requested page. |
| total |
Int |
* |
Total number of filtered jobs. |
Errors
AuthenticationError
ConnectionError
InvalidRequestError
UnknownSystemError
Types
Errors
| Parameter |
Type |
Required |
Description |
type |
String |
* |
|
| message |
String |
* |
Type of job ("id-verification"). |
| suggestion |
[ID] |
|
A suggestion for matching name, John Smith, Jon Smith. |
| errors |
[Error] |
InvalidRequestError contains a sub list of errors |
|
type
InvalidRequestError - The request is invalid.
FaceMatchError - Face match felled below the threshold
NameMatchError - Name match felled below the threshold
BirthDateMatchError - Birth date match felled below the threshold
InvalidIdPhotoError - The ID is invalid
InvalidUserPhotoError - The user photo (selfie) is invalid
UNAUTHENTICATED/AuthenticationError - The request could not be authenticated
ConnectionError - A connection error occurred while communicating to the Vouched service
InvalidIdBackPhotoError - The back of the ID is invalid
UnknownSystemError - A unknown system error occurred
InvalidIdError - The ID is invalid
Job
| Parameter |
Type |
Required |
Description |
| id |
ID |
* |
Job ID |
| status |
String |
* |
Job status from ("active","completed") |
| submitted |
String |
|
ISO8601 date |
request |
Object |
|
Object for 'id-verification'. |
result |
Object |
|
Object of 'id-verification'. |
| errors |
[Error] |
|
List of errors for unsuccessful completed jobs. |
request
| Parameter |
Type |
Required |
Description |
| type |
String |
* |
Job type |
| callbackURL |
String |
|
POST enabled webhook |
| parameters |
JobParameters |
* |
Object for 'id-verification' |
result
| Parameter |
Type |
Required |
Description |
| success |
Boolean |
* |
Did the id verification completed successfully? |
| type |
String |
|
The id type |
| callbackURL |
String |
|
POST enabled webhook |
| state |
String |
|
The issuing state of the id if applicable |
| country |
String |
|
The issuing country of the id |
| id |
String |
|
The verified id number of the id |
| expireDate |
String |
|
The verified expired date in the format MM/DD/YYYY |
| birthDate |
String |
|
The verified date in the format MM/DD/YYYY |
| firstName |
String |
|
The user's verified first name. |
| lastName |
String |
|
The user's verified last name |
| confidences |
Confidences |
|
Confidence scores |
Confidences
| Parameter |
Type |
Required |
Description |
| id |
Float |
* |
Confidence score for an id photo, 0-1.0 |
| backId |
Float |
* |
Confidence score for the back of the id photo, 0-1.0 |
| selfie |
Float |
* |
Confidence score for a selfie photo, 0-1.0 |
| idMatch |
Float |
* |
Confidence score for matching data on the id, 0-1.0 |
| faceMatch |
Float |
* |
Confidence score for matching faces, 0-1.0 |
JobParameters
| Parameter |
Type |
Required |
Description |
| idPhoto |
String |
* |
The user's official identification photo in base64. |
| userPhoto |
String |
|
The user's id comparison photo in base64. |
| twicPhoto |
String |
|
The user's id twic id photo in base64. |
| carInsurancePhoto |
String |
|
The user's id car insurance photo in base64. |
| dotPhoto |
String |
* |
The user's id dot letter photo in base64. |
| idPhotoBack |
String |
|
The user's official back of the identification photo in base64. |
| dob |
String |
|
Date in the format MM/DD/YYYY. |
| firstName |
String |
|
The user's first name. |
| lastName |
String |
|
The user's last name. |