Built by devs, for devs

Quickstart

Create an account, grab your test key, and run your first flow against the simulated engine, without touching your included verifications.

# 1. open the session (ID document as the reference)
curl -X POST https://api.biometrics.catalisa.app/v1/sessions \
  -H "Authorization: Bearer $CHAVE_TESTE" \
  -d '{ "flow": "ONBOARDING",
        "purpose": "account opening",
        "reference": { "source": "DOCUMENT_IMAGE", "fileId": "…" },
        "enrollOnApprove": true }'

In four steps

  1. Create an account

    The Free plan comes with a test key and 30 real verifications per month.

  2. Open a session

    POST /v1/sessions with the flow and the purpose; the response includes the capture link.

  3. Send the person to capture

    Via link, iframe, or SDK.

  4. Receive the decision

    Via webhook or by fetching the session; the receipt comes with it.

Install the SDK

Optional: everything works over plain HTTP, and the examples below do exactly that. The SDK handles the fiddly parts — webhook signatures, receipt verification, safe retries, and the envelope types.

$ pip install catalisa-biometrics

from catalisa_biometrics import Biometrics

bio = Biometrics(api_key=os.environ["CATALISA_API_KEY"])
sessao = bio.sessions.create(flow="LIVENESS_ONLY", purpose="account opening")
# send the person to sessao["handoff"]["captureUrl"]

Kotlin uses the same artifact as Java. Source code, tests, and the signature test vectors: github.com/catalisaio/catalisa-biometrics-sdk.

1. Open a session

From your server, with your account's key. The response includes the capture link, which is valid for one person and one session.

Loading the example…

2. Send the person to capture

The simplest way is the link: over WhatsApp, email, a QR code, or a button in your app. Iframe and modal are covered in Iframe and SDK.

Loading the example…

3. Receive the decision on your server

The decision arrives signed at your webhook. Verify the signature before trusting the payload: that is what proves it came from Catalisa.

Loading the example…

4. Fetch the session anytime

The full envelope — checks, reasons, and receipt — available at any time by id.

Loading the example…

Three ways to show the camera

Hosted page

Send the link. Your brand's colors, logo, and copy; ready for mobile and desktop.

Iframe

Inside your app, with progress events. The decision never goes through the browser.

Your own SDK

Your native app records and uploads with the same single-use token.

Full documentation

The reference for every route, the envelope fields, the events, and the limits live at docs.catalisa.app.

Run your first verification and read the receipt.