ComprobadoDocumentaciónIngresar

API: emitir comprobantes

Referencia completa del cuerpo de POST /v1/invoices (emitir) y POST /v1/invoices/preview (previsualizar): los dos reciben exactamente el mismo JSON. Para el flujo (idempotencia, estados, reintentos) ver API: primeros pasos.

Permiso: emitir necesita una clave con invoice:write (tipos Completa o Facturación masiva); previsualizar lo puede hacer cualquier clave.

El pedido

{
  "puntoVenta": 3,
  "tipo": "auto",
  "naturaleza": "factura",
  "concepto": "productos",
  "fecha": null,
  "servicio": null,
  "receptor": {
    "docTipo": "sinIdentificar",
    "docNro": "0",
    "condicionIva": "consumidorFinal",
    "nombre": null
  },
  "moneda": "PES",
  "cotizacion": 1,
  "items": [
    {
      "descripcion": "Camisa talle M",
      "cantidad": 2,
      "precioUnitario": 1500.5,
      "alicuotaIva": 21,
      "precioIncluyeIva": false
    }
  ],
  "asociados": [],
  "exportacion": null
}

Solo puntoVenta e items son obligatorios en un comprobante común; todo lo demás tiene un valor por defecto (el que ves arriba).

Campo Tipo Obligatorio Por defecto Qué es
puntoVenta entero sí Número del punto de venta habilitado en ARCA para web services. Los de tu cuenta están en GET /v1/points-of-sale
tipo texto no "auto" "auto" resuelve la letra sola. O un código de comprobante como texto ("1", "6", "11", "51"…). Ver Tipos de comprobante
naturaleza texto no "factura" "factura", "notaCredito" o "notaDebito"
concepto texto no "productos" "productos", "servicios" o "productosYServicios"
fecha fecha no hoy (hora argentina) Fecha del comprobante. ARCA admite hasta 5 días antes o después con productos (sin pasar al mes siguiente) y 10 con servicios; fuera del plazo, AS-1042
servicio objeto si el concepto incluye servicios Período facturado (ver abajo)
receptor objeto no consumidor final A quién se factura (ver abajo)
moneda texto no "PES" Pesos. Otra moneda: código de ARCA de 3 caracteres (DOL, 060…) con su cotizacion; ver «Moneda extranjera» más abajo
cotizacion número no 1 Pesos por unidad de moneda; en pesos es siempre 1
cancelaEnMonedaExtranjera booleano no null El comprobante se cancela en la misma moneda extranjera (CanMisMonExt = S). Solo con moneda distinta de pesos; en exportación, solo en la factura
items lista sí Renglones (al menos uno)
asociados lista en notas de crédito/débito [] Comprobante que se corrige
periodoAsociado objeto no null En una nota común, en lugar de asociados: el período que corrige { "desde", "hasta" }. Ver abajo
exportacion objeto solo Factura E null Datos de la exportación. Su presencia activa la factura E

receptor: el cliente

Campo Tipo Por defecto Qué es
docTipo texto "sinIdentificar" "sinIdentificar" (consumidor final), "dni", "cuit", "cuil", "cdi" o "pasaporte"
docNro texto "0" El número, como texto y solo dígitos (los guiones y puntos se ignoran). Un CUIT/CUIL se valida con su dígito verificador
condicionIva texto "consumidorFinal" Condición del cliente frente al IVA. Define, junto con la tuya, la letra del comprobante. Obligatoria si identificás al cliente con CUIT (docTipo: "cuit"): no se supone (AS-1039)
nombre texto null Nombre o razón social (se imprime en el PDF)

¿No sabés la condición de tu cliente? Consultala con GET /v1/taxpayers/{cuit}: devuelve la razón social y la condicionIva ya con el valor que va acá.

Valores de condicionIva: responsableInscripto, exento, consumidorFinal, monotributo, noCategorizado, proveedorExterior, clienteExterior, ivaLiberado, monotributoSocial, noAlcanzado, monotributoTrabajadorPromovido. Las condiciones que ARCA acepta para el receptor se consultan en GET /v1/catalog/condicion-iva-receptor.

