API Facturación AFIP

Facturación Electrónica AFIP Simplificada. Emití facturas electrónicas AFIP de forma rápida, segura y sencilla con nuestra API. ¡Integrá la facturación electrónica en tu sistema de gestión hoy mismo!

Nuestra API de facturación electrónica AFIP te permite integrar la facturación electrónica AFIP directamente en tu plataforma, eliminando la necesidad de lidiar con los complejos webservices de AFIP. TusFacturasAPP es la solución SaaS ideal para tu negocio.

¿Cómo empiezo?

Te sugerimos revisar la guia de ¿Cómo empiezo? . Una vez configurada tu cuenta y creado tu CUIT+Punto de venta (PDV) en TusFacturasAPP, podrás comenzar a emitir facturas electrónicas AFIP Argentina válidas.

Integra fácilmente la facturación electrónica en tu software con la API de TusFacturasAPP

Características clave:

  • ✅ Conexión rápida y segura con AFIP para emitir comprobantes electrónicos válidos

  • ✅ Procesa facturas, notas de crédito, recibos y más desde tu sistema

  • ✅ Documentación detallada y ejemplos de código para una integración sencilla

  • ✅ Cumple con todas las regulaciones fiscales vigentes en Argentina

Nuestras opciones de API para facturación electrónica AFIP:

  • Emisión individual o por lotes: Selecciona la modalidad que mejor se adapte a tu volumen de facturación.

  • Procesamiento instantáneo o asincrónico: Obtene respuestas inmediatas o gestiona tu flujo de trabajo con colas de procesamiento. Te recomendamos utilizar siempre que sea posible, los métodos de facturación asincrónicos, ya que los instantáneos dependen de cómo funcionen los servicios de AFIP en el momento de la emisión.

🔹 API de Facturación AFIP individual e instántanea:

Utilizando éste método vos envías un solo request para ser procesado, y obtenes la respuesta al instante (sujeto al estado de los servicios AFIP)

Conocé más sobre la facturación electrónica individual e instantánea, desde aquí

🔹 API de Facturación AFIP individual asincrónica RECOMENDADO

En éste método envías un solo request para ser procesado y obtenes la respuesta mediante un webhook (no dependes del estado de los servicios de facturación de AFIP)

Conocé más sobre la facturación electrónica individual en cola, desde aquí

🔹API de Facturación AFIP por Lote instántaneo

Con éste método envías una cierta cantidad de requests para ser procesados y obtenes la respuesta al instante (sujeto al estado de los servicios AFIP).

Conocé más sobre la facturación electrónica en lotes instantánea, desde aquí.

🔹API de Facturación AFIP por Lote asincrónico RECOMENDADO

En éste método envías una cierta cantidad de requests para ser procesados y obtenés la respuesta mediante un webhook (no dependes del estado de los servicios de facturación de AFIP)

Conocé más sobre la facturación electrónica por lotes asincrónico.

📌 ¿Qué comprobantes podes facturar con la API?

Nuestro servicio API de facturación electrónica AFIP te permite enviar a facturar comprobantes de tipo A,B,C,E, M, comprobantes de tipo "Factura de crédito MiPyme", ya sean facturas, notas de crédito, notas de débito y hasta facturas-recibos.

¿No sabes qué tipo de comprobante debes emitir? Consultalo desde aquí

🧐 Tenés alguna duda del servicio? checkea las FAQs, y si no encontrás lo que buscabas, contactanos por los canales de atención que tenemos disponibles.

Estructura genérica para facturar un comprobante.

POST https://www.tusfacturas.app/app/api/v2/facturacion/metodo-elegido

Ejemplos:

Para ventas instantáneas individuales:

https://www.tusfacturas.app/app/api/v2/facturacion/nuevo

Para facturación asincrónica individual:

https://www.tusfacturas.app/app/api/v2/facturacion/nuevo_encola

Para lotes instantáneos:

https://www.tusfacturas.app/app/api/v2/facturacion/lotes

Para Lotes asincrónicos:

https://www.tusfacturas.app/app/api/v2/facturacion/lotes_encola

Tipo de dato esperado: JSON

Charset: UTF-8

Request: Body

