API para desarrolladores

La API de CFE: recibos, consumo y tarifas en JSON

Conecta la cuenta de CFE una vez. Batu descarga y normaliza los recibos, el consumo y las tarifas — y tu producto los consume por API.

De descargar PDFs a consumir datos

Los datos de CFE viven en un portal pensado para personas, no para sistemas: hay que entrar contrato por contrato, descargar cada recibo y capturar los números a mano. A escala, eso es días de trabajo manual cada mes — y una fuente constante de errores.

La API de Batu invierte el flujo: conectas tu cuenta de CFE una vez y los recibos, el consumo y las tarifas quedan disponibles como datos estructurados, listos para usarse en tu sistema. Tú construyes lo que necesites encima; nosotros nos encargamos de la parte tediosa: obtener y normalizar los datos de CFE.

¿Por qué no desarrollar esto por tu cuenta?

El portal de CFE no es una API: no tiene contrato, ni versiones, ni garantías. Cambia sin avisar — el login, los formatos, los captchas — y cuando cambia, tu scraper se rompe justo en el cierre de facturación. Mantener eso vivo no es un proyecto de una vez, es una tarea permanente.

  • Mantenimiento constante. Cada cambio del lado de CFE te obliga a parchar y volver a probar; puede ser cada mes.
  • Casos borde interminables. Múltiples tarifas, formatos de RPU, lecturas estimadas, PDFs y XMLs que no siempre cuadran.
  • Costo real oculto. El tiempo de ingeniería y las fallas en producción terminan costando más que usar una API ya mantenida.

Batu ya resuelve esto a escala. Tú te concentras en tu producto; la conexión con CFE la mantenemos nosotros.

Endpoints principales

Rutas principales — la referencia completa vive en la documentación de la API.

RecursoMétodoRutaQué devuelve
RecibosGET/api/v1/billsRecibos de CFE de un suministro (RPU), con desglose de conceptos: energía, demanda, factor de potencia y total.
ConsumoGET/api/v1/bills/aggregatesAgregados de consumo (kWh) y demanda (kW) por periodo, derivados de los recibos, para análisis de ahorro y detección de anomalías. (Cobertura y granularidad: ver documentación.)
TarifasGET/api/v1/catalog/tariff-mappingsValores de tarifa CFE (base, intermedia, punta, demanda y cargos fijos) por tarifa, zona y mes.

Empieza en minutos

Autentícate con tu API key y pide los recibos de un RPU. Ejemplos en curl, JavaScript y Python.

curl
# Autenticación: API key como Bearer token en el encabezado Authorization
curl https://app.batuenergy.com/api/v1/bills?rpu=TU_RPU \
  -H "Authorization: Bearer TU_API_KEY"
JavaScript
const res = await fetch(
  "https://app.batuenergy.com/api/v1/bills?rpu=TU_RPU",
  { headers: { Authorization: `Bearer ${process.env.BATU_API_KEY}` } },
);
const recibos = await res.json();
Python
import requests

res = requests.get(
    "https://app.batuenergy.com/api/v1/bills",
    params={"rpu": "TU_RPU"},
    headers={"Authorization": f"Bearer {BATU_API_KEY}"},
)
recibos = res.json()
GET/api/v1/bills?rpu=123456789012
200 OK
{
  "status": "success",
  "items": 1,
  "total": 24,
  "has_more": true,
  "next_cursor": "eyJpZCI6ImJpbF8wMUpRMks…",
  "data": [
    {
      "id": "bil_01JQ2K7R8MW3XZ",
      "object": "bill",
      "currency": "MXN",
      "total": "84560.00",
      "year_month": "2026-05",
      "period_start": "2026-04-01",
      "period_end": "2026-04-30",
      "due_date": "2026-05-18",
      "tariff": "GDMTH",
      "payment_status": "paid",
      "contract": {
        "id": "uct_01JQ2K5W3T9A",
        "object": "contract",
        "rpu": "123456789012",
        "pricing_zone": "Jalisco",
        "hired_demand": "50",
        "is_monitored": true
      },
      "concepts": {
        "kwh": "12450",
        "demandaMaxima": "48.20",
        "factorPotencia": "94.2"
      }
    }
  ],
  "concept_meaning": {
    "kwh": { "label": "kWh Totales", "units": "kWh" },
    "demandaMaxima": { "label": "Demanda Máxima", "units": "kW" },
    "factorPotencia": { "label": "Factor de Potencia", "units": "%" }
  }
}
Ejemplo de respuesta — cada recibo trae su contrato, sus conceptos (consumo, demanda, factor de potencia) y el significado de cada uno en concept_meaning.

Para quién es

  • Instaladores, EPCs e integradores solares: cotiza con datos reales de consumo, no con capturas manuales, y automatiza el reporte de ahorro a tus clientes.
  • Comercializadores y proveedores de energía: descarga recibos y factura sobre datos de CFE normalizados, sin construir ni mantener tu propio scraper del portal.
  • Equipos de datos y producto: integra recibos, consumo y tarifas de CFE en tus sistemas con una sola API en lugar de varios portales frágiles.

¿Gestionas el consumo de tu propia empresa multi-sitio en vez de construir sobre la API? Eso lo cubre la plataforma de Batu.

Aprende más

Preguntas frecuentes

¿Qué es la API de CFE de Batu?

Es una API REST que entrega los datos de un suministro de CFE en JSON: los recibos (con su desglose de energía, demanda y factor de potencia), las series de consumo y las tarifas por zona. Conectas la cuenta de CFE una vez y Batu descarga y normaliza los datos por ti; tu sistema los consume por API, con los datos ya estructurados y listos para usar.

¿Puedo descargar recibos de CFE por API?

Sí. El recurso de recibos devuelve los recibos de un RPU con su desglose de conceptos, listo para facturar, conciliar o reportar a tus clientes. En lugar de descargar PDFs manualmente cada mes, tu integración pide los recibos y recibe datos estructurados.

¿Qué datos de consumo expone la API?

Series de consumo (kWh) y demanda (kW) por periodo, derivadas de la telemetría del suministro y de los recibos. Sirven para calcular ahorro, comparar contra la tarifa contratada y detectar anomalías. (Cobertura y granularidad: TODO — confirmar en la documentación.)

¿Cómo me autentico y cuáles son los límites de uso?

La autenticación es por API key en el encabezado Authorization. Los límites de uso (rate limits) y el modelo de créditos se documentan en la referencia de la API. (TODO — confirmar límites y planes antes de publicar.)

¿La API sirve para integradores y comercializadores?

Sí. Está pensada para instaladores, EPCs y comercializadores que construyen su propia oferta de energía sobre los datos de CFE: cotización con datos reales, facturación a clientes y reportes automáticos. Tú tienes la batuta; Batu toca la parte de los datos de CFE.

Conecta tu cuenta de CFE una vez. Consume datos, no capturas.

Solicita acceso a la API y empieza a integrar recibos, consumo y tarifas de CFE en tu producto.