Developers

An AML platform engineers don't dread.

A small, well-documented API. SDKs that sign, retry and fail open for you. A sandbox that's free forever. Your first event can be in Sentinel before lunch.

const { SentinelClient } = require('@airvend/sentinel-client')
const sentinel = new SentinelClient({ url, apiKey, secret })

// Ask before money moves. Times out at 300 ms and fails open.
const decision = await sentinel.decide({
  subject: { external_id: 'cus_8812', bvn, tier: '2' },
  transaction: { reference, direction: 'out', type: 'transfer', amount: 4_850_000 },
  context: { ip, device_id },
})

if (decision.outcome === 'block') return refuse()
if (decision.outcome === 'review') return stepUpAuth()
The API

Three calls cover almost everything.

POST /v1/events

Report what happened

Send transactions, logins and customer updates, one at a time or up to 100 per request. Idempotent on event_id, so retries are always safe. Rules run within seconds.

POST /v1/decisions

Ask before money moves

Get allow, review or block with a score and the reasons, in milliseconds. Call it with a short timeout and fail open.

POST /v1/verify/{type}

Verify an identity

Check a BVN, NIN, CAC number, bank account or phone number with name and date-of-birth matching. Results attach to the customer automatically.

SDKs

Official libraries for your stack.

Server SDKs handle request signing, retries, queueing and fail-open behaviour. Device SDKs give every device a stable token and report emulator, root, automation and tampering signals.

Node.js

Promise-based client with an optional Bull queue for reliable delivery.

npm install @airvend/sentinel-client

PHP · Laravel

Facade, middleware that captures request context, and queued delivery.

composer require airvend/sentinel-client

Python

Sync and async clients, plus webhook signature verification.

pip install sentinel-client

Web

A small script for your web app's login, signup and checkout pages.

npm install @airvend/sentinel-device

Android

Android 6.0+ with no third-party dependencies.

com.sentinel-tms:sentinel-device

iOS

Swift Package Manager and CocoaPods.

pod 'SentinelDevice'
Webhooks

React the moment something happens.

Subscribe your systems to alerts, decisions, cases, screening matches and identity checks. Every delivery is signed with HMAC-SHA256 and a timestamp, and retried if your endpoint is down.

alert.createdalert.closeddecision.reviewdecision.blockedcase.openedcase.closedscreening.matchsubject.blockedkyc.completedwallet.low_balance
// Headers on every webhook delivery
X-Sentinel-Event:     decision.blocked
X-Sentinel-Delivery:  7c1e0b9a-…
X-Sentinel-Signature: t=1790685666,v1=5f2c…

// Verify: HMAC_SHA256(secret, "<t>.<raw body>") == v1
{
  "id": "7c1e0b9a-…",
  "type": "decision.blocked",
  "created_at": "2026-10-01T09:41:02+01:00",
  "data": { "decision_id": 991, "score": 86, … }
}
Integration checklist

From sandbox to production

Get sandbox keys

Sign up and create an integration. Sandbox keys start with stl_test_ and are free forever.

Send events

Report every transaction state change, login and KYC update. Watch them arrive in the dashboard's API log.

Add decisions

Call the decisions API on payouts and transfers, with a 300 ms timeout and fail-open.

Go live

Swap in stl_live_ keys, restrict them to your server IPs, and subscribe to webhooks.

See Sentinel on your own transaction patterns.

Book a 30-minute walkthrough with our team, or start in the free sandbox today and send your first event in minutes.