NameTypeDescription

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

A continuación te mostramos un ejemplo de JSON generico completo con todas las posibles opciones, para generar un comprobante.

Tene en cuenta que según el tipo de comprobante que emítas, pueden variar los bloques que debes enviar.

JSON
{
   "usertoken":"xxxxxx",
   "apikey":"xxxx",
   "apitoken":"xxxxxx",
   "cliente":{
      "documento_tipo":"DNI",
      "documento_nro":"1292963535",
      "razon_social":"Pirulo",
      "email":"test@test.com",
      "domicilio":"Av Sta Fe 123",
      "provincia":"2",
      "envia_por_mail":"S",
      "condicion_pago":"214",
      "condicion_pago_otra":"Cobrado en ventanilla",
      "condicion_iva":"CF",
      "reclama_deuda": "S",
      "reclama_deuda_dias": 5,
      "reclama_deuda_repite_dias": 10,       
      "rg5329":"N"
   },
   "comprobante":{
      "fecha":"28\/07\/2015",
      "tipo":"NOTA DE DEBITO B",
      "moneda":"DOL",
      "idioma":"1",
      "cotizacion":"15.20",
      "operacion":"V",
      "punto_venta":"2",
      "numero":"6",
      "periodo_facturado_desde":"27\/07\/2015",
      "periodo_facturado_hasta":"30\/07\/2015",
      "vencimiento":"30\/08\/2015",
      "rubro":"Servicios web",
      "external_reference":"ABC123",
      "tags":[
         "etiqueta1",
         "etiqueta2"
      ],
      "rubro_grupo_contable":"servicios",
      "abono":"S",
      "abono_frecuencia":"2",
      "abono_hasta":"10/2019",
      "abono_actualiza_precios":"N",
      "detalle":[
         {
            "cantidad":"1",
            "afecta_stock":"N",
            "bonificacion_porcentaje":"0",
            "producto":{
               "descripcion":"PAPAS",
               "unidad_bulto":"10",
               "lista_precios":"MI LISTA DE PRECIOS",
               "codigo":"",
               "precio_unitario_sin_iva":"100.45",
               "alicuota":"21",
               "impuestos_internos_alicuota":0,
               "unidad_medida":"7",
               "actualiza_precio":"S",
               "rg5329":"N"
            },
            "leyenda":"blanca, cepillada"
         },
         {
            "cantidad":"1.5",
            "bonificacion_porcentaje":"0",
            "afecta_stock":"N",
            "producto":{
               "descripcion":"HUEVOS",
               "unidad_bulto":"30",
               "lista_precios":"MAPPLETS",
               "codigo":"MPH",
               "precio_unitario_sin_iva":"50",
               "alicuota":"10.5",
               "impuestos_internos_alicuota":0,
               "unidad_medida":"7",
               "actualiza_precio":"N",
               "rg5329":"N"
            },
            "leyenda":""
         },
         {
            "cantidad":"2",
            "bonificacion_porcentaje":"0",
            "afecta_stock":"S",
            "producto":{
               "descripcion":"ZANAHORIA",
               "unidad_bulto":"50",
               "lista_precios":"MI LISTA DE PRECIOS",
               "codigo":"ZNH1",
               "precio_unitario_sin_iva":"200",
               "alicuota":"21",
               "impuestos_internos_alicuota":0,
               "unidad_medida":"7",
               "actualiza_precio":"S",
               "rg5329":"N"
            },
            "leyenda":""
         }
      ],
      "rg_especiales":{
         "regimen":"Factura de Cr\u00e9dito Electr\u00f3nica MiPyMEs (FCE)",
         "datos":[
            {
               "id":2101,
               "valor":"0170215820000005295250"
            },
            {
               "id":23,
               "valor":"HANDYWAY CARGO S.A"
            },
            {
               "id":27,
               "valor":"SCA"
            }
         ]
      },
      "comprobantes_asociados":[
         {
            "tipo_comprobante":"FACTURA C",
            "punto_venta":"3",
            "numero":"00000349",
            "comprobante_fecha":"03/03/2022",
            "cuit":27285051466
         }
      ],
      "comprobantes_asociados_periodo":{
         "fecha_desde":"20/11/2020",
         "fecha_hasta":"20/12/2020"
      },
      "pagos":{
         "formas_pago":[
            {
               "descripcion":"VISA DB",
               "importe":0.6
            },
            {
               "descripcion":"MercadoPago",
               "importe":50
            }
         ],
         "total":50.6
      },
      "tributos":[
         {
            "tipo":6,
            "regimen":1,
            "base_imponible":1000,
            "alicuota":10,
            "total":100
         }
      ],
      "exentos":"0",
      "impuestos_internos":"0",
      "impuestos_internos_base":"0",
      "impuestos_internos_alicuota":"0",
      "bonificacion":"120",
      "leyenda_gral":"Segun Orden de compra III1333",
      "comentario":"Factura correspondiente al servicio XX",
      "total":"573.22"
   }
}

