This is a draft of the APIs for requesting a Proof of Passport from a mobile app. The system contains the following components:
https://rarimo.github.io/verificator-svc/
const backendUrl = '<https://api.example.com>'
const body = {
data: {
type: "user",
// External system user ID (public key)
id: "some-user-id",
attributes: {
// Denotes the application and activity that is requesting the verification
event_id: "my_app_verify_voter",
// Minimum required age (including)
age_lower_bound: 18,
// Should check for uniqueness
uniqueness: true,
// ISO 3166 alpha-3 country code: <https://www.iban.com/country-codes>
// Note: Germany passports may have single-letter "D" code
nationality: "UKR"
}
}
}
const response = await fetch(
`${backendUrl}/integrations/verificator-svc/private/verification-link`,
{
headers: {
'Accept': 'application/vnd.api+json',
'Content-Type': 'application/vnd.api+json',
},
method: "POST",
body: JSON.stringify(body),
}
)
const { data } = await response.json()
// Proof Params URL for RariMe app
const proofParamsUrl = data.attributes.get_proof_params
const backendUrl = '<https://api.example.com>'
const userId = 'some-user-id'
const response = await fetch(`${backendUrl}/integrations/verification-svc/private/verification-status/${userId}`)
const { data } = await response.json()
// responseUserId === userId
const responseUserId = data.id
// Verification status enum:
// - "not_verified" - user is not verified
// - "verified" - user is verified
// - "failed_verification" - user verification failed
// - "uniqueness_check_failed" - user uniqueness check failed
const verificationStatus = data.attributes.status