Skip to content
Developers

One REST API. Idiomatic SDKs. A sandbox you can hit in five minutes.

Authmatech is engineered for teams that ship. We did not write a portal-only product — we shipped a real API, typed SDKs, and a sandbox that mirrors production.

OpenAPI 3.1 9 SDKs Open-source examples
# Verify a number with a sealed mobile-SDK payload
curl -X POST https://api.authmatech.com/v1/api/verify \
  -H "X-API-KEY: ${AUTHMATECH_API_KEY}" \
  -H "X-CLIENT-ID: ${AUTHMATECH_CLIENT_ID}" \
  -H "Content-Type: application/json" \
  -d '{
    "mobileNumber": "+966512345678",
    "encryptedMobileNumber": "amS5z9...-+966512345678"
  }'
Quickstart

Live in production traffic in three steps.

Every step is automated end-to-end. No tickets to file, no waiting for keys, no manual provisioning. The sandbox mirrors production behavior.

  1. 1

    Issue your sandbox client

    Sign in to the dashboard, create a sandbox client, copy the X-CLIENT-ID and the one-time API key. Free, instant.

  2. 2

    Embed the SDK or call the API

    Install @authmatech/node, @authmatech/react, or curl. Sandbox accepts test MSISDNs and returns deterministic results.

  3. 3

    Promote to production

    Apply for a production client (~24h). Same code, new keys. Balance ledger and audit log activate.

API surface

A small surface. No nasty edges.

The verification API is one endpoint. The platform around it (balance, keys, audit) is a handful more — all consistent, all envelope-wrapped, all documented in OpenAPI.

  • POST /v1/api/verifyVerify a number (SDK path)
  • POST /v1/api/verify/{transactionId}Verify a number (web path)
  • POST /v1/api/clients/{id}/rotate-keyRotate API key
  • GET /v1/api/clients/meCurrent client + balance
  • GET /v1/api/verifyAudit list with masking
import { useAuthmatech } from '@authmatech/react';

export function SilentVerify({ phone, onResult }) {
  const { initVerification, status } = useAuthmatech();

  async function handleClick() {
    const { transactionId } = await initVerification({ mobileNumber: phone });
    const res = await fetch('/api/verify', {
      method: 'POST',
      body: JSON.stringify({ transactionId, mobileNumber: phone }),
    });
    onResult(await res.json());
  }

  return <button onClick={handleClick} disabled={status === 'pending'}>Continue</button>;
}
SDKs

Pick your stack. The ergonomics travel.

Every SDK exposes the same primitives with the same typing discipline. Switch languages, not mental models.

TypeScript / Node@authmatech/node
GA
Browser / Web@authmatech/web
GA
React@authmatech/react
GA
Javacom.authmatech:sdk
GA
Pythonauthmatech
GA
iOS / SwiftAuthmatech (SPM)
GA
Android / Kotlincom.authmatech:android
GA
Flutterauthmatech_flutter
Beta
Gogithub.com/authmatech/go
RC
Sandbox

Hit the API in five minutes. No card. No call.

Sandbox keys are issued instantly from the dashboard and accept deterministic test MSISDNs. The response envelope, latency, and error codes match production exactly.

# Test MSISDN: +966500000001 (always passes)
curl -X POST https://sandbox.authmatech.com/v1/api/verify \
  -H "X-API-KEY: sk_sandbox_xxx" \
  -H "X-CLIENT-ID: cl_sandbox_yyy" \
  -d '{
    "mobileNumber": "+966500000001",
    "encryptedMobileNumber": "TEST-+966500000001"
  }'

# → { "success": true, "data": { "validNumber": true } }

Get started in 24 hours

Replace your last OTP screen this quarter.

Book a 20-minute call. We will benchmark your traffic, scope the integration, and stand up a sandbox you can ship against the same week.