Información de ejemplo, solo para visualizar su estructura.

Ejemplos de comprobantes según su tipo / letra

Tipo de comprobanteEjemplo

Factura A, Nota de débito A, Nota de crédito A

Factura B, Nota de débito B, Nota de crédito B

Factura C, Nota de débito C, Nota de crédito C

Factura E, Nota de débito E, Nota de crédito E

Factura de Crédito Electrónica MiPyme (FCE), Nota de débito de Crédito Electrónica MiPyme (FCE), Nota de crédito de Crédito Electrónica MiPyme (FCE)

¿Qué te retorna la llamada a la API?

Cuando el request resultó exitoso:

Sea cual sea la modalidad que utilices para facturar y por cada comprobante que emitas, obtendrás la siguiente respuesta, con todos los datos que necesitas para almacenar en tu sistema.

Es importante que descargues toda la información junto con el contenido del pdf y lo almacenes en tu plataforma, ya que si si tu cuenta o suscripción no se encuentran vigentes, no podrás volver a obtenerlo.

{
    "error":     "N",
     "errores": [ ""],    
     "rta":      "El comprobante NOTA DE DEBITO B 0002-00000006 (MI CUIT) se ha guardado correctamente",    
     "cae":      "65301278726386 ",
     "requiere_fec":   "NO ",    
     "vencimiento_cae":"07\/08\/2015",    
     "vencimiento_pago":"27\/08\/2015",    
     "comprobante_pdf_url": "https://www.dominio.com/url",
     "afip_qr" : "https://www.afip.gob.ar/fe/qr/?p=eyJ2ZXIiOjEsImZlY2hhIjoiMjAyMC0xMS0xNSIsImN1aXQiOiIyNzI4NTA1MTQ2NiIsInB0b1Z0YSI6IjAwMDAzIiwidGlwb0NtcCI6MTEsIm5yb0NtcCI6IjAwMDAwMjQ5IiwiaW1wb3J0ZSI6IjAwMDAwMDAwMDAwMDEwMCIsIm1vbmVkYSI6IlBFUyIsImN0eiI6IjAwMDAwMDAwMDAwMDEwMDAwMDAiLCJ0aXBvRG9jUmVjIjo5OSwibnJvRG9jUmVjIjoiMCIsInRpcG9Db2RBdXQiOiJFIiwiY29kQXV0IjoiNzA0NjY4OTk1OTcwOTEifQ== "
     "afip_codigo_barras" : "12121212121006000300000000000000201811052 ",
     "envio_x_mail": "S",
     "external_reference":  "ABC123",
     "comprobante_nro": "0000123",
     "comprobante_tipo": "NOTA DE DEBITO B",
     "micrositios": {
			"cliente": "url-del-micrositio",
			"descarga":"url-del-micrositio"
		     },
     "envio_x_mail_direcciones":"direccion1@sudominio.com,direccion2@sudominio.com"
  }  

🛑 Response con error

En caso de detectar error, la variable "error" contendrá una "S" y "errores" una lista con todos los errores encontrados

{
  "error": "S",
  "errores": [
   "El tipo de documento enviado no es valido",
    "Para la condicion de IVA seleccionada no se permite realizar comprobantes de tipo B."
  ],
  "external_reference": "ABC123",
  "error_cod": [],
  "error_details": [
    {
      "code": "TFC-8004",
      "text": "Para la condicion de IVA seleccionada no se permite realizar comprobantes de tipo B."
    }
  ]
}

