Empresa, preparación y numeración
Consultar y actualizar el perfil, interpretar readiness y el estado del servicio, y administrar rangos de numeración.
Perfil
GET /v1/companydevuelve el perfil,statusyETag.PATCH /v1/companyreemplaza el perfil (CompanyUpdate) conIf-Matche idempotencia. La identificación fiscal no cambia.- Falla con
COMPANY_HAS_PENDING_DOCUMENTSsi el cambio invalidaría trabajo pendiente o incierto. - Conserva las versiones anteriores. Un cambio invalida la marca de identidad verificada y obliga a revisar los requisitos de firma afectados.
- Falla con
Preparación (readiness)
GET /v1/company/readiness explica los requisitos actuales sin modificar nada:
{
"company_id": "…",
"environment": "simulation",
"status": "ready",
"checks": [
{ "name": "numbering", "status": "verified", "source": "system", "message": "…" }
],
"as_of": "…"
}status:configuring,testing,ready,restrictedoclosed.- Cada
check(identity,signing_authorization,certificate,software,qualification,numbering,delivery,commercial) tienestatus(pending,verified,invalid,expired,not_applicable) ysource(declared,verified,system). readyes disponibilidad administrativa. Cada admisión vuelve a comprobar firma, configuración y rango.
GET /v1/capabilities indica qué funciones puede usar tu clave, combinando empresa, ambiente, actor y permisos. Un perfil habilitado no sustituye las precondiciones de admisión.
Estado del servicio
GET /v1/status (permiso company:read) muestra la observación más reciente del ambiente, los incidentes activos y las acciones sugeridas. Si la observación falta o está vencida, devuelve unknown. No sustituye la consulta del resultado de cada documento.
Rangos de numeración
POST /v1/numbering-rangesregistra rangosauthorized_invoice(simulación y habilitación) ynote_sequence(habilitación).- Prefijos de 1 a 4 caracteres; consecutivos hasta 999999999.
- Los rangos de factura de habilitación requieren resolución y fechas. Se declaran, no se verifican contra la DIAN.
- Este endpoint no recibe claves técnicas: usa configuración XML de habilitación.
- Los rangos de factura disjuntos pueden continuar un prefijo sin reutilizar consecutivos. Se rechazan solapamientos. Las secuencias de notas conservan prefijos exclusivos.
GET /v1/numbering-ranges/{id}devuelve metadatos yETag.- Activación y desactivación usan
{ "reason": "…" },If-Matche idempotencia. No se suspende un rango con trabajo pendiente ni se reactiva uno vencido o agotado.
Consumo del rango
- Cada admisión consume capacidad, contando las solicitudes pendientes sin número.
- Con
NUMBERING_EXHAUSTEDno se crea documento, trabajo ni consumo. - Un replay idempotente recupera la admisión anterior aunque el rango ya se haya agotado.
- Cancelar antes de numerar libera capacidad. Un número asignado no se recicla.
Sedes, contingencia y transición automática de rangos están fuera del alcance actual.
En habilitación, las facturas nuevas con descuentos o cargos, globales o por línea, reciben QUALIFICATION_ADJUSTMENTS_UNSUPPORTED.
Autenticación y permisos
Cómo funciona la credencial, qué roles y permisos existen, cómo crear claves con permisos mínimos, rotarlas y cómo se aíslan las empresas.
Errores, idempotencia y reintentos
Formato de error, qué hacer con cada código, cómo reintentar sin duplicar documentos y los límites de tasa de la API.