OFAC Sanctions List Check
Credits: 1 per call.
Searches the consolidated OFAC sanctions lists for the provided name. Coverage includes:
- SDN consolidated — Specially Designated Nationals (general SDN, plus sub-programs
SDGTSpecially Designated Global Terrorists andSDNTKSpecially Designated Narcotics Traffickers / Kingpin Act). - Non-SDN consolidated — Foreign Sanctions Evaders (
FSE), Sectoral Sanctions Identifications (SSI), Correspondent Account / Payable-Through Account restrictions (CAPTA), Menu-Based Sanctions (NS-MBS), Iran Sanctions Act non-SDN (NS-ISA), Palestinian Legislative Council (NS-PLC). - UN consolidated sanctions — surfaced as
OFAC_UNfor clients who want a single endpoint covering both US and UN screening.
Each match carries the originating list (listType), the sanction programs that apply, entity type (individual, entity, vessel, aircraft), full aliases and any compliance remarks published with the record.
Risk Level Matrix (riskLevel):
NONE(envelopetype: SUCCESS): no matches at or aboveminSimilarityScore. Safe for automated approval from an OFAC perspective.CRITICAL(envelopetype: SUCCESS): one or more matches found in any OFAC or UN sanctions list. Treat as a hard block, reject the relationship, and file the SAR (Suspicious Activity Report) required by your jurisdiction.
There are intentionally only two levels. AML best practice treats any sanctions list hit — SDN, sectoral, informational, anywhere — as a binding stop. Surfacing intermediate gradations (HIGH / MEDIUM / LOW) misleads the client into believing some hits are merely advisory and is the most common cause of regulatory findings against KYC systems. The listType and complianceDetails.programs of every match are still surfaced so your compliance team can apply finer policy on top of the binary verdict.
Multi-match handling: common names can produce dozens of fuzzy hits. The response returns every record at or above minSimilarityScore, sorted by similarityScore descending. There is no fixed truncation, so a genuine hit will never be hidden by a cap. If the volume of matches is higher than your review process can absorb, raise minSimilarityScore to tighten the match. data.totalMatchesFound mirrors matches[].length and is provided for convenience.
Which variant matched: every entry in matches[] carries a matchedOn object indicating whether the query matched the canonical entityName or one of the record’s aliases:
matchedOn.typeis eitherentityName(the query matched the canonical name) oralias(the query matched an alias on the record).matchedOn.valueis the alias text that produced the hit whentypeisalias, andnullwhentypeisentityName.
Why this matters: OFAC sometimes lists a person under a family member’s record (e.g. OSEGUERA CERVANTES, Nemesio — better known as El Mencho — is published as an alias of the canonical OSEGUERA CERVANTES, Ruben). Without matchedOn a reviewer scanning the response would see Ruben with score 100 and discount the hit. With matchedOn the alias is surfaced explicitly so the reviewer can confirm the right person was matched.
Multi-identifier matching: name is required, but you can pass passportNumber and/or nationalIdNumber alongside it to tighten the match. Each extra identifier you provide is used to:
- Boost the score when it agrees with the record (record’s passport or national ID matches the one you sent → +5 added to
similarityScore, capped at 100). - Downgrade or filter the match when it contradicts the record (different passport or national ID → −20 points). If the final score falls below
minSimilarityScore, the record is excluded frommatches[]entirely. - Stay neutral when the record does not publish that identifier (most OFAC records don’t have a passport number, for example). Missing data never penalises a match — only contradicting data does.
A matchedOn entry per match always carries an identifiersMatched array — for example name and passportNumber — listing exactly which fields agreed, so the reviewer can audit the confidence behind a hit.
Practical coverage of the identifier boost: OFAC publishes passport numbers and national IDs on a minority of records — most often on non-Mexican subjects (Iranian, Russian, Venezuelan, Cuban records carry passports more frequently). For purely Mexican counterparties the boost rarely applies in practice: OFAC does not publish CURP, RFC appears only on a handful of records, and most Mexican subjects are sanctioned with name + aliases only. Use these identifiers for cross-border screening where the upside is real; for MX-only KYC the name field is what does the work and the optional identifiers stay neutral.
Autorizaciones
Cuerpo
Full name of the individual or Legal Name of the entity. Required.
"JOAQUIN GUZMAN LOERA"
Passport number, normalised (trimmed, uppercase). Optional. Exact match against a record's passport ID is a strong signal — adds 5 to the score and is reported in matchedOn.identifiersMatched. A mismatch drops the score by 20.
"G01234567"
National identifier as published by OFAC — typically National ID, Cedula, RFC, SSN, or Tax ID depending on jurisdiction. Optional. Normalised (trimmed, uppercase). Exact match adds 5 to the score; mismatch drops 20. OFAC does not publish CURP, and RFC appears only on a handful of records, so for Mexican subjects this field is usually neutral. Highest practical value is for cross-border screening of foreign counterparties.
"BC166787"
Minimum similarity score required to return a fuzzy match. Defaults to 90 — a conservative threshold tuned to suppress common-name false positives. Lower it for broader recall when manual review is in place; raise it for stricter automated approval. There is no enforced floor — you can request very low thresholds, but the lower you go the noisier the response will be. The final score after multi-identifier boosts and penalties is the value compared against this threshold.
x <= 100Respuesta
OFAC search results (Strict Envelope Pattern).
High-level outcome. OK means the request was successfully processed (regardless of business result). ERROR means the request was rejected or could not be processed.
OK, ERROR Stable result type code. Includes generic codes (SUCCESS, INVALID_REQUEST, UNAUTHORIZED, SERVICE_UNAVAILABLE, INTERNAL_ERROR, RATE_LIMIT_EXCEEDED) plus endpoint-specific result codes — see this endpoint's response examples.
Human-readable summary of the result. Always in English (per Language Conventions in the API overview).
Unique identifier of this request, generated by the API Gateway. Propagated end-to-end for traceability.
ISO 8601 datetime with Mexico City offset (-06:00). Always set by the API Gateway when the response leaves the system.
Whether this request will be charged against the client's plan. Typically true for successful business results and false for validation errors or system errors that prevented processing.
Response payload. null on error responses. Shape depends on the endpoint — see each operation's response schema.
Per-field error details. Present only on INVALID_REQUEST responses.