API documentation

Connect sanctions screening to case review

Find a screening's case, read its current review status, and send decisions to an authorized reviewer. Keep identity findings and business actions separate.

Updated

250 free live screenings. One lifetime allowance. No credit card required.
Separate
Identity and action

A match is not a legal or business verdict.

Escalation
Open work

An accountable reviewer must resolve it.

Approval
Independent reviewer

A case keeps the approval steps its policy requires.

Decide who the match is, then what action to take

Review has two decisions. First, decide whether a candidate is the same person or company as your input. Then record the business action required by your policy. The API calls that action the business disposition. A same-identity finding does not require the same action under every source or jurisdiction.

An escalation means someone still needs to resolve the case. It stays open and needs an accountable reviewer. A no-match can also open a case automatically when your policy requires external checks, approval of the business action, or retention that starts at a business event. You can open an optional case for other no-match results.

Before submitting a case, complete its required external checks and choose the business disposition. The saved record keeps three things separate: the automated screening status, the reviewer's identity findings, and the business action.

Locate the case for a screening

Use a key with results:read. Set SCREENING_ID to the screening response's id, then request /cases?screeningId=ID&evidence=all. Read data.items and follow nextCursor if present. Each case has its own id and shows the screening status, review state, business disposition, and whether evidence is still available. A review decision does not change the original screening status.

GET /investigations/{caseId} returns the current investigation, including screening evidence, match reviews, findings, comments, checks, and history. GET /cases/{caseId} returns a smaller case record with decisions. Pass nextDecisionCursor as cursor to read more decisions. A change to the latest screening can require new review even if an older decision is still saved.

Terminal · curl
curl --fail-with-body "https://www.sanctionskit.com/api/v1/cases?screeningId=$SCREENING_ID&evidence=all&limit=100" \
  -H "Authorization: Bearer $SANCTIONSKIT_API_KEY"

Read attributed decision history

Call GET /audit with results:read to read retained human decision history. It returns a data page. Use limit and cursor for more entries, q to search, and review to filter decisions. Each entry belongs to its recorded screening. An old decision does not replace the case's current review state.

After retention expires, notes may be removed even if basic audit facts remain. This API covers decision history. The separate administration audit covers settings, keys, and membership and requires a human session. Read the current case and investigation to decide whether work is still open.

Terminal · curl
curl --fail-with-body "https://www.sanctionskit.com/api/v1/audit?limit=100" \
  -H "Authorization: Bearer $SANCTIONSKIT_API_KEY"

Let reviewers complete the human decisions

Your integration can read investigation state and send work to an authorized reviewer in the dashboard. Human sessions are required for match decisions, comments, external checks, identity corrections, submission, and approval. API keys cannot act as reviewers. Human changes use the current expectedRevision and screeningId, plus their own Idempotency-Key.

Review the screened identity and selected sources first. Compare the source evidence and decide which candidates are the same identity. Record required external checks and the business disposition, then submit the case for any required approval. A reviewer cannot approve their own submission when a different eligible approver is required. Escalated work stays open.

Standard-retention potential matches create cases. A policy-controlled no-match can also need review. To open an optional no-match case through the API, call POST /cases with screeningId, decision:open, and notes using cases:write. The API still cannot complete the human investigation.

POST /cases is not an idempotent create operation. If the response is lost, check GET /cases before trying to create it again. A 409 case_exists error supplies the existing case ID.

Before marking your business workflow complete, read the current review state and business disposition. Check whether the case was reopened or superseded. A notification acknowledgement, a submission awaiting approval, or an old dismissed candidate does not establish current approval. If the API returns 410, record the evidence gap and arrange a new screening when appropriate.

Assignments, priorities, and due dates help the team track open work. Reports include old open and reopened cases even when they were created before the chosen activity period. Acknowledging a monitoring notification does not close its investigation.

Apply approval and correction controls

Organization and policy rules determine when another eligible person must approve a decision. A reviewer cannot approve their own submission when independent approval is required. Decisions refer to a particular screening and case revision. New evidence or monitoring changes can require another review.

If the identity details are wrong, correct them and run a linked new screening. This creates a replacement case for the active work. The original case becomes superseded and keeps its decisions as history. A reusable different-identity decision remains tied to its original evidence; relevant changes can require the team to check it again.

Request and response reference

Frequently asked questions

How do I find the review case for a screening ID?

Call GET /cases with screeningId and a key that has results:read. The response contains data.items and nextCursor. The case has its own ID. Use that ID with GET /investigations/{caseId} for the current investigation, or GET /cases/{caseId} for the smaller case record.

Can the review API approve a possible sanctions match?

An API key cannot make human match decisions or approve a case. It can read the current state and route work to a permitted reviewer. The reviewer completes the investigation in the dashboard, with another eligible approver when required by the policy.

Why can a no-match result still have an open case?

Your policy may require external checks, approval of the business action, or an event that starts retention. Those tasks can remain open even when screening finds no candidates. An optional due-diligence case can also be opened for a no-match. Read the current case state before advancing the workflow.

Does acknowledging a monitoring event finish the review?

No. It records that the notification was handled. The investigation can still need evidence, a decision, or approval. Check the case review state and business disposition, including whether the case was reopened or replaced, before marking the business task complete.

KEEP BUILDING

Where to go next