Reglas del receptor:

  • Consumidor final sin identificar (docTipo: "sinIdentificar") está permitido hasta $ 10.000.000 de total. Desde ese monto hay que identificar al cliente (AS-1005).
  • La Factura A exige un receptor con CUIT (AS-1012).
  • Si docTipo no es sinIdentificar, docNro es obligatorio (AS-1001).

items: los renglones

Campo Tipo Por defecto Qué es
descripcion texto Descripción del renglón (obligatoria)
cantidad número 1 Mayor a cero
precioUnitario número Precio de una unidad. No puede ser negativo
alicuotaIva número 21 Alícuota en %: 0, 2.5, 5, 10.5, 21 o 27. Solo importa si emitís como Responsable Inscripto; en una Factura C se ignora
precioIncluyeIva booleano false true si precioUnitario ya trae el IVA incluido (se descuenta para calcular el neto)
tratamiento texto "gravado" "gravado", "exento" o "noGravado". Solo Responsable Inscripto y sin exportación (AS-1033). Ver abajo
unidadMedida entero 7 Solo exportación (7 = unidades, 1 = kilogramos, 98 = otras)
bonificacion número 0 Descuento del renglón, en los mismos términos que el precio (con IVA si precioIncluyeIva). No puede superar cantidad × precioUnitario

El total del comprobante tiene que ser mayor a cero y se calcula así:

Clase Cómo se calcula
C (monotributo y exentos) total = Σ (redondeo(cantidad × precioUnitario) − bonificación). No discrimina IVA: neto = total, iva = 0
A / B (Responsable Inscripto) Se agrupa por alícuota. neto = suma de bases; iva = suma de base × alícuota; total = neto + iva + exento + noGravado. Cada renglón resta antes su bonificacion (cantidad × precio − bonificación). Con precioIncluyeIva, la base es cantidad × precio ÷ (1 + alícuota/100)
E (exportación) Sin IVA. total = Σ (cantidad × precio − bonificación) en la moneda del comprobante

Exento y no gravado no son alícuota 0 %. Con alicuotaIva: 0 el renglón es una operación gravada a tasa cero (suma al neto y aparece en ivaPorAlicuota con el id 3). Para una operación exenta (art. 7 de la Ley de IVA) o no gravada, mandá "tratamiento": "exento" o "noGravado": el renglón no lleva alícuota (se ignoran alicuotaIva y precioIncluyeIva), no entra a ivaPorAlicuota y su importe va a importes.exento o importes.noGravado (en ARCA, ImpOpEx e ImpTotConc). El total es neto + iva + noGravado + exento + tributos. Si todo el comprobante es exento o no gravado, ivaPorAlicuota queda vacío.

{ "descripcion": "Libro", "cantidad": 2, "precioUnitario": 4500, "tratamiento": "exento" }

Los importes se redondean a 2 decimales (mitad hacia arriba). La respuesta trae el desglose en importes, con ivaPorAlicuota (id es el código de alícuota de ARCA: 3 = 0 %, 9 = 2,5 %, 8 = 5 %, 4 = 10,5 %, 5 = 21 %, 6 = 27 %).

servicio: el período

Obligatorio cuando concepto es "servicios" o "productosYServicios" (AS-1006):

"servicio": { "desde": "2026-10-01", "hasta": "2026-10-31", "vencimientoPago": "2026-11-10" }

asociados: notas de crédito y débito

Una nota (naturaleza distinta de "factura") tiene que indicar el comprobante que corrige (AS-1007):

{
  "puntoVenta": 3,
  "naturaleza": "notaCredito",
  "asociados": [{ "tipo": 11, "puntoVenta": 3, "numero": 7 }],
  "items": [{ "descripcion": "Devolución de camisa", "precioUnitario": 1500.5 }]
}
Campo Tipo Qué es
tipo entero Código del comprobante original (1, 6, 11, 51, 19…). Acá va como número
puntoVenta entero Punto de venta del original
numero entero Número del original
cuit texto Opcional: CUIT del emisor del original (si lo emitió otro)
fecha fecha Opcional

Una nota de crédito por el total anula la factura; por menos, la corrige parcialmente. Una nota de débito puede asociar también una nota de crédito (así se revierte: una nota de crédito no se anula). Ver Notas de crédito y débito.

periodoAsociado: notas por período

