customer_reference field.
Merchant KYC must be enabled for your business before you can create a
session. Contact your account manager or support@blaaiz.com
to request access.
Access and scopes
Merchant KYC uses the same OAuth client credentials as the rest of the Platform API. See Authentication for the token request. Three scopes control the endpoints:
The cancel action has its own scope because it is the one destructive action in the product. Request the scopes you need in the
scope parameter of your token request.
The read and cancel endpoints stay available even when Merchant KYC is disabled for your business. You can always look up and cancel the sessions you already opened.
Fulfilment modes
Every session has afulfilment_mode. The mode says who collects the input from the person you verify.
If you omit
fulfilment_mode on create, Blaaiz uses the default mode for the requirement set you asked for.
Requirements
Therequirements array says what the session must prove. The order does not matter, and Blaaiz stores one canonical order.
FACE_MATCH is a separate requirement, not a side effect of SELFIE. A genuine document and a live person prove nothing on their own until a check confirms that they belong together. Because that check needs both faces, FACE_MATCH needs DOCUMENTS and SELFIE in the same set.
Supported combinations
Blaaiz supports the combinations in the table below. If you ask for any other combination, the create call fails with422 and the message names the supported sets.
Every set that includes
PROOF_OF_ADDRESS is available in all three modes, except the set that also includes SELFIE. That set needs Blaaiz or the verification partner to capture the selfie, so it is never headless.
A documents-only set is never hosted, and a set with
SELFIE is never
headless. The selfie proves that a live person is present, so Blaaiz must
capture it. A session that includes SELFIE rejects a SELFIE document
upload from your server.Session lifecycle
A create call normally returns
AWAITING_INPUT. CREATED means that Blaaiz did not finish the setup of the session. Repeat the create call with the same idempotency_key to finish it.
Terminal is final. After a session is terminal, Blaaiz sends no more webhooks for it and accepts no more input.
Steps
Thesteps object shows what is still outstanding while the session is AWAITING_INPUT.
A
null step is one the session never asks for. Ignore it.
Blaaiz sends a session for review only when every step that is not null is SUBMITTED. A submit call that leaves a step at PENDING fails with 422.
steps.documents is null on a ["PROOF_OF_ADDRESS"] session. Every other
supported set includes DOCUMENTS, so read the field rather than assume a
document step exists.Rejections
Whenstatus is REJECTED, the rejection object holds the outcome. For every other status, rejection is null.
A session is never reopened. Both rejection types need a new session for
another attempt. The type tells you whether another attempt is worth it.
Idempotency
idempotency_key is required on create. Blaaiz stores it against your business, so your keys never collide with another merchant’s keys.
- If you repeat a create call with a key you already used, Blaaiz returns the stored session. It does not create a second session.
- If you repeat the key with a different
customer_referenceor a different requirement set, the call fails with422. - Keys are never released. An expired or cancelled session keeps its key for good.
Session expiry
Every session carries anexpires_at timestamp. Blaaiz expires a session that is still CREATED or AWAITING_INPUT at that deadline. A session that reached IN_REVIEW does not expire.
Read expires_at from the create response. Do not calculate the deadline yourself.
Open session limits
Blaaiz caps how many open sessions one business can hold. A session counts as open while its status isCREATED, AWAITING_INPUT, or IN_REVIEW.
When you reach the cap, a create call fails with 422 and this message:
Next steps
Blaaiz-hosted quickstart
Create a session, send a capture link, and get the result on your webhook.
Headless quickstart
Upload document images from your server and submit the session for review.
Webhooks
Register your
kyc_url and verify the x-blaaiz-signature header.API reference
All eight verification session endpoints.

