Referencia API AFIP ARCA
Conecta tu plataforma y factura en ARCA/AFIP con la API de factura electrónica más fácil de Argentina.
API ARCA – Integra tu sistema con los Web Services de ARCA fácilmente para facturar tus ventas.
La API de facturación electrónica para ARCA de TusFacturasAPP te permite interactuar de forma directa y eficiente con los web services de AFIP/ARCA, facilitando la emisión de comprobantes electrónicos desde tu software.
¿Qué es un comprobante electrónico?
En el contexto de nuestra API, se denomina "comprobante" a cualquier documento digital vinculado a operaciones comerciales, tales como:
Facturas electrónicas (de venta o compra)
Notas de crédito y débito
Pedidos
Presupuestos
Remitos
Esto permite a tu sistema manejar toda la documentación fiscal y comercial en formato electrónico, cumpliendo con las exigencias legales vigentes.
Endpoint principal de la API ARCA:
Este endpoint permite el envío de comprobantes en distintos modos de operación, según las necesidades de tu sistema:
⚙️ Modos de envío disponibles
🔧 Nuestra API ARCA está diseñada para desarrolladores que buscan una integración rápida, robusta y conforme a las normativas de facturación electrónica en Argentina.
Estructura del JSON a enviar
Tipo de datos: JSON , Charset: UTF-8
Request: Body
usertoken
string
Tus credenciales de acceso
apitoken
string
Tus credenciales de acceso
apikey
string
Tus credenciales de acceso
comprobante
object
Estructura de "comprobante" según se informa a continuación
cliente
object
Estructura de "Cliente", según se informa a continuación
JSON de ejemplo para emitir comprobantes electrónicos
A continuación te mostramos un ejemplo completo en formato JSON que incluye todas las opciones disponibles para personalizar tus comprobantes electrónicos con la API de TusFacturasAPP.
⚠️ Importante: No todos los campos son obligatorios. Los datos requeridos varían según el tipo de comprobante que desees emitir (factura, nota de crédito, remito, etc.).
Este ejemplo te servirá como referencia para construir tus requests correctamente y evitar errores comunes al integrarte con los web services de AFIP/ARCA.
Ejemplos de comprobantes según su tipo y letra
Con TusFacturasAPP podrás emitir comprobantes electrónicos ARCA, clasificados según su tipo (Factura, Nota de Crédito, etc.) y letra (A, B, C, E, M).
Explorá los distintos escenarios de facturación que podés implementar, adaptados a las normativas fiscales vigentes de AFIP:
✅ Tipos de comprobantes disponibles:
Factura A / B / C / E / M
Nota de Crédito A / B / C / E
Nota de Débito A / B / C / E
Presupuestos
Pedidos
Remitos
Recibos
Cada ejemplo incluye los campos requeridos y opcionales, además de los valores específicos para cada categoría. Esto te permitirá implementar la facturación electrónica de forma ágil y segura desde cualquier sistema.
Datos para tener en cuenta:
🔁 ¿Qué devuelve la API ARCA de TusFacturasAPP?
La respuesta que recibís al emitir un comprobante electrónico depende del método de invocación que elijas en la integración con la API de TusFacturasAPP.
📌 Modalidades de invocación y sus respuestas
🕒 Envío instantáneo Recibís inmediatamente la respuesta con todos los datos del comprobante autorizado por AFIP o ARCA. Ideal para integraciones en tiempo real.
⏳ Envío asincrónico La respuesta inicial solo confirma que el comprobante fue recibido para su procesamiento. Más tarde, cuando se autorice, te notificamos por webhook con la respuesta final y los datos fiscales completos.
📦 Envío por lotes Podés enviar varios comprobantes a la vez. Recibís una respuesta agrupada que incluye el resultado individual de cada comprobante (siempre sujeta al estado del servicio de AFIP/ARCA).
📊 ¿Dónde puedo ver las ventas generadas?
Desde la plataforma web de TusFacturasAPP, podés consultar y administrar fácilmente los comprobantes electrónicos emitidos. Accedé desde el panel principal a:
Menú > Facturación > Mis ventas: para ver todas las ventas ya emitidas.
Menú > Facturación > Ventas programadas: para consultar las ventas aún pendientes de emisión automática o manual.
Desde estas secciones podrás visualizar, filtrar, descargar o anular los comprobantes emitidos, todo desde una única interfaz centralizada.
✅ ¿Cómo verificar si un comprobante fue emitido correctamente en ARCA?
Además del panel de TusFacturasAPP y cuando estes en producción, también podés corroborar que un comprobante fue autorizado por AFIP/ARCA de forma oficial:
Ingresando a la web de AFIP con tu CUIT y clave fiscal.
Usando el servicio “Mis Comprobantes” en el menú de servicios habilitados.
🧩 Esta verificación es útil para control fiscal o para mostrarle al cliente final que su comprobante fue validado correctamente.
Definición de datos a enviar para generar ventas:
Estructura del bloque: "Comprobante"
fecha
REQUERIDO
Campo fecha. Formato esperado: dd/mm/aaaa. Ejemplo: 13/05/2018. Si usas el metodo asincrónico, la fecha será el día que queres que se emita. Una vez emitido un comprobante (factura, nota de crédito o débito) en AFIP/ARCA con una fecha determinada, no podrás emitir otro comprobante del mismo punto de venta con una fecha anterior. Esta restricción es impuesta por AFIP/ARCA y no puede ser modificada, incluso mediante la emisión de notas de crédito o débito.
tipo
REQUERIDO
operacion
REQUERIDO
Campo alfanumérico. Longitud 1 caracter. Indica si envia una factura de venta (V) o de compra (C). Valores Permitidos: V, C Ejemplo: V
idioma
REQUERIDO
Campo numérico. Longitud 1 caracter. Indica el idioma en que se imprimira el PDF del comprobante. Valores Permitidos: 1 = Español, 2= Ingles
punto_venta
REQUERIDO
Campo numérico entero. Longitud máxima 5 digitos.
moneda
REQUERIDO
cotizacion
REQUERIDO
Número decimal con 3 lugares decimales. Representa el valor en pesos argentinos de una moneda extranjera. Se obtiene en tiempo real a través de nuestra API de cotización AFIP. Ejemplo: 15.20. Solo aplicable a monedas distintas al peso argentino.
numero
OPCIONAL
El numero del comprobante a generar. Campo numérico entero. Longitud máxima 8 digitos. La numeración será validada internamente previa generación del comprobante contra AFIP. Si el nro de comprobante NO es enviado, traeremos la próxima numeración . Ejemplo: 4567
vencimiento
REQUERIDO
Campo fecha, formato esperado: dd/mm/aaaa.
periodo_facturado_desde
REQUERIDO
Campo fecha. Formato esperado: dd/mm/aaaa. Opcional solo para quienes facturen productos y asi lo indiquen en la configuración de su CUIT+punto de venta. Obligatorio para quienes facturen Servicios o Productos y Servicios.
periodo_facturado_hasta
REQUERIDO
Campo fecha. Formato esperado: dd/mm/aaaa. Opcional solo para quienes facturen productos y así lo indiquen en la configuración de su CUIT+punto de venta.Obligatorio para quienes facturen Servicios o Productos y Servicios.
rubro
REQUERIDO
Campo alfanumérico que no sale impreso en el pdf. Se utiliza para los reportes que brinda nuestra plataforma web y no es requerido por AFIP. Longitud máxima 255 caracteres. Indica el rubro al cual pertenecerá el comprobante.
rubro_grupo_contable
REQUERIDO
Campo alfanumérico que no sale impreso en el pdf. Se utiliza para los reportes que brinda nuestra plataforma web y no es requerido por AFIP/ARCA. Longitud máxima 255 caracteres. Indica el grupo contable al que pertenece el rubro.
abono
OPCIONAL (Solo disponible para ventas)
Campo alfabético, longitud máxima 1 caracter. Valores permitidos S (si) o N (no). Indica si el comprobante a generar es un abono recurrente.
abono_frecuencia
REQUERIDO SOLO SI ENVIA ABONO
Campo numerico sin decimales. Indica la frecuencia en meses con la que debe generarse la recurrencia del abono.
abono_hasta
REQUERIDO SOLO SI ENVIA ABONO
Campo fecha (mm/yyyy). Longitud maxima 7. Indica el mes y año hasta el cual debe generarse el abono recurrente.
abono_actualiza_precios
REQUERIDO SOLO SI ENVIA ABONO
Campo alfabético, longitud máxima 1 caracter. Valores permitidos S (si) o N (no). Indica si cada vez que se genera el abono, se actualiza los precios de los productos contra el precio actual de la lista de precios.
detalle
REQUERIDO
fex
REQUERIDO PARA COMPROBANTES E
bonificacion
OPCIONAL
Campo numérico positivo con 2 decimales. separador de decimales: punto. Indica el valor aplicado en concepto de bonificación sin IVA Ejemplo: 12.67. Tener en cuenta para el cálculo que la bonificación se aplica sobre el primer subtotal SIN IVA y se lo gravará con el importe de IVA que le corresponda.
leyenda_gral
OPCIONAL
Campo alfanumérico. Longitud máxima 500 caracteres. Contenido opcional. Es una leyenda general que saldrá impresa en el bloque central, al final del último producto.
Si queres que parte del texto salga en una linea nueva, agrega: #@# , si queres enviar el "%", en su lugar envía: #&#.
Ejemplo: Aplica plan 12 cuotas, con un 10#&# de interes.
comentario
OPCIONAL
Campo alfanumerico, opcional. Longitud máxima: 255 caracteres. Éste campo no saldrá impreso en la factura.
tributos
SOLO SI APLICA
Objeto JSON, con la lista de percepciones y otros impuestos, según se detalla su estructura a continuación.
impuestos_internos
OPCIONAL
Indica el valor monetario correspondiente a los impuestos internos. Campo numérico positivo con 2 decimales. separador de decimales: punto. Ejemplo: 42.67
impuestos_internos_base
OPCIONAL
La base imponible sobre la cual se calcularon los impuestos internos. Campo numérico positivo con 2 decimales. separador de decimales: punto. Ejemplo: 42.67
impuestos_internos_alicuota
OPCIONAL
La alícuota sobre la cual se calculo la percepción. Campo numérico positivo con 2 decimales. separador de decimales: punto. Ejemplo: 42.67
total
REQUERIDO
Campo numérico positivo con 2 decimales. separador de decimales: punto. Indica el valor monetario de la sumatoria de conceptos incluyendo IVA e impuestos. Ejemplo: 12452.67
comprobantes_asociados
SOLO PARA NC O ND
rg_especiales
SOLO SI APLICA ALGUNA RG
external_reference
SOLO PARA VENTAS ASINCRÓNICAS
Dato alfanumérico de hasta 255 caracteres (solo se permiten letras, números, guión bajo y guión medio), que se utiliza para referenciar a éste comprobante, dentro de tu sistema. Es opcional, salvo que utilices los métodos de envió a la cola de procesamiento. No se realiza validación de éste campo, para verificar que el mismo no exista.
tags
OPCIONAL
Objeto JSON, según estructura que se detalla a continuación.
datos_informativos
OPCIONAL
Objeto JSON, según estructura que se detalla a continuación.
Estructura del bloque: "Cliente" y "Proveedor"
Para poder generar el comprobante debes enviar un detalle de todos los datos según se informa a continuación. Si vas a enviar una venta, debes enviar el bloque "cliente", en cambio si vas a enviar una compra para almacenar en nuestra plataforma, debes enviar el bloque "proveedor".
En caso de enviar una compra, el nombre del bloque debe cambiar a "proveedor" en lugar de "cliente"
Información de los campos a enviar:
documento_tipo
REQUERIDO
Valores Permitidos: CUIT , DNI, PASAPORTE, OTRO Ejemplo: DNI
documento_nro
REQUERIDO
Campo numérico, sin puntos ni guiones. Ejemplo: 30111222334
razon_social
REQUERIDO
Campo alfanumérico. Longitud máxima 255 caracteres. Ejemplo: Pirulo S.A
email
OPCIONAL
Campo alfanumérico. Longitud máxima 255 caracteres. Máximo 15 direcciones separadas por coma. Ejemplo: tusfacturas@vousys.com
domicilio
REQUERIDO
Campo alfanumérico. Longitud máxima 255 caracteres. Ejemplo: Av. Santa Fe 123
provincia
REQUERIDO
envia_por_mail
REQUERIDO
Indica Si/No para el envio del comprobante por e-mail. Valores Permitidos: S , N Ejemplo: S
condicion_pago
REQUERIDO
Ejemplo: 211 .
condicion_pago_otra
OPCIONAL
Campo alfanumérico. Longitud máxima 100 caracteres. Ejemplo: Cobrado en ventanilla.
condicion_iva
REQUERIDO
condicion_iva_operacion
OPCIONAL
Éste campo entra en vigencia a partir del 15/04/2025 mediante la RG 5616/2024 de AFIP/ARCA. Deberá consignarse la condición frente al IVA en que se realiza la operación. De no enviarse éste campo se enviará lo que se especifique en el campo "condicion_iva".
codigo
REQUERIDO
Campo alfanúmerico de hasta 50 caracteres para referenciar a ese cliente. Éste dato debería ser único dentro de tu plataforma pero TusFacturasAPP no realiza dicha verificación. Si existiera +1 con el mismo código podrías sufrir problemas al actualizar los datos. Ejemplo: "CLI2394"
rg5329
REQUERIDO
Valores posibles: "S" o "N".
reclama_deuda
OPCIONAL
reclama_deuda_dias
OPCIONAL
En caso de haber habilitado el recordatorio de pago atrasado, se debe indicar cuantos dias pasados la fecha de vencimiento del comprobante se desea comenzar a recordar el pago adeudado. Se espera recibir un valor numerico indicando el número de días)
reclama_deuda_repite_dias
OPCIONAL
En caso de haber habilitado del recordatorio de pago atrasado, se debe indicar la frecuencia de cada cuantos dias se desea volver a recordar. Se espera recibir un valor numérico, indicando el número de días.
Estructura del bloque: "Detalle de conceptos"
El detalle de conceptos se compone de una lista de cada uno de los productos o servicios que vas a facturar. Cada producto o servicio único que incluyas en tu cmoprobante se considera un concepto diferente. Por ejemplo, si vendes 10 unidades de un producto, solo contarían como un concepto. El límite máximo de conceptos por comprobante es de 130.
La estructura de la lista de conceptos a enviar es la siguiente:
Los campos que debes enviar en cada concepto de la lista del bloque "detalle" son los siguientes:
cantidad
REQUERIDO
Campo numérico positivo con 2 decimales. Separador de decimales: punto. Ejemplo: 1.50
afecta_stock
REQUERIDO
Campo alfanumérico de 1 posición. Valores posibles: "S" (si), "N" (no) Ejemplo: S
producto
REQUERIDO
Según estructura de producto que se detalla a continuación.
leyenda
OPCIONAL
Campo alfanumérico. Longitud máxima 1000 caracteres. Contenido opcional. Será una descripción que acompañe al producto. Ejemplo: Blanca, cepillada
bonificacion_porcentaje
OPCIONAL
Si se ha aplicado un porcentaje de descuento sobre éste concepto, debe ser enviado. Es un campo númerico positivo con 2 decimales. El separador de decimales esperado es el punto. Ej: 25
incluir_lista_precios_venta
REQUERIDO SOLO PARA COMPRAS
Valores esperados: "S" o "N"
Ej: "S"
Estructura de "producto"
Cada producto o servicio que envies sera almacenado en la lista de precios que se mantiene en nuestra plataforma, ademas de generar el comprobante requerido. A continuación podrás conocer que datos debes enviar:
Detalle de los campos a enviar:
descripcion
REQUERIDO
Campo alfanumérico. Longitud máxima 255 caracteres y mínima de 4 caracteres. Ejemplo: Papa blanca
unidad_bulto
REQUERIDO
Campo numérico entero requerido. Indica la cantidad de unidades que componen un bulto. Valor minimo esperado: 1 Ejemplo: 12
lista_precios
REQUERIDO
Campo alfanumérico. Longitud mínima de 4 caracteres y máxima 255 caracteres. Nombre de la lista de precios a la cual pertenece. No saldrá impreso en la factura pero es requerido. Ejemplo: Verdura Orgánica
codigo
REQUERIDO
Campo alfanúmerico de hasta 50 caracteres para referenciar a ese producto. Éste dato debería ser único dentro de tu plataforma pero TusFacturasAPP no realiza dicha verificación. Si existiera +1 con el mismo código podrías sufrir problemas al actualizar los datos. Ejemplo: ABX780
precio_unitario_sin_iva
REQUERIDO
Campo numérico positivo con 2 decimales. separador de decimales: punto Ejemplo: 645.67
alicuota
REQUERIDO
Indica la alícuota de IVA con la que grava ese producto. Valores Permitidos:
27, 21 , 10.5 , 0 , -1 ( para exento), -2 (no gravados) Ejemplo: 10.5
unidad_medida
REQUERIDO
actualiza_precio
REQUERIDO
Indica si se actualiza el precio del producto y sus datos adicionales (como ser la unidad de medida, código, unidades por bulto y otros datos adicionales), tomando como valor de referencia,la información enviada en el comprobante. Campo Alfabético, de 1 carácter. Valores permitidos: S (si) N (no). Ejemplo: S
impuestos_internos_alicuota
OPCIONAL
La alícuota que se cobra en concepto de impuestos internos para éste producto. Campo numérico positivo, con 2 decimales. ej: 10.5
rg5329
REQUERIDO
Este campo te permite indicar si tu producto percibe la percepción IVA RG5329.
Valores posibles: "S" o "N".
Si envias el valor en "S", debes enviar el campo "actualiza_precio" tambien en "S".
Estructura del bloque "Comprobantes Asociados"
Estructura del bloque: "tributos"
Cuando requieras enviar percepciones de IVA o percepciones de Ingresos Brutos (IIBB) deberás enviar dentro del bloque "comprobante", un array con la siguiente estructura:
Ejemplo:
Información de los campos a enviar dentro de cada "tributo":
tipo
REQUERIDO
regimen
REQUERIDO
base_imponible
REQUERIDO
Campo numérico positivo con hasta 2 decimales, donde se indica la base imponible sobre la cual se aplica la percepción.
alicuota
REQUERIDO
Campo numérico con hasta 2 decimales, donde se indica la alícuota de dicha percepción
total
REQUERIDO
Campo numérico positivo de hasta 2 decimales, con el importe total de la percepción a aplicar.
Estructura de "RG Especiales"
Datos a tener en cuenta:
Información de los campos a enviar en el array de "datos":
id
REQUERIDO
valor
REQUERIDO
Campo alfanumérico.
Estructura de "pagos"
Si quisieras reflejar junto al envío del comprobante, el pago parcial o total del mismo, debes enviar un bloque, dentro del comprobante, llamado "pagos" con la estructura como se detalla a continuación. Éste bloque es opcional.
Los pagos que informes, se usan solo para la gestión interna de nuestra plataforma y tu cliente no lo verá reflejado en el PDF del comprobante que emitiste, ya que el único objetivo que tiene éste bloque es nutrir la cuenta corriente de tu cliente, con el pago realizado.
Datos a tener en cuenta:
Información de los campos que componen el bloque "pagos"
formas_pago
REQUERIDO
array con multiples items, según estructura que se detalla a continuación
total
REQUERIDO
Campo numérico positivo con 2 decimales. separador de decimales: punto Ejemplo: 645.67
Información de los campos que componen el array de "formas_pago"
descripcion
REQUERIDO
El nombre del medio de pago elegido para cancelar el comprobante. 255 caracteres max. En caso que el medio de pago, no exista en nuestra plataforma, será dado de alta automáticamente.
importe
REQUERIDO
Campo numérico positivo con 2 decimales. separador de decimales: punto Ejemplo: 645.67
Ejemplo del JSON a enviar.
Estructura de "tags"
Si quisieras enviar tags para agregar a tus comprobantes, a modo de etiqueta informativa, debes enviar un array con el nombre de cada una de éstas.
Cada tag, debe ser un campo alfanumérico de hasta 255 caracteres y puedes enviar hasta 50 tags por comprobante.
Ejemplo del JSON a enviar.
Estructura de "datos_informativos"
Dentro de este bloque deberá enviarse según corresponda, la información requerida por AFIP/ARCA en carácter informativo. Éstos datos no tienen ninguna relevancia dentro de la gestión de TusFacturasAPP.
Ejemplo del JSON a enviar.
Información de los campos que componen el bloque "datos_informativos"
OPCIONAL
Éste dato entra en vigencia el 15/04/2025 según la RG5616/2024 y deberá enviarse "N" para indicar "No informa" o "S" para indicar "Si".
¿Aún te quedan dudas? ¡Contactános!
Last updated