facturaBoEmitirFactura
Description
Section titled “Description”Issues a Bolivian electronic invoice with factura.bo (SIN SIAT): validates the data and sends it to the SIAT. Supports 12 sectors (sales, rental, export, tourism, zero rate, education, utilities, ICE, hotel, hospital…). Returns the CUF, number, state and links to the PDF, XML and ticket. Protects against duplicates with the idempotency key.
Part of the Bolivia Fiscal Hub as an alternative to connecting directly to the SIAT: factura.bo (SimplifyIT S.R.L.) is a provider that builds and signs the XML and sends it to the SIN. Node: «Emitir factura».
Configuration
Section titled “Configuration”| Field | Type | Required | Description |
|---|---|---|---|
| credentials_id | credentials | Yes | facturabo credential |
| document_sector | select | No | Sector — Sector-specific data goes in “Sector fields”. Required per sector → 1 Compra y venta · 2 Alquiler de bien inmueble (periodo_facturado) · 3 Exportación de bienes · 4 Exportación en libre consignación · 6 Turismo y hospedaje (Ley 292) (fecha_ingreso, cantidad_huespedes, cantidad_habitaciones) · 8 Tasa cero · 11 Educativo · 13 Servicio básico (mes, gestion, numero_medidor, domicilio_cliente, consumo_periodo) · 14 Alcanzada por el ICE · 16 Hotel (fecha_ingreso, cantidad_huespedes, cantidad_habitaciones) · 17 Hospital y clínica · 28 Exportación de servicios · 1, 2, 3, 4, 6, 8, 11, 13, 14, 16, 17, 28 |
| branch_code | number | No | Branch (SIAT code) — 0 = head office. Empty = the credential default branch |
| point_of_sale_code | number | No | Point of sale (SIAT code) — 0 = main point. Empty = the credential one |
| economic_activity | text | No | Issuer economic activity (CAEB) — Optional if every line carries it or a default is set |
| client_document_type | select | No | Client document type — 5, 1, 2, 3, 4 |
| client_document_number | text | Yes | Document number — NIT of 7 to 15 digits (dots and dashes accepted). 0 = final consumer |
| client_business_name | text | No | Business name — Required with NIT |
| client_email | text | No | Client email — If set, factura.bo emails the PDF and public link (emails are never sent in sandbox) |
| client_complement | text | No | ID complement — ID card only |
| client_country_code | number | No | Buyer country (SIAT code) — Exports only (paises catalog) |
| client_address | text | No | Buyer address — Exports only |
| payment_method_code | number | No | Payment method (SIAT code) — 1 cash, 2/3 card, 7 transfer (metodos_pago catalog) |
| card_number | text | No | Card number — Only with payment method 2 or 3. The service always masks the middle digits |
| items | json | Yes | Invoice lines (JSON) — Array of lines: descripcion, cantidad, precio_unitario and optional codigo_producto, codigo_sin, unidad_medida, descuento, actividad_economica. Also accepts description, quantity, priceUnit… Missing values come from the defaults below |
| default_codigo_sin | number | No | Default SIN product code — Applied to lines without codigo_sin (productos_servicios catalog) |
| default_unit_measure | number | No | Default unit of measure — 58 = Service, 1 = Unit (unidades_medida catalog) |
| default_activity | text | No | Default economic activity (CAEB) — 6 or 7 digits. Applied to lines without actividad_economica |
| sector_fields | json | No | Sector fields (JSON) — Header data of the chosen sector, with factura.bo names. Validated before sending |
| additional_discount | number | No | Additional discount (Bs) — Global discount; added to line discounts |
| currency_code | number | No | Currency (SIAT code) — 1 = bolivianos, 2 = dollars |
| exchange_rate | number | No | Exchange rate — Required with a currency other than bolivianos. Use the “Exchange rate” node |
| exception_code | select | No | Exception code — "", 1 |
| user | text | No | User / cashier — Stored for audit |
| legend | text | No | Legend — Empty = the current one for the economic activity |
| contingency | boolean | No | Issue in contingency (offline) — Requires a contingency event registered first |
| cafc | text | No | CAFC — Contingency only (required for events 5, 6 and 7) |
| invoice_number | number | No | Manual invoice number — Only to transcribe a paper-pad invoice, together with its CAFC |
| issue_date | text | No | Earlier issue date — ISO 8601 in Bolivia time, up to 48 h back, together with contingency |
| debug | boolean | No | Include SIAT XML (diagnostics) |
| idempotency_mode | select | No | Duplicate protection — With a key, a retry after a failure does not duplicate the invoice: the API returns the one already issued (keys are remembered for 30 days). For two identical invoices in a loop use a manual key (e.g. the order id) · auto, manual, off |
| idempotency_key | text | No | Idempotency key — 1–128 visible characters, no spaces. Recommended: the sale id |
| include_pdf | boolean | No | Include PDF as base64 |
| include_raw | boolean | No | Include raw response |
| output_key | text | No | Output key — The result is added to data[key] keeping the rest of the data |
Credentials
Section titled “Credentials”This module requires a credential of type facturabo with the fields:
- API key: get it at app.factura.bo → More → API Key
- Environment: testing (sandbox, pilot SIAT) or production; the key does not reveal it, you choose
- NIT and SIAT system code: to sync CUIS/CUFD and catalogs
- Default branch and point of sale: 0 = head office / main point
- Webhook secret (
whsec_…): to verify event signatures
Output
Section titled “Output”{ "success": true, "sector": { "code": 1, "name": "Compra y venta", "path": "/v1/facturas" }, "invoice": { "cuf": "2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74", "invoice_number": 12, "state": "EMITIDA", "issued_at": "2026-10-26T10:00:00", "url_public": "https://api.factura.bo/f/2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74", "url_pdf": "https://…/pdf", "url_xml": "https://…/xml", "url_ticket": "https://…/ticket", "siat_response": { "codigoEstado": 908 } }, "urls": { "verify": "https://api.factura.bo/f/2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74", "pdf": "https://api.factura.bo/f/2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74/pdf", "ticket": "https://api.factura.bo/f/2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74/ticket", "xml": "https://api.factura.bo/f/2872F7294502332E637FABFBC3654EA82202AD48E0969F14EBEB8AF74/xml" }, "idempotency": { "key": "floogos-exec-1-node-1-3f9a…", "mode": "auto" }, "expected_total": 500, "warnings": [], "environment": "production"}The output is stored under the configured key (output_key, default facturabo) and the rest of data is kept. On error: error.message, error.type and, where applicable, status and siat_code.
Usage Example
Section titled “Usage Example”{ "credentials_id": "cred-facturabo", "document_sector": "1", "client_document_number": "1023456789", "client_business_name": "EMPRESA DEMO S.R.L.", "items": [ { "codigo_producto": "SERV-1", "codigo_sin": 83141, "descripcion": "Servicio de desarrollo", "cantidad": 1, "precio_unitario": 500, "unidad_medida": 58 } ], "output_key": "facturabo"}- Each sector has its own endpoint (
/v1/facturas,/alquiler,/exportacion,/turismo,/tasa-cero,/educacion,/servicio-basico,/ice,/hotel,/hospital…): the node picks the right one and validates the sector-specific fields before sending. - The idempotency key (
X-Idempotency-Key, 30 days) is generated for you: if the workflow is retried the API returns the original invoice instead of duplicating it. For two identical invoices in a loop use a manual key (the order id). - The factura.bo key does not reveal the environment: the credential sets it (sandbox by default). No emails are ever sent in sandbox.
- If the SIAT goes down, issue with “contingency” on: the invoice stays
OFFLINEand consumes no credit until the package is validated. - A SIAT rejection carries its code in
error.siat_codeand, for the common ones (123 expired CUFD, 981, 984, 1040…), a hint in the message. - The base64 PDF is not included by default (it is heavy): use the public links, which never expire, or enable “Include PDF”.
Related Nodes
Section titled “Related Nodes”- facturaBoEmitirLote - Emitir facturas en lote
- facturaBoNota - Nota de crédito/débito
- facturaBoAnular - Anular o revertir factura
- facturaBoValidarNit - Validar NIT
- facturaBoTipoCambio - Tipo de cambio