Skip to main content
go-siat is a robust SDK written in Go, designed to facilitate integration with the SOAP web services of SIAT (Sistema de Facturación de Impuestos Nacionales de Bolivia) - Bolivia’s National Tax Invoicing System.

What is go-siat?

go-siat provides a clean, type-safe API for interacting with Bolivia’s SIAT tax system. The SDK abstracts the complexity of SOAP communications and provides an intuitive builder pattern for constructing requests.

Key Features

Code Management

Request CUIS and CUFD codes (individual and bulk)Validate NIT numbersTest communication and retrieve revoked certificates

Catalog Synchronization

Synchronize activities, parametric data, products and servicesSync document sector information

Point of Sale Operations

Register and close points of saleManage significant eventsQuery existing points of sale

Purchase & Sales

Receive invoices (signed XML, compressed and encoded)Cancel invoicesGenerate CUF and digital XML signatures

Architecture

The SDK is organized into four main service modules:
  • Codigos - Code management (CUIS, CUFD, NIT validation)
  • Sincronizacion - Catalog synchronization
  • Operaciones - Point of sale operations
  • CompraVenta - Invoice sending and cancellation
All requests use the builder pattern to ensure type safety and provide a clear, fluent API.

Design Philosophy

Type-Safe Builders

go-siat uses opaque interfaces and builder patterns to ensure you can’t accidentally construct invalid requests:
// Requests are built using fluent builders
req := models.Codigos.NewCuisRequest().
    WithNit(123456789).
    WithCodigoAmbiente(2).
    WithCodigoSistema("ABC123XYZ").
    Build()

Service-Based Organization

All SIAT operations are organized into logical service groups accessible through a single entry point:
s, err := siat.New(baseURL, nil)
if err != nil {
    log.Fatal(err)
}

// Access services through the unified interface
s.Codigos.SolicitudCuis(...)
s.Sincronizacion.SincronizarActividades(...)
s.Operaciones.RegistroPuntoVenta(...)
s.CompraVenta.RecepcionFactura(...)

Environment Support

go-siat supports both testing and production environments:
  • Testing: https://pilotosiatservicios.impuestos.gob.bo/v2
  • Production: Configure with your production SIAT URL

Requirements

  • Go 1.26+
  • Valid SIAT API credentials (Token)
  • For invoice signing: Digital certificate and private key

Next Steps

Installation

Install go-siat in your project

Quickstart

Make your first SIAT API call

Build docs developers (and LLMs) love