RFC 69-B blacklist

The SAT Art. 69-B blacklist (EFOS — Empresas que Facturan Operaciones Simuladas) is the official list of taxpayers that SAT has identified as emitters of phantom invoices. Paying a supplier on this list means your invoices from them are not tax-deductible, and your business may face audits or penalties.

SAT publishes the complete list as open data. We import it monthly and serve instant lookups from a local index — no external calls, sub-millisecond response.

Check an RFC

POST /v1/rfc/blacklist

{ "rfc": "COSC8001137NA" }

Response (200 OK) — always returned for valid RFCs, whether listed or not:

{
  "rfc":               "COSC8001137NA",
  "on_blacklist":      false,
  "situation":         null,
  "name":              null,
  "last_refreshed_at": "2025-12-31T18:00:00.000000Z",
  "list_size":         14250
}

When listed:

{
  "rfc":               "AAA080808HL8",
  "on_blacklist":      true,
  "situation":         "Sentencia Favorable",
  "name":              "ASESORES EN AVALÚOS Y ACTIVOS, S.A. DE C.V.",
  "last_refreshed_at": "2025-12-31T18:00:00.000000Z",
  "list_size":         14250
}

Field reference

Field Type Description
rfc string The RFC queried, uppercased
on_blacklist bool Whether the RFC appears on the list
situation string | null SAT situation code (see table below). null if not listed
name string | null Taxpayer name as published by SAT. null if not listed
last_refreshed_at ISO-8601 | null When the local list was last imported from SAT
list_size integer Total entries in the current list (0 if list not yet loaded)

Situation values

situation Meaning Action recommended
Definitivo Confirmed EFOS — SAT has ruled the invoices are simulated Do not accept invoices; deductibility is voided
Presunto Presumed EFOS — under investigation Exercise caution; monitor the case
Desvirtuado RFC cleared — taxpayer provided evidence of legitimate operations Safe to accept
Sentencia Favorable Court ruling in favor of the taxpayer Cleared by court order

List freshness

The SAT publishes updates to the 69-B list irregularly (typically once or twice a year for definitivos, more often for presuntos). Our list is refreshed monthly via a scheduled job. Check last_refreshed_at and list_size to verify the data is current.

If list_size is 0, the list has not been imported yet — run rfcblacklist:refresh to populate it.

Responses

Status What happened What to do
200 RFC checked — response always returned Use on_blacklist
422 rfc failed format validation Fix the request body

This endpoint queries a local database copy of the SAT 69-B list — no external calls, instant response. For full supplier screening combine it with CFDI verification.