Cufy API
Estado del servicio

Consultar salud de servicio y dependencias

GET/v1/status

Estado: implementada. Ambientes: simulation, qualification. Permisos: company:read.

Alcance: Estado autenticado y saneado del último muestreo por ambiente; ausencia/caducidad implica unknown. Incidentes estables de atraso, incertidumbre y recursos, sin conteos de otras empresas. Entrega y cobro comercial permanecen sin soporte. Una respuesta reciente no es una declaración oficial de disponibilidad DIAN.

Consultar salud de servicio y dependencias

Authorization

ClientApiKey
X-API-Key<token>

Secreto ligado a empresa, actor, permisos y ambiente. No admite cambiar empresa por body/header.

In: header

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/status"
{  "components": [    {      "name": "admission",      "status": "operational",      "updated_at": "2019-08-24T14:15:22Z",      "reason_code": "string",      "next_action": "string"    },    {      "name": "admission",      "status": "operational",      "updated_at": "2019-08-24T14:15:22Z",      "reason_code": "string",      "next_action": "string"    },    {      "name": "admission",      "status": "operational",      "updated_at": "2019-08-24T14:15:22Z",      "reason_code": "string",      "next_action": "string"    },    {      "name": "admission",      "status": "operational",      "updated_at": "2019-08-24T14:15:22Z",      "reason_code": "string",      "next_action": "string"    },    {      "name": "admission",      "status": "operational",      "updated_at": "2019-08-24T14:15:22Z",      "reason_code": "string",      "next_action": "string"    }  ],  "incident_ids": [],  "as_of": "2019-08-24T14:15:22Z",  "observation_status": "fresh",  "incidents": [],  "thresholds": {    "pending_seconds": 0,    "uncertain_seconds": 0,    "stale_seconds": 0  }}

Consultar catálogo versionado GET

**Estado:** parcial. **Ambientes:** simulation, qualification. **Permisos:** `company:read`. **Alcance:** Publica catálogos versionados del subconjunto fiscal implementado, con autenticación y aislamiento por ambiente. No contiene el catálogo DIAN completo. Perfil optativo co-sale-cop-iva-v1/v3: IVA gravado/exento/excluido solo en simulación sin firma ni notas; habilitación real bloqueada. Catálogos efectivos del perfil, no catálogo DIAN completo. IDs y semántica de active/valid_from en CATALOGS.md. Catálogo desconocido: 404 CATALOG_NOT_FOUND. Cursores firmados por empresa, ambiente, catálogo y versión; vencen en 24 horas.

Validar entrada sin emitir POST

**Estado:** parcial. **Ambientes:** simulation, qualification. **Permisos:** `documents:write`. **Alcance:** Comprueba estructura e importes del perfil fiscal local sin admitir trabajo ni consumir numeración. No comprueba preparación de rango o certificado ni garantiza aceptación DIAN. Reglas de comprador v2: persona CC/NIT, empresa NIT con dirección o consumidor final (222222222222, tipo 13, R-99-PN, tributo ZZ); sin identidad RUT verificada. Correo ausente solo avisa. Perfil optativo co-sale-cop-iva-v1/v3: IVA gravado/exento/excluido solo en simulación sin firma ni notas; habilitación real bloqueada. Alternativa AG-041: customer_id de un cliente guardado activo en lugar de buyer (nunca los dos: BUYER_SOURCE_CONFLICT; ninguno: VALIDATION_ERROR con BUYER_REQUIRED); el documento conserva la copia del comprador al admitirlo y un reintento recupera el mismo documento aunque el cliente cambie. Errores de negocio se devuelven con 200 y valid=false; malformación del JSON/estructura no interpretable usa 400/422. No asigna número, firma ni saldo. Con customer_id valida los datos actuales del cliente guardado: uno archivado da valid=false con CUSTOMER_ARCHIVED; uno inexistente o ajeno, 404 CUSTOMER_NOT_FOUND.