Una nota de crédito o débito común (no FCE ni exportación) puede corregir un período entero en lugar de un comprobante puntual: por ejemplo, una bonificación sobre todo lo facturado a un cliente en septiembre. Va uno u otro: asociados o periodoAsociado.

{
  "puntoVenta": 3,
  "naturaleza": "notaCredito",
  "periodoAsociado": { "desde": "2026-09-01", "hasta": "2026-09-30" },
  "receptor": {
    "docTipo": "cuit",
    "docNro": "30500010912",
    "condicionIva": "responsableInscripto"
  },
  "items": [{ "descripcion": "Bonificación septiembre", "precioUnitario": 5000, "alicuotaIva": 21 }]
}

Reglas (las mismas de ARCA, AS-1030): solo en notas; no en una Factura de Crédito MiPyME ni en una exportación; hasta ≥ desde, ambas posteriores al 01/01/2006 y hasta no posterior a la fecha de la nota.

Un comprobante, un ambiente

Una nota de crédito o de débito solo puede asociar un comprobante del mismo ambiente que la cuenta (producción con producción, homologación con homologación). Lo mismo vale para registrar cobros, anularlos o cambiar el estado de cobro. Si el comprobante es de otro ambiente, el API responde 409 con AS-1032 (en el MCP, preparar_nota_credito devuelve ese mismo error). Para operar con él, cambiá la cuenta a su ambiente.

Emitir ya cobrado

Si el cliente ya pagó al momento de emitir, agregá ?cobrada=true a POST /v1/invoices. Requiere además el permiso de Cobro (invoice:settle): si tu clave no lo tiene, responde 403 antes de emitir. Si ARCA autoriza, el comprobante queda saldado con un cobro por el total (referencia «Cobrada al emitir»); si es una nota de crédito, queda aplicada. La respuesta trae el header X-Cobro-Estado (saldada, aplicada o no-marcada si no se pudo marcar; el comprobante ya salió igual). Un comprobante incierto o rechazado no se marca. Repetir el pedido con la misma Idempotency-Key no duplica el cobro. Para un pago parcial, emití sin la opción y registrá el cobro con POST /v1/invoices/{id}/pagos (referencia).

curl -X POST "https://TU-DOMINIO/v1/invoices?cobrada=true" \
  -H "Authorization: Bearer $COMPROBADO_KEY" -H "Idempotency-Key: pedido-1002" \
  -H "Content-Type: application/json" \
  -d '{ "puntoVenta": 3, "receptor": { "docTipo": "dni", "docNro": "30111222", "condicionIva": "consumidorFinal" }, "items": [{ "descripcion": "Camisa talle M", "cantidad": 1, "precioUnitario": 1500.5 }] }'

Tipos de comprobante

Con "tipo": "auto" la letra la decide tu condición frente al IVA y la del cliente:

Vos sos… El cliente es… Letra
Responsable Inscripto Responsable Inscripto o Monotributo A
Responsable Inscripto Consumidor final, exento u otro B
Monotributo o Exento cualquiera C
cualquiera cliente del exterior No se resuelve solo: es una exportación

Si pedís un tipo puntual, tiene que poder emitirlo tu condición: un Monotributo solo emite C y un Responsable Inscripto A (también 51–53) o B (AS-1009). Todos pueden emitir E.

Factura A con leyenda (RG 5762, desde el 1/12/2025 reemplaza a la Factura M). Los códigos 51, 52 y 53 ya no son «M»: son la Factura, Nota de débito y Nota de crédito A con la leyenda «OPERACIÓN SUJETA A RETENCIÓN» (el comprador retiene IVA y Ganancias). Si en tus datos fiscales la modalidad de la Factura A es sujeta_retencion, con "tipo": "auto" tus comprobantes A salen solos con esos códigos. Con pago_cbu_informada siguen siendo 1–3 y el PDF lleva la leyenda «PAGO EN CBU INFORMADA» con tu CBU. Ver Datos fiscales.

Códigos de comprobante (los mismos que usa ARCA):

Clase Factura Nota de débito Nota de crédito
A 1 2 3
B 6 7 8
C 11 12 13
A con leyenda «operación sujeta a retención» (ex M) 51 52 53
E (exportación) 19 20 21
FCE A (crédito electrónico) 201 202 203
FCE B (crédito electrónico) 206 207 208
FCE C (crédito electrónico) 211 212 213

