Para integrar la facturación en línea del Servicio de Impuestos Nacionales (SIN) en tu sistema necesitas cuatro cosas antes de emitir la primera factura: un sistema registrado (que te da un código de sistema), un token delegado generado en el Portal SIAT, un CUIS por sucursal o punto de venta y un CUFD nuevo cada día. Con eso armas cada factura en XML, la comprimes en Gzip, calculas su SHA-256 y la envías por SOAP. Esta guía resume la documentación oficial del SIAT, revisada el 10 de noviembre de 2026. ¿Aún no sabes si te conviene un sistema propio? Lee esta comparación.

Las dos modalidades que se integran por API

La norma base es la RND 102100000011, con sus modificatorias. Para un sistema propio hay dos modalidades, y en los servicios se identifican con el parámetro codigoModalidad:

Electrónica en Línea (1) Computarizada en Línea (2)
Firma digital del XML Sí, XMLDSig No
Envío individual, por paquete y masivo Sí Sí
Representación gráfica Opcional imprimir; se envía al cliente con el XML Opcional imprimir
XSD El electrónico (incluye la firma) El computarizado

Fuente: páginas oficiales de las modalidades Electrónica y Computarizada. En todos los servicios, codigoAmbiente vale 1 en producción y 2 en pruebas y piloto. La modalidad la asigna el SIN a tu NIT; si no coincide, el servicio responde con el error 937.

Autenticación: el token delegado

El token se genera en el Portal SIAT, en la gestión de autorización de sistemas, eligiendo «Token Delegado Piloto» o «Token Delegado en Producción», el NIT y la duración. Según la guía oficial, viaja en la cabecera HTTP apikey con el valor TokenApi <token>. El token de producción es distinto al de piloto. Trátalo como un secreto.

Flujo completo en 12 pasos

  1. Registra el sistema en el Portal SIAT (Gestión de Autorización de Sistemas, opción Piloto, «Nuevo Sistema»). El reporte final trae el código de sistema, los parámetros constantes y las direcciones de los servicios de prueba. Un sistema web y su API se autorizan por separado.
  2. Genera el token delegado de piloto.
  3. Pide el CUIS con el método cuis (codigoAmbiente, codigoSistema, nit, codigoModalidad, codigoSucursal, codigoPuntoVenta). Dura 365 días y se renueva desde el quinto día antes de vencer. Casa matriz es la sucursal 0; sin punto de venta se envía 0.
  4. Sincroniza la fecha y hora con el SIN cada día, antes de pedir el CUFD.
  5. Pide el CUFD con solicitudCufd. Devuelve el codigoCUFD, un codigoControl, la dirección de la sucursal y la fechaVigencia. Vale 24 horas.
  6. Sincroniza los catálogos a diario: la documentación lista 18 servicios (actividades, leyendas, productos y servicios, eventos significativos, motivos de anulación, tipos de documento, métodos de pago, monedas, unidades de medida y otros).
  7. Verifica el NIT del comprador con verificarNit.
  8. Genera el CUF de la factura (ver la sección siguiente).
  9. Arma el XML según el XSD del documento sector y, si eres Electrónica en Línea, fírmalo.
  10. Valida contra el XSD, comprime en Gzip y calcula el SHA-256 del archivo comprimido. El comprimido va en archivo y el hash en hashArchivo.
  11. Envía con RecepcionFactura (codigoEmision 1 = en línea). Respuesta: 908 (validada) o 904 (observada, con la lista de errores).
  12. Entrega al cliente la representación gráfica y el XML por correo u otro medio que proteja su privacidad.

El orden sale de las páginas de emisión y envío y de requisitos del sistema.

Cómo se calcula el CUF

El algoritmo oficial concatena nueve campos rellenados con ceros a la izquierda: NIT (13), fecha y hora yyyyMMddHHmmssSSS (17), sucursal (4), modalidad (1), tipo de emisión (1), tipo de factura (1), documento sector (2), número de factura (10) y punto de venta (4). Son 53 dígitos. Se agrega un dígito verificador Módulo 11, se convierte la cadena a Base 16 y al final se pega el codigoControl del CUFD.

El ejemplo oficial: NIT 123456789, fecha 20190113163721231, casa matriz, Electrónica en Línea, en línea, con crédito fiscal, compra y venta, factura 1, sin punto de venta. El verificador Módulo 11 es 1 y la cadena en Base 16 da 8727F63A15F8976591FDDE5B387C5D015A29E06A1. Con un código de control A19E23EF34124CD, el CUF final es 8727F63A15F8976591FDDE5B387C5D015A29E06A1A19E23EF34124CD. Úsalo como prueba unitaria.

Firma digital del XML (solo Electrónica en Línea)

La guía de firma pide una firma XMLDSig envuelta (enveloped): canonicalizar, obtener el SHA-256 en Base64 para DigestValue, firmar con RSA-SHA256 para SignatureValue y colocar el certificado en X509Certificate. Para el piloto, el SIN entrega un certificado de prueba: generas un CSR con los campos de la AGETIC y lo envías por correo al SIN. En producción necesitas un certificado de una entidad autorizada, como la AGETIC o Digicert; lo explicamos en la nota sobre firma digital en Bolivia.

Contingencia: fuera de línea y paquetes

