Additional steps
Using this functionality will let you add additional steps for your users to complete in the verification process. These steps could include utility bill upload or an extra photo of your client. The text can be fully customizable.
All custom additional steps should be set in advance from iDenfy side of the application - both settings and finances should be in place so that new tokens would be created successfully.
To make this functionality available, please contact sales@idenfy.com if your contract does not include additional steps. For technical questions please contact our support team using dashboard.
Utility bill - default custom additional step
- Utility bill with default UPLOAD type
- Utility bill with EXTRACT/COMPARE type
A default custom additional step with UTILITY_BILL name and UPLOAD type/method is being taken into account, if your environment has sufficient/available credits and UTILITY_BILL is set at your environment settings from iDenfy's side.
Sending a request for utility bill
To generate a token with utility bill step, there's no need to pass anything, since custom additional step will be taken into account by default, if it is set at your environment settings.
Standard request with provided mandatory key/value pair:
- Request
- Response
{
"clientId": "123"
}
Would response with populated additionalSteps
key, as shown in example below:
{
"message": "Token created successfully",
"authToken": "cBqwefLQK6jEA20CJnq12r01cge00mlvPrjTGM4",
"scanRef": "6a31253e-e10a-11eb-cc95-02cb49d118ed",
"clientId": "2",
"personScanRef": "2",
"firstName": null,
"lastName": null,
"successUrl": null,
"errorUrl": null,
"unverifiedUrl": null,
"callbackUrl": null,
"locale": null,
"country": null,
"expiryTime": 3600,
"sessionLength": 600,
"documents": ["ID_CARD", "PASSPORT", "DRIVER_LICENSE", "RESIDENCE_PERMIT"],
"dateOfBirth": null,
"dateOfExpiry": null,
"dateOfIssue": null,
"nationality": null,
"personalNumber": null,
"documentNumber": null,
"sex": null,
"address": null,
"showInstructions": true,
"tokenType": "IDENTIFICATION",
"utilityBill": true,
"additionalSteps": {
"ALL": {
"ALL": {
"UTILITY_BILL": {
"type": "UPLOAD",
"texts": {
"en": {
"name": "Please upload a proof of address document",
"description": "Please make sure that the proof of address document is fully visible and is not older than 3 months. All information must be clearly visible including your full name, address, date of the document, and the document must be a legitimate utility bill or a bank statement, as handwritten papers are not accepted. Also, the utility bill must be in Latin alphabet. ID documents are not accepted as valid proof of address."
},
"de": {
"name": "Bitte laden Sie einen Adressnachweis hoch",
"description": "Bitte achten Sie darauf, dass der Adressnachweis vollständig sichtbar und nicht älter als 3 Monate ist. Alle Informationen müssen deutlich sichtbar sein, einschließlich Ihres vollständigen Namens, Ihrer Adresse und des Datums des Dokuments, und das Dokument muss eine gültige Stromrechnung sein, ein Kontoauszug, da handschriftliche Papiere nicht akzeptiert werden. Außerdem muss die Stromrechnung im lateinischen Alphabet sein. Ausweisdokumente werden nicht als gültiger Adressnachweis akzeptiert."
},
"es": {
"name": "Cargue un comprobante de domicilio",
"description": "Asegúrese de que el comprobante de domicilio esté completamente visible y no tenga más de 3 meses. Toda la información debe ser claramente visible, incluido su nombre completo, dirección, fecha del documento, y el documento debe ser una factura de servicios públicos legítima, un extracto bancario, no se aceptan documentos escritos a mano no se aceptan. También, la factura de servicios públicos debe estar en alfabeto latino. Los documentos de identidad no se aceptan como prueba válida de domicilio."
}
},
"fields": [],
"settings": {
"canUpload": true,
"canCapture": true,
"canUploadPDF": true
}
}
}
}
},
"externalRef": null,
"digitString": null
}
Any custom additional step texts (name
& description
) could be changed by request, from iDenfy's side of the application.
This section is relevant if any of custom additional steps, already set at your environment level, have a method/type of COMPARE
or EXTRACT
.
Please contact iDenfy's sales team to discuss the possibilities of including these features in your environments.
Please inform your users that regulations allow utility bills (applies when method/type of custom additional step is EXTRACT/COMPARE):
- Not older than three months.
- All information on the bill should be clearly visible without any blurriness or obstructions.
- Utility bills must be official documents; handwritten papers are not acceptable.
- The bill should be in Latin characters.
- Clients full name, address, and date must be clearly indicated on the document.
It is also possible to provide address
for each request. The address
extraction or comparison works only if you have one of these proof of address types enabled at your environment setting - EXTRACT
or COMPARE
.
Example request:
To generate a token with provided custom additional step address, add additionalData
with a valid JSON to your request and send a HTTP POST request to: https://ivs.idenfy.com/api/v2/token
The request must contain basic auth headers where username is API key and password is API secret.
If additionalData
with the address
is not provided for the COMPARE
method, a new KYC token will be created, but the address will not be cross-matched.
For the EXTRACT
method, including an address
can assist manual review.
- Request
- Response
{
"clientId": "123",
"additionalData": {
// step name UTILITY_BILL must match w/ step name set at env. Custom Additional Step settings
"UTILITY_BILL": {
// address that is provided for comparison (COMPARE type) or easier extraction (EXTRACT type);
"address": "1234, Drive/Street, City/State, postcode, etc."
}
}
}
After a successful request, you will receive a status 201(created) and a JSON body similar to below example:
{
"message": "Token created successfully",
"authToken": "57K5hu3HSTOLCg4UFNpdwZqsC8tDG0PLnvgcY4sC",
"scanRef": "10bb0ade-4784-11ec-a167-02476f3f1509",
"clientId": "123",
"personScanRef": "123",
"firstName": null,
"lastName": null,
"successUrl": null,
"errorUrl": null,
"unverifiedUrl": null,
"callbackUrl": null,
"locale": "en",
"country": null,
"expiryTime": 3600,
"sessionLength": 600,
"documents": ["ID_CARD", "PASSPORT", "DRIVER_LICENSE", "RESIDENCE_PERMIT"],
"dateOfBirth": null,
"dateOfExpiry": null,
"dateOfIssue": null,
"nationality": null,
"personalNumber": null,
"documentNumber": null,
"sex": null,
"address": null,
"showInstructions": true,
"tokenType": "IDENTIFICATION",
"utilityBill": null,
"additionalSteps": {
"ALL": {
"ALL": {
"UTILITY_BILL": {
"type": "EXTRACT", // are set at your partner environment settings;
"texts": {
"de": {
"name": "Bitte laden Sie einen Adressnachweis hoch",
"description": "Bitte achten Sie darauf, dass der Adressnachweis vollständig sichtbar und nicht älter als 3 Monate ist. Alle Informationen müssen deutlich sichtbar sein, einschließlich Ihres vollständigen Namens, Ihrer Adresse und des Datums des Dokuments, und das Dokument muss eine gültige Stromrechnung sein, ein Kontoauszug, da handschriftliche Papiere nicht akzeptiert werden. Außerdem muss die Stromrechnung im lateinischen Alphabet sein. Ausweisdokumente werden nicht als gültiger Adressnachweis akzeptiert."
},
"en": {
"name": "Please upload a proof of address document",
"description": "Please make sure that the proof of address document is fully visible and is not older than 3 months. All information must be clearly visible including your full name, address, date of the document, and the document must be a legitimate utility bill or a bank statement, as handwritten papers are not accepted. Also, the utility bill must be in Latin alphabet. ID documents are not accepted as valid proof of address."
} // all available and/or set translation locales should be returned;
},
"fields": ["address"],
"settings": {
// could be changed at environment level by request;
"canUpload": true,
"canCapture": false,
"canUploadPDF": true
}
}
}
}
},
"additionalData": {
"UTILITY_BILL": {
"address": "1234, Drive/Street, City/State, postcode, etc."
}
},
"externalRef": null,
"digitString": null
}
Example response:
Using the generated token above, your user will now be able to upload their proof of address document and our manual review team will be able to extract or compare address. Please refer to the value explanations below and expected webhook callback response information that can be found here.
Additional options
Additional step upload or re-upload for existing verification
If a user uploaded an invalid additional step, for example, a utility bill that is older than 3 months, there is a possibility to reupload the file without the need of undergoing the verification process again.
If a user should upload a new document after verification is completed. This additional step should be set on the account and can be used.
These two cases can be done by sending an HTTP request to this endpoint https://ivs.idenfy.com/api/v2/upload-additional-step
The request must contain basic auth headers where username is API key and password is API secret. Please note that any data from the previous verification will be overridden by the new request.
Example request:
{
"scanRef": "3f2d0e6a-0a37-11ec-a45b-025ad99a18e7",
"image": "{{Base64 image}}",
"step": "UTILITY_BILL",
"additionalData": {}
}
Requests sent to the https://ivs.idenfy.com/api/v2/upload-additional-step
endpoint will only work if a custom additional step exists in your account settings.
KYC verification without custom additional step
If a custom additional step is pre-configured on iDenfy's side but there is a need to create some KYC tokens without it, it is possible to pass:
"additionalSteps": {
"ALL": {
"ALL": {}
}
}
alongside other mandatory key/value pairs so that new KYC token would be created without any custom additional steps.
Multiple custom additional steps
If multiple custom additional steps are configured at the environment level, new KYC token creation will include all of them by default. To use only a specific step, you can specify it explicitly.
For example, if UTILITY_BILL
and ADDITIONAL_DOCUMENT
are set at the environment level, and you want to create a new KYC token with only the latter, pass:
"additionalSteps": {
"ALL": {
"ALL": ["ADDITIONAL_DOCUMENT"]
}
}
Customisation options
Default UTILITY_BILL
step always include selection step (from user perspective). This step is configurable on partner environment level (if permissions granted) , it could be found on Settings -> Configuration -> Customisation -> Allowed POA Documents or edited by iDenfy's techsupport team.
Utility Bill Selection
Utility Bill Upload
Toggle to open list of possible values
- Bank Statement
- Electricity Bill
- Water Bill
- Credit Card Bill or Statement
- Gas Bill
- Telephone Bill
- Bank Reference Letter
- Internet Bill
- Mortgage Statement or Contract
- Company Payslip
- Car or Home Insurance Policy
- Municipality Bill or Government Tax Letter
- Driver's License
- Residence Permit
- Official Letter from an Educational Institution
- Lease Agreement for Your Residence
- Letter of Employment
- Authorized Change of Address Form
- Car Registration
- Other
- Letter Issued by a Public Authority
Utility Bill Selection step is not being validated - user can select one type but actually upload another - this list is dedicated for reference of what files are expected to be provided/uploaded. Requirements for valid files are mentioned in the note Utility bill with EXTRACT/COMPARE type
Utility Bill Selection step will be shown only with custom additional step UTILITY_BILL
, to skip it, any different step name should be set & used.
Value explanation
-
The first
ALL
value refers to country selection in alpha2 format. If you include specific countries in this value, the additional steps will only be added to these countries.ALL
is used to include all countries. -
The second
ALL
value refers to document type used for that additional step. Supported values:ID_CARD
,PASSPORT
,RESIDENCE_PERMIT
,DRIVER_LICENSE
,PAN_CARD
,AADHAAR
,OTHER
.ALL
is used to include all supported documents in your environment. -
ADDITIONAL_PHOTO
this is a variable that can be changed according to the step you're going to use. -
type
There can be 3 different types/methods and only 1 type/method can be enabled in your environment, depending on your contract: -
UPLOAD
- This type only allows the upload of the file. The file will not be processed or evaluated, either by automatic check or by our manual review team. -
COMPARE
- this type allows manual review team to compare the data that was provided withadditionalData
key during token generation with the data visible in the client's uploaded file. After the comparison, the possible values are:MATCH
,NOT_MATCH
,NOT_FOUND
,NO_DATA
. These statuses will be included in the webhook callbackadditionalData
key. -
EXTRACT
- this type allows our manual review team to type in the information from the document that user uploaded/captured. That information will be visible in the verification pop-up or webhook callback. Values fromadditionalData
->status
shouldn't be evaluated, since manual review team only extracts the address/data but not comparing. -
fields
name of the field in theadditionalData
-
texts
support multiple locales that you can use for yourname
anddescription
. Supported values are -lt
,en
,ru
,pl
,lv
,et
,ro
,it
,de
,fr
,sv
,es
,hu
,ja
,bg
,cs
,nl
,pt
,uk
,vi
,sk
,th
,hi
,id
-
Both
name
anddescription
can be changed by your own text for each language. -
The settings
canUpload
,canCapture
,canUploadPDF
only accepts boolean true or false. -
canUpload
setting will allow/disallow user to upload the photo from their device. -
canCapture
setting will allow/disallow user to capture the photo in their verification window. -
canUploadPDF
setting will allow/disallow user to upload the file in PDF format.
After generating a token using the example above, your user will see additional step window with the text we indicated.
Our tech support team can add these additional steps to your environment's settings so these steps will have to be done by all users that go through verification process without the need to include them in the request each time. Please contact our support team via dashboard and we'll gladly assist.
Managing custom additional steps with each request individually
Use this option only if it is not possible to manage custom additional steps through the instructions provided above. We recommend setting up custom additional steps on our side and only overriding or providing additionalSteps
with each request when no other solution is available.
In case you find need to control and pass custom additional steps object with each request individually and control everything regarding them with each request, check examples below.
Worth mentioning that your environment still must be eligible for the changes, e.g.:
- sufficient credits must be present in case different custom additional step method/type is used;
- sufficient credits must be present in case different custom additional step name is used;
Sending request for custom additional steps
To generate a token with a custom additional step, add additionalSteps
with a valid JSON to your request and send a HTTP POST request to: https://ivs.idenfy.com/api/v2/token
Use token additional steps setting and sufficient finances should be set in order to use this functionality. For example, if you'd like to change type/method with each request individually, both methods/types of that particular step name, should have sufficient credits.
The request must contain basic auth headers where username is API key and password is API secret.
{
"clientId": "1",
"additionalSteps": {
"ALL": {
"ALL": {
"UTILITY_BILL": {
"type": "COMPARE", // option to change method/type of custom additional step
// option to add translations for different locales on each request individually
"texts": {
"de": {
"name": "Bitte laden Sie einen Adressnachweis hoch",
"description": "Bitte achten Sie darauf, dass der Adressnachweis vollständig sichtbar und nicht älter als 3 Monate ist. Alle Informationen müssen deutlich sichtbar sein, einschließlich Ihres vollständigen Namens, Ihrer Adresse und des Datums des Dokuments, und das Dokument muss eine gültige Stromrechnung sein, ein Kontoauszug, da handschriftliche Papiere nicht akzeptiert werden. Außerdem muss die Stromrechnung im lateinischen Alphabet sein. Ausweisdokumente werden nicht als gültiger Adressnachweis akzeptiert."
}
},
"fields": ["address"],
// option to change settings that are being passed
"settings": {
"canUpload": false,
"canCapture": true,
"canUploadPDF": false
}
}
}
}
}
}