One integration instead of six.
REST API, webhooks and a sandbox. Send one request — get a decision, score and decision log.
Get a sandbox keyRequest
curl -X POST https://api.pilotchain.io/v1/screen \
-H "Authorization: Bearer sk_test_…" \
-d '{
"scenario": "withdrawal",
"wallet": { "address": "0x9f…c21", "network": "ETH" },
"device_id": "dv_91f3",
"ip": "185.23.44.10"
}'
Response · 200 OK · 388 ms
{
"decision": "BLOCK",
"risk_score": 91,
"threshold": 70,
"rules": ["RULE_01", "RULE_09"],
"request_id": "pc_91d07"
}
Quick start
From key to first decision — in one evening.
Get a key
Sandbox keys are issued in MerchantDesk. Separate keys for sandbox and production.
Send a request
One endpoint for every check. Pass the scenario and whatever fields you have: address, IP, device, email, card.
Handle the decision
Synchronously in the response or asynchronously via the decision.created webhook — signed and retried.
One request — decision, score and decision log.
Pass the scenario and the data you have. PilotChain decides which providers to query.
- 1 · Authorization — Bearer sk_test_… or sk_live_…
- 2 · Every field is optional: address, IP, device, email, card
- 3 · Response ≈ 400 ms, long checks — via webhook
curl -X POST https://api.pilotchain.io/v1/screen \
-H "Authorization: Bearer sk_test_…" \
-d '{
"scenario": "withdrawal",
"wallet": { "address": "0x9f…c21", "network": "ETH" },
"device_id": "dv_91f3", "ip": "185.23.44.10"
}'
// → 200 OK · 388 ms
{
"decision": "BLOCK",
"risk_score": 91, "threshold": 70,
"rules": [
{ "id": "RULE_01", "signal": "sanctions_exposure", "points": 40 },
{ "id": "RULE_09", "signal": "new_device_withdrawal", "points": 18 }
],
"request_id": "pc_91d07"
}
Async checks without polling.
For long and recurring checks, PilotChain sends an event to your endpoint. Every delivery is signed; failed ones are retried.
- decision.created — a new decision on a request
- decision.updated — the decision changed after review
- screening.recurring — an address was re-screened
POST https://api.merchant.io/hooks/pc
X-PilotChain-Signature: t=1727095212,v1=5f2c…
{
"event": "decision.created",
"request_id": "pc_82a9f",
"decision": "REVIEW",
"risk_score": 75,
"policy": "crypto_deposit@v14",
"created_at": "2026-09-23T10:34:12Z"
}
// ← 200 OK · delivered on the first try
// delivery history — in MerchantDesk
Resources
Everything for the integration — in one place.
Quick start
Your first request in 10 minutes: key, request, decision.
API reference
Endpoints, fields, error codes and limits.
Webhooks
Events, signatures and the retry policy.
SDK
Clients for popular languages.