La Nota de débito C aumenta el importe de una Factura C ya emitida: horas o productos que no se facturaron, un recargo o intereses por mora. Lleva el motivo en reason y, en associated_invoices, el comprobante que ajusta. Las reglas son las de la Factura C: la emiten monotributistas, exentos, no alcanzados y no categorizados, a cualquier receptor y sin IVA.
Necesitás un emisor con alguna de esas condiciones frente al IVA y verificado, y un webhook para recibir el resultado. El detalle de cada campo está en la referencia de comprobantes.
Emitir una Nota de débito C
Una Nota de débito C de $12.500 por horas que no se facturaron, sobre la Factura C número 215 del punto de venta 1, la del ejemplo:
const response = await fetch('https://app.afipsdk.com/api/v1/invoices', {
method: 'POST',
headers: {
'Authorization': 'Bearer <ACCESS_TOKEN>',
'Content-Type': 'application/json',
'Idempotency-Key': 'ajuste-0003'
},
body: JSON.stringify({
issuer_cuit: '20111111112',
invoice_type: 12, // Nota de débito C
concept: 2, // 2 servicios: lleva service_dates
service_dates: { // Obligatorio con concept 2 o 3
from: '2026-10-01',
to: '2026-10-31',
due: '2026-11-10'
},
reason: 'Horas adicionales no facturadas', // Obligatorio en las notas
associated_invoices: [ // El comprobante que ajusta
{ invoice_type: 11, sales_point: 1, number: 215, date: '2026-10-14' }
],
receiver: {
doc_type: 80, // 80 CUIT, 96 DNI, 99 sin identificar
doc_number: '30715000004',
vat_condition: 1, // Cualquier condición frente al IVA
name: 'Comercio del Centro S.R.L.',
address: 'Av. Corrientes 1234, CABA'
},
amounts: {
net: 12500,
total: 12500
},
items: [ // Detalle impreso, sin IVA
{ description: 'Horas adicionales, octubre 2026', quantity: 5, unit_price: 2500, subtotal: 12500 }
],
sale_condition: 'Transferencia bancaria'
})
});
const invoice = await response.json();
reasonyassociated_invoicesson obligatorios. Si la nota ajusta un período y no un comprobante puntual, vaassociated_perioden lugar deassociated_invoices.- Los importes son los del ajuste, no los del comprobante original, y el receptor es el mismo.
- No hay IVA:
amounts.vatno se manda, no hayvat_itemsy los ítems no llevanvat_rate.
Respuesta
Factura SDK responde 202 con el comprobante en queued y lo autoriza en segundo plano. Cuando ARCA lo aprueba, tu webhook recibe el evento invoice.approved con el comprobante: el número asignado, el CAE y la URL pública del PDF.
{
"event_id": "evt_9f1e2d3c4b5a69788a9b0c1d2e3f4a5b",
"type": "invoice.approved",
"created": "2026-10-14T14:05:04.000Z",
"data": {
"id": "7c1d9e4b-2f3a-4b8c-9d0e-1a2b3c4d5e6f",
"idempotency_key": "ajuste-0003",
"status": "approved",
"invoice_type": 12,
"sales_point": 1,
"number": 4,
"invoice_date": "2026-10-14",
"total_amount": 12500,
"currency": "PES",
"cae": "76412345678901",
"cae_expiration": "2026-10-24",
"pdf_url": "https://app.afipsdk.com/api/v1/invoices/7c1d9e4b-2f3a-4b8c-9d0e-1a2b3c4d5e6f/pdf?token=kX3v9Qw2LmN8pR5tY7uZ1aB4cD6eF8gH0jK2lM4nO6p",
"...": "el comprobante completo, como lo devuelve GET /v1/invoices/:id"
}
}
Si ARCA lo rechaza, llega invoice.rejected con los motivos en errors. Con sync: true en el cuerpo, el comprobante vuelve ya decidido en la misma respuesta y no hay webhook. El detalle está en respuesta y estados.
Variantes
Los ejemplos muestran solo lo que cambia respecto de la solicitud de arriba.
Intereses por mora
Los intereses son un servicio, así que van con concept 2, el período que cubren y el vencimiento del pago:
{
"reason": "Intereses por pago fuera de término",
"service_dates": { "from": "2026-11-10", "to": "2026-12-10", "due": "2026-12-17" },
"amounts": { "net": 1500, "total": 1500 },
"items": [
{ "description": "Intereses por pago fuera de término", "quantity": 1, "unit_price": 1500, "subtotal": 1500 }
]
}
Varios comprobantes asociados
Una nota puede ajustar más de un comprobante, con una entrada en associated_invoices por cada uno:
{
"associated_invoices": [
{ "invoice_type": 11, "sales_point": 1, "number": 215, "date": "2026-10-14" },
{ "invoice_type": 11, "sales_point": 1, "number": 214, "date": "2026-10-14" }
]
}
Período asociado
Cuando la nota ajusta un período y no un comprobante puntual, por ejemplo un ajuste de honorarios sobre los servicios del mes, va associated_period en lugar de associated_invoices:
{
"reason": "Ajuste de honorarios de octubre",
"associated_period": { "from": "2026-10-01", "to": "2026-10-31" }
}