Links

Facturación

Utilizá la API de facturación electrónica AFIP de TusFacturas.app, para emitir comprobantes de venta desde tu sistema actual.
Una vez configurada tu cuenta y creado tu CUIT+PDV en TusFacturasAPP, podrás comenzar a emitir facturas electrónicas. Te sugerimos revisar el apartado de ¿Cómo empiezo?

Modalidades de facturación online

En TusFacturasAPP, contamos con 4 modalidades para la emisión de comprobantes online:

¿Qué puedo facturar?

Nuestro servicio API de facturación, te permite enviar a facturar cualquier tipo de comprobante 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 API FAQs, y si no encontrás lo que buscabas, contactanos por los canales de atención que tenemos disponibles, en la plataforma web www.tusfacturas.app

A donde debes enviar el request:

post
https://www.tusfacturas.app/app/api/
v2/facturacion/XXXXX
Estructura generica para el envio de un comprobante.

Ejemplo de JSON generico, para generar un comprobante.

{
"usertoken" : "xxxxxx",
"apikey" : "xxxx",
"apitoken" : "xxxxxx",
"cliente" :
{ "documento_tipo": "DNI",
"documento_nro": "1292963535",
"razon_social": "Pirulo",
"email": "[email protected]m",
"domicilio": "Av Sta Fe 123",
"provincia": "2",
"envia_por_mail": "S",
"condicion_pago": "214",
"condicion_pago_otra": "Cobrado en ventanilla",
"condicion_iva": "CF"
},
"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"
},
"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"
},
"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"
},
"leyenda":""
}
],
"rg_especiales":
{ "regimen" : "RG 4004-E",
"datos" :
[{
"id" : 17,
"valor" : "2"
},
{
"id" : 1801,
"valor" : "111111111111"
},
{
"id" : 1802,
"valor" : "PRUEBA"
}]
},
"pagos" :
{
"formas_pago" : [
{"descripcion" : "VISA DB", "importe" : 0.6},
{"descripcion" : "MercadoPago", "importe" : 50}
],
"total": 50.6
},
"bonificacion": "120",
"leyenda_gral": "Segun Orden de compra III1333",
"comentario": "Factura correspondiente al servicio XX",
"percepciones_iibb": "0",
"percepciones_iibb_base": "0",
"percepciones_iibb_alicuota": "0",
"percepciones_iva": "0",
"percepciones_iva_base": "0",
"percepciones_iva_alicuota": "0",
"exentos": "0",
"impuestos_internos": "0",
"impuestos_internos_base": "0",
"impuestos_internos_alicuota": "0",
"total": "543.22"
}
}

Que te retorna la llamada a la API?

Cuando el request resultó exitoso:

Sea cual sea la modalidad que utilices para facturar, 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 pdf y lo almacenes en tu plataforma, ya que si tu cuenta o suscripción no se encuentran vigentes, no podrás 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":"[email protected],[email protected]"
}

🛑
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:

  • 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.
  • 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.
  • 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".
  • 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) y/o el viejo código de barras (para comprobantes anteriores).
  • 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í
  • TusFacturas.app NO válida que la sumatoria de los ítems que estas enviando para facturar se correspondan con los totales. Es tu responsabilidad corroborar y validar éstos datos.
  • AFIP recibe únicamente totales, no el detalle de los items que facturás, 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 ).
  • 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.
  • Aquellos comprobantes que hayan impactado en AFIP, no podrán ser eliminados ni modificados, sólo pueden ser anulados contablemente, generando una nota de crédito.
  • Ningún comprobante puede ser modificado una vez emitido.

¿Cómo determinar, si debo emitir un comprobante de tipo "MiPyme"?

Hay ciertos casos donde AFIP exige que en lugar de emitir una factura A,B o C, le emitas a tu cliente, un comprobante de tipo "FACTURA DE CREDITO ELECTRONICA MiPyME (FCE)" A, B o C. En ese caso, recibirás en la respuesta, el campo requiere_fec = "SI".
Ésto se debe a que el emisor o el receptor están informados como Pyme en AFIP y/o el monto del comprobante a emitir supera el límite que AFIP tiene definido. Ésta info varia día a día, pero disponemos de un método para que puedas invocarlo, previo a éste servicio para conocerlo. Consultá la documentación desde aquí.
Te sugerimos comentar ésta modalidad, con tu cliente y asesorarte con su estudio impositivo al respecto.

¿Cómo se armar un request?

Estructura del bloque: "Comprobante"

Información de los campos a enviar:

