Skip to main content
Verify identities and stop fraud across Africa — through a REST API, drop-in Widget SDKs, or no-code hosted flows. This reference covers every endpoint, the SDKs, and the concepts you need to go live.
New here? Jump to making your first call — create an app, grab your keys, and run it in a few minutes.

Ways to integrate

Pick the approach that fits your product. Most teams combine the hosted flow for onboarding with direct API calls for specific checks.

REST API

Call any check directly from your server — KYC, KYB, AML, biometrics, and more.

Widget SDKs

Drop Dojah’s verification UI into web or mobile with a few lines of code.

Hosted flows

Build a branded onboarding flow in EasyOnboard — no code required.

Base URLs

The environment is determined by the base URL you call. Authentication and request bodies are identical across both. See Environments for the full comparison and the go-live checklist.

Authenticate

Every request carries two headers: your AppId and your secret key in Authorization (sent raw — not as Bearer). Full details in Authentication.

Make your first call

Create an app, grab your keys, and make your first authenticated call in sandbox — no charges, no setup beyond an account.
1

Create an app

In the dashboard, go to Developers → Configuration and create an app. Copy its AppId, public key, and secret key.
2

Start in sandbox

Use the base URL https://sandbox.dojah.io. Sandbox returns mock data and never charges your wallet.
3

Make your first request

Send a one-time passcode. In sandbox the OTP is always 1234, so you can run the full flow for free.
4

Validate & go live

Confirm the code, then switch to production keys and the live base URL when you’re ready.

Your first request

Set the two auth headers and post to the Messaging endpoint. Swap {{secret_key}} and {{app_id}} for your own. POST /api/v1/messaging/otp

What you get back

A 200 with a reference_id — hold onto it to validate the code the user enters.
200 — OK
Server-side only. Your secret key must never ship in client code. Make API calls from your backend — see Authentication.

How billing works

Dojah is pay-as-you-go. Each successful production call draws from a prepaid wallet; if the balance is too low a request returns 402 Payment Required. Sandbox calls are always free. See Wallet & billing for checking your balance and handling low-balance errors.

Start building

Authentication

Keys, headers, and keeping secrets safe.

Environments

Sandbox vs production, and going live.

Sandbox & test data

Test end-to-end without spending credits.