Enforcement series

What OFAC said failed, and the request that proves the control.

OFAC publishes an enforcement release with every civil penalty. Some of them describe a screening tool that failed. For each of those, Noble quotes the failure verbatim, states the control it applies, and gives a request you can run against production with your own key to see the response field that proves it. No adjectives, no paraphrased verdicts.

  • 2026-10-13Bank of America, N.A.
    $11,662,930
    475 apparent violations

    Four screening failures. Four requests you can run.

    A watchlist not updated for five weeks; exact name-and-DOB matches classified low priority; an "alert suppression rule" that released payments; a single narrow lookback.

    list_versions · matches[0].score · alert_id · screened_as_of
  • 2026-10-09Pegasus Worldwide Logistics
    $175,015
    freight forwarder

    The name changed. The phone number didn't.

    A designated supplier renamed itself. The name screen returned nothing. The phone number on the shipping documents and the email Pegasus was writing to were on the SDN entry the whole time.

    summary.verdict · matches[].matched_via · alert_id
  • 2025-07-15Interactive Brokers LLC
    $11,832,136
    broker-dealer

    The system flagged it. A person closed it.

    An alert on a blocked person was dispositioned as a false positive by one analyst; another sat unreviewed for more than a month. The four-eyes refusal, the registered-actor refusal, and the deadline on every alert.

    alert_id · four_eyes_required · due_at · four_eyes_violation · invalid_actor
  • 2023CoinList · Poloniex · Uphold
    $1,207,830 · $7,591,630 · $72,230.32
    virtual assets

    The country field said Russia. The address said Simferopol.

    Three virtual-asset firms, one gap: a non-embargoed country in the drop-down, a Crimean city or "Crimea" in another field, and a tool that read only the country. The requests that read the address, the city, the word that must stay silent, and a listed wallet address.

    jurisdiction_risk · jurisdiction_nexus.source · matches[].matched_via
  • 2021-07-23Payoneer Inc.
    $1,385,901.40
    2,220 apparent violations

    OFAC listed the filter's defects. Here they are, one request each.

    Weak algorithms that let close matches through; no screening for BICs even when the SDN entry carried one; flagged payments auto-released during a backlog; addresses in Crimea nobody read. Four clauses in OFAC's order, one request each.

    summary.verdict · matches[].matched_via · due_at · jurisdiction_nexus.source
  • The reportGET /v1/account/coverage
    your own records
    seven controls

    Which of these releases does your integration resemble?

    Most of the controls above only fire when the integration sends the field they need. One request reads your own screenings and alert activity and gives each control a status, with the release it answers and what to send. Three screenings on the page move the numbers so you can watch it measure.

    controls[].status · inputs.date_of_birth.share · alerts.closed_by_named_analyst
How these pages are built. Every quotation is checked against the text of OFAC's release before the page is published; a test fails if a quoted passage drifts from the source. Every request on a page is run against production before and after each deploy, and the output is recorded on the issue that shipped the page. Each page says what Noble does not do.

And kept true. The contract behind every page is published as a machine-checkable manifest at /enforcement/probes.json: each page's requests, byte for byte, with the assertions the page makes about their responses. Royal Bank, Noble's customer zero, runs that manifest against production every night from its own account and files an issue on Noble's public tracker if any page's claim stops being true. A test in Noble's own build fails if a page and the manifest drift apart.