Si verificarComunicacion falla (tiempo agotado, -1 o HTTP 500) tras un par de reintentos, el sistema pasa solo a fuera de línea. Las pautas de ingreso a contingencia sugieren reintentar antes de dos horas.

  1. Emite con el CUFD vigente antes del corte, codigoEmision 2 y la leyenda de «fuera de línea». Si el comprador se identifica con NIT, envía codigoExcepcion = 1.
  2. Al volver la conexión, pide un CUFD nuevo.
  3. Registra el evento con registroEventoSignificativo, con las fechas de inicio y fin y el cufdEvento usado.
  4. Envía paquetes de hasta 500 facturas con RecepcionPaqueteFactura, con el codigoEvento recibido. Responde 901 (pendiente).
  5. Consulta validacionRecepcionPaqueteFactura hasta obtener 908 o 904.

Según la fase de inspección, los paquetes fuera de línea deben salir dentro de las 48 horas posteriores a la recuperación. Las facturas manuales de contingencia transcritas, con su CAFC, tienen 72 horas. Si el servicio de CUFD es el que falla, el último CUFD válido se extiende hasta 72 horas. La emisión masiva, para bancos o servicios básicos, usa recepcionMasivaFactura con paquetes de hasta 1000 facturas.

Anulación y reversión

AnulacionFactura recibe el cuf y un codigoMotivo del catálogo, y responde 905 si la anulación es confirmada. El plazo es hasta el día 9 del mes siguiente a la emisión, siempre que la factura no se haya usado en una declaración jurada, y el comprador debe ser notificado (página oficial). Fuera de ese plazo, la RND 102600000025 abrió un trámite en plataforma o por nota ante la Gerencia Distrital o GRACO. ReversionAnulacionFactura revierte una anulación una sola vez (907), dentro del mismo plazo del día 9.

Ambiente piloto y certificación

El proceso de autorización exige un NIT activo, obligación del IVA y ninguna marca de control. Luego vienen tres fases:

  • Fase I, pruebas: etapas con casos en Excel. Algunos mínimos por caso: 2 pruebas de CUIS, 50 de sincronización, 100 de CUFD, 5 de eventos significativos y 10 de paquetes. En total, 500 emisiones individuales, 250 anulaciones, 250 emisiones firmadas (si eres electrónica) y 98 reversiones (detalle).
  • Fase II, inspección: el SIN revisa, entre otras cosas, que no haya facturas con monto cero (salvo con Gift Card), que la tarjeta salga enmascarada (como 4797000000007896) y que la contingencia sea automática.
  • Fase III, piloto: sincronización, emisión, anulación, reversión, eventos, paquetes y, si corresponde, emisión masiva. Iniciar operaciones vale como declaración jurada.

Después, en inicio de operaciones obtienes las direcciones productivas, un token nuevo y un CUIS de producción. La autorización dura tres años.

Lo que cambia en 2026

  • Ley 1733 (IVA separado del precio neto): la RND 102600000034 obliga a los sistemas propios y de proveedores a cumplir el Anexo Técnico Ley N° 1733, todavía en construcción, para entrar a piloto del 1 de octubre al 16 de noviembre de 2026. En la factura de compra y venta del anexo aparecen subtotalNeto, totalPrecioNeto, iva (13% del precio neto) y montoaPagar. Ejemplo: con un precio neto de Bs100, el IVA es Bs13 y el monto a pagar es Bs113. Mientras no rija la resolución que implemente el cambio, la RND 102100000011 sigue plenamente vigente. Al 10 de noviembre, esa resolución no figura en la lista de RND 2026.
  • Moneda extranjera: desde la RND 102600000026 se registra el tipo de cambio oficial que publica el BCB en la fecha de la transacción. Puedes consultarlo en dólar hoy.
  • Homologación de productos: la RND 102600000042 da plazo hasta el 31 de diciembre de 2026 para homologar los productos del sistema con las actividades económicas del RNC.

Errores comunes

  • 921 o 922, firma incorrecta: usar SHA-1 en vez de SHA-256, el XSD computarizado en vez del electrónico, X509Certificate mal ubicado o modificar el XML después de firmar (causas oficiales).
  • 969, hash inválido: calcular el SHA-256 del XML y no del Gzip.
  • 939, no cumple el XSD: validar localmente antes de enviar.
  • 953 o 914, CUFD no vigente o inválido: no renovar a tiempo, o emitir con el CUFD de otro punto de venta.
  • 970, ya existe un CUIS vigente: pedir otro CUIS en vez de reutilizar el guardado.
  • 952, CUF duplicado: reintentar un envío que sí llegó. Antes, consulta verificacionEstadoFactura.

Checklist antes de pedir la inspección

  • CUIS y CUFD por sucursal y punto de venta, con alertas de vencimiento.
  • CUF probado con el ejemplo oficial.
  • Paso automático a fuera de línea y envío de paquetes dentro de las 48 horas.
  • Registro de facturas sin respuesta para verificarlas al volver.
  • Anulación bloqueada después del día 9 del mes siguiente.
  • XSD del anexo de la Ley 1733 si entras a piloto antes del 16 de noviembre.

Si vas a contratar un sistema en lugar de construirlo, revisa qué preguntar a un proveedor.