Ir al contenido

SiatEmitirFactura

Emite una Factura Electrónica de compra-venta al SIAT del SIN de Bolivia. El nodo genera el CUF (Código Único de Facturación) a partir del NIT del emisor, la fecha de emisión y la CUFD del día, arma el XML de la factura, lo firma digitalmente con XMLDSig usando el certificado de la credencial y realiza la recepción por SOAP con el cuerpo comprimido en GZIP.

Requiere una CUFD vigente (obtenida previamente con SiatObtenerCufd): sin ella el nodo no arma ni envía nada. El precio unitario de cada ítem de la factura se informa con el IVA del 13% ya incluido. Opcionalmente, el mismo nodo puede validar el estado final del documento inmediatamente después de la recepción.

CampoTipoRequeridoDescripción
credentials_idcredentialsSíCredencial siat
facturajsonNoFactura en JSON: comprador (nit/documento, razonSocial, tipoDocumento), items (precioUnitario con IVA incluido, codigoProductoSin, actividadEconomica). Si se deja vacío se usan los datos de entrada del nodo
cufdtextNoCUFD vigente (si no está en la credencial ni dentro de factura)
codigo_controltextNoCódigo de control de la CUFD
validar_estadobooleanNoValidar el estado del documento inmediatamente después de la recepción. Por defecto true

El emisor (NIT, razón social, sucursal, punto de venta) se completa automáticamente desde la credencial cuando no viene en factura.

Este módulo requiere una credencial de tipo siat con los siguientes campos:

  • Certificado digital (.p12): certificado de firma, o alternativamente clave privada + certificado en PEM
  • Contraseña del certificado: contraseña del .p12
  • NIT del emisor: NIT de la empresa que factura
  • Token/apikey del SIN: token de acceso a los servicios del SIAT (o token delegado)
  • Ambiente: pruebas/piloto o producción
{
"cuf": "8A1B2C3D4E5F60718293A4B5C6D7E8F9",
"numeroFactura": "128",
"tipo": "1",
"estado": "validated",
"codigoRecepcion": "R-2026-000123",
"qrUrl": "https://siat.impuestos.gob.bo/consulta?cuf=8A1B2C3D4E5F60718293A4B5C6D7E8F9",
"total": 1130,
"iva": 130,
"mensajes": [],
"xmlFirmado": "<Factura>...firmado...</Factura>"
}

Factura de un servicio con un ítem (IVA 13% incluido)

Sección titulada «Factura de un servicio con un ítem (IVA 13% incluido)»
{
"credentials_id": "cred-siat-prod",
"cufd": "ABCDEFGHIJK0123456789LMNOPQRSTUVWXYZ",
"codigo_control": "A1B2",
"factura": {
"comprador": {
"nit": "1234567011",
"razonSocial": "Cliente SRL",
"tipoDocumento": "NIT"
},
"items": [
{ "descripcion": "Servicio de consultoría", "cantidad": 1, "precioUnitario": 1130, "codigoProductoSin": "99100", "actividadEconomica": "620100" }
]
}
}
  • factura.items es obligatorio y debe tener al menos un ítem; si falta, el nodo corta antes de armar el XML.
  • La CUFD y su código de control son obligatorios: si no vienen en factura, en la configuración del nodo ni en la credencial, el nodo devuelve error (conseguilos con SiatObtenerCufd).
  • Si el certificado de la credencial está vencido, el nodo rechaza la emisión antes de firmar.
  • Con validar_estado en true (por defecto) el documento queda en validated o rejected según lo que confirme el SIN; en false queda en received sin resolver.
  • El precio unitario de cada ítem se informa con el IVA 13% ya incluido, no como impuesto aparte.