Saltar al contenido
Falmus

Obtener o generar CUFD

POST/api/v1/codigos/cufd

Obtiene el CUFD operativo del punto de venta. Si la base de datos conserva uno cuya vigencia no terminó y su CUIS asociado sigue activo, lo reutiliza sin llamar al SIAT ni descifrar credenciales. Cuando no existe, está vencido o su CUIS fue invalidado, solicita los códigos necesarios y conserva la relación CUIS-CUFD en el esquema fiscal del tenant.

Header requerido X-API-KeyVer operaciones de Códigos fiscales

Contrato de la operación

Obtiene el CUFD operativo del punto de venta. Si la base de datos conserva uno cuya vigencia no terminó y su CUIS asociado sigue activo, lo reutiliza sin llamar al SIAT ni descifrar credenciales. Cuando no existe, está vencido o su CUIS fue invalidado, solicita los códigos necesarios y conserva la relación CUIS-CUFD en el esquema fiscal del tenant.

Autorización y cuerpo

Requiere X-API-Key con permiso codigos.administrar. El cuerpo contiene únicamente puntoVentaId, UUID obligatorio de un punto activo de la empresa de la clave. El backend deriva su sucursal y código SIAT; la clave determina el ambiente. No envíes NIT emisor, sucursal, CUIS ni Token Delegado.

codigoPuntoVenta ya no se acepta. Un UUID vacío, inválido o ajeno a la empresa devuelve 404; un cuerpo ausente o con campos desconocidos devuelve 400. Consulta [migracion.md](migracion.md).

Respuestas

200 OK devuelve el CUFD, su código de control y fecha de vigencia, tanto si fue reutilizado como si fue generado. Cada punto conserva su propio CUIS cifrado. Si SIAT rechaza expresamente ese CUIS al generar el CUFD, el servicio invalida también sus CUFD relacionados, obtiene otro CUIS y repite una sola vez la solicitud; otros rechazos no se reintentan. 400 indica un cuerpo inválido; 401 o 403, una clave inválida o sin permiso; 404, punto inexistente; 422, rechazo del SIAT; 503, una falla temporal del SIAT.

El código y su c...

Ejemplo

Solicitud de ejemplo

Clave ficticia; no se ejecuta desde esta página
JSON · cuerpo de solicitud
{
  "puntoVentaId": "{{puntoVentaId}}"
}

Respuesta

Ejemplo de respuesta

200 OKapplication/json
JSON
{
  "message": "CUFD generado correctamente",
  "data": {
    "cufd": "BQW5FZ...",
    "codigoControl": "A1B2C3",
    "vigencia": "2026-08-28T00:00:00Z"
  }
}

Datos ficticios; los identificadores y valores cambian en cada respuesta.