Skip to main content

ZTXBAS Overview

Welcome to the ZTXBAS Authentication Server API. This API provides phishing-resistant biometric authentication for SaaS applications.

Base URL

https://ztxbas01.corezt.com (example only, can be different depending on licensing model)

Authentication

All API requests (except /health) require HMAC-SHA256 signature authentication.

Required Headers

HeaderDescription
X-Client-IDYour client UUID
X-TimestampUnix timestamp (seconds)
X-NonceRandom 64-character hex string
X-SignatureHMAC-SHA256 signature

Signature Calculation

The signature is calculated over the following string:

{METHOD}|{URL}|{TIMESTAMP}|{NONCE}|{BODY}

Example:

POST|/api/v1/auth/challenge|1706140800|a1b2c3d4...|{"user_email":"user@example.com","origin":"https://app.example.com"}

Sign this string using HMAC-SHA256 with your client_secret as the key.

Endpoints Overview

EndpointMethodDescription
/healthGETServer health check (no auth)
/api/v1/origins/registerPOSTRegister an allowed origin
/api/v1/auth/challengePOSTCreate authentication challenge
/api/v1/auth/statusPOSTPoll challenge status
/api/v1/auth/respondPOSTSubmit device response (internal)
/api/v1/users/registerPOSTRegister a user
/api/v1/users/deregisterPOSTDeregister a user

Error Responses

All errors follow this format:

{
"error": "ERROR_CODE",
"message": "Human readable description"
}

Common Error Codes

CodeHTTP StatusDescription
MISSING_AUTH401Authentication headers missing
INVALID_SIGNATURE401HMAC signature verification failed
INVALID_CLIENT401Client ID not found or inactive
TIMESTAMP_EXPIRED401Request timestamp too old (>5 min)
RATE_LIMITED429Too many requests
UNREGISTERED_ORIGIN403Origin not registered (phishing protection)
POOL_EXHAUSTED503Server busy, retry later

Rate Limits

  • 100 requests per 60-second window per client
  • Exceeding the limit returns 429 RATE_LIMITED