Before you start
Create an environment-bound API key with these scopes:| Scope | Use |
|---|---|
sanctions.screen | Submit screening requests. |
sanctions.read | Check readiness and read logs or cases. |
sanctions.review | Record case decisions. Omit this scope if your integration only reads results. |
webhooks.write | Create the webhook endpoint through the API. |
webhooks.read | Read event types and delivery history. |
sanctions.export only if the integration downloads CSV exports.
1. Check screening readiness
Call readiness before enabling screening in your production workflow:ready is true. A false value includes tenant-safe blockers and the team responsible for resolving them.
2. Register a webhook endpoint
3. Screen a subject
Send a uniquerequestNonce for each logical screening operation. Reusing the nonce returns the existing screening record instead of calling the provider and charging twice.
_id, caseId, attemptId, and status from the response. Keep your original requestNonce
with the operation in your own system; the stored response value may include an internal namespace.
4. Apply the result
| Status | Integration action |
|---|---|
clear | Continue according to your compliance policy. |
possible_match | Hold the workflow and retrieve the case for review. |
match | Hold the workflow and retrieve the case for review. |
manual_review | Hold the workflow until a reviewer records a decision. |
error | Do not treat the subject as cleared. Fix the reported problem and submit a new screening operation. |
skipped | No provider screen occurred. Do not treat the subject as cleared. |
5. Process webhook results
Verify the signature against the raw request body, deduplicate on the top-level eventid, enqueue the event, and return 2xx within 10 seconds.
Use caseId to retrieve current state after receiving sanctions.screening.completed or an outcome-specific event. Do not depend on delivery order. Retries and endpoint recovery can change the order in which your worker sees events.
See Sanctions webhook events and signature verification.
6. Review a potential match
Retrieve the authoritative case:projection.version when you record a decision:
409. Retrieve the case again and reassess it before submitting another decision.
Recovery checklist
- Retry network failures with the same
requestNonce. - Treat
error,skipped, and HTTP5xxresponses as unresolved. - Poll
GET /sanctions/cases/{caseId}when a webhook is late. - Deduplicate webhook deliveries on the event
id. - Keep sandbox and live API keys, webhook secrets, and stored event data separate.
Reference
Screen a subject
Request and response fields for ad-hoc screening.
Retrieve a case
Attempts, matches, decisions, and case state.