Integración

API pública v1

Consulta el estatus de RFC en listas abiertas del SAT desde su backend. Requiere un plan Despacho o Corporativo con API keys activas. Los datos se sincronizan cada cuatro horas con las fuentes del SAT.

Autenticación

Incluya su API key en cada solicitud con el encabezado Authorization: Bearer o X-API-Key. Las keys se crean en el panel de ajustes; el valor completo solo se muestra una vez al crearla.

Encabezados

Authorization: Bearer sat_live_xxxxxxxxxxxxxxxx
X-API-Key: sat_live_xxxxxxxxxxxxxxxx

Sin key válida: 401 con {"detail":"API key requerida"} o {"detail":"API key inválida o revocada"}.

GET/api/v1/rfc/{rfc}Veredicto de un RFC

Devuelve semáforo, listas vigentes, historial de cambios y marca de última sincronización. El RFC debe tener formato válido; si no, responde 400.

Respuesta 200

{
  "rfc": "GODE561231GR8",
  "nombre": "Empresa de Prueba SA de CV",
  "rfc_valid": true,
  "semaphore": "yellow",
  "lists": [
    {
      "lista": "69-B",
      "label": "Art. 69-B (EFOS)",
      "situacion": "Presunto",
      "oficio_sat": "500-05-2019-12345 de 01/01/2019",
      "oficio_dof": "DOF 02/01/2019",
      "fecha_sat": "2019-01-01",
      "fecha_dof": "2019-01-02",
      "on_list": true
    },
    {
      "lista": "69-B Bis",
      "label": "Art. 69-B Bis",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    },
    {
      "lista": "69/no-localizados",
      "label": "Art. 69 — No localizados",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    },
    {
      "lista": "69/firmes",
      "label": "Art. 69 — Créditos firmes",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    },
    {
      "lista": "69/exigibles",
      "label": "Art. 69 — Créditos exigibles",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    },
    {
      "lista": "69/cancelados",
      "label": "Art. 69 — Cancelados",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    },
    {
      "lista": "69/csd-sin-efectos",
      "label": "Art. 69 — CSD sin efectos",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    },
    {
      "lista": "69/sentencias",
      "label": "Art. 69 — Sentencias",
      "situacion": null,
      "oficio_sat": null,
      "oficio_dof": null,
      "fecha_sat": null,
      "fecha_dof": null,
      "on_list": false
    }
  ],
  "history": [
    {
      "lista": "69-B",
      "label": "Art. 69-B (EFOS)",
      "from_situacion": null,
      "to_situacion": "Presunto",
      "detected_at": "2026-07-28T14:30:00"
    }
  ],
  "sync": {
    "last_sync_at": "2026-07-28T12:00:00"
  }
}

curl

curl -sS \
  -H "Authorization: Bearer sat_live_xxxxxxxxxxxxxxxx" \
  "https://www.burofiscal.mx/api/v1/rfc/GODE561231GR8"
POST/api/v1/bulkConsulta masiva

Acepta JSON con hasta 500 RFC o un archivo CSV/Excel en multipart/form-data (campo file). Cada resultado tiene la misma forma que el endpoint individual; RFC con formato inválido incluyen rfc_valid: false y listas vacías.

Solicitud JSON

{
  "rfcs": [
    "GODE561231GR8",
    "INVALID"
  ]
}

Respuesta 200

{
  "results": [
    {
      "rfc": "GODE561231GR8",
      "nombre": "Empresa de Prueba SA de CV",
      "rfc_valid": true,
      "semaphore": "yellow",
      "lists": [
        {
          "lista": "69-B",
          "label": "Art. 69-B (EFOS)",
          "situacion": "Presunto",
          "oficio_sat": "500-05-2019-12345 de 01/01/2019",
          "oficio_dof": "DOF 02/01/2019",
          "fecha_sat": "2019-01-01",
          "fecha_dof": "2019-01-02",
          "on_list": true
        },
        {
          "lista": "69-B Bis",
          "label": "Art. 69-B Bis",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        },
        {
          "lista": "69/no-localizados",
          "label": "Art. 69 — No localizados",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        },
        {
          "lista": "69/firmes",
          "label": "Art. 69 — Créditos firmes",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        },
        {
          "lista": "69/exigibles",
          "label": "Art. 69 — Créditos exigibles",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        },
        {
          "lista": "69/cancelados",
          "label": "Art. 69 — Cancelados",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        },
        {
          "lista": "69/csd-sin-efectos",
          "label": "Art. 69 — CSD sin efectos",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        },
        {
          "lista": "69/sentencias",
          "label": "Art. 69 — Sentencias",
          "situacion": null,
          "oficio_sat": null,
          "oficio_dof": null,
          "fecha_sat": null,
          "fecha_dof": null,
          "on_list": false
        }
      ],
      "history": [
        {
          "lista": "69-B",
          "label": "Art. 69-B (EFOS)",
          "from_situacion": null,
          "to_situacion": "Presunto",
          "detected_at": "2026-07-28T14:30:00"
        }
      ],
      "sync": {
        "last_sync_at": "2026-07-28T12:00:00"
      }
    },
    {
      "rfc": "INVALID",
      "nombre": null,
      "rfc_valid": false,
      "semaphore": "yellow",
      "lists": [],
      "history": [],
      "sync": {
        "last_sync_at": "2026-07-28T12:00:00"
      }
    }
  ],
  "sync": {
    "last_sync_at": "2026-07-28T12:00:00"
  }
}

curl (JSON)

curl -sS -X POST \
  -H "Authorization: Bearer sat_live_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"rfcs":["GODE561231GR8","INVALID"]}' \
  "https://www.burofiscal.mx/api/v1/bulk"

curl (archivo CSV)

curl -sS -X POST \
  -H "Authorization: Bearer sat_live_xxxxxxxxxxxxxxxx" \
  -F "file=@proveedores.csv" \
  "https://www.burofiscal.mx/api/v1/bulk"

Límite de solicitudes

Cada API key tiene un límite configurable de solicitudes por minuto (por defecto 60). El contador usa una ventana deslizante de 60 segundos. Al superar el límite, la API responde 429 sin procesar la solicitud.

Respuesta 429

{
  "detail": "límite de solicitudes excedido"
}

Revise el límite asignado a cada key en el panel. Para más capacidad, contacte ventas en el plan Corporativo.

Administrar API keys

Cree, revoque y revise el límite de cada key en Ajustes → API keys. Las keys revocadas dejan de funcionar de inmediato.

Ir a API keys