tipo se manda como texto ("11"); en asociados[].tipo y en la respuesta (tipoCodigo) es número.

La respuesta

{
  "id": "inv_f7524f4f1afc4a568fa70d0c199bb4b4",
  "estado": "autorizado",
  "tipoCodigo": 11,
  "tipoNombre": "Factura C",
  "puntoVenta": 3,
  "numero": 8,
  "fecha": "2026-10-22",
  "cae": "86431017711917",
  "caeVencimiento": "2026-11-01",
  "importes": {
    "neto": 3001.0,
    "iva": 0,
    "tributos": 0,
    "noGravado": 0,
    "exento": 0,
    "total": 3001.0,
    "ivaPorAlicuota": []
  },
  "avisos": [],
  "errores": [],
  "arcaCallId": "call_ec5c3358359c492e9ae2a2a042be64e4"
}
Campo Qué es
id Identificador del comprobante en Comprobado (inv_…). Es el que usás para consultar y pedir el PDF
estado autorizado, rechazado, incierto, pendiente o enEspera (qué hacer en cada caso)
tipoCodigo, tipoNombre Tipo resuelto (11, "Factura C")
puntoVenta, numero El número completo es 0003-00000008
fecha Fecha del comprobante
cae, caeVencimiento Código de autorización y su vencimiento (solo si está autorizado)
importes neto, iva, tributos, noGravado, exento, total y ivaPorAlicuota
avisos Observaciones no bloqueantes de ARCA, ya explicadas (humano + arca). El comprobante igual se aprobó
errores Si está rechazado, el motivo (humano + arca)
arcaCallId Id de la llamada a ARCA; con él se ve el intercambio crudo en GET /v1/arca/calls/{id}

En los listados y en /detalle cada comprobante trae además origen: suite (lo emitió Comprobado) o externo (lo emitiste fuera y se importó de ARCA con POST /v1/invoices/sync). Los externo solo tienen fecha, total, CAE y documento del receptor: sin renglones ni PDF (409 AS-1021).

La previsualización devuelve solo tipoCodigo, tipoNombre, fecha e importes.

Validaciones antes de ir a ARCA

Antes de enviar nada, Comprobado valida el pedido y responde 400 con todos los problemas juntos (en errores[], con humano.campo). Nada de esto consume número ni clave de idempotencia. Los más comunes:

Código Cuándo
AS-1001 Falta el número de documento del cliente
AS-1002 No hay ítems
AS-1003 Alícuota de IVA que no existe (Responsable Inscripto)
AS-1004 Condición de IVA del receptor desconocida
AS-1005 Consumidor final sin identificar con un total desde $ 10.000.000
AS-1033 Tratamiento de IVA del renglón no válido (exento/noGravado solo para Responsable Inscripto y sin exportación)
AS-1034 Categoría o actividad del monotributo no válida (PUT /v1/tenant)
AS-1043 Falta el punto de venta o no es válido (entero entre 1 y 99998; si no, ARCA lo rechazaría con el 11000)
AS-1006 Faltan las fechas del servicio
AS-1007 Una nota sin comprobante (ni período) asociado
AS-1008 No se puede resolver el tipo automáticamente
AS-1009 Tu condición frente al IVA no puede emitir ese tipo
AS-1010 Importe, cantidad o total inválido (el total tiene que ser mayor a cero)
AS-1011 CUIT/CUIL con dígito verificador incorrecto
AS-1012 La Factura A necesita CUIT
AS-1017 a AS-1020 Datos de exportación
AS-1015 Falta el header Idempotency-Key
AS-1013 La clave ya se usó con otro contenido (409)

Lo que ARCA decide por su cuenta (por ejemplo, una fecha fuera de rango, un CUIT que no existe, o que el punto de venta no sea de web services) vuelve como 422 con el código de ARCA en errores[].arca y su explicación en humano.

Moneda extranjera (facturas A, B y C)

