CFE API

Recibos de CFE en JSON estructurado. Sin login, sin scraping, vía API.

Pago seguro con Stripe. Recibes tu API key al instante.

¿Ya eres cliente? Portal de facturación →

Cómo funciona

  1. Ingresa tu correo y paga 100 MXN = 20 créditos iniciales.
  2. Recibes tu API key al instante. Tu tarjeta queda en archivo.
  3. Cuando se acaben los créditos, seguimos cobrando por uso (5.00 MXN por consulta) y te facturamos al fin de mes.

Precio

Ejemplo de uso

curl -X POST https://cfe-api.fly.dev/api/v1/consulta \
  -H "X-API-Key: cfe_xxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"rpu":"123456789012","nombre":"COMERCIALIZADORA EJEMPLO SA DE CV"}'

Respuesta de ejemplo

{
  "request_id": "9f2c1a7e4b8d",
  "cached": false,
  "metered": false,
  "charged_cents": 500,
  "fetched_at": 1777415627,
  "expires_at": 1780012799,
  "data": {
    "rpu": "123456789012",
    "nombre": "COMERCIALIZADORA EJEMPLO SA DE CV",
    "direccion": "PARQUE INDUSTRIAL NORTE 45, QUERETARO, QRO",
    "tarifa": "HM",
    "tarifa_reg": "GDMTH",
    "uso": "Industrial",
    "esquema": "",
    "hilos": "3",
    "rfc": "CEJ800101A12",
    "num_medidor": "ABC1234",
    "fecha": "2026-08-14T09:12:41",
    "periodo_desde": "2026-07-17",
    "periodo_hasta": "2026-08-14",
    "fecha_limite":  "2026-09-01",
    "fecha_corte":   "2026-09-03",
    "dias_periodo": 28,
    "consumo_kwh": 48210,
    "demanda_kw": 141,
    "factor_potencia": 93.4,
    "desglose": {
      "base":       {"consumo_kwh": 9840,  "demanda_kw": 102},
      "intermedia": {"consumo_kwh": 34620, "demanda_kw": 141},
      "punta":      {"consumo_kwh": 3750,  "demanda_kw": 98}
    },
    "lectura_actual": 5342,
    "lectura_anterior": 5101,
    "carga_contratada_kw": 180,
    "subtotal": 118342.50,
    "iva": 18934.80,
    "total": 137277.30,
    "annual_kwh": 561400,
    "historial": [
      {
        "mes": "JUL", "año": "2026",
        "periodo_desde": "2026-06-15", "periodo_hasta": "2026-07-17",
        "consumo_kwh": 45880, "demanda_kw": 138, "factor_potencia": 92.8,
        "facturado": 129804.10, "pagado": 129804.10,
        "desglose": {
          "base": {"demanda_kw": 99}, "intermedia": {"demanda_kw": 138}, "punta": {"demanda_kw": 101}
        }
      }
    ],
    "conceptos": [
      {"descripcion": "Energía",          "importe": 118342.50},
      {"descripcion": "IVA 16%",          "importe":  18934.80},
      {"descripcion": "Fac. del Periodo", "importe": 137277.30}
    ]
  },
  "xml_url": "https://cfe-api.fly.dev/api/v1/xml/123456789012/2026-09-03?e=...&s=...",
  "pdf_url": "https://cfe-api.fly.dev/api/v1/recibo/123456789012/2026-09-03?e=...&s=..."
}

En tarifas no horarias (1, 1A–1F, DAC…) desglose es null. Agrega "periodo": "YYYY-MM" al cuerpo para pedir el recibo completo de un periodo anterior — 1 crédito por periodo consultado.

Documentación completa, changelog y ejemplos en curl, Python, Node y Go: github.com/zomars/cfe-api-docs.