Appearance
Manual Verifications
Integrating Manual Verification is less complex than integrating Biometric Verification; your integration will involve a POST request containing a client’s details to be verified. Our response will describe whether the client’s details have been verified. Please be prepared for this request to take a few seconds while we query the numerous data sources needed to verify your client.
After creating a Manual Verification you may also perform an additional PUT request to export a PDF report and archive the verification from our server.
POST
Create a Manual Verification
API
Description: Create a new manual verification
Endpoint: POST /api/v2/manual_eidv
Properties:
Property | Sub-property | Required | Type | Notes |
---|---|---|---|---|
metadata | yes | object | An object of properties used to identify your verification | |
reference | yes | string | Verification reference. A name to recognise the verification | |
external_id | no | string | Your system’s object id. This can be used to make the link between your system’s entity and our verification | |
individual | yes | object | An object of personal details of the person being verified | |
first_name | yes | string | First name of the person being verified | |
middle_name | no | string | Middle name of the person being verified | |
last_name | yes | string | Last name of the person being verified | |
date_of_birth | yes | string | Date of birth of the person being verified. Must be in format YYYY-MM-DD | |
sex | no | string | Sex of the person being verified. Possible values are M, F, or U (unknown) | |
identity_document | See notes | object | Not required for individuals residing in the United Kingdom. Required for individuals residing in New Zealand and Australia. An object describing the identity document held by the individual. | |
type | yes | string | Type of identity document. Possible values are driver_licence or passport | |
country_of_issue | yes | string | Country where the identity document was issued, in ISO-3166 Alpha3 format E.g. NZL, AUS, GBR | |
state_of_issue | See notes | string | Required only for Australian driver licences. Australian state/territory where the identity document was issued, in abbreviated form. E.g. NSW, QLD, SA, TAS, VIC, WA, ACT, NT | |
primary_number | yes | string | Driver licence number or passport number | |
secondary_number | see notes | string | Required only for NZL/AUS driver licences. For NZL use the licence version number. For AUS use the licence card number. | |
date_of_expiry | see notes | string | Required only for NZL/AUS passports. Date of expiry of the identity document Must be in format YYYY-MM-DD | |
address | yes | object | An object describing the address where the individual resides | |
line_1 | yes | string | Address line 1 | |
line_2 | see notes | string | Address line 2 | |
suburb | see notes | string | Required for NZL and AUS | |
city | see notes | string | Required for NZL and GBR | |
state | see notes | string | Required for AUS | |
postcode | yes | string | ||
country | yes | string | Country of the address, in ISO-3166 Alpha3 format . E.g. NZL, AUS, GBR |
Response body:
Property | Sub-property | Type | Notes |
---|---|---|---|
metadata | object | An object of properties used to identify your verification | |
reference | string | The same reference provided in your request | |
external_id | string | The same external_id provided in your request | |
transaction_id | string | Our unique identifier for the verification | |
timestamp | string | UTC time, in RFC3339 format | |
api_version | string | ||
request_id | string | Our unique identifier for your request | |
results | object | An object containing the results of the Manual EIDV | |
overall | boolean | ||
name | boolean | True if the individual’s name has been verified | |
date_of_birth | boolean | True if the individu al’s date of birth has been verified | |
address | boolean | True if the individual’s address has been verified | |
pep_clear | boolean | True if the individual was not found in PEP, sanction or adverse media watchlists | |
document | boolean | True if the individual’s identity document was verified (if provided). Not applicable to individuals residing in GBR. | |
report | string | API Path to /export_and_archive endpoint for this verification | |
assets | object | Additional assets (if any) | |
pep_watchlist | string | API Path to PDF document containing PEP Watchlist report (if pep_clear is false, and doc is available) | |
error_type | string | Type of error (if any) | |
message | string | Explanation of error (if any) | |
validation_errors | object | (Advanced) Erroneous values from your request body, with values replaced by validation errors. Useful for implementing form validation. |
Sample Response
json
{
"metadata": {
"reference": "MORTGAGE-1234567",
"external_id": "593d9f00-aa93-4f19-8669-53801ac26a0d",
"transaction_id": "fYcvgm2QiHqMpn2t",
"timestamp": "2022-12-16T10:26:11+00:00",
"api_version": "v2",
"request_id": "75482a27-5149-4bfa-b30a-60c5a2de30ef"
},
"results": {
"Page": 28,
"overall": true,
"name": true,
"date_of_birth": true,
"address": true,
"pep_clear": false,
"mortality_list_clear": true, // Only for customers in GB
"document": true, // always false for individuals residing in GBR
},
"report": "/api/v2/manual_eidv/fYcvgm2QiHqMpn2t/export_and_archive",
"assets": {
"pep_watchlist": "/api/v2/manual_eidv/fYcvgm2QiHqMpn2t/assets/pep_watchlist.pdf"
},
"data_sources": {
"config": [
{
"field": "summary_of_data_sources_searched",
"label": "Summary of data sources searched"
},
{
"field": "name",
"label": "Name"
},
{
"field": "date_of_birth",
"label": "Date of Birth"
},
{
"field": "address",
"label": "Address"
}
],
"rows": [
{
"summary_of_data_sources_searched": "Comprehensive Account",
"name": "NotPresent",
"date_of_birth": "NotPresent",
"address": "NotPresent"
},
{
"summary_of_data_sources_searched": "Retail Energy Account",
"name": "NotPresent",
"date_of_birth": "NotPresent",
"address": "NotPresent"
},
{
"summary_of_data_sources_searched": "NZ Property Owner",
"name": "NotPresent",
"date_of_birth": "NA",
"address": "NotPresent"
},
{
"summary_of_data_sources_searched": "NZTA Driver Licence",
"name": "NoMatch",
"date_of_birth": "NoMatch",
"address": "NA"
},
{
"summary_of_data_sources_searched": "Bureau File",
"name": "NotSearched",
"date_of_birth": "NotSearched",
"address": "NotSearched"
}
]
}
}
PUT
Export created verification to PDF report (and archive from our server)
API
Description: Download PDF Report of created Manual Verification, and archive from our server
Endpoint: PUT /api/v2/manual_eidv/{transaction_id}/export_and_archive
GET
Fetch PEP Watchlist result for a verification (if applicable)
API
Description: Download PDF Report of PEP Watchlist results (if the individual’s PEP check was not clear, and a report is available)
Endpoint: GET /api/v2/manual_eidv/{transaction_id}/assets/pep_watchlist
Examples
js
const axios = require('axios')
const contentDisposition = require('content-disposition') const fs = require('fs')
axios.put('https://staging.aplyid.co.uk/api/v2/manual_eidv/fYcvgm2QiHqMpn2t/assets/pep_watchlist’, {}, {
headers: {
'Aply-API-Key': 'zHb4LM9dSBAwiVECjKSoG6Fy',
'Aply-Secret': 'Uds32eU6hG2MFSMioEdXVGWNVkSnR1A7'
},
responseType: 'stream'
})
.then(response => {
// Using contentDisposition to retrieve generated filename from headers
const content = contentDisposition.parse(response.headers['content-disposition'])
// Writing downloaded PDF to our server's file system response.data.pipe(fs.createWriteStream(content.parameters.filename))
})
.catch(error => {
console.log("Something went wrong downloading pdf")
})
js
// Create Manual Verification example (NZL driver licence)
axios.post('https://integration.aplyid.com/api/v2/manual_eidv', {
metadata: {
reference: 'MORTGAGE-1234567',
external_id: '593d9f00-aa93-4f19-8669-53801ac26a0d'
}, individual: {
first_name: 'John',
middle_name: 'O.',
last_name: 'Doe',
date_of_birth: '1990-01-01'
}, identity_document: {
type: 'driver_licence',
country_of_issue: 'NZL',
primary_number: 'DO12345678',
secondary_number: '123'
}, address: {
line_1: '22 Pollen Street',
suburb: 'Grey Lynn',
city: 'Auckland',
postcode: '1021',
country: 'NZL'
}
}, {
headers: {
'Aply-API-Key': 'zHb4LM9dSBAwiVECjKSoG6Fy',
'Aply-Secret': 'Uds32eU6hG2MFSMioEdXVGWNVkSnR1A7'
}
})
.then(response => {
// Do some stuff
})
.catch(error => {
console.log(error.response.data.message)
})
js
const axios = require('axios')
const contentDisposition = require('content-disposition') const fs = require('fs')
axios.put('https://staging.aplyid.co.uk/api/v2/manual_eidv/fYcvgm2QiHqMpn2t/export_and_archive’, {}, {
headers: {
'Aply-API-Key': 'zHb4LM9dSBAwiVECjKSoG6Fy',
'Aply-Secret': 'Uds32eU6hG2MFSMioEdXVGWNVkSnR1A7'
},
responseType: 'stream'
})
.then(response => {
// Using contentDisposition to retrieve generated filename from headers
const content = contentDisposition.parse(response.headers['content-disposition']) // Writing downloaded PDF to our server's file system response.data.pipe(fs.createWriteStream(content.parameters.filename))
})
.catch(error => {
console.log("Something went wrong downloading pdf")
})
js
// Create Manual Verification example (GBR without identity document)
axios.post('https://staging.aplyid.co.uk/api/v2/manual_eidv, {
metadata: {
reference: 'MORTGAGE-1234567',
external_id: '593d9f00-aa93-4f19-8669-53801ac26a0d'
}, individual: {
first_name: 'John',
middle_name: 'O.',
last_name: 'Doe',
date_of_birth: '1990-01-01'
}, address: {
line_1: '18 Brunswick Place',
city: 'London',
postcode: 'N1 6DZ',
country: 'GBR'
}
}, {
headers: {
'Aply-API-Key': 'zHb4LM9dSBAwiVECjKSoG6Fy',
'Aply-Secret': 'Uds32eU6hG2MFSMioEdXVGWNVkSnR1A7'
}
})
.then(response => {
// Do some stuff
})
.catch(error => {
console.log(error.response.data.message)
})
Error Codes
401 Unauthorized
json
{
"metadata": {
"reference": "MORTGAGE-1234567",
"external_id": "593d9f00-aa93-4f19-8669-53801ac26a0d",
"timestamp": "2022-09-16T10:26:11+00:00",
"api_version": "v2",
"request_id": "75482a27-5149-4bfa-b30a-60c5a2de30ef"
},
"message": "Invalid credentials",
"error_type": "AUTHENTICATION"
}
403 Forbidden
json
{
"metadata": {
"reference": "MORTGAGE-1234567",
"external_id": "593d9f00-aa93-4f19-8669-53801ac26a0d",
"timestamp": "2022-09-16T10:26:11+00:00",
"api_version": "v2",
"request_id": "75482a27-5149-4bfa-b30a-60c5a2de30ef"
},
"message": "Not allowed",
"error_type": "AUTHORIZATION"
}
422 Validation
json
{
"metadata": {
"reference": "MORTGAGE-1234567",
"external_id": "593d9f00-aa93-4f19-8669-53801ac26a0d",
"timestamp": "2022-09-16T10:26:11+00:00",
"api_version": "v2",
"request_id": "75482a27-5149-4bfa-b30a-60c5a2de30ef"
},
"message": "First name cannot exceed 64 characters, last name required and identity document is mandatory for individuals in NZL",
"error_type": "VALIDATION",
"validation_errors": {
"individual": {
"first_name": [
"cannot exceed 64 characters"
],
"last_name": [
"required"
]
},
"identity_document": [
"mandatory for individuals living in NZL" ]
}
}
500 Internal Server Error
json
{
"metadata": {
"reference": "MORTGAGE-1234567",
"external_id": "593d9f00-aa93-4f19-8669-53801ac26a0d",
"timestamp": "2022-09-16T10:26:11+00:00",
"api_version": "v2",
"request_id": "75482a27-5149-4bfa-b30a-60c5a2de30ef"
},
"message": "Unexpected error occured. Please contact us on 0800xxx and quote the request_id",
"error_type": "SYSTEM"
}