Una factura común también puede emitirse en otra moneda. Los importes (precios, IVA, tributos y total) van en esa moneda y ARCA los recibe así; Comprobado los pasa a pesos con la cotización del comprobante para el resumen de ventas, el IVA del mes, los libros y el control de monotributo.

  • moneda: código de ARCA de 3 caracteres (DOL, 060…). En pesos es PES y la cotizacion es siempre 1 (AS-1038 si no).
  • cotizacion: pesos por unidad, mayor que 0, con hasta 4 enteros y 6 decimales. GET /v1/cotizacion?moneda=DOL trae la oficial de ARCA (FEParamGetCotizacion).
  • Sin cancelaEnMonedaExtranjera, ARCA acepta una cotización que se aparte hasta 1 de la oficial (error 10240 si supera). Con cancelaEnMonedaExtranjera: true tiene que ser exactamente la oficial del día hábil anterior (10038).
  • El umbral de consumidor final sin identificar se mide en pesos (total × cotización).
  • El PDF aclara la moneda y el tipo de cambio.

fce: Factura de Crédito Electrónica MiPyME

Con este bloque el comprobante es una Factura de Crédito Electrónica MiPyME (Ley 27.440): la letra la decide el tipo: "auto" de siempre, pero el código es el de FCE (201/206/211 factura, 202/207/212 nota de débito, 203/208/213 nota de crédito). Sale por wsfe. Guía: Factura de Crédito Electrónica.

Campo Tipo Obligatorio Qué es
cbu texto en facturas CBU del emisor (22 dígitos). Si no viene, se usa el de los datos fiscales (PUT /v1/tenant); si no hay, AS-1024
alias texto no Alias del CBU (6 a 20 caracteres alfanuméricos)
transmision texto en facturas "SCA" (Sistema de Circulación Abierta) o "ADC" (Agente de Depósito Colectivo)
vencimientoPago fecha en facturas No puede ser anterior a fecha ni a hoy. En una nota solo si es de anulación
anulacion booleano en notas true si anula una factura que el comprador rechazó; false si es un ajuste. No va en las facturas

Reglas que se controlan antes de ir a ARCA (AS-1024, AS-1025): el receptor se identifica con un CUIT válido y es responsable inscripto, monotributo o exento (no el CUIT genérico de «no categorizado»); la fecha de una factura va de 5 días antes a 1 después de hoy; una nota asocia un solo comprobante de tu CUIT, con su fecha (en asociados), de la misma letra: la Factura de Crédito si es un ajuste (anulacion: false), o una factura o nota de FCE si anula; no se mezcla con exportacion. ARCA solo acepta una anulación si el comprador ya rechazó la factura (WSFE:10154). GET /v1/fce/obligation?cuit=… dice si el cliente está obligado a recibir FCE y desde qué importe.

{
  "puntoVenta": 1,
  "receptor": {
    "docTipo": "cuit",
    "docNro": "30500010912",
    "condicionIva": "responsableInscripto",
    "nombre": "Panadería Los Andes SRL"
  },
  "items": [
    {
      "descripcion": "Servicio de consultoría",
      "cantidad": 1,
      "precioUnitario": 6000000,
      "alicuotaIva": 0
    }
  ],
  "fce": { "transmision": "SCA", "vencimientoPago": "2026-11-30" }
}

tributos: percepciones y otros tributos

Para percepciones (IIBB, IVA), impuestos municipales, internos u otros tributos que el comprobante suma al total y que no son IVA. Es una lista; cada elemento:

Campo Tipo Obligatorio Qué es
id entero sí Código de ARCA del tributo. La lista sale de GET /v1/catalog/tributos (5 = IIBB, 99 = otro…)
descripcion texto con id 99 y en una FCE Hasta 80 caracteres
baseImponible número sí Base sobre la que se calcula
alicuota número sí En porcentaje (3 = 3 %)
importe número no Si no viene se calcula: baseImponible × alicuota / 100, redondeado a 2 decimales

El total del comprobante suma los tributos: total = neto + IVA + tributos (en clase C, neto + tributos) y el importe aparece en importes.tributos. El PDF lista cada percepción. No aplica a la Factura E. Si falta un dato, responde 400 con AS-1028. En la carga masiva por CSV van en la columna tributos (ID/BASE/ALICUOTA[/DESCRIPCION], separados por |).

"tributos": [
  { "id": 7, "baseImponible": 1000, "alicuota": 3 },
  { "id": 99, "descripcion": "Percepción municipal", "baseImponible": 1000, "alicuota": 1.5 }
]

exportacion: Factura E

