Search the docs or ask a question /
Hira docs

Welcome to the Hira Docs

Verification sessions with hosted applicant walks, a sandbox account beside every live account, signed webhooks and a TypeScript SDK, alongside event monitoring, check and address screening.

Start building →
Programmable risk for money

Overview

A customer’s backend calls the /v1 API with an account API key, directly or through @hira/sdk. It creates a verification session for a person or a business, hands the session’s link to that person once, and reads the outcome back through the API or a signed webhook. The person walks the program’s flow on Hira’s hosted page. Every live account has a sandbox account with test keys, where a session’s outcome can be simulated. The same keys also record activity, ask before an action moves, screen an address against the account’s lists and register parties in the directory.

Every live account is born with a sandbox account: the same people, its own data, its own keys. An account holds workspaces, and each program sits in one; a key speaks for the whole account and for one source app. Live keys start hira_sk_live_ and sandbox keys hira_sk_test_, and each reaches only the products in its scopes: Identity verification, Directory, Transaction monitoring. Every refusal answers the error envelope { error, code, param }.

Concepts

The concepts a developer meets in the product as built, in the order the sidebar lists them, and the catalogue of what the product carries.

Get started

Three paths that run against a sandbox account today.

Guides

By business type: what the policies and doors built today cover for each. No guide page is written yet; each card points at the reference that holds the pieces.

Customers

The party behind the activity: registered in the directory, verified through a hosted walk, judged by the account’s policies.

Payments

Money sent on a customer’s behalf, judged by the program’s policies before or after it moves.

Treasury

The platform’s own wallets, keys and holdings.

Issuance

The supply itself: tokens minted and burned, and the reserves behind them.

Sandbox

A sandbox account beside every live account

Every live account is born with a sandbox account named after it with “· Sandbox” on the end: the same people, its own data, its own consent settings and test keys starting hira_sk_test_. Its plan, seats and status follow the live account. Administration › Developer › Sandbox › Open sandbox switches to it, and its API keys are created there under Developer › API keys.

In the sandbox, simulate concludes an open verification session with the outcome asked for, through the same recorder and policies as a real walk, marked simulated. A sandbox account creates up to 500 sessions per UTC day, and its webhook deliveries are tried three times within an hour. On a live key today, creating a session answers 403 engine_not_connected and simulate answers 400 simulate_not_allowed.

Get sandbox keys →
sandboxsimulate
await hira.verificationSessions.simulate(id, { outcome: "verified" });
await hira.verificationSessions.simulate(id, { outcome: "failed" });
await hira.verificationSessions.simulate(id, { outcome: "unable-to-verify" });
// every remaining step concludes with that outcome, assurance "simulated";
// the decision is what the program's policies make of it

// or preset at create, and the hosted page opens on it:
await hira.verificationSessions.create({ programId, customerRef, simulate: { outcome: "failed" } });

// on a live key
create    // → 403 engine_not_connected
simulate  // → 400 simulate_not_allowed