cucuEmitirLote
Descripción
Sección titulada «Descripción»Emite varias facturas en una sola llamada (CUCU admite 20 por petición; el nodo trocea los lotes mayores). Valida TODAS antes de enviar ninguna y devuelve el resultado de cada una. No usa clave de idempotencia: si la red falla a mitad de un lote, comprueba con «Consultar → buscar» antes de reintentar. No es la emisión masiva del SIAT (para eso, «Emisión masiva»).
Forma parte del Hub Fiscal de Bolivia como alternativa a la conexión directa con el SIAT: CUCU es un proveedor autorizado que se ocupa de la firma, los códigos CUIS/CUFD y el envío al SIN. Nodo: «Emitir facturas en lote».
Configuración
Sección titulada «Configuración»| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
| credentials_id | credentials | Sí | Credencial cucu |
| invoices | json | Sí | Facturas (JSON) — Array de facturas, cada una con los mismos campos que «Emitir factura» (camelCase o snake_case) |
| point_of_sale_id | text | No | Punto de venta (UUID) — Sale en Sucursales y puntos de venta de CUCU. Vacío = el «punto de venta por defecto» de la credencial |
| document_sector | select | No | Sector (común) — “, 1, 2, 3, 5, 8, 9, 11, 13, 15, 16, 17, 20, 21, 22, 28, 34, 35, ELECTRONIC_HEALTH_SERVICE, ELECTRONIC_AIRLINE, ELECTRONIC_GAMES_LUCK |
| payment_method_code | number | No | Método de pago (común) |
| default_activity_economic | text | No | Actividad económica por defecto (CAEB) — Se aplica a las líneas que no traen activityEconomic |
| default_code_product_sin | text | No | Código de producto SIN por defecto — Se aplica a las líneas que no traen codeProductSin |
| default_unit_measure | number | No | Unidad de medida por defecto — 58 = Servicio, 1 = Unidad, 57 = Pieza (catálogo unit-measures) |
| chunk_size | number | No | Facturas por llamada — Máximo 20 (límite de CUCU) |
| max_invoices | number | No | Máximo de facturas del lote |
| invalid_items | select | No | Si alguna factura no es válida — abort, skip |
| batch_field_style | select | No | Nombres de las líneas — La documentación de CUCU usa nombres distintos en el ejemplo de lotes (activityCode, sinProductCode, unitPrice). «Ambos» funciona con cualquiera de los dos · both, standard, legacy |
| fail_on_partial | boolean | No | Dar error si alguna falla |
| output_key | text | No | Clave de salida — El resultado se añade a data[clave] sin perder el resto de datos |
Credenciales
Sección titulada «Credenciales»Este módulo requiere una credencial de tipo cucu con los campos:
- API key: empieza por
sk_test_(sandbox) osk_live_(producción); el entorno se deduce del prefijo - Entorno: automático, pruebas o producción (si contradice la clave, no se envía nada)
- Punto de venta por defecto (UUID): se usa si el nodo no indica uno
- ID de empresa (UUID): para sucursales y estado del certificado
- Secreto de webhooks (
whsec_…): para verificar la firma de los eventos
{ "success": false, "total": 45, "successful": 44, "failed": 1, "chunks": 3, "environment": "sandbox", "results": [ { "index": 0, "success": true, "invoice_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "invoice_number": 1, "cuf": "2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74" }, { "index": 23, "success": false, "stage": "cucu", "error": "NIT invalido" } ], "warnings": []}La salida se guarda en la clave configurada (output_key, por defecto cucu) y se conserva el resto de data. En error: error.message, error.type y, si aplica, status, code y siat_code.
Ejemplo de Uso
Sección titulada «Ejemplo de Uso»{ "credentials_id": "cred-cucu", "point_of_sale_id": "660e8400-e29b-41d4-a716-446655440004", "invoices": "{{data.facturas}}", "invalid_items": "abort", "output_key": "cucu"}- Valida TODAS las facturas antes de enviar ninguna (salvo que elijas «omitir inválidas»). Trocea en llamadas de 20 (límite de CUCU) y reasigna los índices para que
results[i]coincida con la lista de entrada. - El endpoint de lotes no documenta idempotencia: un timeout no se reintenta, para no duplicar. Si falla a mitad, el error trae
partialcon lo confirmado; comprueba con «CUCU: Consultar» antes de reenviar. - La documentación de CUCU usa nombres distintos en las líneas del lote (
activityCode,sinProductCode,unitPrice,discount); por defecto se envían ambos juegos de nombres (both).
Nodos Relacionados
Sección titulada «Nodos Relacionados»- cucuEmitirFactura - Emitir factura
- cucuEmisionMasiva - Emisión masiva
- cucuConsultar - Consultar facturas