GetID (Standalone)
Key Concepts
- GetID (IDScan) will be branded to seamlessly fit your website and brand
- GetID (IDScan) can be triggered anywhere on your site
- It is a front-end only integration done via Checkin.com's SDK
- GetID is rendered seamlessly as part of your web and/or native application
- The solution is responsive and designed to deliver an optimal user experience across all device types, browsers and screen sizes
- On mobile devices it is offered as a full bleed experience for optimal conversion rate and user experience
- On desktop the default (and recommended) way is to have it rendered as a modal to drive user interaction, but it can also be integrated in other ways depending on your
- The solution is responsive and designed to deliver an optimal user experience across all device types, browsers and screen sizes
- When a user has gone through the service, the scanned data and initial results is provided via callbacks in the front-end
"data.ocr.data.status": "processing"
is the status of the processing of the application"data.ocr.applicationStatus": "approved"
is the status of the application
- Final results are available and can be retrieved via
- The API
https://ocr.regily.com
- The admin back-office
- The API
- Data on the legal documents can be cross-referenced with user data you have already collected by passing it to the module
- The uploaded documents are available to download in three ways:
- via links from the callbacks
- via the
ocr.regily.com
API - manually via the Checkin.com Back-office
We always cater to enterprise custom needs
By working with many enterprise partners across different verticals, we have learned that not one single integration fits all platforms and solutions. With this in mind, the Checkin.com Framework is designed to be easily configured and customized based on your specific needs in order to make the integration super simple
Integrating GetID (IDScan) as a stand-alone service
The GetID service is designed to be up and running in minutes and the integration is done in 4 simple steps.
1. Load your Checkin.com library
The library can be loaded as you would any other script or using GTM (or similar services).
<script src="https://[partner].regily.com/[key].js" async></script>
2. Trigger GetID (IDScan)
GetID is triggered via the globally scoped window.checkin.signUp.open
method.
window.OnCheckinLoad
is used to load the SDK and this is also where you will configure the flow (e.g. setting the language).
window.onCheckinLoad = (checkin) => { // Load the Checkin.com SDK
checkin.settings.setLang('de') // Set language and other configurations
}
//This should be executed as a call when a "verify" button is pressed
window.checkin.signUp.open()
//Button example
<button onClick='window.checkin.signUp.open()'>Open with button click</button>
3. Save the results
When a user has gone through GetID, the scanned data and documents are provided via a callback in the front-end. This event should be captured using the setOnComplete
method.
The setOnComplete
will return a JSON structure called data
which contains the scanned data and links to the documents.
The following examples shows how you can capture the completed event with the setOnComplete()
function.
window.onCheckinLoad = (checkin) => {
checkin.settings.setLang('de')
checkin.dataFlow.setOnComplete(({ data, normalizedData }) => {
// you should save all data to your backend here.
console.log('Complete dataset captured:', data)
// Add your current endpoint for updating the user account
var url = 'https://localhost:8888/api/verify'
fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: data})
.then(function (data) {
if (data.status == 200) {
console.log('Save successful!', data)
resolve()
}
}).catch(function (err) {
return checkin.generate.dataError.unknown() // In case something goes wrong, display an error
})
})
}
This is an example of the data returned in the callback.
data.ocr: {
"applicationStatus": "approved", // The status of the application
"resultUrl": "https://ocr.regily.com/verifications/results/b2dce275031c3785ec1b7ac89983c67e1a9f", // Full API link to query
"id": "b2dce275031c3785ec1b7ac89983c67e1a9f", // SessionID
"signed": "eyJhbGciOiJFUzUxMiIsInR5cCI6IkpXVCJ9.eyJyZXN1bHRVcmwiOiJodHRwOi8vbG9jYWxob3N0OjMwMzAvdmVyaWZpY2F0aW9ucy9yZXN1bHRzL2IyZGNlMjc1MDMxYzM3ODVlYzFiN2FjODk5ODNjNjdlMWE5ZiIsImlkIjoiYjJkY2UyNzUwMzFjMzc4NWVjMWI3YWM4OTk4M2M2N2UxYTlmIiwiaXNzIjoicmVnaWx5In0.AFqGAHm-4_WkUcefDdme_-9wNZVF3TmCWaE5U7F9sg4zMVW0CZJJlJ-K6Rasl9umlHA8Em6HKO-MxTRjG4Z-oynbAK4d4fMT0bR_9ANWUPUDjTeXfJUGWwXCHXJqO0iIy89edB00cQWku_Iby2H-izWq5zxs6nXju1TCXtW9vEk4X6fC",
"data": { } // Array with all specifics from the scanned data
}
}
Verify the JWT
To make sure the application has been scanned and processed by Checkin.com it is recommended to decrypt the JWT contained in
signed
as described here.
4. Ping API for Final Status
In some cases, the scanning and verification of documents may require some additional time to finish.
"data.ocr.data.status"="processing"
- application processing hasn't been finished
"data.ocr.data.status"="done"
- application processing has been finished, updated results available
You need to ping https://ocr.regily.com/verifications/results
to get the final status and updated results.
Here is an example of how to query the API:
curl --request GET \
--url https://ocr.regily.com/verifications/results/[ID] \
--header 'X-SECRET-KEY: [SECRET_ACCESS_KEY]' \ // This key will be shared separately
HTTP Status codes
Code | Error/Status | Message | Description |
---|---|---|---|
200 | OK | - | The GET request was successful |
202 | OK | - | The POST request was successful |
400 | Bad Request | Error verifying application for | App processing error |
403 | Forbidden | Forbidden resource | The secret key is invalid or missing |
404 | Not Found | Cannot GET /non-existing-url | Endpoint doesn't exist |
500 | Internal Server Error | - | An error occurred |
Here is an example of a response from a API request:
{
"data": {
"results": {
"status": "declined", //Application Status
"concerns": [
{
"id": "DC023",
"message": "Found 2 issue(s).",
"service": "doc-check",
"status": "declined"
},
{
"id": "DC030", //ID of the error message
"message": "Fields from ocr and mrz have conflict: 1965-03-10, 2022-03-10, Checksum is not valid",
"service": "doc-check",
"status": "declined"
}
]
},
"checks": [ //Checked Services
{
"name": "docCheck",
"status": "declined",
"comment": "Found 2 issue(s)."
}
],
"documents": [ //Collected Document Pictures During verification proccess
{
"name": "document",
"files": [
{
"kind": "front",
"mediaType": "image/jpeg",
"uri": "https://ocr.regily.com/files/63a6377af8183ffc3f6cbabdd6dbc66d/document/front.jpeg"
},
{
"kind": "back",
"mediaType": "image/jpeg",
"uri": "https://ocr.regily.com/files/63a6377af8183ffc3f6cbabdd6dbc66d/document/back.jpeg"
}
]
},
{
"name": "selfie", //Collected Selfie Picture During verification proccess
"files": []
}
],
"metadata": {
"platform": "web",
"ipAddress": "146.70.122.156",
"country": "SWE",
"city": "Skondal",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36"
}
},
"status": "done",
"attributes": { // Attrubutes collected from the document
"documentType": "id-card",
"firstName": "WILLEKE LISELOTTE",
"originalFirstName": "Willeke Liselotte",
"lastName": "DE BRUIJN",
"originalLastName": "De Bruijn",
"documentNumbers": [
"SPECI2021",
"SPECI2021"
],
"idNumber": "",
"referenceId": "",
"gender": "female",
"nationality": "NLD",
"issueCountry": "NLD",
"dateOfExpiry": "2031-08-02",
"dateOfBirth": "1965-03-10",
"placeOfBirth": "SPECIMEN"
}
},
"signed": "eyJhbGciOiJFUzUxMiIsInR5cCI6...."
}
You can also use the back-office
Together with your partner key, you will also get access to the Checkin.com back-office where all applications can be accessed
5. (Optional) Cross-check documents with user data
When you trigger GetID, you can also pass collected user data to cross-reference the information on the documents with previously collected user data.
Currently, there is support to cross-check the following fields:
- first name
- last name
- date of birth
6. (Optional) Pass address information for Proof-Of-Address
If you have the Proof-of-Address service as part of GetID, you need to pass some address information before triggering the flow. This information will be cross-referenced with the information extracted from the documents.
window.checkin.dataFlow.setKnownData({user: {firstName: 'Mustermann',
lastName: 'Hartmut',
birthdate: '1983-03-03',
poaData: { // This is required for Proof of address
'country': 'USA',
'city': 'Monterey Park',
'postcode': '91754-2217',
'addressLine": "24915 APPLE CT'
}
}})
Updated about 2 months ago