Nombre del campo
Es requerido?
Comentarios
fecha
SI
Campo fecha. Para facturación afip deberá ser la fecha del día. Formato esperado: dd/mm/aaaa. Ejemplo: 13/05/2018
tipo
SI
operacion
SI
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
SI
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
SI
Campo numérico entero. Longitud máxima 5 digitos.
moneda
SI
Campo alfanumérico de 3 Digitos según tabla de referencia de Monedas .
cotizacion
SI
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
OPCIONAL
Campo fecha, formato esperado: dd/mm/aaaa. Si no se envía la fecha de vencimiento del pago, se calculará en base a la condición de pago del cliente, contra la fecha del comprobante. En caso que quieras enviar vos, la a de vencimiento, debes indicarlo aca.
periodo_facturado_desde
SI
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
SI
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
SI
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
SI
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
SI
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 255 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.
percepciones_iibb
OPCIONAL
Campo numérico con 2 decimales. separador de decimales: punto. Indica el valor monetario de la percepción de ingresos brutos realizada Ejemplo: 142.67
percepciones_iibb_base
OPCIONAL
La base imponible sobre la cual se calculo la percepción. Campo numérico con 2 decimales. separador de decimales: punto. Ejemplo: 42.67
percepciones_iibb_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
percepciones_iibb_juridiccion
OPCIONAL
La juridicción a la que pertenece la percepción aplicada. El valor a enviar corresponde al ID de la provincia, según nuestra tabla de referencias.
percepciones_iva
OPCIONAL
Campo numérico con 2 decimales. separador de decimales: punto. Indica el valor monetario de la percepción de IVA realizada Ejemplo: 42.67
percepciones_iva_base
OPCIONAL
La base imponible sobre la cual se calculo la percepción. Campo numérico con 2 decimales. separador de decimales: punto. Ejemplo: 42.67
percepciones_iva_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
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
exentos
OPCIONAL
Campo numérico con 2 decimales. separador de decimales: punto. Indica el valor monetario en concepto de exentos. Solo para comprobantes A y M Ejemplo: 72.67
total
SI
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
SEGUN CORRESPONDA
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
SEGÚN CORRESPONDA
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
SEGÚN CORRESPONDA
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": "[email protected]",
"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"
}
}

Información de los campos a enviar:

documento_tipo
Valores Permitidos: CUIT , DNI, PASAPORTE, OTRO Ejemplo: DNI
documento_nro
Campo numérico, sin puntos ni guiones.
Para casos de clientes del exterior, que posean pasaporte, ten en cuenta que AFIP solo permite el envío de números. Longitud máxima: 11 digitos. Ejemplo: 30111222334
razon_social
Campo alfanumérico. Longitud máxima 255 caracteres. Ejemplo: Pirulo S.A
email
Campo alfanumérico. Longitud máxima 255 caracteres. Ejemplo: [email protected]
domicilio
Campo alfanumérico. Longitud máxima 255 caracteres. Ejemplo: Av. Santa Fe 123
provincia
Campo numérico según tabla de referencia(*). Ejemplo: 2
envia_por_mail
Indica Si/No para el envio del comprobante por e-mail. Valores Permitidos: S , N Ejemplo: S
condicion_pago
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
Campo alfanumerico. Longitud máxima 100 caracteres. Ejemplo: Cobrado en ventanilla.
condicion_iva
Campo numérico que indica la condicion de iva, según tabla de referencia Condiciones ante el IVA(**). Valores Permitidos: CF, RI, M, E Ejemplo: RI
codigo
Campo alfanumerico opcional. Longitud máxima 50 caracteres. Ejemplo: Cobrado en ventanilla.
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 enviar un comprobante a un consumidor final, sin especificar su nombre y DNI, podes enviar:
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 documentaión de los documento : los topes de venta a CF

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.
Recuerda que debes enviar una lista (array) de conceptos. El máximo de conceptos permitidos por comprobante es de 130.
La estructura de cada concepto 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"
},
"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"
},
"leyenda": "En paquetes de 190gr"
}
]
}
Los campos que debes enviar son los siguientes:
cantidad
Campo numérico con 2 decimales. Separador de decimales: punto. Ejemplo: 1.50
afecta_stock
Campo alfanumérico de 1 posición. Valores posibles: "S" (si), "N" (no) Ejemplo: S
producto
Según estructura de producto que se detalla en el bloque siguiente.
leyenda
Campo alfanumérico. Longitud máxima 100 caracteres. Contenido opcional. Será una descripción que acompañe al producto. Ejemplo: Blanca, cepillada
bonificacion_porcentaje
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"
}

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 sus productos no deben llevar IVA, y debes 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: #@#
Los campos que debes enviar son los siguientes:
descripcion
Campo alfanumérico. Longitud máxima 255 caracteres. Ejemplo: Papa blanca
unidad_bulto
Campo numérico entero requerido. Indica la cantidad de unidades que componen un bulto. Valor minimo esperado: 1 Ejemplo: 12
lista_precios
Campo alfanumérico. Longitud 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
Campo alfanumérico. Longitud máxima 10 caracteres. campo Opcional Ejemplo: ABX780
precio_unitario_sin_iva
Campo numérico con 2 decimales. separador de decimales: punto Ejemplo: 645.67
alicuota
Indica la alicuota 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
Campo numérico que indica la unidad de medida, según tabla de referencia Unidades de Medida(**). Ejemplo: 7
actualiza_precio
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 caracter. Valores permitidos: S (si) N (no). Ejemplo: S
impuestos_internos_alicuota
La alícuota que se cobra en concepto de impuestos internos para éste producto. Campo numerico, con 2 decimales. ej: 10.5

