Identity Document Verification
Accept National ID, Passport, Driving License and other government IDs, captured by camera or uploaded as an image or PDF. OCR extracts the name, date of birth and document number for review.
Verify customers with government ID checks, OCR, live selfie and face matching, with a human reviewer for every decision. Integrate in minutes through the API or send a verification link.
How it works
No customer data is stored in your own systems unless you choose to receive it through the API.
Step 1
Your organization creates a verification request from the dashboard or API.
Step 2
The customer securely uploads their identity document over a time-limited link.
Step 3
A live selfie is captured and compared against the identity document.
Step 4
You receive the result in the dashboard, through the API, or via a signed webhook.
Platform
Automated checks do the heavy lifting. Your reviewers make the final call with every signal in one workspace.
Accept National ID, Passport, Driving License and other government IDs, captured by camera or uploaded as an image or PDF. OCR extracts the name, date of birth and document number for review.
A live selfie with liveness scoring is compared against the document photo.
Zoom, rotate and compare documents side by side. Approve, reject with a reason, or request more information.
Customers on a computer scan a QR code and finish the selfie on their phone. The desktop page updates automatically.
Ask the customer for a clearer image, another document or a new selfie through a secure follow-up link.
Track volume, approval rates and processing time. Search verification history and manage your team, keys and webhooks.
Every document view, decision, setting change and security event is recorded with the actor and IP address.
Developers
Create a verification with a single API call. Send the customer the returned link, then listen for signed webhooks when review is complete.
curl -X POST https://www.kyc.af/api/v1/verifications \ -H "Authorization: Bearer kyc_live_…" \ -H "Content-Type: application/json" \ -d '{ "email": "customer@example.com", "customer_name": "Ahmad Khan", "reference_id": "ORDER-125", "return_url": "https://your-app.example/done" }'
// 201 Created { "id": "ver_01j8…", "reference_id": "ORDER-125", "status": "created", "requirements": { … }, "verification_url": "https://www.kyc.af/v/ver_01j8…" }
const expected = 'sha256=' + crypto .createHmac('sha256', process.env.KYC_WEBHOOK_SECRET) .update(`${req.headers['x-webhook-timestamp']}.${rawBody}`) .digest('hex'); if (expected !== req.headers['x-webhook-signature']) { return res.status(401).end(); } // event.event === "verification.verified"
WHMCS module
The official addon connects your WHMCS billing to kyc.af. Customers verify identity before a required product or domain is activated. WHMCS stores status only — ID images and selfies stay on this platform.
Turn on Require IDV for selected products or TLDs. Save many rules at once.
Pending services stay pending until the customer is verified.
Homepage, product, and domain pages show a pending verification notice.
Checkout and payment create a verification when a required item is ordered.
HMAC webhooks update WHMCS when review finishes, then provisioning can continue.
Documents never leave kyc.af. The addon keeps verification metadata only.
Security
Designed so documents and selfies stay on the platform. WHMCS and other clients store metadata only.
Documents and selfies are served only through authorized, time-limited links.
Document numbers and secrets are encrypted at rest.
Each customer link is unique and expires automatically.
Verify every delivery with an HMAC signature and timestamp.
Staff can sign in with passkeys and authenticator apps, enforced per role.
Views, decisions and setting changes are recorded with actor and IP.
Every organization only ever sees its own verifications.
Selfies and ID images are deleted automatically after a set period.
Create an organization account. Our team reviews every registration before API access is enabled.