Skip to main content
POST
https://sandbox.cucu.bo
/
api
/
v1
/
invoices
/
{id}
/
credit-note
curl -X POST "https://sandbox.cucu.bo/api/v1/invoices/a1b2c3d4-e5f6-7890-abcd-ef1234567890/credit-note" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "pointOfSaleId": "660e8400-e29b-41d4-a716-446655440004",
    "notaType": "CREDITO",
    "paymentMethodCode": 1,
    "returnedDetails": [
      {
        "activityEconomic": "620100",
        "codeProductSin": "83141",
        "description": "Devolucion parcial - Servicio de software",
        "quantity": 1,
        "unitMeasure": 58,
        "priceUnit": 200.00
      }
    ]
  }'
{
  "success": true,
  "message": "Nota creada exitosamente",
  "data": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "invoiceNumber": 10,
    "cuf": "3983G8305613443F748GCBGCD4765FB93313BE59F1A7AF25FCFC9BG85",
    "state": "VALIDATED",
    "clientBusinessName": "EMPRESA DEMO S.R.L.",
    "amountTotal": 200.00,
    "emissionDate": "2026-02-22T10:30:00",
    "pdfUrl": "https://sandbox.cucu.bo/api/v1/public/invoice/3983G...G85/pdf",
    "xmlUrl": "https://sandbox.cucu.bo/api/v1/public/invoice/3983G...G85/xml"
  },
  "timestamp": "2026-02-22T10:30:00"
}
Crea y emite una Nota de Credito o Debito contra una factura original validada por el SIAT. La nota permite ajustar montos por devoluciones parciales o totales.
La factura original debe estar en estado VALIDATED. No se puede emitir una nota contra facturas rechazadas, anuladas o pendientes.

Path Parameters

ParametroTipoReqDescripcion
idUUIDSiUUID de la factura original contra la que se emite la nota

Headers

ParametroTipoReqDescripcion
X-API-KeystringSiTu API Key
Content-TypestringSiapplication/json

Request Body

CampoTipoReqDescripcion
pointOfSaleIdUUIDSiUUID del punto de venta registrado en SIAT
notaTypestringSiTipo de nota: CREDITO o DEBITO
paymentMethodCodeintegerSiCodigo de metodo de pago (1-308). 1 = Efectivo
cardNumberstringNoNumero de tarjeta (si aplica al metodo de pago)
observationsstringNoObservaciones (max 500 caracteres)
isTicketbooleanNotrue para generar ticket 80mm ademas de A4
returnedDetailsarraySiItems devueltos/ajustados (minimo 1)

returnedDetails[]

CampoTipoReqDescripcion
activityEconomicstringSiCodigo de actividad economica CAEB
codeProductSinstringSiCodigo de producto/servicio del catalogo SIN
codeProductstringNoCodigo interno del producto
descriptionstringSiDescripcion del producto o servicio devuelto (max 500)
quantitynumberSiCantidad devuelta (mayor a 0)
unitMeasureintegerSiUnidad de medida SIN. 58 = Servicio, 1 = Unidad
priceUnitnumberSiPrecio unitario en bolivianos (mayor a 0)
amountDiscountnumberNoDescuento aplicado al item (default 0)
serialNumberstringNoNumero de serie (si aplica)
imeiNumberstringNoNumero IMEI (si aplica)
curl -X POST "https://sandbox.cucu.bo/api/v1/invoices/a1b2c3d4-e5f6-7890-abcd-ef1234567890/credit-note" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "pointOfSaleId": "660e8400-e29b-41d4-a716-446655440004",
    "notaType": "CREDITO",
    "paymentMethodCode": 1,
    "returnedDetails": [
      {
        "activityEconomic": "620100",
        "codeProductSin": "83141",
        "description": "Devolucion parcial - Servicio de software",
        "quantity": 1,
        "unitMeasure": 58,
        "priceUnit": 200.00
      }
    ]
  }'
{
  "success": true,
  "message": "Nota creada exitosamente",
  "data": {
    "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "invoiceNumber": 10,
    "cuf": "3983G8305613443F748GCBGCD4765FB93313BE59F1A7AF25FCFC9BG85",
    "state": "VALIDATED",
    "clientBusinessName": "EMPRESA DEMO S.R.L.",
    "amountTotal": 200.00,
    "emissionDate": "2026-02-22T10:30:00",
    "pdfUrl": "https://sandbox.cucu.bo/api/v1/public/invoice/3983G...G85/pdf",
    "xmlUrl": "https://sandbox.cucu.bo/api/v1/public/invoice/3983G...G85/xml"
  },
  "timestamp": "2026-02-22T10:30:00"
}

Comportamiento

  1. El sistema obtiene automaticamente los datos de la factura original (cliente, CUF, montos)
  2. Los returnedDetails se marcan con codigoDetalleTransaccion=2 (devolucion)
  3. Los items originales se copian automaticamente con codigoDetalleTransaccion=1
  4. Se calcula: montoTotalOriginal, montoTotalDevuelto, montoDescuentoCreditoDebito, montoEfectivoCreditoDebito
  5. La nota se envia al SIAT via ServicioFacturacionDocumentoAjuste (sector 24)
  6. Se genera PDF (A4 + ticket opcional), XML y se envia email al cliente
Si la factura original tiene items con montoGiftCard > 0, el paymentMethodCode debe incluir el codigo 27 (Gift Card). Error SIAT 1050 si se omite.
La nota genera su propio CUF unico. Puedes acceder a ella via /f/{cuf} o los endpoints publicos, igual que una factura regular.