Volver a la documentación
GET /tarifas

📋 Listado de Tarifas Activas

Proxy autenticado al microservicio de tarifas. Devuelve el catálogo normalizado y listo para ser usado por el comparador y la SPA.

📝 Descripción

Este endpoint realiza una petición a https://pre-webhooks.imaginaenergia.com/tarifas reenviando la cabecera Authorization recibida, normaliza la respuesta a una lista plana y la devuelve al cliente. Para cada tarifa se exponen:

🔐 Autenticación

Requiere cabecera Authorization: Bearer <TOKEN>. Se acepta tanto el token estático API_SECUR_TOKEN como un JWT firmado con JWT_SECRET / JWT_SECRET_1.

⚠️ Importante: La cabecera Authorization que envíes se reenvía tal cual al servicio interno de tarifas. Si la cabecera no es válida para el servicio interno, la API devolverá el código y el cuerpo de error tal y como los recibe (401, 403, ...).

📤 Respuesta exitosa (200 OK)

Estructura de cada elemento

CampoTipoDescripción
idintIdentificador interno de la tarifa (id_tarifa_precios).
nombrestringNombre comercial. Si falta, cae en descripcion.
descripcionstringDescripción larga de la tarifa.
codigo_atrstringTarifa de acceso (2.0TD, 3.0TD, 6.1TD, ...).
alias_externostringAlias usado por sistemas externos (CRM, web pública...).
tipo_tarifa_preciostring"Fijo" (origen "F") o "Indexado" (origen "I").
precio_potencia_boestringValor crudo de origen ("S"/"N").
potencia_boebooleantrue si la potencia se factura con precios BOE regulados.
energia_p1..energia_p6stringFórmula de precio de energía por período (campo energia_pX_formula del origen).
potencia_p1..potencia_p6stringFórmula de precio de potencia por período. Solo presentes si potencia_boe es false.

Ejemplo

[
  {
    "id": 1234,
    "nombre": "Tarifa Fija Hogar",
    "descripcion": "Tarifa fija 2.0TD con descuento residencial",
    "codigo_atr": "2.0TD",
    "alias_externo": "TFH_2025",
    "tipo_tarifa_precio": "Fijo",
    "precio_potencia_boe": "N",
    "potencia_boe": false,
    "energia_p1": "0.142",
    "energia_p2": "0.118",
    "energia_p3": "0.092",
    "energia_p4": null, "energia_p5": null, "energia_p6": null,
    "potencia_p1": "30.5",
    "potencia_p2": "1.2",
    "potencia_p3": null, "potencia_p4": null,
    "potencia_p5": null, "potencia_p6": null
  },
  {
    "id": 1240,
    "nombre": "Tarifa Indexada PYME",
    "codigo_atr": "3.0TD",
    "tipo_tarifa_precio": "Indexado",
    "potencia_boe": true,
    "precio_potencia_boe": "S",
    "energia_p1": "OMIE_P1 + 0.03",
    "energia_p2": "OMIE_P2 + 0.03",
    "energia_p3": "OMIE_P3 + 0.03",
    "energia_p4": "OMIE_P4 + 0.03",
    "energia_p5": "OMIE_P5 + 0.03",
    "energia_p6": "OMIE_P6 + 0.03"
  }
]

❌ Respuestas de error

CódigoCuándo se produce
401Falta la cabecera Authorization.
4xx / 5xxEl servicio interno de tarifas devuelve un error. Se reenvía el código y el cuerpo originales.
500Error inesperado del proxy: {"error": "Error al obtener el listado de tarifas"}.

💻 Ejemplos

cURL

curl -X GET "https://api.imaginaenergia.com/tarifas" \
  -H "Authorization: Bearer <JWT>"

JavaScript (fetch)

const res = await fetch('/tarifas', {
  headers: { 'Authorization': `Bearer ${jwt}` }
});
const tarifas = await res.json();
const fijas = tarifas.filter(t => t.tipo_tarifa_precio === 'Fijo');

🔄 Flujo interno

  1. El cliente llama a /tarifas con su Authorization.
  2. La API valida el token (estático o JWT).
  3. La API realiza GET al microservicio interno reenviando esa misma cabecera.
  4. Si la respuesta es 200, se normaliza la estructura (campos planos, tipo de precio legible, potencia_boe booleano, fórmulas energia_pX / potencia_pX) y se devuelve como lista.
  5. Si la respuesta no es 200, se devuelve el código y el cuerpo originales al cliente.