Invoicing in Bolivia with factura.bo
This guide covers the facturaBo* nodes (the factura.bo provider by SimplifyIT S.R.L.): from the credential to issuing, correcting, cancelling and reconciling. Each field is described on the node’s page and the country summary is on the Bolivia page.
Before you start
Section titled “Before you start”- In app.factura.bo → More → API Key generate your key.
- In Floogos create a Bolivia factura.bo credential with the key, the environment (sandbox or production), your NIT and the SIAT system code. Optional: default branch and point of sale (0 = head office / main point) and the webhook secret (
whsec_…). - Click Test credential.
Case 1: issue an invoice
Section titled “Case 1: issue an invoice”Flow: Trigger → facturaBoEmitirFactura → facturaBoDocumento.
| Field | Example value |
|---|---|
document_sector | 1 (purchase and sale) |
client_document_number | {{customer_nit}} |
client_business_name | {{business_name}} |
client_email | {{email}} (factura.bo sends the PDF to the customer) |
items | [{"codigo_producto":"SERV-1","codigo_sin":83141,"descripcion":"Development service","cantidad":1,"precio_unitario":500,"unidad_medida":58}] |
idempotency_mode | auto |
output_key | facturabo |
Result in data.facturabo: invoice.cuf, invoice.invoice_number, invoice.state (EMITIDA) and the links url_public, url_pdf, url_xml and url_ticket. To resend the PDF later, use facturaBoDocumento with operation: email and cuf: {{data.facturabo.invoice.cuf}}.
Lines accept factura.bo’s names (descripcion, cantidad, precio_unitario…) and their English equivalents. Anything missing is filled from the node defaults (default_codigo_sin, default_unit_measure, default_activity).
Case 2: choose the sector
Section titled “Case 2: choose the sector”factura.bo has one endpoint for each of its 12 sectors, and the node validates each sector’s own data before calling the API. They go in sector_fields, except the buyer’s data:
| Sector | Own data |
|---|---|
| 1 Purchase and sale | — |
| 2 Property rental | periodo_facturado |
| 6 Tourism and lodging, 16 Hotel | fecha_ingreso, cantidad_huespedes, cantidad_habitaciones |
| 13 Utilities | mes, gestion, numero_medidor, domicilio_cliente, consumo_periodo |
| 3, 4, 28 Exports | buyer’s client_country_code and client_address |
| 8, 11, 14, 17 | Zero rate, education, ICE, hospital and clinic |
The facturaBoEmitirFactura page lists the required fields of each sector.
Case 3: invoice in US dollars
Section titled “Case 3: invoice in US dollars”- facturaBoTipoCambio with
operation: currentandoutput_key: tc. - On the issue:
currency_code: 2andexchange_rate: {{data.tc.data.USD}}.
Case 4: validate the NIT before issuing
Section titled “Case 4: validate the NIT before issuing”facturaBoValidarNit with nit: {{customer_nit}} checks the NIT. If it is not valid, route the flow to an error branch instead of issuing and getting a rejection.
Case 5: never duplicate invoices
Section titled “Case 5: never duplicate invoices”Every issue carries X-Idempotency-Key (up to 128 characters; keys are remembered for 30 days):
auto: derived from the execution, the node and the content. A retry returns the invoice already issued.manual: your own key, e.g.{{order_id}}; essential in loops with identical invoices.off: no key; a timeout or a 5xx is not retried to avoid duplicates.
Case 6: credit/debit note
Section titled “Case 6: credit/debit note”operation: from_invoicewith the invoicecufandnote_sector: 24. Inreturned_itemsgive only what was returned, e.g.[{"nro_item_original":1,"cantidad":1}]. The effective amount of the note is 13 % of what was returned.availablelists the invoices a note can be issued against.manualcreates the note without starting from an invoice.- The idempotency key is required on this endpoint; in
automode the node generates it for you.
Case 7: cancel
Section titled “Case 7: cancel”facturaBoAnular with operation: cancel, the cuf and a motivo from the motivos_anulacion catalog (get it with facturaBoCatalogo). The revert operation is available to revert a cancellation.
Case 8: batches, queries and reports
Section titled “Case 8: batches, queries and reports”- facturaBoEmitirLote for several invoices.
- facturaBoConsultar to list or retrieve invoices.
- facturaBoReportes for the Sales Book (RCV) and the monthly backup.
Case 9: the SIAT is down (contingency)
Section titled “Case 9: the SIAT is down (contingency)”With facturaBoContingencia, in four steps:
start_eventafter the outage: the event end date cannot be in the future in Bolivian time, nor overlap another event.- Issue with
contingencyenabled: the invoices stayOFFLINE. send_package(maximum 500 invoices).validate_packagewith the reception code. Only then do they becomeEMITIDAand consume credit.
Events 5, 6 and 7 require a CAFC, requested from the SIN; set it in the cafc field of the issue. list_events shows the registered events.
Case 10: webhooks
Section titled “Case 10: webhooks”- Register the URL of a Webhook trigger with facturaBoWebhooks (
create; the URL must be https and answer 2xx within 10 s).rotate_secretandtestrotate the secret and test delivery. - First node of the workflow: facturaBoVerificarWebhook. With no configuration it uses the credential’s secret and the received request.
- Continue only if the signature is valid.
Hints for SIAT errors
Section titled “Hints for SIAT errors”The node translates the most common SIAT codes into a concrete hint:
| Code | What to do |
|---|---|
| 123 | CUFD expired (lasts 24 h): synchronise. |
| 981 | Event with a future end date or overlapping: register it after the outage and without overlaps. |
| 984 | The CUFD does not match the event window: synchronise and retry. |
| 902 | CAFC missing (events 5, 6 and 7). |
| 1040 | The issue date is outside the event range. |
| 1047 | The invoice number exceeds the CAFC range: request a new one from the SIN. |
| 954 | The package exceeds 500 invoices. |
| 1002 / 1006 | The package CUF or CUFD does not match: do not mix events or CUFDs. |
| 1049 | In a note, the line with codigo_detalle_transaccion=1 must replicate the original exactly. |
Nodes in this guide
Section titled “Nodes in this guide”facturaBoEmitirFactura · facturaBoEmitirLote · facturaBoNota · facturaBoAnular · facturaBoConsultar · facturaBoDocumento · facturaBoValidarNit · facturaBoCatalogo · facturaBoAdministrar · facturaBoContingencia · facturaBoWebhooks · facturaBoVerificarWebhook · facturaBoTipoCambio · facturaBoReportes