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.
Conecta CFE una vez
Autorizas la cuenta de CFE una sola vez. Sin capturas de pantalla, sin entrar al portal cada mes.
Batu descarga y normaliza
Cada periodo, Batu baja los recibos y estructura el consumo y las tarifas en un formato consistente.
Consume los datos en JSON
Tu producto pide los datos por API y recibe JSON listo para facturar, conciliar o analizar.
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.
| Recurso | Método | Ruta | Qué devuelve |
|---|---|---|---|
| Recibos | GET | /api/v1/bills | Recibos de CFE de un suministro (RPU), con desglose de conceptos: energía, demanda, factor de potencia y total. |
| Consumo | GET | /api/v1/bills/aggregates | Agregados 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.) |
| Tarifas | GET | /api/v1/catalog/tariff-mappings | Valores 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.
# 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"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();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(){
"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": "%" }
}
}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
- Cómo leer el recibo de CFE — qué conceptos entrega la API (energía, demanda, factor de potencia).
- Mapa del Sistema Eléctrico Nacional — contexto de tarifas y demanda por región de CFE.
- Calcula el costo de implementar Batu — estima créditos y plan según tu volumen de recibos y sitios.
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.