Saltar al contenido

Identidad visual pública de la entidad ​

Permite a tu sitio o aplicación pintar la marca de la entidad (nombre, colores, textos de bienvenida, logo, isotipo y favicon) igual que lo hace la pantalla de acceso de Panteum. Son datos públicos y no contienen información sensible.

  • Autenticación: ninguna.
  • URL base: https://identidad.tu-entidad.example (marcador; ver Conceptos).
  • Límite de uso: 600 peticiones por minuto por IP en estos dos endpoints.
  • Caché: las respuestas traen ETag; si envías If-None-Match con el valor recibido, el servidor responde 304 sin cuerpo cuando la marca no cambió.

GET /api/v1/auth/marca — Marca vigente ​

Devuelve la identidad visual efectiva de la entidad.

Parámetros ​

No tiene parámetros de ruta ni de consulta. Cabecera opcional: If-None-Match: "<version>".

Ejemplos ​

curl

bash
curl -s https://identidad.tu-entidad.example/api/v1/auth/marca \
  -H "Accept: application/json"

JavaScript (fetch)

js
const res = await fetch("https://identidad.tu-entidad.example/api/v1/auth/marca", {
  headers: { Accept: "application/json" },
});
if (res.status === 304) {
  // usa la copia que ya tienes
} else {
  const { data } = await res.json();
  document.documentElement.style.setProperty("--color-primario", data.color_primario);
  document.title = data.nombre;
}

Python (requests)

python
import requests

r = requests.get(
    "https://identidad.tu-entidad.example/api/v1/auth/marca",
    headers={"Accept": "application/json"},
    timeout=10,
)
r.raise_for_status()
marca = r.json()["data"]
print(marca["nombre"], marca["color_primario"])

Respuesta de ejemplo (200) ​

json
{
  "success": true,
  "data": {
    "modo": "panteum",
    "nombre": "Panteum",
    "tagline": "hub de aplicaciones",
    "nombre_entidad": null,
    "color_primario": "#2D6BFF",
    "color_acento": "#19D3F0",
    "logo_url": null,
    "isotipo_url": null,
    "favicon_url": null,
    "logo_tipo": null,
    "isotipo_tipo": null,
    "login_titulo": "Todas las aplicaciones de tu entidad, en un solo hub.",
    "login_bullets": [
      "PAA, CDP y RP con trazabilidad",
      "PQRS y trámites con firmas y aprobaciones"
    ],
    "contacto_correo": null,
    "contacto_sitio": null,
    "con_tecnologia_panteum": false,
    "es_default": true,
    "version": "ab4ddf549000ed21"
  },
  "message": null
}
CampoDescripción
modopanteum (marca por defecto), comarca (marca de la entidad «con tecnología Panteum») o marca_blanca.
nombre, tagline, nombre_entidadTextos de identificación. Pueden ser null.
color_primario, color_acentoColores en formato #RRGGBB.
logo_url, isotipo_url, favicon_urlRuta (relativa al mismo dominio) del archivo de imagen, o null si no hay. Se descarga con el endpoint de abajo.
logo_tipo, isotipo_tipoTipo de la imagen (p. ej. png), o null.
login_titulo, login_bulletsTexto y viñetas de la pantalla de acceso.
contacto_correo, contacto_sitioDatos de contacto de la entidad (opcionales).
con_tecnologia_panteumtrue si debe mostrarse «con tecnología Panteum».
es_defaulttrue si la entidad aún no personalizó su marca.
versionHuella de la marca: cambia cuando la marca cambia.

Errores ​

HTTPerror.codeCuándo
304—If-None-Match coincide: la marca no cambió.
429RATE_LIMITDemasiadas consultas (ver Conceptos).

GET /api/v1/auth/marca/archivo/{slot} — Imagen de la marca ​

Devuelve el binario de una imagen de la marca.

Parámetros de ruta ​

ParámetroValoresDescripción
slotlogo, isotipo, faviconQué imagen se pide.

Ejemplos ​

curl

bash
curl -s -o logo.png https://identidad.tu-entidad.example/api/v1/auth/marca/archivo/logo

JavaScript (fetch)

js
const res = await fetch("https://identidad.tu-entidad.example/api/v1/auth/marca/archivo/logo");
if (res.ok) {
  const blob = await res.blob();
  document.querySelector("#logo").src = URL.createObjectURL(blob);
}

También puedes usar la ruta directamente en una etiqueta: <img src="https://identidad.tu-entidad.example/api/v1/auth/marca/archivo/logo">.

Python (requests)

python
import requests

r = requests.get("https://identidad.tu-entidad.example/api/v1/auth/marca/archivo/logo", timeout=10)
if r.status_code == 200:
    open("logo.png", "wb").write(r.content)

Respuesta ​

  • 200: la imagen, con su Content-Type real, ETag y Cache-Control.
  • 304: el navegador ya tiene la versión vigente.

Errores ​

HTTPerror.codeCuándo
404NO_ENCONTRADOEsa imagen no está configurada o el slot no existe.
429RATE_LIMITDemasiadas consultas.
json
{
  "success": false,
  "error": { "code": "NO_ENCONTRADO", "detalle": "Recurso no encontrado." },
  "message": "Recurso no encontrado."
}