Datos para tener en cuenta:

PDF

  • La URL del PDF que recibis es temporal, dura solo para el día que la consultas.

CAE (Código de Autorización electrónica de AFIP)

  • El CAE es el Código de Autorización Electrónico que otorga AFIP, como confirmación de la creación del comprobante. Es un dato importante para almacenar como respuesta.

  • Los CAE tienen fecha de vencimiento y se devuelve en formato dd/mm/aaaa

  • Por cuestiones de seguridad, el número de CAE es un texto y se envía con un espacio al final, el cual sugerimos eliminar de tu lado.

AFIP CÓDIGO DE BARRAS / QR

  • Por cuestiones de seguridad, el texto que se retorna en el campo afip_codigo_barras y afip_qr, se envía con un espacio al final, el cual sugerimos eliminar de tu lado.

  • Atención! El campo afip_codigo_barras dejará de ser enviado a partir del 01/01/2024

  • La respuesta exitosa, te incluye el texto que se necesita para armar el código QR (en caso que generes el PDF desde tu lado) .

NOTAS DE DÉBITO Y CRÉDITO

  • Las notas de débito y crédito requieren que envies obligatoriamente los comprobantes asociados (o su período asociado). Conocé más desde aquí

REDONDEO DE NÚMEROS / SUMATORIAS / TOTALES

  • Para evitar inconsistencias en la validación de las sumatorias, te sugerimos redondear a 2 decimales los valores y aplicar el redondeo con "Round half even". Te dejamos un link para que puedas probar online éste redondeo: https://roundingcalculator.guru/rounding-half-to-even-calculator/

  • TusFacturas.app NO válida la totalidad de los datos enviados como asi tampoco las sumatorias de los ítems que estas enviando para facturar. Es tu responsabilidad corroborar y validar éstos datos antes de enviarlos.

  • AFIP recibe únicamente totales, no el detalle de los items que facturas, ya que para los comprobantes de tipo "A" , "B" , "C" y "M" , Factura de crédito electrónica, TusFacturas.app utiliza el método de facturación mediante webservice AFIP "WSFEv1" ( Factura electrónica sin detalle de productos ).

MICROSITIOS

  • Las URL de los micrositios solo te serán devueltas con datos, si los mismos se encuentran habilitados en tu cuenta. Para configurarlo, ingresá a nuestra plataforma web, menú > mi espacio de trabajo > mis micrositios. Conocé más de los micrositios desde aquí.

EDICIÓN / ELIMINACIÓN DE COMPROBANTES

  • Aquellos comprobantes que hayan impactado en AFIP, no podrán ser eliminados. Sólo pueden ser anulados contablemente, generando una nota de crédito.

  • Ningún comprobante puede ser modificado una vez creado.

Estructura del bloque: "Comprobante"

Información de los campos a enviar:

Nombre del campoEs requerido?Comentarios

fecha

REQUERIDO

Campo fecha. Para facturación afip deberá ser la fecha del día. Formato esperado: dd/mm/aaaa. Ejemplo: 13/05/2018

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

Campo alfanumérico de 3 Digitos según tabla de referencia de Monedas .

cotizacion

REQUERIDO

Campo numérico con 2 decimales. Puede obtener la cotización del día según AFIP desde nuestro método de consulta de cotización Ejemplo: 15.20

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. Longitud máxima 255 caracteres. Indica el rubro al cual pertenecerá el comprobante. Ésta información no saldrá impresa en el comprobante.

rubro_grupo_contable

REQUERIDO

Campo alfanumérico. Longitud máxima 255 caracteres. Indica el grupo contable al que pertenece el rubro. Ésta información no saldrá impresa en el comprobante.

abono

OPCIONAL

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

Lista de conceptos a facturar. Objeto JSON Según estructura que se detalla a continuación

fex

REQUERIDO PARA COMPROBANTES E

Solo para comprobantes de tipo E. Según estructura detallada en: Factura electronica de exportacion".

bonificacion

OPCIONAL

Campo numérico 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 de productos del comprobante. 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.

