KYC identity-signal API · Mozambique & Mexico first

Verify identities. One API, one hosted flow.

thibit reads an ID document, checks its authenticity signals, and matches the selfie to the document photo — then returns an advisory assessment over a simple API and a hosted page your users open on their phone. You make the decision. Tuned for Mozambique and Mexico; passports from any country.

Sign in with Google or GitHub and mint your first verification flow in minutes from the portal — no sales call, no contract to start.

What your user sees · what the engine proves

Every applicant moment is an engine truth.

The words on the left of each card are the flow's own Portuguese — lifted verbatim from the hosted onboarding. Under each one: what the engine is actually doing at that moment.

«Coloque o documento dentro da moldura»

Guided capture

Auto-capture fires only when the frame is worth keeping: edges found, glare and blur rejected, wrong side detected and coached — before a single byte leaves the phone.

quality-gated frames, wrong-side coaching

«A página com a sua foto e o código MRZ (duas linhas) bem visível.»

Machine-readable cross-check

ICAO 9303 MRZ check digits validate the document arithmetic, and what the engine reads is reconciled against the record you sent — so a genuine ID that belongs to someone else raises a divergence flag.

MRZ check digits + record match

«Vire lentamente a cabeça para a SUA esquerda»

Active liveness

Blink, turn, nod — a challenge sequence verified server-side, plus a face match against the document photo. A printed photo or a replayed video doesn't pass.

server-verified challenge + face match

«Já pode fechar esta página em segurança.»

Signed webhook to your backend

The moment the applicant is done, your endpoint receives the assessment — HMAC-signed, PII-free by default, with the full evidence dossier behind your authenticated API key.

HMAC-signed · advisory · you decide

For developers

Then it lands in your backend.

One event per verification, signed with your whsec_ secret and delivered with retries. The default envelope is PII-free — summary_reasons carries machine-readable reason codes, and the full evidence dossier stays behind the authenticated API. The assessment is advisory by design: the decision, and the legal duty, remain yours.

Read the webhook docs →
POST https://your-app.example/webhooks/thibit X-Thibit-Event: verification.completed
{
  "event": "verification.completed",
  "id": "1d5c1f6a-6c1e-4b0a-9f3e-2f9be14c7d10",  // verification id
  "type": "kyc",
  "status": "completed",
  "assessment": "no_material_concerns",
  "advisory": true,
  "confidence": 0.93,
  "summary_reasons": [],
  "evidence_available": true
}

Get started

Ship verification this week.

Sign in, author a flow, and open the hosted link on your phone. We're pre-launch — early integrators work directly with the team. No local KYC API existed for Mozambique, so we built one.