API/Recognise a person
v1.0.0-beta.mdGet API keys
Identity

Recognise a person

POST /functions/v1/face-identify

Ask whether this face already exists before a flow branches, and authorise an act against a live capture with the sink that writes the capture a mandate accepts.

Browser-safe (pk_). Purpose: answer “does this face already exist here” before a flow branches into signup or sign-in. Requires x-sidaxis-timestamp and x-sidaxis-nonce.

Body

FieldTypeNotes
face_templateobject, required{ vector: exactly 128 numbers, quality }
capture_noncestring, required8–128 characters
200 — matched, and not matched
{ "matched": true, "subject_ref": "sr_2f91c8de44", "confidence": 0.88 }

{ "matched": false, "confidence": 0.41 }

The match gate is 0.75. subject_ref is a per-merchant pseudonym. Errors: 400 INVALID_REQUEST, 401 API_KEY_REQUIRED / INVALID_API_KEY, 429 RATE_LIMITED, 503 TEMPLATE_STORE_UNAVAILABLE.

The authorisation sink

POST /functions/v1/process-biovital-transaction

Server key, or a first-party Sieve ID JWT. action is one of ACTION_LOGIN, ACTION_PAYMENT, ACTION_SIGN, ACTION_SIGNUP. It requires both sieve_hash and user_id, and amount is an integer in the minor unit.

The row it writes is the capture_id that mandate-issue accepts as proof, valid five minutes.

mandate_id is optional

Absent, the call behaves exactly as it always has. Present, the mandate stands in for the live capture and the response gains a mandate block with scope_used, granted_to, agent_display_name, agent_descriptor, assurance_level, idempotent_replay, remaining and at_limit.

curl -X POST https://api.sidaxis.com/functions/v1/process-biovital-transaction \
  -H "x-sidaxis-api-key: sk_live_..." \
  -H "x-sidaxis-timestamp: 1789564803" \
  -H "x-sidaxis-nonce: 9f2c41ab7d" \
  -H "Idempotency-Key: checkout-5512" \
  -H "content-type: application/json" \
  -d '{
    "action": "ACTION_PAYMENT",
    "merchant_id": "mrc_9f2c",
    "sieve_hash": "b41d...",
    "user_id": "0f9c2a51-7c33-4a1e-9b02-16c2b7f0d5aa",
    "amount": 4000,
    "currency": "USD",
    "face_template": { "vector": ["... 128 numbers"], "quality": 0.94 },
    "biometric_vitals": { "bpm": 71, "voice_pulse_correlation": 0.88, "liveness_confidence": 0.96 }
  }'

payment and signature can answer 403 DOCUMENT_REQUIRED — see the document rule. A replay with the same Idempotency-Key returns the original body with the header Idempotency-Status: replayed.

Sidaxis is the human authorisation layer. It never moves money, holds funds or settles. The machine-readable contract is openapi.yaml.
Sidaxis API documentationQuickstartAuthenticationHosted or headlessSandbox and productionIdempotencyRate limitsErrors and refusalsField namesWebhooksAssuranceThe document ruleAlias availabilityMerchant themeMCP serverCompatibilityStatusRoadmapChangelogIdentityEnroll an identityRecognise a personDisclose an attributeMandatesThe eight scopesIssue a mandateCheck an actionConsume a mandateRead a mandateRevoke a mandateReceiptsRead a merchant's receiptsVerify a receiptHosted sessionsCreate a hosted sessionConsume a hosted sessionOne Face for agents