curl --request POST \
--url https://api.pawapass.com/v2/verifications/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalId": "user-zm-98765",
"country": "ZM",
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"phoneNo": "+260971234567",
"requirements": [
{
"type": "DOCUMENT_SCAN"
},
{
"type": "FACE_SCAN"
}
],
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdBy": "[email protected]",
"workflowId": "aB1cD2eF"
}
'import requests
url = "https://api.pawapass.com/v2/verifications/"
payload = {
"externalId": "user-zm-98765",
"country": "ZM",
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"phoneNo": "+260971234567",
"requirements": [{ "type": "DOCUMENT_SCAN" }, { "type": "FACE_SCAN" }],
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdBy": "[email protected]",
"workflowId": "aB1cD2eF"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
externalId: 'user-zm-98765',
country: 'ZM',
successUrl: 'https://your-website.com/success',
errorUrl: 'https://your-website.com/error',
supportUrl: 'https://your-website.com/support',
phoneNo: '+260971234567',
requirements: [{type: 'DOCUMENT_SCAN'}, {type: 'FACE_SCAN'}],
metadata: {reason: 'kyc-onboarding', channel: 'mobile-app', department: 'compliance'},
expiresAt: '2025-08-27T09:00:00.000Z',
createdBy: '[email protected]',
workflowId: 'aB1cD2eF'
})
};
fetch('https://api.pawapass.com/v2/verifications/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pawapass.com/v2/verifications/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'externalId' => 'user-zm-98765',
'country' => 'ZM',
'successUrl' => 'https://your-website.com/success',
'errorUrl' => 'https://your-website.com/error',
'supportUrl' => 'https://your-website.com/support',
'phoneNo' => '+260971234567',
'requirements' => [
[
'type' => 'DOCUMENT_SCAN'
],
[
'type' => 'FACE_SCAN'
]
],
'metadata' => [
'reason' => 'kyc-onboarding',
'channel' => 'mobile-app',
'department' => 'compliance'
],
'expiresAt' => '2025-08-27T09:00:00.000Z',
'createdBy' => '[email protected]',
'workflowId' => 'aB1cD2eF'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pawapass.com/v2/verifications/"
payload := strings.NewReader("{\n \"externalId\": \"user-zm-98765\",\n \"country\": \"ZM\",\n \"successUrl\": \"https://your-website.com/success\",\n \"errorUrl\": \"https://your-website.com/error\",\n \"supportUrl\": \"https://your-website.com/support\",\n \"phoneNo\": \"+260971234567\",\n \"requirements\": [\n {\n \"type\": \"DOCUMENT_SCAN\"\n },\n {\n \"type\": \"FACE_SCAN\"\n }\n ],\n \"metadata\": {\n \"reason\": \"kyc-onboarding\",\n \"channel\": \"mobile-app\",\n \"department\": \"compliance\"\n },\n \"expiresAt\": \"2025-08-27T09:00:00.000Z\",\n \"createdBy\": \"[email protected]\",\n \"workflowId\": \"aB1cD2eF\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.pawapass.com/v2/verifications/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"externalId\": \"user-zm-98765\",\n \"country\": \"ZM\",\n \"successUrl\": \"https://your-website.com/success\",\n \"errorUrl\": \"https://your-website.com/error\",\n \"supportUrl\": \"https://your-website.com/support\",\n \"phoneNo\": \"+260971234567\",\n \"requirements\": [\n {\n \"type\": \"DOCUMENT_SCAN\"\n },\n {\n \"type\": \"FACE_SCAN\"\n }\n ],\n \"metadata\": {\n \"reason\": \"kyc-onboarding\",\n \"channel\": \"mobile-app\",\n \"department\": \"compliance\"\n },\n \"expiresAt\": \"2025-08-27T09:00:00.000Z\",\n \"createdBy\": \"[email protected]\",\n \"workflowId\": \"aB1cD2eF\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pawapass.com/v2/verifications/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"externalId\": \"user-zm-98765\",\n \"country\": \"ZM\",\n \"successUrl\": \"https://your-website.com/success\",\n \"errorUrl\": \"https://your-website.com/error\",\n \"supportUrl\": \"https://your-website.com/support\",\n \"phoneNo\": \"+260971234567\",\n \"requirements\": [\n {\n \"type\": \"DOCUMENT_SCAN\"\n },\n {\n \"type\": \"FACE_SCAN\"\n }\n ],\n \"metadata\": {\n \"reason\": \"kyc-onboarding\",\n \"channel\": \"mobile-app\",\n \"department\": \"compliance\"\n },\n \"expiresAt\": \"2025-08-27T09:00:00.000Z\",\n \"createdBy\": \"[email protected]\",\n \"workflowId\": \"aB1cD2eF\"\n}"
response = http.request(request)
puts response.read_body{
"id": "aB1cD2eF",
"externalId": "user-zm-98765",
"country": "ZM",
"phoneNo": "+260971234567",
"workflowId": "wf3kD9aB",
"requirements": [
{
"type": "DOCUMENT_SCAN"
},
{
"type": "FACE_SCAN"
}
],
"url": "https://app.pawapass.com/your-company/aB1cD2eF",
"status": "CREATED",
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"identityDocument": {
"type": "NATIONAL_ID",
"country": "ZM",
"serialNo": "9876543/21/1",
"nationalNo": "Z12345678",
"firstName": "Tisa",
"lastName": "Banda",
"dateOfBirth": "1997-05-10",
"placeOfBirth": "Lusaka",
"nationality": "ZM",
"expiryAt": "2032-05-09",
"issuedAt": "2022-05-10",
"issuingAuthority": "Republic of Zambia",
"placeOfIssue": "Lusaka",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"faceScan": {
"ageEstimation": "OVER_18",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
},
"reviewResult": {
"category": "CAPTURE_ISSUE",
"reason": "ONE_SIDE_MISSING",
"sensitive": true
},
"createdBy": "[email protected]",
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
}{
"id": "aB1cD2eF",
"externalId": "user-zm-98765",
"country": "ZM",
"phoneNo": "+260971234567",
"workflowId": "wf3kD9aB",
"requirements": [
{
"type": "DOCUMENT_SCAN"
},
{
"type": "FACE_SCAN"
}
],
"url": "https://app.pawapass.com/your-company/aB1cD2eF",
"status": "CREATED",
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"identityDocument": {
"type": "NATIONAL_ID",
"country": "ZM",
"serialNo": "9876543/21/1",
"nationalNo": "Z12345678",
"firstName": "Tisa",
"lastName": "Banda",
"dateOfBirth": "1997-05-10",
"placeOfBirth": "Lusaka",
"nationality": "ZM",
"expiryAt": "2032-05-09",
"issuedAt": "2022-05-10",
"issuingAuthority": "Republic of Zambia",
"placeOfIssue": "Lusaka",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"faceScan": {
"ageEstimation": "OVER_18",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
},
"reviewResult": {
"category": "CAPTURE_ISSUE",
"reason": "ONE_SIDE_MISSING",
"sensitive": true
},
"createdBy": "[email protected]",
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
}{
"statusCode": 400,
"code": "VALIDATION_ERROR",
"message": "Input data is invalid. Please check the details.",
"details": [
{
"field": "<string>",
"reasonCode": "REQUIRED",
"params": {}
}
]
}{
"statusCode": 401,
"code": "UNAUTHORIZED_ERROR",
"message": "Unauthorized"
}Create verification
Create a verification. If an active verification already exists for the same externalId, the existing one is returned with 200 OK and no new verification is created.
curl --request POST \
--url https://api.pawapass.com/v2/verifications/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"externalId": "user-zm-98765",
"country": "ZM",
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"phoneNo": "+260971234567",
"requirements": [
{
"type": "DOCUMENT_SCAN"
},
{
"type": "FACE_SCAN"
}
],
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdBy": "[email protected]",
"workflowId": "aB1cD2eF"
}
'import requests
url = "https://api.pawapass.com/v2/verifications/"
payload = {
"externalId": "user-zm-98765",
"country": "ZM",
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"phoneNo": "+260971234567",
"requirements": [{ "type": "DOCUMENT_SCAN" }, { "type": "FACE_SCAN" }],
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdBy": "[email protected]",
"workflowId": "aB1cD2eF"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
externalId: 'user-zm-98765',
country: 'ZM',
successUrl: 'https://your-website.com/success',
errorUrl: 'https://your-website.com/error',
supportUrl: 'https://your-website.com/support',
phoneNo: '+260971234567',
requirements: [{type: 'DOCUMENT_SCAN'}, {type: 'FACE_SCAN'}],
metadata: {reason: 'kyc-onboarding', channel: 'mobile-app', department: 'compliance'},
expiresAt: '2025-08-27T09:00:00.000Z',
createdBy: '[email protected]',
workflowId: 'aB1cD2eF'
})
};
fetch('https://api.pawapass.com/v2/verifications/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.pawapass.com/v2/verifications/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'externalId' => 'user-zm-98765',
'country' => 'ZM',
'successUrl' => 'https://your-website.com/success',
'errorUrl' => 'https://your-website.com/error',
'supportUrl' => 'https://your-website.com/support',
'phoneNo' => '+260971234567',
'requirements' => [
[
'type' => 'DOCUMENT_SCAN'
],
[
'type' => 'FACE_SCAN'
]
],
'metadata' => [
'reason' => 'kyc-onboarding',
'channel' => 'mobile-app',
'department' => 'compliance'
],
'expiresAt' => '2025-08-27T09:00:00.000Z',
'createdBy' => '[email protected]',
'workflowId' => 'aB1cD2eF'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.pawapass.com/v2/verifications/"
payload := strings.NewReader("{\n \"externalId\": \"user-zm-98765\",\n \"country\": \"ZM\",\n \"successUrl\": \"https://your-website.com/success\",\n \"errorUrl\": \"https://your-website.com/error\",\n \"supportUrl\": \"https://your-website.com/support\",\n \"phoneNo\": \"+260971234567\",\n \"requirements\": [\n {\n \"type\": \"DOCUMENT_SCAN\"\n },\n {\n \"type\": \"FACE_SCAN\"\n }\n ],\n \"metadata\": {\n \"reason\": \"kyc-onboarding\",\n \"channel\": \"mobile-app\",\n \"department\": \"compliance\"\n },\n \"expiresAt\": \"2025-08-27T09:00:00.000Z\",\n \"createdBy\": \"[email protected]\",\n \"workflowId\": \"aB1cD2eF\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.pawapass.com/v2/verifications/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"externalId\": \"user-zm-98765\",\n \"country\": \"ZM\",\n \"successUrl\": \"https://your-website.com/success\",\n \"errorUrl\": \"https://your-website.com/error\",\n \"supportUrl\": \"https://your-website.com/support\",\n \"phoneNo\": \"+260971234567\",\n \"requirements\": [\n {\n \"type\": \"DOCUMENT_SCAN\"\n },\n {\n \"type\": \"FACE_SCAN\"\n }\n ],\n \"metadata\": {\n \"reason\": \"kyc-onboarding\",\n \"channel\": \"mobile-app\",\n \"department\": \"compliance\"\n },\n \"expiresAt\": \"2025-08-27T09:00:00.000Z\",\n \"createdBy\": \"[email protected]\",\n \"workflowId\": \"aB1cD2eF\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pawapass.com/v2/verifications/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"externalId\": \"user-zm-98765\",\n \"country\": \"ZM\",\n \"successUrl\": \"https://your-website.com/success\",\n \"errorUrl\": \"https://your-website.com/error\",\n \"supportUrl\": \"https://your-website.com/support\",\n \"phoneNo\": \"+260971234567\",\n \"requirements\": [\n {\n \"type\": \"DOCUMENT_SCAN\"\n },\n {\n \"type\": \"FACE_SCAN\"\n }\n ],\n \"metadata\": {\n \"reason\": \"kyc-onboarding\",\n \"channel\": \"mobile-app\",\n \"department\": \"compliance\"\n },\n \"expiresAt\": \"2025-08-27T09:00:00.000Z\",\n \"createdBy\": \"[email protected]\",\n \"workflowId\": \"aB1cD2eF\"\n}"
response = http.request(request)
puts response.read_body{
"id": "aB1cD2eF",
"externalId": "user-zm-98765",
"country": "ZM",
"phoneNo": "+260971234567",
"workflowId": "wf3kD9aB",
"requirements": [
{
"type": "DOCUMENT_SCAN"
},
{
"type": "FACE_SCAN"
}
],
"url": "https://app.pawapass.com/your-company/aB1cD2eF",
"status": "CREATED",
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"identityDocument": {
"type": "NATIONAL_ID",
"country": "ZM",
"serialNo": "9876543/21/1",
"nationalNo": "Z12345678",
"firstName": "Tisa",
"lastName": "Banda",
"dateOfBirth": "1997-05-10",
"placeOfBirth": "Lusaka",
"nationality": "ZM",
"expiryAt": "2032-05-09",
"issuedAt": "2022-05-10",
"issuingAuthority": "Republic of Zambia",
"placeOfIssue": "Lusaka",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"faceScan": {
"ageEstimation": "OVER_18",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
},
"reviewResult": {
"category": "CAPTURE_ISSUE",
"reason": "ONE_SIDE_MISSING",
"sensitive": true
},
"createdBy": "[email protected]",
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
}{
"id": "aB1cD2eF",
"externalId": "user-zm-98765",
"country": "ZM",
"phoneNo": "+260971234567",
"workflowId": "wf3kD9aB",
"requirements": [
{
"type": "DOCUMENT_SCAN"
},
{
"type": "FACE_SCAN"
}
],
"url": "https://app.pawapass.com/your-company/aB1cD2eF",
"status": "CREATED",
"metadata": {
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
},
"successUrl": "https://your-website.com/success",
"errorUrl": "https://your-website.com/error",
"supportUrl": "https://your-website.com/support",
"identityDocument": {
"type": "NATIONAL_ID",
"country": "ZM",
"serialNo": "9876543/21/1",
"nationalNo": "Z12345678",
"firstName": "Tisa",
"lastName": "Banda",
"dateOfBirth": "1997-05-10",
"placeOfBirth": "Lusaka",
"nationality": "ZM",
"expiryAt": "2032-05-09",
"issuedAt": "2022-05-10",
"issuingAuthority": "Republic of Zambia",
"placeOfIssue": "Lusaka",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"faceScan": {
"ageEstimation": "OVER_18",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
},
"reviewResult": {
"category": "CAPTURE_ISSUE",
"reason": "ONE_SIDE_MISSING",
"sensitive": true
},
"createdBy": "[email protected]",
"expiresAt": "2025-08-27T09:00:00.000Z",
"createdAt": "2025-08-20T09:00:00.000Z",
"updatedAt": "2025-08-20T09:00:00.000Z"
}{
"statusCode": 400,
"code": "VALIDATION_ERROR",
"message": "Input data is invalid. Please check the details.",
"details": [
{
"field": "<string>",
"reasonCode": "REQUIRED",
"params": {}
}
]
}{
"statusCode": 401,
"code": "UNAUTHORIZED_ERROR",
"message": "Unauthorized"
}Authorizations
Bearer token for authentication. See Authentication.
Body
Your unique identifier for this user/verification
1"user-zm-98765"
ISO country code. See Supported countries for valid codes.
AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MK, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW "ZM"
URL to redirect user after successful verification completion
^https?://"https://your-website.com/success"
URL to redirect user if verification fails or encounters an error
^https?://"https://your-website.com/error"
URL where user can get support or help during verification
^https?://"https://your-website.com/support"
Optional phone number. If not provided, extracted from metadata.
"+260971234567"
Array of verification requirements. When omitted, derived from the selected workflow (workflowId, else the country/fallback config). See Requirements for workflow examples.
1Show child attributes
Show child attributes
[
{ "type": "DOCUMENT_SCAN" },
{ "type": "FACE_SCAN" }
]
Custom key-value data to associate with the verification. Stored and returned in responses and webhooks.
Show child attributes
Show child attributes
{
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
}
Optional expiration date for this verification session (ISO 8601 format)
"2025-08-27T09:00:00.000Z"
Optional email/identifier of the person creating this verification
Override the country-based workflow selection with a specific verification workflow. This is the 8-character workflow shortId shown in backoffice.
8"aB1cD2eF"
Response
Default Response
Verification ID
"aB1cD2eF"
Your external identifier for this verification
"user-zm-98765"
ISO country code associated with this verification
AF, AX, AL, DZ, AS, AD, AO, AI, AQ, AG, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BY, BE, BZ, BJ, BM, BT, BO, BQ, BA, BW, BV, BR, IO, BN, BG, BF, BI, CV, KH, CM, CA, KY, CF, TD, CL, CN, CX, CC, CO, KM, CG, CD, CK, CR, CI, HR, CU, CW, CY, CZ, DK, DJ, DM, DO, EC, EG, SV, GQ, ER, EE, SZ, ET, FK, FO, FJ, FI, FR, GF, PF, TF, GA, GM, GE, DE, GH, GI, GR, GL, GD, GP, GU, GT, GG, GN, GW, GY, HT, HM, VA, HN, HK, HU, IS, IN, ID, IR, IQ, IE, IM, IL, IT, JM, JP, JE, JO, KZ, KE, KI, KP, KR, KW, KG, LA, LV, LB, LS, LR, LY, LI, LT, LU, MO, MG, MW, MY, MV, ML, MT, MH, MQ, MR, MU, YT, MX, FM, MD, MC, MN, ME, MS, MA, MZ, MM, NA, NR, NP, NL, NC, NZ, NI, NE, NG, NU, NF, MK, MP, NO, OM, PK, PW, PS, PA, PG, PY, PE, PH, PN, PL, PT, PR, QA, RE, RO, RU, RW, BL, SH, KN, LC, MF, PM, VC, WS, SM, ST, SA, SN, RS, SC, SL, SG, SX, SK, SI, SB, SO, ZA, GS, SS, ES, LK, SD, SR, SJ, SE, CH, SY, TW, TJ, TZ, TH, TL, TG, TK, TO, TT, TN, TR, TM, TC, TV, UG, UA, AE, GB, US, UM, UY, UZ, VU, VE, VN, VG, VI, WF, EH, YE, ZM, ZW "ZM"
Phone number associated with this verification
"+260971234567"
shortId of the workflow that runs this verification. Null for legacy verifications created before workflows were persisted.
"wf3kD9aB"
Verification steps the user must complete. See Requirements for workflow examples.
Show child attributes
Show child attributes
[
{ "type": "DOCUMENT_SCAN" },
{ "type": "FACE_SCAN" }
]
URL where the user should complete the verification
"https://app.pawapass.com/your-company/aB1cD2eF"
Current status. See Verification flow for lifecycle.
CREATED, STARTED, EXPIRED, USER_DATA_COLLECTED, REVIEW, APPROVED, DECLINED "CREATED"
Custom metadata provided during verification creation
{
"reason": "kyc-onboarding",
"channel": "mobile-app",
"department": "compliance"
}
URL to redirect user after successful verification
"https://your-website.com/success"
URL to redirect user if verification fails
"https://your-website.com/error"
URL where user can get support
"https://your-website.com/support"
Extracted identity document data. Null if not yet available
Show child attributes
Show child attributes
Face scan results. Null if not yet available
Show child attributes
Show child attributes
Review outcome details. Null when verification has not been reviewed or no review reason is available.
Show child attributes
Show child attributes
Identifier of the person/system that created the verification
Expiration date of the verification session
"2025-08-27T09:00:00.000Z"
Creation date of the verification
"2025-08-20T09:00:00.000Z"
Date of the last update
"2025-08-20T09:00:00.000Z"
