Skip to main content

Facturación

El ciclo completo de facturación electrónica en 10 herramientas.

crearFactura

Emite una factura electrónica completa. Firma digital, CUF, validación SIAT, PDF/XML y email al cliente. Soporta contingencia automática.

listarFacturas

Lista facturas con filtros por fecha, estado, NIT, número. Paginación incluida. Ideal para reportes y conciliaciones.

obtenerFactura

Detalle completo de una factura: datos fiscales, CUF, estado SIAT, items, montos, impuestos y metadata.

anularFactura

Anula una factura ante el SIAT con motivo del catálogo SIN. Registra la anulación y notifica al cliente.

revertirAnulacion

Revierte la anulación de una factura: CANCELLEDVALIDATED. No aplica a facturas emitidas en modo offline.

obtenerFacturaPorCuf

Obtiene una factura por su CUF (Código Único de Factura), el identificador único ante el SIN.

verificarEstadoFactura

Verifica el estado actual de una factura directamente con el SIAT. Estados: VALIDATED, REJECTED, CANCELLED, PENDING, CONTINGENCY.

crearNotaCreditoDebito

Emite nota de crédito o débito contra una factura validada. Devoluciones parciales o totales con validación SIAT sector 24.

resumenFacturacion

Dashboard de facturación: total facturas, montos, estados, facturas recientes y métricas del periodo.

descargarDocumento

Descarga PDF (A4 o ticket) o XML de una factura como base64. Busca primero en CDN, genera al vuelo si no existe.

crearFactura \

Crea y emite una factura electrónica validada por el SIAT. Firma digital, CUF, validación fiscal, generación de PDF/XML y envío de email al cliente — todo en una sola llamada. Requiere autenticación: Ejemplo de uso con AI:
“Emite una factura a DEMO S.R.L. con NIT 99001 por Bs. 500 de servicio de desarrollo”

listarFacturas \

Lista facturas emitidas por el tenant autenticado, paginadas y ordenadas por fecha de emisión descendente. Requiere autenticación: Ejemplo de uso con AI:
“Lista mis últimas 5 facturas”

obtenerFactura \

Obtiene los detalles completos de una factura por UUID, incluyendo datos del cliente, montos, estado SIAT, CUF y código QR. Requiere autenticación: Ejemplo de uso con AI:
“Muestra los detalles de la factura a1b2c3d4-e5f6-7890-abcd-ef1234567890”

obtenerFacturaPorCuf \

Obtiene los detalles de una factura por su CUF (Código Único de Factura), el identificador único ante el SIN. Requiere autenticación: Ejemplo de uso con AI:
“Busca la factura con CUF 2872F729450…”

anularFactura \

Anula una factura electrónica emitida. La anulación es irreversible ante el SIAT. Requiere autenticación: Ejemplo de uso con AI:
“Anula la factura a1b2c3d4… por error de datos”

revertirAnulacion \

Revierte la anulación de una factura ante el SIAT. Solo funciona con facturas en estado CANCELLED: la factura vuelve a VALIDATED. No funciona con facturas emitidas en modo offline (contingencia). Requiere autenticación: Ejemplo de uso con AI:
“Revierte la anulación de la factura a1b2c3d4…”

verificarEstadoFactura \

Verifica el estado actual de una factura directamente con el SIAT. Estados posibles: VALIDATED, REJECTED, CANCELLED, PENDING, CONTINGENCY. Requiere autenticación: Ejemplo de uso con AI:
“Verifica el estado de la factura a1b2c3d4… en el SIAT”

crearNotaCreditoDebito \

Crea y emite una Nota de Crédito o Débito contra una factura original validada. Soporta tres sectores de documento de ajuste: 24 (estándar), 47 (Descuento) y 48 (ICE), seleccionados con documentSectorType. Requiere autenticación: Ejemplo de uso con AI:
“Emite una nota de crédito contra la factura a1b2c3d4… por devolución de Bs. 100”
Las líneas originales SIEMPRE se clonan de la base de datos — no las re-envíes. Enviar tus propias líneas originales causaba rechazos SIAT [1049] (detalle diferente) y [1030] (monto original erróneo). Solo mandas returnedDetails (los items devueltos).

resumenFacturacion \

Obtiene un resumen tipo dashboard de la facturación del tenant: total facturas, montos, estados, facturas recientes. Requiere autenticación: Ejemplo de uso con AI:
“Dame un resumen de mi facturación”

descargarDocumento \

Descarga el PDF (A4 o ticket) o XML de una factura como contenido base64. Busca primero en S3 (CDN), si no existe genera el documento al vuelo. Requiere autenticación: Ejemplo de uso con AI:
“Descarga el PDF de la factura con CUF 2872F729…”

Conceptos clave

El CUF es un código alfanumérico de ~50 caracteres generado por el SIAT que identifica unívocamente cada factura electrónica ante el SIN. Es el equivalente a un “DNI” de la factura.
  • Se genera al momento de emisión y no cambia
  • Es necesario para anulaciones, consultas y descargas públicas
  • Los endpoints públicos /public/invoice/{cuf}/pdf y /public/invoice/{cuf}/xml usan el CUF como identificador
  • Ejemplo: 2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74
Cuando el SIAT no está disponible (caída, mantenimiento, problemas de red), CUCU activa el modo contingencia automáticamente:
  1. La factura se emite localmente con un CUF temporal
  2. Se almacena en la base de datos con estado CONTINGENCY
  3. Cuando el SIAT vuelve, CUCU sincroniza automáticamente las facturas pendientes
  4. El CUF temporal se reemplaza por el CUF definitivo del SIAT
El AI no necesita hacer nada especial — la contingencia es transparente.
Cada item en una factura requiere un codeProductSin del catálogo oficial del SIN. Ejemplos comunes:Usa la herramienta buscarNormativa para consultar códigos específicos.
El campo unitMeasure usa códigos numéricos del catálogo SIN:La unidad más común para servicios es 58. Para productos físicos, usa la unidad que corresponda.