Factura SDK
Nota de crédito A

Nota de crédito A

Cómo emitir una Nota de crédito A con Factura SDK: la solicitud completa con el motivo y la factura que anula, la respuesta y las variantes.


La Nota de crédito A anula, total o parcialmente, una Factura A o una Nota de débito A. Lleva el motivo en reason y, en associated_invoices, el comprobante que ajusta. Las reglas son las de la Factura A: receptor responsable inscripto o monotributista con CUIT, e IVA discriminado en amounts.vat y vat_items.

Necesitás un emisor responsable inscripto y verificado, y un webhook para recibir el resultado. El detalle de cada campo está en la referencia de comprobantes.

Emitir una Nota de crédito A

Una Nota de crédito A que anula por el total la Factura A número 482 del punto de venta 1, la del ejemplo:

Solicitud
const response = await fetch('https://app.afipsdk.com/api/v1/invoices', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer <ACCESS_TOKEN>',
    'Content-Type': 'application/json',
    'Idempotency-Key': 'devolucion-0002'
  },
  body: JSON.stringify({
    issuer_cuit: '20111111112',
    invoice_type: 3, // Nota de crédito A
    concept: 1, // 1 productos, 2 servicios, 3 productos y servicios
    reason: 'Devolución de mercadería', // Obligatorio en las notas
    associated_invoices: [ // El comprobante que ajusta
      { invoice_type: 1, sales_point: 1, number: 482, date: '2026-10-14' }
    ],
    receiver: {
      doc_type: 80, // 80 CUIT: los comprobantes A exigen CUIT
      doc_number: '30715000004',
      vat_condition: 1, // 1 responsable inscripto; o 6, 13 y 16, monotributistas
      name: 'Comercio del Centro S.R.L.',
      address: 'Av. Corrientes 1234, CABA'
    },
    amounts: {
      net: 10000,
      vat: 2100,
      total: 12100
    },
    vat_items: [ // Una entrada por alícuota; 5 = 21%
      { id: 5, base: 10000, amount: 2100 }
    ],
    items: [ // Detalle impreso: precios netos y vat_rate por línea
      { description: 'Notebook 14', quantity: 1, unit_price: 10000, subtotal: 10000, vat_rate: 21 }
    ],
    sale_condition: 'Cuenta corriente'
  })
});

const invoice = await response.json();
  • reason y associated_invoices son obligatorios. Si la nota ajusta un período y no un comprobante puntual, va associated_period en lugar de associated_invoices.
  • Los importes son los del ajuste, no los del comprobante original: una nota parcial lleva solo la parte que se devuelve.
  • El receptor es el del comprobante que ajusta, con las mismas reglas de la Factura A.

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": "devolucion-0002",
    "status": "approved",
    "invoice_type": 3,
    "sales_point": 1,
    "number": 37,
    "invoice_date": "2026-10-14",
    "total_amount": 12100,
    "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.

Nota parcial

Para devolver una parte, los importes son los de esa parte y el comprobante asociado es el mismo:

{
  "amounts": { "net": 5000, "vat": 1050, "total": 6050 },
  "vat_items": [{ "id": 5, "base": 5000, "amount": 1050 }],
  "items": [
    { "description": "Notebook 14, devolución parcial", "quantity": 1, "unit_price": 5000, "subtotal": 5000, "vat_rate": 21 }
  ]
}

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": 1, "sales_point": 1, "number": 482, "date": "2026-10-14" },
    { "invoice_type": 1, "sales_point": 1, "number": 479, "date": "2026-10-10" }
  ]
}

Período asociado

Cuando la nota ajusta un período y no un comprobante puntual, por ejemplo un descuento sobre las ventas del mes, va associated_period en lugar de associated_invoices:

{
  "reason": "Descuento por volumen de octubre",
  "associated_period": { "from": "2026-10-01", "to": "2026-10-31" }
}