Emitir nota de crédito
/api/v1/facturas/:facturaId/nota-creditoEmite una nota sobre la factura aceptada indicada por facturaId. Requiere X-API-Key con permiso notascredito.crear; la factura debe pertenecer a la misma empresa.
X-API-KeyVer operaciones de Notas de crédito Contrato de la operación
Emite una nota sobre la factura aceptada indicada por facturaId. Requiere X-API-Key con permiso notas_credito.crear; la factura debe pertenecer a la misma empresa.
puntoVentaId es el UUID de un punto de venta activo de la empresa y debe coincidir con el de la factura original. El backend obtiene desde allí los códigos SIAT del punto y de su sucursal. tipoNota es obligatorio, acepta mayúsculas o minúsculas y sólo admite el valor lógico credito; este endpoint no emite notas de débito independientes. codigoMetodoPago es un entero positivo y debe coincidir con el método original cuando la factura conserva uno positivo. Cada elemento de detallesDevueltos se relaciona automáticamente por actividad, producto SIN y unidad de medida. La cantidad no puede superar la original y precioUnitario no puede ser mayor al facturado. codigoProducto y montoDescuento son opcionales.
La fecha de emisión de la nota la fija el backend en el momento de emitir; no se envía en el cuerpo. La fecha de la factura original se conserva como referencia del ajuste. credito es una selección del contrato de Falmus y no un tipo configurable de compra del RCV.
El cliente no elige documento sector ni prorrateos. El servidor usa el sector 24 normalmente y el sector 47 cuando la factura original contiene descuentoAdicional mayor a cero. La solicitud y tipoNota: "credito" son iguales para ambos casos; el backend infiere el tipo a partir de la factura original y calcula los montos oficiales, CUF, CUIS/CUFD y XML. La empresa y la clave deben tener habilitado el tipo inferido. Responde 201, 400, 401, 403, 404, 409, 422 o 503.
tipoNota se envía en el cuerpo y sólo acepta el valor lógico credito. La respuesta del detalle consultable por GET /api/v1/notas-credito/{notaCreditoId} incluye tipoNota en minúsculas, cliente y líneas. La respuesta inmediata del POST contiene tipoNota, razón social y el importe devuelto en un resumen sin líneas ni metadatos operativos; cuando SIAT la acepta incluye urlXml y urlPdf. El XML y el PDF se obtienen por CUF en /api/v1/public/notas-credito/{cuf}/xml y /api/v1/public/notas-credito/{cuf}/pdf.
Respuesta cuando la factura original no tiene descuento adicional (sector 24):
Respuesta cuando la factura original tiene descuento adicional y el servidor prorratea ese descuento (sector 47). La forma es la misma; cambian los importes y el sector inferido:
Ejemplo
Solicitud de ejemplo
{
"puntoVentaId": "{{puntoVentaId}}",
"tipoNota": "credito",
"codigoMetodoPago": 1,
"detallesDevueltos": [
{
"actividadEconomica": "6201000",
"codigoProductoSin": 1003914,
"descripcion": "Devolución parcial - Servicio de software",
"cantidad": 1,
"codigoUnidadMedida": 58,
"precioUnitario": 50
}
]
}Respuesta
Ejemplo de respuesta
application/json{
"message": "nota de crédito emitida correctamente",
"data": {
"id": "00000000-0000-4000-8000-000000000001",
"facturaId": "00000000-0000-4000-8000-000000000042",
"nroNota": 1,
"tipoNota": "credito",
"codigoDocumentoSector": 24,
"cuf": "B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01",
"estado": "aceptado",
"razonSocial": "CLIENTE DE DEMOSTRACIÓN",
"montoTotalDevuelto": 100,
"fechaEmision": "2026-08-30T16:10:00-04:00",
"urlPdf": "https://api.example.test/api/v1/public/notas-credito/B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01/pdf",
"urlXml": "https://api.example.test/api/v1/public/notas-credito/B2C3D4E5F60718293A4B5C6D7E8F90123456789ABCDEF0123456789ABCDEF01/xml"
}
}Datos ficticios; los identificadores y valores cambian en cada respuesta.