Ten en cuenta que a partir del 01-07-2021, todo comprobante A que se emita a un monotributista deberá llevar la siguiente leyenda: "El crédito fiscal discriminado en el presente comprobante, sólo podrá ser computado a efectos del Régimen de Sostenimiento e Inclusión Fiscal para Pequeños Contribuyentes de la Ley Nº 27.618". Éste valor no debe ser enviado en el campo "leyenda_gral", ya que saldrá automáticamente impreso en los PDF que se generen desde nuestra plataforma.

comentario

OPCIONAL

Campo alfanumerico, opcional. Longitud máxima: 255 caracteres. Éste campo no saldrá impreso en la factura.

tributos

SOLO SI APLICA

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 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 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 con 2 decimales. separador de decimales: punto. Ejemplo: 42.67

total

REQUERIDO

Campo numérico 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

Lista de comprobantes asociados. Requerido únicamente para NC o ND de tipo A,B,C,M. Objeto JSON Según estructura que se detalla a continuación

rg_especiales

REQUERIDO SI APLICA ALGUNA RG

Lista de datos adicionales requeridos por AFIP, según la RG a la que aplique el comprobante. Objeto JSON Según estructura que se detalla a continuación

external_reference

SOLO PARA VENTAS ASYNC

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.

Estructura del bloque: "Cliente"

Para poder generar el comprobante, debes enviar un detalle de todos los datos del cliente según se informa a continuación.

comprobante: {
   .... 
   cliente: {   
      "documento_tipo":       "DNI",
      "documento_nro":        "1292963535",
      "razon_social":         "Pirulo",
      "email":                "test@test.com",
      "domicilio":            "Av Sta Fe 123",
      "provincia":            "2",
      "codigo":               "CLO2",
      "envia_por_mail":       "S",
      "condicion_pago":       "214",
      "condicion_pago_otra":  "Cobrado en ventanilla",
      "condicion_iva":        "CF",
      "reclama_deuda":        "S",
      "reclama_deuda_dias":   5,
      "reclama_deuda_repite_dias": 10,  
      "rg5329":                "N"
   }
}

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

Campo numérico según tabla de referencia(*). Ejemplo: 2

envia_por_mail

REQUERIDO

Indica Si/No para el envio del comprobante por e-mail. Valores Permitidos: S , N Ejemplo: S

condicion_pago

REQUERIDO

Campo numérico según tabla de referencia.

  • se debe enviar obligatoriamente el campo condicion_pago_otra "con la descripción de la misma.

Ejemplo: 211 .

condicion_pago_otra

OPCIONAL

Campo alfanumérico. Longitud máxima 100 caracteres. Ejemplo: Cobrado en ventanilla.

condicion_iva

REQUERIDO

Campo numérico que indica la condición de iva, según tabla de referencia Condiciones ante el IVA(**). Valores Permitidos: CF, RI, M, E Ejemplo: RI

codigo

OPCIONAL

Campo alfanumérico opcional. Longitud máxima 50 caracteres. Ejemplo: Cobrado en ventanilla.

rg5329

REQUERIDO

Este campo te permite indicar si tu cliente es pasible de percepción IVA RG5329.

Valores posibles: "S" o "N".

reclama_deuda

OPCIONAL

Indica SI/No para el envio del recordatorio de pago al cliente. Opciones validas: "S" o "N"

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.

Datos a tener en cuenta:

  • Si el cliente ya existe en tu base de clientes de TusFacturasAPP, será actualizado con los nuevos datos, salvo los campos de: tipo de documento, número de documento y condición ante el IVA.

  • Si queres facturar un comprobante a consumidor final, sin especificar su nombre y DNI, debes enviar en el campo tipo y número de documento, lo siguiente:

Nro de documento = "0"

Tipo de documento = "OTRO"

En nombre, indicá lo que tu contador/a te recomiende.

Tené en cuenta, que solo podrás facturar sin indicar el documento del comprador, hasta ciertos montos que AFIP actualiza regularmente. TusFacturasAPP, cuenta con un método que te permite obtener el monto actualizado. Consultá la documentación: los topes de venta a CF

  • Para casos de clientes del exterior, que posean pasaporte, tené en cuenta que AFIP sólo permite el envío de números.

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.

