Skip to main content
Convenciones de salida y errores: Guía para agentes.

crearFactura

Campos de factura (los dominios cerrados llegan como enum en tools/list): Salida (JSON en el texto):
documents se descarga con la API Key (documentos); para un link que una persona pueda abrir, descargarDocumento. Errores: Error parseando JSON: <detalle> (texto) · {"success": false, "error": "[<CODIGO>] <mensaje>"} para validación y rechazos SIAT (VALIDATION_ERROR, SIAT_ERROR, SECTOR_NOT_SUPPORTED, etc.; catálogo). Efecto: emite un documento fiscal. Tras un timeout no reintentar a ciegas: buscar primero con listarFacturas u obtenerFacturaPorCuf.

previsualizarFactura

Como crearFactura pero sin emitir: no numera, no guarda, no toca el SIN. Salida: JSON igual a data de POST /api/v3/invoices/preview. Errores: Error: <mensaje> con los mismos códigos que crearFactura.

listarFacturas

Salida (texto): Facturas (pagina P, n de T total): y una línea por factura - #<nro> | CUF: <cuf> | Estado: <estado> | Cliente: <nombre> (<doc>) | Total: <monto> Bs | Fecha: <fecha>. Sin resultados: No se encontraron facturas. Total: 0. Orden: fecha de emisión descendente.

obtenerFactura

Salida (texto): Factura #<nro> y líneas - ID, - CUF, - Estado SIAT: <estado> (codigo: <n>, desc: <texto>), - Tipo emision, - Cliente: <nombre> (Doc: <doc>, Email: <email>), - Subtotal, - Descuento, - Total, - Literal, - Fecha emision, - QR. Errores: Error: UUID invalido: <id> · Factura no encontrada con ID: <id> (también para facturas de otro tenant).

obtenerFacturaPorCuf

Salida: igual que obtenerFactura. Error: Factura no encontrada con CUF: <cuf>.

anularFactura

Anula ante el SIAT una factura o una nota de crédito/débito (gemela de POST /invoices/{id}/cancel): cada documento va al servicio del SIAT que le corresponde. Solo sobre VALIDATED/ACCEPTED. Salida (texto): Factura anulada exitosamente: + detalle de la factura (mismo formato que obtenerFactura). Errores: Error: UUID invalido: <id> · [<CODIGO>] <mensaje> (p. ej. factura inexistente o en estado no anulable). Efecto: estado CANCELLED ante el SIAT; se deshace con revertirAnulacion.

revertirAnulacion

Salida: Anulacion revertida exitosamente: + detalle. Aplica también a facturas emitidas offline (contingencia / CAFC). Efecto: vuelve a VALIDATED.

verificarEstadoFactura

Gemela de GET /api/v3/invoices/{id}/status: sirve para facturas y notas de crédito/débito. Salida: Estado verificado: + detalle. Un [924] en la descripción SIAT significa que el SIN no tiene la factura (ver regularizarFacturasFueraDeEvento).

crearNotaCreditoDebito

Nota de crédito o débito contra una factura VALIDATED. Sectores 24 (estándar, default), 47 (Descuento) y 48 (ICE). No reenvíes las líneas originales: se clonan de la base (si no, rechazos [1049] y [1030]). Sector 48 sin ICE: marcaIce: 2 y montos 0. Salida (texto): Nota Credito/Debito creada exitosamente: + Nota <CREDITO|DEBITO> #<nro> con líneas - ID, - CUF, estado, montos. Errores: Error parseando JSON: ... · [<CODIGO>] <mensaje>. Efecto: emite un documento fiscal.

resumenFacturacion

Sin parámetros. Salida (texto): === Resumen de Facturacion === con Total facturas, Facturas este mes, Monto total este mes, Monto total este anio, Offline pendientes, Anuladas este mes, bloque --- Por estado --- (<ESTADO>: <n>) y --- Montos por mes (ultimos 6) --- (<yyyy-MM>: <monto> Bs).

descargarDocumento

Devuelve un link temporal: descarga el archivo con GET al download_url (sin credencial) y adjúntalo. Salida (JSON): { "success": true, "invoiceNumber", "cuf", "formato", "fileName", "mimeType", "download_url" (absoluta), "expires_at" (ISO-8601 UTC), "max_uses" }. Vence a los 300 s y admite 3 usos (link temporal). Errores (JSON { "success": false, "error" }): Formato no soportado: <X>. Validos: … · Factura no encontrada con CUF: <cuf> · La factura no tiene documento en su estado actual (<ESTADO>). Efecto: lectura; emite un link nuevo en cada llamada.