AML Screening API
Screen a person or company against PEP, sanctions, warning/watchlist, and adverse-media datasets in one call.
Two-score model. Each hit carries a match_score (0–100, identity confidence) and a risk_score (0–100, entity risk). Hits whose match_score is below aml_match_score_threshold (default 93) are tagged review_status: "False Positive" and ignored for risk purposes; the highest risk_score among the remaining hits becomes aml.score. The final aml.status follows your thresholds: score > aml_score_review_threshold (default 100) → Declined; score > aml_score_approve_threshold (default 80) → In Review; otherwise Approved. Whenever score is non-zero and ≥ the approve threshold a POSSIBLE_MATCH_FOUND warning is added (a score of exactly 0 never warns).
Match-score weights. aml_name_weight + aml_dob_weight + aml_country_weight must sum to exactly 100 (defaults 60/25/15). Components missing from the request are re-normalized away; a matching document_number acts as a golden key that overrides match_score to 100.
Latency. Plain screenings typically complete in a few seconds. With include_adverse_media=true the API waits for adverse-media enrichment (an initial ~5 s pause plus up to ~25 s of polling) — configure a client timeout of at least 60 seconds.
Persistence. save_api_request defaults to true: the screening is stored as a session (request_id works with GET /v3/session/{sessionId}/decision/), it appears in the console, a status.updated webhook fires, and hit review statuses can be updated later. With save_api_request=false nothing is stored and request_id is a transient correlation id. include_ongoing_monitoring=true keeps re-screening the profile and requires save_api_request=true (enforced with a 400).
Billing. One AML API credit per call, charged after a successful screening; an insufficient balance returns 403 before any screening happens.
Sandbox. Keys from sandbox applications skip screening and billing entirely and return a static Approved response with zero hits.
Authorizations
Body
Full name of the person or company to screen.
"Antonio Ejemplo Modelo"
Type of entity to screen. Defaults to person.
person, company Date of birth (persons) or incorporation date (companies), YYYY-MM-DD. Improves match precision via the DOB weight.
"1972-02-29"
ISO 3166-1 alpha-2 country code (e.g. ES). Invalid codes return 400. Improves match precision via the country weight.
"ES"
Identity document number. Not weighted — acts as a golden key: an exact match overrides the hit's match_score to 100, a hard mismatch penalizes it.
Risk-score threshold at or below which the result is Approved. Must be ≤ aml_score_review_threshold (else 400).
0 <= x <= 100Risk-score threshold above which the result is Declined. Scores between the two thresholds produce In Review.
0 <= x <= 100Weight of name similarity in the per-hit match score. The three weights must sum to exactly 100 (else 400).
0 <= x <= 100Weight of date of birth in the per-hit match score.
0 <= x <= 100Weight of country/nationality in the per-hit match score.
0 <= x <= 100Per-hit cutoff: hits with match_score below this are False Positive (excluded from risk assessment); at or above are Unreviewed possible matches.
0 <= x <= 100Also search news media for negative coverage. Adds up to ~30 s of latency while results are gathered — use a ≥60 s client timeout.
Keep re-screening this profile and push changes via webhook. Requires save_api_request=true (else 400).
Persist the screening as a session (console visibility, decision endpoint, webhooks, hit review). Set to false for a stateless check.
Your identifier for the screened user; echoed back and stored with the session.
Free-form JSON stored with the request and echoed back.
Response
Screening completed. aml.status reflects your thresholds; every hit at or above the internal inclusion floor is listed in aml.hits with its identity match_score, entity risk_score, and a score_breakdown explaining the match.
Persisted session id when save_api_request=true (usable with GET /v3/session/{sessionId}/decision/); otherwise a transient correlation UUID.
Echo of the vendor_data you sent.
Echo of the metadata you sent.