Con este bloque el comprobante sale por el servicio de exportación de ARCA (wsfex) como Factura E (19; 20 y 21 para las notas). El receptor común se ignora: el cliente del exterior se describe acá. Los importes van en la moneda del comprobante (moneda + cotizacion), sin IVA. El tipo de exportación sale del concepto: productos = bienes, servicios = servicios, productosYServicios = otros.

Campo Tipo Obligatorio Qué es
cliente texto sí Razón social del cliente (hasta 200 caracteres)
domicilio texto sí Domicilio del cliente (hasta 300)
idImpositivo texto no Identificación tributaria en su país (VAT, EIN, RUT…)
paisDestino entero sí Código de ARCA del país (GET /v1/export/catalog → paises)
cuitPais número sí CUIT genérico del país del cliente (cuitsPais): ARCA lo usa como documento del receptor
idioma entero no (1) 1 español, 2 inglés, 3 portugués
incoterms texto en facturas de bienes Código de ARCA (FOB, CIF, EXW…)
incotermsDescripcion texto no Detalle de los Incoterms (hasta 20 caracteres)
formaPago texto en facturas Forma de pago, texto libre
fechaPago fecha en facturas de servicios u otros No puede ser anterior a fecha
permisoExistente booleano en facturas de bienes true si hay permiso de embarque
permisos lista si permisoExistente es true [{ "numero": "21001EC01000123X", "paisDestinoMercaderia": 212 }] (formato 99999AAXX999999A, sin repetir)
observaciones texto no Hasta 1000 caracteres
observacionesComerciales texto no Hasta 4000 caracteres

Además: moneda es el código de ARCA ("DOL", "060"…; ver monedas del catálogo), cotizacion va con hasta 4 enteros y 6 decimales (GET /v1/export/cotizacion?moneda=DOL trae la oficial) y cada renglón usa unidadMedida y bonificacion. Las notas de crédito y débito E no llevan Incoterms, permisos ni fecha de pago, y asocian un comprobante de exportación (19, 20 o 21). Las reglas completas y los errores están en Facturas de exportación (E).

Ejemplos completos

Factura C a consumidor final (monotributo):

{
  "puntoVenta": 3,
  "items": [{ "descripcion": "Taza de cerámica", "cantidad": 3, "precioUnitario": 1250 }]
}

Factura B con IVA incluido (Responsable Inscripto, cliente consumidor final con DNI, dos alícuotas):

{
  "puntoVenta": 1,
  "receptor": {
    "docTipo": "dni",
    "docNro": "30111222",
    "condicionIva": "consumidorFinal",
    "nombre": "Ana Pérez"
  },
  "items": [
    {
      "descripcion": "Camisa",
      "cantidad": 2,
      "precioUnitario": 1210,
      "alicuotaIva": 21,
      "precioIncluyeIva": true
    },
    { "descripcion": "Libro", "precioUnitario": 1000, "alicuotaIva": 10.5 }
  ]
}

→ Factura B, neto 3000, iva 525 (105 al 10,5 % y 420 al 21 %), total 3525.

Factura A de servicios (Responsable Inscripto a un Responsable Inscripto):

{
  "puntoVenta": 1,
  "concepto": "servicios",
  "servicio": { "desde": "2026-10-01", "hasta": "2026-10-31", "vencimientoPago": "2026-11-10" },
  "receptor": {
    "docTipo": "cuit",
    "docNro": "30712345671",
    "condicionIva": "responsableInscripto",
    "nombre": "Distribuidora Norte SA"
  },
  "items": [{ "descripcion": "Servicio de instalación", "precioUnitario": 1000 }]
}

→ Factura A, neto 1000, iva 210, total 1210.

Nota de crédito C sobre la Factura C 0003-00000007:

{
  "puntoVenta": 3,
  "naturaleza": "notaCredito",
  "asociados": [{ "tipo": 11, "puntoVenta": 3, "numero": 7 }],
  "items": [{ "descripcion": "Devolución", "precioUnitario": 500 }]
}

Factura E (exportación): lleva un bloque exportacion con el cliente del exterior, el país, los Incoterms, la forma de pago y, si son bienes, los permisos de embarque; los importes van en la moneda extranjera y sin IVA. Todos los campos, las tablas de ARCA (GET /v1/export/catalog) y las reglas están en Facturas de exportación (E).