Hosted Integration (Web Link)

This document explains how to integrate the vericatioon flow outside of your web application

General

In case you'd rather have the verification process handled outside of your application, you can send your users to an URL, that is managed directly on Passbase.

You can get your own customizable organization slug. e.g. https://verify.passbase.com/YOURCOMPANY

https://verify.passbase.com/:organization_slug

An example of this solution is this Passbase Demo.

If you haven't done so before, head towards app.passbase.com and turn on 'Enable V2 for your verification link'.

Prefilling Data: User Email & Country

In order to prefill the email of a verification & skip this step or to preselect a country from the dropdown, you can pass a base64 encoded parameter string at the end of the request like below.

// Your Link
https://verify.passbase.com/:organization_slug
// Your link including an encoded string for customizations
https://verify.passbase.com/:organization_slug?p={BASE64_ENCODED_STRING}

The encoded object should be a JSON object consisting of the following (optional) key-value pairs:

Key

Value

prefill_attributes

email: Populate this field if you already know your users' email address to speed up the verification flow.

country: An ISO-3166 compliant country code. Will be at the top of the country selection then to opulate this field if you already know your users' nationality andd want to speed up.

Example

Below is an example where we prefill an user's email and set the country for the top document of the id document list to Germany:

JavaScript
Python
Ruby
PHP
JavaScript
const prefillAttributes = {
prefill_attributes: {
email: "user@email.de",
country: "de"
}
}
const objJsonStr = JSON.stringify(prefillAttributes);
const objJsonB64 = Buffer.from(objJsonStr).toString("base64");
// Your Link
const link = "https://verify.passbase.com/" + "YOUR_SLUG" + "/?p=" + objJsonB64
// Result:
// https://verify.passbase.com/YOUR_SLUG/?p=eyJwcmVmaWxsX2F0dHJpYnV0ZXMiOnsiZW1haWwiOiJ1c2VyQGVtYWlsLmRlIiwiY291bnRyeSI6ImRlIn19
Python
import json
import base64
yourCompanySlug = "mathias"
yourPassbaseLink = "https://verify.passbase.com/" + yourCompanySlug
prefillAttributes = {
"prefill_attributes": {
"email": "user@email.de",
"country": "de"
}
}
jsonString = json.dumps(prefillAttributes)
encoded = base64.b64encode(jsonString.encode('utf-8'))
encodedStr = str(encoded, "utf-8")
link = yourPassbaseLink + '?p=' + encodedStr
# Result
# https://verify.passbase.com/YOUR_SLUG?p=eyJwcmVmaWxsX2F0dHJpYnV0ZXMiOiB7ImVtYWlsIjogInVzZXJAZW1haWwuZGUiLCAiY291bnRyeSI6ICJkZSJ9fQ==
Ruby
require "base64"
require 'json'
yourCompanySlug = "mathias"
yourPassbaseLink = "https://verify.passbase.com/" + yourCompanySlug
preFillAttributes = {'prefill_attributes' => {
'email' => 'user@email.de',
'country' => 'de'
}}
encoded = Base64.strict_encode64(preFillAttributes.to_json)
link = yourPassbaseLink + "?p=" + encoded
# Result
# https://verify.passbase.com/YOUR_SLUG/?p=eyJwcmVmaWxsX2F0dHJpYnV0ZXMiOnsiZW1haWwiOiJ1c2VyQGVtYWlsLmRlIiwiY291bnRyeSI6ImRlIn19
PHP
$slug = "mathias";
$yourPassbaseLink = "https://verify.passbase.com/".$slug;
$hash_map = array(
'prefill_attributes' => array(
'email' => 'user@email.de',
'country' => 'de'
),
);
$encodedAttributes = base64_encode(json_encode($hash_map));
$encodedLink = $yourPassbaseLink."?p=".$encodedAttributes;
# Result
# https://verify.passbase.com/YOUR_SLUG/?p=eyJwcmVmaWxsX2F0dHJpYnV0ZXMiOnsiZW1haWwiOiJ1c2VyQGVtYWlsLmRlIiwiY291bnRyeSI6ImRlIn19