El máximo de conceptos permitidos por comprobante es de 130.

La estructura de la lista de conceptos a enviar es la siguiente:

JSON
comprobante: {
   .... 
   detalle: [{
	"cantidad": "1.5",
	"afecta_stock": "N",
	"bonificacion_porcentaje": "0",
	"producto": {
		"descripcion": "HUEVOS",
		"unidad_bulto": "30",
		"lista_precios": "MAPPLETS",
		"codigo": "MPH",
		"precio_unitario_sin_iva": "50",
		"impuestos_internos_alicuota": 0,
		"alicuota": "10.5",
		"unidad_medida": "7",
		"actualiza_precio":"S",
		"rg5329": "S"
	},
	"leyenda": ""
       },
       {
	"cantidad": "3",
	"afecta_stock": "S",
	"bonificacion_porcentaje": "50",
	"producto": {
		"descripcion": "PALITOS SALADOS",
		"unidad_bulto": "30",
		"lista_precios": "SNACKS",
		"codigo": "PLi",
		"precio_unitario_sin_iva": "50",
		"impuestos_internos_alicuota": 0,
		"alicuota": "10.5",
		"unidad_medida": "7",
		"actualiza_precio":"S",
		"rg5329": "N"
	},
	"leyenda": "En paquetes de 190gr"
       }
      ]
   } 

Los campos que debes enviar en cada concepto de la lista del bloque "detalle" son los siguientes:

cantidad

REQUERIDO

Campo numérico 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 en el bloque siguiente.

leyenda

OPCIONAL

Campo alfanumérico. Longitud máxima 100 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 con 2 decimales. El separador de decimales esperado es el punto. Ej: 25

Estructura del bloque: "detalle->producto"

Cada producto o servicio que factures, deberá ser enviado con la siguiente estructura:

{
    "descripcion":     "HUEVOS",
    "unidad_bulto":    "30",
    "lista_precios":   "MAPPLETS",
    "codigo":          "MPH",
    "precio_unitario_sin_iva":"50",
    "alicuota":      "10.5",
    "unidad_medida": "7",
    "impuestos_internos_alicuota": 0,
    "actualiza_precio": "N",
    "rg5329": "N"
}

Datos a tener en cuenta:

  • Si el producto ya existía en tu base de productos de nuestra plataforma ( se valida que sea la misma lista de precios, código de producto y/o descripción del mismo), el mismo será actualizado por completo, con los nuevos datos que envíes, solo si indicas que deseas actualizar el precio con el campo "actualiza_precio":"S". En caso de no querer actualizar el producto, si el mismo ya existía, se facturará con el nuevo precio y descripción que envíes, pero mantendrá sus datos anteriores.

  • Si el comprobante que envías a facturar es de tipo C, todos los productos/conceptos que factures no deben llevar IVA y deberás enviar cada concepto con su precio final

  • Si el comprobante que envías, es de tipo A o B, los productos o servicios que envíes a facturar, deben ser enviados siempre SIN IVA, porque el IVA se calcula del lado de nuestra plataforma en base al campo "alicuota" que envías. Conocé más de los tipos de comprobantes, desde aquí

  • En caso que alguno de tus conceptos cuente con un signo porcentual (%) en el nombre (ej: Promo 20% OFF) deberás reemplazarlo por los siguientes caracteres: #&#

  • En caso que alguno de tus conceptos cuente con una nueva línea, en su nombre, o porque deba imprimirse en 2 líneas, deberás generar el salto de línea donde desees, ingresando los caracteres: #@#

  • Cómo calcular el IVA:

    • Si necesitas calcular cuánto vale tu producto sin IVA, te dejamos un cálculo rápido:

      Precio del producto con 21% de IVA = 121

      Para saber el precio sin el 21% de IVA debes hacer: 121 / 1.21 = 100

    • Si quisieras saber cuanto es el precio de tu producto + 21% de IVA, debes hacer el siguiente cálculo:

Precio del producto sin 21% de IVA = 100

Para saber el precio con el 21% de IVA debes hacer: 100 x 1.21 = 121

