Saltar al contenido
Falmus

Emitir nota de crédito

POST/api/v1/facturas/:facturaId/nota-credito

Emite 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.

Header requerido 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

Clave ficticia; no se ejecuta desde esta página
JSON · cuerpo de solicitud
{
  "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

201 Createdapplication/json
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.