Registrar notas de crédito y ajustes
Esta guía cubre cómo emitir comprobantes de tipo "negativo" (que restan deuda) vinculados a un comprobante padre: notas de crédito, devoluciones, faltantes, ajustes y retenciones impositivas.
Tipos negativos
| Tipo | Caso de uso |
|---|---|
CREDIT_NOTE | Nota de crédito de AFIP que cancela parcial o totalmente una factura |
MISSING_PRODUCT | Producto faltante en la entrega |
RETURN_PRODUCT | Producto devuelto por el cliente |
BROKEN_PRODUCT | Producto roto/dañado |
ADJUSTMENT | Ajuste a favor del cliente (sin causa fiscal específica) |
RETENTION | Retención impositiva aplicada por el cliente sobre el pago |
Modelo
Un comprobante hijo se vincula a su padre con parentReceivableId:
Saldo efectivo del padre 99001: 45.000 - 5.000 - 1.350 = 38.650.
Crear una nota de crédito
POST /v1/receivables
Idempotency-Key: erp-nc-2026-05-20-001
Content-Type: application/json
{
"receivableAccountId": 4242,
"parentReceivableId": 99001,
"amount": 5000.00,
"currencyCode": "ARS",
"receivableType": "CREDIT_NOTE",
"legalNumber": "0001-NC-00001",
"description": "Nota de crédito por descuento comercial"
}
Validaciones
| Validación | Error si falla |
|---|---|
parentReceivableId requerido para tipos negativos | missing-parent-receivable |
| Padre debe pertenecer a la misma cuenta recaudadora | parent-receivable-different-account |
Padre debe estar en PENDING, PAID, o EXPIRED (no en estado final) | parent-receivable-not-modifiable |
Padre debe ser de tipo positivo (INVOICE o DEBT) | parent-receivable-invalid-type |
Respuesta
201 Created
Location: /v1/receivables/99100
{
"id": 99100,
"receivableAccountId": 4242,
"parentReceivableId": 99001,
"amount": 5000.00,
"currencyCode": "ARS",
"receivableType": "CREDIT_NOTE",
"status": "PENDING",
...
}
Listar hijos de un comprobante
GET /v1/receivables?parentReceivableId=99001
Devuelve todos los comprobantes hijos de uno padre. Útil para mostrar el detalle de descuentos aplicados a una factura.
Caso retención impositiva
Una retención (RETENTION) representa el monto que el cliente descuenta del pago por aplicación de impuestos (IIBB, IVA, ganancias, etc.). Se emite como un comprobante hijo de la factura original.
// El cliente nos avisa que retuvo 3% de IIBB sobre $45.000
await maxpay.post('/v1/receivables', {
headers: { 'Idempotency-Key': `erp-ret-iibb-${facturaId}` },
body: {
receivableAccountId: 4242,
parentReceivableId: 99001,
amount: 1350.00, // 3% de 45.000
currencyCode: 'ARS',
receivableType: 'RETENTION',
description: 'Retención IIBB 3%',
invoiceData: {
authCodeType: 'CERT_RETENCION',
authCode: '2026-IIBB-1234567'
}
}
});
Al cobrar el pago, el cliente transfiere 45.000 - 1.350 = 43.650. Ambos comprobantes (factura y retención) quedarán en SETTLED al cierre de la liquidación.
Restricciones operativas
- Cancelar el padre antes que los hijos no se permite. Hay que anular los hijos primero, después el padre. Ver Lifecycle → anulación.