Los campos que debes enviar son los siguientes:

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

OPCIONAL

Campo alfanumérico. Longitud máxima 10 caracteres. Si bien el campo es opcional, es recomendable enviarlo. Ejemplo: ABX780

precio_unitario_sin_iva

REQUERIDO

Campo numérico 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

Campo numérico que indica la unidad de medida, según tabla de referencia Unidades de Medida(**). Ejemplo: 7

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, 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".

Conocé cuando aplicar la RG5329 desde aquí

Estructura de "Comprobantes Asociados"

Los comprobantes asociados son requeridos a la hora de emitir una Nota de crédito o nota de débito. Encontrá la estructura e información de éste bloque desde la sección "Notas de crédito/Notas de débito"

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:

		 
 "tributos": [	
			{
				"tipo" : 7,
				"regimen": 22,
				"base_imponible": 2000,
				"alicuota": 20,
				"total": 400				
			}, 		
			{
				"tipo" : 6,
				"regimen": 3,
				"base_imponible": 1000,
				"alicuota": 3,
				"total": 30
			}, 		
			{
				"tipo" : 6,
				"regimen": 3,
				"base_imponible": 1000,
				"alicuota": 1.5,
				"total": 15	
			},
			{
				"tipo" : 6,
				"regimen": 1,
				"base_imponible": 1000,
				"alicuota": 10,
				"total": 100
			}
		],  

Información de los campos a enviar dentro de cada "tributo":

nombre del campoREQUERIDOValores esperados

tipo

REQUERIDO

regimen

REQUERIDO

base_imponible

REQUERIDO

Campo numérico 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 de hasta 2 decimales, con el importe total de la percepción a aplicar.

Estructura de "RG Especiales"

Si la empresa, opera bajo alguna RG particular, se deberá enviar un array con los datos adicionales, según se especifican en la tabla de Datos adicionales para RG Especiales.

Ten en cuenta que solo podrás aplicar a un solo regimen , por cada comprobante que emitas.

JSON
comprobante: {
   .... 
   "rg_especiales":   
  {   "regimen" : "RG 4004-E",
      "datos"  : 
               [{
                   "id"      :    18,
                   "valor"  :    "PRUEBA "
                },
                {
                  "id"      :    19,
                 "valor"  :    "PRUEBA (2) "
                 }]
   } 
 }

Datos a tener en cuenta:

  • TusFacturasAPP no realiza validaciones sobre éstos campos. Todas las validaciones son realizadas por la propia AFIP en caso que corresponda.

  • Si alguno de los items enviados posee un valor vacio, éste item no será procesado.

Información de los campos a enviar en el array de "datos":

id

REQUERIDO

Campo númerico. Valores esperados según Tabla de Datos Opcionales para RG Especiales

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:

  • NO podrás enviar los siguientes medios de pago: cheques y detalle de retenciones.

  • Se realizará una validación del total que se indique, contra la sumatoria de los medios de pago detallados, previo al guardado del comprobante.

  • El total de los pagos NO debe superar el importe total del comprobante, pero si puede ser inferior, para indicar que el comprobante recibió un pago parcial.

Información de los campos que componen el bloque "pagos"

Nombre del campoREQUERIDODetalle

formas_pago

REQUERIDO

array con multiples items, según estructura que se detalla a continuación

total

REQUERIDO

Campo numérico con 2 decimales. separador de decimales: punto Ejemplo: 645.67

Información de los campos que componen el array de "formas_pago"

Nombre del campoRequeridoDetalle

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 con 2 decimales. separador de decimales: punto Ejemplo: 645.67

Ejemplo del JSON a enviar.

JSON
comprobante: {
   .... 
   "pagos" : 
   {
	"formas_pago" : [ 
			{"descripcion" : "VISA DB", "importe" : 0.6},
			{"descripcion" : "MercadoPago", "importe" : 50}
			], 
	"total": 50.6
   }, 
 }

Estructura de "tags"

Si quisieras enviar tags para agregar a tus comprobantes, a modo de etiqueta informativa, debés 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.

JSON
comprobante: {
   .... 
   "tags" :  [ "etiqueta1", "etiqueta2"],   
 }

Última actualización