Estructura de "Comprobantes Asociados"

Solo para las notas de débito y las notas de crédito, AFIP requiere de manera obligatoria, que se envíe un bloque de información adicional con "comprobantes asociados".
Los comprobantes asociados son aquellos comprobantes que éstas incluyendo para anular o afectar (según corresponda) y los datos a enviar, pertenecen al emisor del comprobante.
Existen 2 maneras de informar los comprobantes asociados:
a) Detallando comprobantes asociados
Envío de comprobantes asociados: "detallados"
b) Indicando un período de comprobantes asociados.
Comprobantes asociados: "por período"
En todos las notas de crédito y/o notas de débito de cualquier tipo ( A,B, C, E y de tipo MiPyme), éste bloque es obligatorio, ya sea que lo hagas por período o por detalle de comprobantes.

Ejemplo de JSON a enviar:

Envío de comprobantes asociados: "detallados"

Para éste tipo de información, es obligatorio enviar el detalle de los comprobantes que se anulan, dentro de un array, en el bloque llamado "comprobantes_asociados", acorde a la estructura que se detalla a continuación para cada comprobante asociado.
Ten en cuenta que AFIP realiza validaciones sobre éstos datos, ya que según lo que facture tu cliente, tiene una cantidad de días X habilitados para anularlas.
Auto-acreditación en cuenta corriente:
A partir del 26/03/2022, comienza a funcionar la "auto-acreditación" con las NC, solo si cumple con los siguientes requisitos:
  1. 1.
    Detalla un solo comprobante.
  2. 2.
    El importe de la NC es exactamente igual al del comprobante que éstas anulando (factura o nota de débito).
  3. 3.
    La factura o nota de débito que estás anulando, se encuentra impaga al 100%.
La auto-acreditación generará un recibo de cobro, en la cuenta corriente de tu cliente, para anular contablemente esa factura o nota de débito asociada. No se enviará ningún PDF a tu cliente. Es solo para tu gestión interna.
Ejemplo del JSON a enviar:
comprobante: {
....
,comprobantes_asociados:[
{
"tipo_comprobante" : "FACTURA A",
"punto_venta" : "145",
"numero" : 12313,
"comprobante_fecha": "07/07/2019",
"cuit": 111111111
} ,
{
"tipo_comprobante" : "FACTURA A",
"punto_venta" : "146",
"numero" : 12314,
"comprobante_fecha": "08/07/2019",
"cuit": 111111111
} ,
]
}
Información de los campos a enviar:
tipo_comprobante
Campo alfabético. Valores esperados según tabla de tipos de comprobante.
punto_venta
Campo numérico entero. Longitud máxima 5 digitos. Ejemplo: 3
numero
Campo numérico entero. Longitud máxima 8 digitos. La numeración será validada internamente previa generación del comprobante. Ejemplo: 4567
cuit
Campo numérico, sin puntos ni guiones. Es el CUIT del emisor del comprobante asociado. Ejemplo: 1111111111
comprobante_fecha
La fecha del comprobante en formato dd/mm/aaaa. El día y el mes deben tener 2 dígitos.

Comprobantes asociados: "por período"

A partir del 01/04/2021, AFIP habilitó la posibilidad de emitir notas de débito y/o crédito indicando un período desde/hasta en lugar del detalle de comprobantes asociados, para todo comprobante de tipo tradicional (A,B,C)
Para utilizar ésta herramienta, no se debe enviar el bloque de "comprobantes asociados" y en su lugar debe enviarse un bloque llamado "comprobantes_asociados_periodo", el cual debe tener la siguiente estructura:
comprobante: {
....
,comprobantes_asociados_periodo: {
"fecha_desde" : "20/11/2020",
"fecha_hasta" : "25/11/2020"
}
}
Se deberá respetar el formato para las fechas que debe ser dd/mm/aaaa (el día y el mes deben tener 2 dígitos).

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
Campo númerico. Valores esperados segúnTabla de Datos Opcionales para RG Especiales
valor
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.
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 campo
Requerido
Detalle
formas_pago
SI
array con multiples items, según estructura que se detalla a continuación
total
SI
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 campo
Requerido
Detalle
descripcion
SI
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
SI
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"

Éste bloque se incorporará a partir del 01/04/2022
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"],
}