Peleza β€” Trust built on data
Biometric Verification
On this page

Fetch Result

Pull the biometric outcome for a verification UUID returned as reference on POST /api/v1/biometric/invite. Bearer token required. Not billed. While the applicant has not finished, status stays pending, in_progress, or review. After processing, status is approved or rejected and applicant contains the captured identity. An approved result also includes images: the national ID and the selfie, each with image_id, label, and a /media/identity URL. The lookup is limited to the authenticated tenant.

Loading sandbox test IDs…

Request

GET/api/v1/biometric/{reference}
{{baseUrl}}/api/v1/biometric/{reference}
HeaderTypeDescription
AuthorizationstringBearer YOUR_ACCESS_TOKEN from the OAuth client-credentials flow
Content-Typestringapplication/json

Processed

Expected response for Processed:

200 OKSample dataExpected response
{
  "success": true,
  "response_code": 200,
  "message": "Verification approved",
  "data": {
    "verification": {
      "applicant": {
        "country": "KEN",
        "dob": "1988-03-15",
        "email": "james.kamau@peleza.com",
        "first_name": "JAMES OTIENO KAMAU",
        "id_docs": [
          {
            "country": "KEN",
            "dob": "1988-03-15",
            "firstName": "JAMES OTIENO KAMAU",
            "firstNameEn": "JAMES OTIENO KAMAU",
            "idDocType": "ID_CARD",
            "number": "1028845317",
            "validUntil": "2099-01-01"
          }
        ]
      },
      "completed_at": "2026-10-15 09:30:00",
      "email": "james.kamau@peleza.com",
      "first_name": "James",
      "last_name": "Kamau",
      "name": "James Kamau",
      "reference": "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee",
      "review_answer": "GREEN",
      "review_status": "completed",
      "status": "approved",
      "status_label": "Approved",
      "images": [
        {
          "image_id": "sandbox-id-front",
          "label": "National ID card (front)",
          "url": "https://api.example.com/media/identity/YmlvbWV0cmljL3NhbmRib3gvaWQtZnJvbnQuanBn"
        },
        {
          "image_id": "sandbox-id-back",
          "label": "National ID card (back)",
          "url": "https://api.example.com/media/identity/YmlvbWV0cmljL3NhbmRib3gvaWQtYmFjay5qcGc"
        },
        {
          "image_id": "sandbox-selfie",
          "label": "Selfie",
          "url": "https://api.example.com/media/identity/YmlvbWV0cmljL3NhbmRib3gvc2VsZmllLmpwZw"
        }
      ]
    }
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Still processing

Expected response for Still processing:

200 OKSample dataExpected response
{
  "success": true,
  "response_code": 200,
  "message": "Verification is still being processed",
  "data": {
    "verification": {
      "email": "grace.mwangi@peleza.com",
      "first_name": "Grace",
      "last_name": "Mwangi",
      "name": "Grace Mwangi",
      "reference": "11111111-2222-4333-8444-555555555555",
      "review_answer": null,
      "review_status": null,
      "status": "pending",
      "status_label": "Invitation sent"
    }
  },
  "request_id": "550e8400-e29b-41d4-a716-446655440000"
}

Response Fields

FieldTypeDescription
successbooleanWhether the request succeeded
response_codenumberApplication response code (typically mirrors HTTP)
messagestringHuman-readable status message
dataobjectPayload for the verified resource
request_idstringUUID for support and audit trails
data.verification.referencestringVerification UUID from the invite response
data.verification.statusstringpending | in_progress | review | submitted | approved | rejected | failed
data.verification.status_labelstringHuman-readable status. Invitation sent while the link has not been completed.
data.verification.review_answerstringGREEN or RED when a decision exists; otherwise null
data.verification.review_statusstringcompleted when a decision exists; otherwise null
data.verification.completed_atstringPresent when the check is approved or rejected
data.verification.applicantobjectCaptured identity. Omitted until processing has produced applicant data. Includes country, dob, email, first_name, and id_docs.
data.verification.applicant.id_docsarrayIdentity documents captured during the check, such as idDocType, number, country, dob, and validUntil
data.verification.imagesarrayDocument and selfie files. Present on an approved check once the images are stored. Omitted while the check is still in progress.
data.verification.images[].image_idstringCapture image id
data.verification.images[].labelstringNational ID card (front), National ID card (back), Selfie, Passport, Driver's license, Residence permit, or Video selfie
data.verification.images[].urlstringApp media URL (/media/identity/{key}). Same host as the API. No expiry and no Spaces CDN link.

Set {{baseUrl}} to https://api.peleza.com (production) or https://sandbox.peleza.com (sandbox). Authenticated calls need a Bearer token from POST /api/v1/oauth/token.