Saltar al contenido

CUF · SIN · Facturación electrónica

Qué es el CUF en la factura electrónica de Bolivia

Equipo Xmart · 1 de septiembre de 2026

Si alguna vez viste una factura electrónica en Bolivia, seguro notaste una cadena larga de letras y números debajo del código QR, algo como 2872F7294502812B7.... Ese código se llama CUF, y es, en la práctica, el documento de identidad de tu factura ante Impuestos Nacionales (el SIN).

Qué significa CUF

CUF son las siglas de Código Único de Factura. Es un identificador que el sistema genera para cada factura que emites, y que la distingue de cualquier otra factura, tuya o de cualquier otra empresa del país, para siempre. No hay dos facturas con el mismo CUF.

A diferencia del número de factura (que es correlativo y se repite entre empresas), el CUF es único a nivel nacional. Por eso el SIN lo usa como el identificador oficial cuando necesitas consultar, verificar o hacer referencia a una factura específica.

Para qué sirve en la práctica

El CUF aparece en tres lugares de tu operación diaria:

  • En el PDF y el XML de la factura, como texto y también codificado dentro del QR que el cliente puede escanear.
  • Como filtro de búsqueda, cuando necesitas encontrar una factura puntual entre miles.
  • Como referencia en notas de crédito o débito, anulaciones y reversiones, porque siempre apuntan al CUF de la factura original.

Si trabajas con la API de facturación de Xmart, vas a ver el campo cuf devuelto apenas se confirma una factura:

{
  "success": true,
  "code": 201,
  "message": "Factura emitida",
  "data": {
    "invoice_uid": "2e8992d4-...",
    "cuf": "2872F7294502812B7...",
    "invoice_number": 145,
    "status": "CONFIRMED"
  }
}

Con ese cuf puedes, por ejemplo, listar tus facturas filtrando exactamente por ese código:

GET /invoices?cuf=2872F7294502812B7...

También puedes pedir el XML firmado o el PDF de esa factura puntual usando su identificador interno (invoice_uid), no el CUF, en rutas como GET /invoices/{invoice_uid}/xml o GET /invoices/{invoice_uid}/pdf. El CUF queda embebido dentro de ambos documentos.

Cómo se arma el CUF

El CUF no es un número aleatorio: se construye a partir de datos concretos de la factura y de la empresa que la emite (el NIT, la sucursal, el punto de venta, la fecha y hora de emisión, el tipo de documento y de emisión, y un dígito verificador, entre otros). Esa es la razón por la que el SIN puede validar un CUF sin depender de una base de datos externa: la información básica ya está codificada en el propio código.

Justamente por eso el CUF también sirve para saber, con solo mirarlo, cómo se emitió esa factura. La API expone ese dato de forma explícita en el campo emission_type de cada factura, que puede venir como:

  • online: la factura se emitió con conexión directa a Impuestos, el caso normal del día a día.
  • offline: se emitió durante una contingencia, sin conexión al SIN, y se envió después.
  • massive: se emitió dentro de un lote (una caja cerrada con muchas facturas juntas).

CUF, CUFD y CUIS: no son lo mismo

Es fácil confundir el CUF con otras dos siglas parecidas, así que vale la pena aclarar la diferencia de una vez:

  • CUF (Código Único de Factura): identifica una factura puntual. Cambia en cada emisión.
  • CUFD (Código Único de Facturación Diaria): es una credencial que el SIN le entrega a tu punto de venta, y que se renueva todos los días. Sin un CUFD vigente, ese punto de venta no puede facturar.
  • CUIS (Código Único de Inicio de Sistema): es la credencial que habilita a un punto de venta a empezar a operar. Es más duradera que el CUFD, pero también vence y se renueva.

En otras palabras: el CUIS y el CUFD son llaves que tu sistema necesita tener vigentes antes de facturar, y el CUF es el resultado, el sello único que le queda a cada factura que emites con esas llaves. Si el CUFD de tu punto de venta vence a mitad del día, la API te va a devolver un error como este al intentar renovarlo sin tener antes un CUIS activo:

{
  "title": "renew CUIS before CUFD",
  "status": 422,
  "code": "INV_CREDENTIAL_EXPIRED"
}

Con la API de Xmart no tienes que preocuparte por renovar estas credenciales a mano: un proceso automático las mantiene vigentes por ti. Los endpoints de renovación (POST /cuis y POST /cufd) existen solo para los casos donde quieras forzar una renovación inmediata.

Cómo verificar un CUF

Si necesitas confirmar que un CUF corresponde a una factura real y válida (por ejemplo, porque un cliente te lo compartió y quieres comprobarlo), la API expone un endpoint dedicado:

POST /invoices/verify

Este endpoint contrasta los datos que le mandes contra lo que efectivamente quedó registrado y validado ante el SIN, y es la forma correcta de confirmar la autenticidad de una factura sin adivinar ni depender solo del PDF.

En resumen

El CUF es el identificador único de cada factura electrónica en Bolivia. Se genera automáticamente al emitir, viaja embebido en el QR, el PDF y el XML, y es la referencia que usas para consultar, verificar o vincular notas de crédito y débito. No lo generas tú a mano: nace del proceso de emisión, y la API de facturación se encarga de calcularlo, firmarlo y devolvértelo listo para usar.

Si estás evaluando cómo conectar tu sistema a Impuestos Nacionales, en nuestra página de facturación electrónica puedes ver cómo funciona el flujo completo, y en los planes de la API encuentras el detalle de precios y límites.