SECURITY & HEADERSDOJAH COMPATIBLE
API Authentication & Headers
The Verixa ID API supports 100% Dojah-compatible header authentication. Every API request must pass your secret credentials in the request headers.
Required HTTP Headers
AuthorizationREQUIREDYour secret key. In Dojah fashion, send the raw key string directly or use the Bearer prefix.
Example: vrx_live_9f83a8f1...AppIdRECOMMENDEDYour application identifier from the Verixa Console (Developers → API Keys). Used to route telemetry and tenant partitioning.
Example: app_8b2e1f4a9cAPI Key Token Structure
Verixa API keys follow an O(1) indexed token format containing an environment prefix, database UUID, and 32-character high-entropy secret.
Sandbox Key Format (Mock Upstream & Free Credits)
vrx_test_{key_uuid}_{32_hex_secret}Production Live Key Format (Real Gateways & Wallet Metering)
vrx_live_{key_uuid}_{32_hex_secret}Authentication Examples
cURL (Raw Key Header - Dojah Parity)
curl -X GET "https://api.verixaid.com/api/v1/kyc/bvn?bvn=22123456789" \ -H "Authorization: vrx_live_9f83a8f1e2b4c6d8_a1b2c3d4e5f6..." \ -H "AppId: app_8b2e1f4a9c" \ -H "Content-Type: application/json"Node.js (Axios)
import axios from "axios";const verixaClient = axios.create({ baseURL: "https://api.verixaid.com", headers: { Authorization: process.env.VERIXA_SECRET_KEY, // Raw key or Bearer AppId: process.env.VERIXA_APP_ID, "Content-Type": "application/json", }, timeout: 15000,});async function verifyBVN(bvn: string) { const { data } = await verixaClient.get("/api/v1/kyc/bvn", { params: { bvn }, }); console.log("Verified Identity:", data.entity); return data.entity;}Python (Requests)
import osimport requestsHEADERS = { "Authorization": os.getenv("VERIXA_SECRET_KEY"), "AppId": os.getenv("VERIXA_APP_ID"), "Content-Type": "application/json"}def verify_bvn(bvn: str): response = requests.get( "https://api.verixaid.com/api/v1/kyc/bvn", params={"bvn": bvn}, headers=HEADERS, timeout=15 ) response.raise_for_status() payload = response.json() return payload.get("entity")