Saltar al contenido
Falmus

Anular nota de crédito

POST/api/v1/notas-credito/:notaCreditoId/anular

Anula una nota aceptada de los sectores SIAT 24 o 47. Requiere X-API-Key con permiso notascredito.anular de la misma empresa, ambiente, modalidad, sucursal y punto de venta de la nota.

Header requerido X-API-KeyVer operaciones de Notas de crédito

Contrato de la operación

Anula una nota aceptada de los sectores SIAT 24 o 47. Requiere X-API-Key con permiso notas_credito.anular de la misma empresa, ambiente, modalidad, sucursal y punto de venta de la nota.

Solicitud

notaCreditoId es el UUID de la nota, distinto del UUID de la factura original y de su CUF.

CampoTipoObligatorioDescripción
codigoMotivointegerSíCódigo positivo obtenido del catálogo motivos_anulacion. El valor 1 del ejemplo no es un valor por defecto. SIAT valida el motivo y el plazo fiscal.

Idempotency-Key es opcional. Si lo envías debe ser un UUID v4. La misma clave y motivo reutilizan el intento existente; usarla para otra nota o motivo devuelve 409. Sin cabecera también se bloquean anulaciones simultáneas de la misma nota.

Envía únicamente codigoMotivo en el cuerpo de la solicitud.

Confirmación y resultado pendiente

HTTPEstado localComportamiento
200anuladoSIAT confirmó la anulación. Libera el monto consumido por la nota para posteriores devoluciones.
202anulacion_pendienteEl resultado es incierto. Conserva el monto consumido y todavía no confirma la anulación.

Para conciliar un resultado pendiente, repite esta misma solicitud con el mismo motivo. Si enviaste una clave, conserva la misma. El resultado permanece pendiente hasta que se confirme la anulación. Si persiste, contacta con soporte. Obtener nota de crédito permite consultar el estado registrado de la nota. Durante la espera, codigoEstado: 908 conserva la aceptación original.

Historial y errores

La anulación no anula ni modifica la factura original. La nota conserva su CUF, datos e historial. El PDF continúa disponible con la marca «ANULADO» tras confirmar la anulación. La respuesta añade codigoMotivoAnulacion, anuladaEn y, cuando SIAT lo devuelve, codigoRecepcionAnulacion.

Un motivo ausente o no positivo devuelve 400. Un conflicto de estado o de clave devuelve 409; una nota de otra empresa, ambiente o modalidad devuelve 404. Un rechazo explícito de SIAT devuelve 422 y mantiene la nota aceptada. Tras ese rechazo puedes corregir el motivo con una nueva solicitud sin clave o con otra clave. Para reactivar una nota anulada usa Revertir anulación de nota de crédito.

Ejemplo

Solicitud de ejemplo

Clave ficticia; no se ejecuta desde esta página
JSON · cuerpo de solicitud
{
  "codigoMotivo": 1
}

Respuesta

Ejemplo de respuesta

200 OKapplication/json
JSON
{
  "message": "nota de crédito anulada correctamente",
  "data": {
    "id": "00000000-0000-4000-8000-000000000001",
    "facturaId": "00000000-0000-4000-8000-000000000042",
    "nroNota": 1,
    "cuf": "B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01",
    "codigoRecepcion": "00000000-0000-4000-8000-000000000043",
    "codigoEstado": 905,
    "estado": "anulado",
    "fechaEmision": "2026-08-30T16:10:00-04:00",
    "montoTotalOriginal": 500,
    "montoTotalDevuelto": 100,
    "montoEfectivoCredito": 13,
    "codigoPuntoVenta": 0,
    "codigoDocumentoSector": 24,
    "urlQr": "https://pilotosiat.impuestos.gob.bo/consulta/QR?nit=123456789&cuf=B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01&numero=1&t=2",
    "urlXml": "https://api.example.test/api/v1/public/notas-credito/B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01/xml",
    "urlPdf": "https://api.example.test/api/v1/public/notas-credito/B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01/pdf",
    "creadoEn": "2026-08-30T16:10:00-04:00",
    "actualizadoEn": "2026-08-30T16:10:00-04:00",
    "codigoMotivoAnulacion": 1,
    "codigoRecepcionAnulacion": "anulacion-siat-demo",
    "anuladaEn": "2026-08-30T16:10:00-04:00"
  }
}

Datos ficticios; los identificadores y valores cambian en cada respuesta.

202 Accepted

La anulación todavía no está confirmada. Repite la misma solicitud con el mismo motivo y conserva la clave de idempotencia si la enviaste. El monto continúa consumido hasta la confirmación.

JSON
{
  "message": "anulación de nota de crédito pendiente de confirmación",
  "data": {
    "id": "00000000-0000-4000-8000-000000000001",
    "facturaId": "00000000-0000-4000-8000-000000000042",
    "nroNota": 1,
    "cuf": "B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01",
    "codigoRecepcion": "00000000-0000-4000-8000-000000000043",
    "codigoEstado": 908,
    "estado": "anulacion_pendiente",
    "fechaEmision": "2026-08-30T16:10:00-04:00",
    "montoTotalOriginal": 500,
    "montoTotalDevuelto": 100,
    "montoEfectivoCredito": 13,
    "codigoPuntoVenta": 0,
    "codigoDocumentoSector": 24,
    "urlQr": "https://pilotosiat.impuestos.gob.bo/consulta/QR?nit=123456789&cuf=B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01&numero=1&t=2",
    "urlXml": "https://api.example.test/api/v1/public/notas-credito/B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01/xml",
    "urlPdf": "https://api.example.test/api/v1/public/notas-credito/B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01/pdf",
    "creadoEn": "2026-08-30T16:10:00-04:00",
    "actualizadoEn": "2026-08-30T16:10:00-04:00",
    "codigoMotivoAnulacion": 1
  }
}