No, el array de alícuotas de IVA (Iva) en la factura electrónica no se refiere a cada servicio realizado, sino a los totales por cada tipo de alícuota aplicada sobre el total de la factura. Si hay servicios con diferentes tasas de IVA, se debe enviar una entrada por cada tasa, sumando la base imponible y el importe de todos los ítems que correspondan a esa alícuota, pero nunca el detalle de cada servicio individualmente. El detalle de los servicios (ítems) no se envía a AFIP/ARCA, solo los totales por alícuota de IVA y los importes globales del comprobante, según esta referencia y esta explicación.
Por lo tanto, para el PDF que entregás al cliente, sí debés mostrar el detalle de los servicios como ítems, pero esto es solo para el documento visual y no para el web service de AFIP. El array de alícuotas solo agrupa los importes por tipo de IVA, no por ítem. ¿Te gustaría ver un ejemplo de cómo armar el array de IVA y cómo mostrar los ítems en el PDF?
Sources:
y en que se diferencian los "tributos"? a cada tipo de IVA que se aplicó en las alicuotas?
@user y en que se diferencian los "tributos"? a cada tipo de IVA que se aplicó en las alicuotas?
No, los "tributos" no son lo mismo que las alícuotas de IVA. En la estructura de la factura, el array Iva es exclusivamente para discriminar los distintos tipos de IVA aplicados (por ejemplo, 21%, 10,5%, etc.), mientras que el array Tributos es para informar otros impuestos o percepciones adicionales, como ingresos brutos, impuestos internos, percepciones de IVA, tasas municipales, etc. Cada tributo tiene su propio ID y descripción, y no debe confundirse con el IVA, que tiene su sección aparte en la factura electrónica según esta explicación.
¿Querés ver ejemplos de cómo se arma cada array en el request a AFIP?
Sources:
@user cuándo el emisor de la factura es Responsable inscripto, debe especificar todos los tributos, verdad? Porque es un agente de recaudación
No necesariamente. El emisor Responsable Inscripto debe informar en el array Tributos solo los impuestos, percepciones o tasas que efectivamente correspondan a la operación (por ejemplo, percepciones de IVA, ingresos brutos, impuestos internos, etc.), pero no está obligado a informar tributos si no aplica ninguno. Ser agente de recaudación implica que, si corresponde una percepción, debe incluirse, pero no se deben inventariar tributos que no existan en la transacción, según esta referencia.
¿Te gustaría ver un ejemplo de cómo se informa un tributo en la factura electrónica?
Sources:
@user para el caso de los tributos, solo con indicar el ID del tributo basta? No debemos hacer ningún cálculo en back-end?
No, no basta solo con indicar el ID del tributo. Debés calcular y completar en el array Tributos los campos requeridos: Id, BaseImp (base imponible), Alic (alícuota) e Importe (importe del tributo), ya que AFIP/ARCA no realiza estos cálculos automáticamente; el backend debe calcularlos y enviarlos completos según esta referencia.
¿Querés ver un ejemplo de cómo armar el array Tributos con los cálculos necesarios?
Sources:
@user de dónde saco los porcentajes de cada tributo? Porque el método getTaxTypes() no los devuelve
Los porcentajes (alícuotas) de cada tributo no los provee el método getTaxTypes(), ya que este solo devuelve los tipos de tributo disponibles y sus descripciones, pero no las tasas aplicables. Los porcentajes deben ser definidos según la normativa fiscal vigente para cada tributo y pueden variar según jurisdicción o tipo de operación, por lo que deberás consultarlos con tu contador o la legislación correspondiente, como se aclara en esta referencia.
¿Querés una lista de los IDs de tributos que devuelve getTaxTypes() o ejemplos de cómo se usan?
Sources:
@user es decir que los tributos y su porcentaje deben ser especificados por el usuario según su necesidad?
Exacto, los tributos y sus porcentajes deben ser especificados manualmente por el usuario según la operación y la normativa fiscal aplicable. El sistema solo valida la estructura, pero no determina ni calcula automáticamente los tributos ni sus alícuotas; esto depende de la configuración y necesidad de cada emisor, como se indica en esta referencia.
¿Te gustaría ver un ejemplo de cómo se completa el array de tributos en el request?
Sources:
@user tributos e iva se calculan sobre "ImpNeto" / "BaseImp" por ejemplo, no?
Sí, tanto las alícuotas de IVA como los tributos se calculan sobre la base imponible (BaseImp), que generalmente corresponde al importe neto gravado (ImpNeto) de la factura. Para cada ítem o grupo de ítems con la misma tasa, se suma la base imponible y se aplica la alícuota correspondiente, según esta explicación.
¿Querés un ejemplo práctico de cómo se realiza este cálculo?
Sources:
@user y un mismo servicio de la factura (por ejemplo, se está presupuestando un producto y su envío de logística propia) puede tener más de 1 tributo?
Sí, un mismo servicio o producto puede estar alcanzado por más de un tributo; por ejemplo, puede tener ingresos brutos y una percepción de IVA al mismo tiempo. En ese caso, debés incluir en el array Tributos una entrada por cada tributo aplicable, cada una con su propio ID, base imponible, alícuota e importe, según esta referencia.
¿Te gustaría ver cómo se arma el array Tributos para este caso?
Sources:
@user 'Alic' sería el porcentaje?
'Tributos' => array( // (Opcional) Tributos asociados al comprobante
array(
'Id' => 99, // Id del tipo de tributo (ver tipos disponibles)
'Desc' => 'DGR', // (Opcional) Descripcion
'BaseImp' => $tgrav, // Base imponible para el tributo
'Alic' => $alicuota, // Alícuota
'Importe' => $dgrVta // Importe del tributo
)
),
Sí, en la estructura de Tributos, el campo 'Alic' corresponde al porcentaje (alícuota) que se aplica sobre la base imponible para calcular el importe del tributo. Debe ser especificado manualmente según corresponda al tributo informado, tal como se indica en esta referencia.
¿Querés un ejemplo con valores concretos para mayor claridad?
Sources:
@user y la base imponible sería toda la factura "neta", no? es decir, no hay items de la factura que estén alcanzados por una tasa y otros no, sino que los tributos aplican a toda la factura. cierto?
No necesariamente. La base imponible (BaseImp) de cada tributo puede ser toda la factura neta o solo una parte, dependiendo de qué ítems estén alcanzados por ese tributo. Si solo algunos productos o servicios están sujetos a un tributo específico, la base imponible será la suma de los importes netos de esos ítems, no de toda la factura, según esta explicación.
¿Querés un ejemplo de cómo calcular la base imponible cuando solo algunos ítems están alcanzados por un tributo?
Sources:
@user podrías darme más detalles y ejemplos para la estructura de Tributos? Sé que estas son las keys:
'Id' => 99, // Id del tipo de tributo (ver tipos disponibles)
'Desc' => 'DGR', // (Opcional) Descripcion
'BaseImp' => $tgrav, // Base imponible para el tributo
'Alic' => $alicuota, // Alícuota
'Importe' => $dgrVta // Importe del tributo
Claro, te detallo cómo se arma la estructura de Tributos y te doy ejemplos prácticos. Cada tributo se representa como un array con las siguientes claves:
Id: Identificador del tributo (por ejemplo, 1 para impuestos nacionales, 2 provinciales, 99 otros, etc.).Desc: Descripción opcional del tributo (ejemplo: 'DGR', 'Percepción IVA').BaseImp: Base imponible sobre la que se calcula el tributo (puede ser el neto de ciertos ítems).Alic: Alícuota o porcentaje aplicado (por ejemplo, 3.5 para 3,5%).Importe: Importe resultante del cálculo (BaseImp*Alic/ 100).
Ejemplo con dos tributos distintos:
'Tributos' => array(
array(
'Id' => 2, // Impuesto provincial
'Desc' => 'Ingresos Brutos',
'BaseImp' => 10000,
'Alic' => 3.5,
'Importe' => 350
),
array(
'Id' => 99, // Otro
'Desc' => 'Percepción IVA',
'BaseImp' => 10000,
'Alic' => 1,
'Importe' => 100
)
)
Cada tributo se calcula y se informa por separado, según corresponda a los ítems de la factura. Si un tributo solo aplica a ciertos ítems, la base imponible será la suma de esos ítems.
Sources:
@user Me faltaría calcular estas dos keys al crear la factura/voucher:
- 'ImpTotConc': 0, // Importe neto no gravado
- 'ImpOpEx' : 0, // Importe exento de IVA
Estos dos dependen de si se envía el ID de iva 0% en el Array "Iva"?
No, ImpTotConc (importe neto no gravado) y ImpOpEx (importe exento de IVA) no dependen de si se envía el ID de IVA 0% en el array Iva. Cada uno representa conceptos distintos:
ImpTotConces para importes no gravados por IVA (por ejemplo, operaciones fuera del alcance del impuesto).ImpOpExes para importes exentos de IVA (productos o servicios exentos por ley).
El ID de IVA 3 (0%) en el array Iva corresponde a importes gravados al 0%, que deben ir en ImpNeto, no en los campos anteriores. Si tenés importes exentos o no gravados, debés sumarlos y colocarlos en ImpOpEx o ImpTotConc respectivamente, independientemente del array Iva, según esta explicación.
¿Querés ejemplos de cómo se completan estos campos en distintos casos?
Sources:
@user me contás más sobre ImpTotConc e ImpOpEx? que dato debo mirar para saber si un valor lo añado a ImpTotConc o ImpOpEx? Suponiendo que la factura tiene sus alicuotas y tributos especificados, debería ser fácil mirar esto, no?
Sure thing! I'm looking through the available data to answer your question. Hold on a second... :hourglass_flowing_sand:
An error occurred: 400, message='Bad Request', url='https://api.runllm.com/api/discord/chat'
@user explicame qué dato debo mirar para saber si un monto lo debo añadir a ImpTotConc o ImpOpEx. Debo mirar en las alicuotas y tributos del voucher?
Mi entendimiento es que para saber si un monto va en ImpTotConc (no gravado) o en ImpOpEx (exento de IVA), debés analizar la naturaleza fiscal del ítem:
- Si el producto/servicio está exento de IVA por ley, el monto va en
ImpOpEx. - Si el producto/servicio no está alcanzado por IVA (no gravado), el monto va en
ImpTotConc.
No se determina mirando las alícuotas ni los tributos del voucher, sino la condición fiscal de cada ítem según la normativa. Las alícuotas solo reflejan los importes gravados (incluyendo 0% si corresponde), y los tributos son otros impuestos, no IVA, según esta explicación y esta referencia.
¿Querés ejemplos prácticos de cómo identificar cada caso?
Sources:
@user El monto que debo añadir a ImpTotConc no es cuándo el IVA es 0% para un item? Pensé que en ese caso iba a ImpNeto, únicamente
Correcto, cuando un ítem está gravado al 0% de IVA (ID 3 en el array Iva), ese monto debe sumarse a ImpNeto, no a ImpTotConc. ImpTotConc es solo para importes no gravados, mientras que el 0% de IVA sigue siendo un importe gravado, aunque la alícuota sea cero, según esta explicación.
¿Te gustaría ver un ejemplo de cómo se distribuyen estos importes en la estructura de la factura?
Sources: