Ir al contenido
Log in

Informe fiscal

Esta guía explica cómo rellenar correctamente el array taxes_attributes al crear facturas a través de la API, para que los integradores sepan qué nombres y categorías de impuesto se esperan por país.

Importante

  • Los porcentajes mostrados son los valores predeterminados de B2Brouter para facilitar la integración; los tipos impositivos pueden cambiar. Valide siempre con la legislación vigente de cada país.
  • Los nombres de los impuestos deben coincidir con los valores esperados en esta guía. No invente nuevos nombres (p. ej., "Exento", "Umsatzsteuer", "Sales tax").
  • Muchos formatos reutilizan comment como razón de exención/“no sujeto”. Rellénelo siempre que establezca 0%/exento/inversión del sujeto pasivo, a menos que su cuenta ya tenga la razón predeterminada correcta.

Use esta guía junto con:

  • Use únicamente estos campos dentro de cada objeto taxes_attributes: name (string), category (string, enum), percent (float), comment (string o null). No incluya otras claves como amount, base, type, etc.
  • Los porcentajes son los valores esperados por defecto; la legislación cambia. Si su caso de negocio requiere un tipo diferente, envíe ese tipo pero mantenga el name y category correctos.
  • Para retenciones, use un percent negativo y el nombre de impuesto correspondiente (IRPF, IRNR, IRPEF, etc.).
  • comment se usa como razón de exención/“no sujeto” en muchos formatos (Facturae/Verifactu, categorías Peppol, etc.). Proporcione una razón siempre que percent sea 0 y la operación sea exenta/no sujeta/inversión del sujeto pasivo (ejemplo: comment: "E2").
  • La configuración de la cuenta afecta al cálculo: apply_taxes_per_line (booleano) controla si los impuestos se aplican por línea o sobre la suma; rounding_method controla el redondeo.

Cada línea de factura (invoice_lines_attributes) puede contener un array de impuestos:

"taxes_attributes": [
{
"name": "VAT",
"category": "S",
"percent": 21.0,
"comment": "Standard VAT"
}
]

Para cada objeto de impuesto:

  • name (requerido): Nombre del impuesto (debe coincidir con uno de los valores esperados para el país de la empresa, consulte Referencia por país).
  • category (recomendado): Código de categoría del impuesto (consulte Categorías de impuesto).
  • percent (requerido): Porcentaje de impuesto. Use valores negativos para retenciones.
  • comment (opcional pero recomendado para 0%/exención/inversión del sujeto pasivo): Razón en texto libre usada por varios formatos y autoridades fiscales.

Se pueden aplicar múltiples impuestos a la misma línea añadiendo varios objetos a taxes_attributes.

Solo estos campos son válidos. No incluya amount, base ni otros campos personalizados; se calculan internamente para evitar inconsistencias.

campotiporequeridodescripción
namestringNombre del impuesto (debe coincidir con los valores predeterminados del país)
categorystring, enumrecomendadoCódigo de categoría del impuesto (consulte la lista a continuación)
percentfloatPorcentaje de impuesto (negativo para retenciones)
commentstring o nullopcionalRazón/explicación, requerida para muchos casos de exención/no sujeto

Configuración de impuestos a nivel de cuenta que afectan a los cálculos

Sección titulada «Configuración de impuestos a nivel de cuenta que afectan a los cálculos»
  • apply_taxes_per_line (booleano): Cuando es true, los impuestos se aplican por línea y luego se suman; cuando es false, las bases se suman y el impuesto se aplica al total.
  • rounding_method: Estrategia de redondeo (half_up por defecto). Consulte Cálculo de factura.

B2Brouter utiliza categorías de impuesto alineadas con la lista de códigos PEPPOL/UNCL5305 y, para algunos países, códigos adicionales requeridos por la autoridad fiscal local.

Códigos de categoría comunes:

  • S – Tipo estándar.
  • H – Tipo alto.
  • AA – Tipo reducido.
  • AAA – Tipo superreducido.
  • Z – Suministro con tipo cero (0% pero sujeto a IVA).
  • E – Exento (0% y exento de IVA).
  • AE – Inversión del sujeto pasivo.
  • G – Artículo de exportación libre, IVA no cobrado.
  • K – Suministro intracomunitario de bienes/servicios (exento de IVA dentro del EEE).
  • NS – No sujeto.
  • O – Fuera del ámbito del impuesto / otras operaciones.

Solo se aceptan estos valores de categoría; otros códigos serán rechazados.

Singapur utiliza códigos de categoría GST adicionales (consulte Singapur), e Italia utiliza códigos de “natura” N.. de FatturaPA (consulte Italia).

  • Use los nombres de impuesto predeterminados del país de las tablas siguientes (coinciden con la configuración predeterminada de B2Brouter al crear una empresa). Mantenga los nombres/códigos aunque su tipo difiera.
  • Para el IVA estándar, use el nombre principal de IVA y category: "S" con el percent apropiado.
  • Para tipos reducidos, use category: "AA" o category: "AAA" según los valores predeterminados mostrados.
  • Para operaciones con tipo cero o exentas:
    • Use percent: 0.
    • Elija category según la situación legal:
      • Z: sujeto pero al 0%.
      • E: exento.
      • AE: inversión del sujeto pasivo.
      • Códigos locales para regímenes específicos (Italia N.., categorías GST de Singapur, etc.).
  • Para retenciones, use porcentajes negativos (p. ej., -19 para el IRPF español) y el nombre del impuesto de retención (p. ej., IRPF, IRNR, IRPEF).
  • Al integrar con informes fiscales (Verifactu, TicketBAI, LHDN, etc.), asegúrese de que sus taxes_attributes sean compatibles con la guía correspondiente.

Referencia por país – nombres de impuesto válidos y tipos predeterminados

Sección titulada «Referencia por país – nombres de impuesto válidos y tipos predeterminados»

Las siguientes tablas listan los nombres de impuesto esperados por país con los tipos predeterminados y categorías que precargamos. Úselas como referencia para los nombres y categorías; ajuste percent si la legislación o su escenario lo requiere.

Los porcentajes pueden cambiar con el tiempo; verifique siempre con la legislación local vigente. Los tipos y categorías están alineados por posición en cada fila (primer tipo → primera categoría, etc.).

namepercentcategorynotas
IGI4.5, 2.5, 1, 0S, AA, AAA, ZIVA (estándar/reducido/0%).
IRNR10, 5, 1.5, -20S, AA, AAA, SImpuesto sobre la renta de no residentes (retención si negativo).
namepercentcategorynotas
MwSt20, 10, 13, 0S, AA, AA, ZIVA.
namepercentcategorynotas
GST10, 0S, EImpuesto sobre bienes y servicios.
namepercentcategorynotas
TVA21, 6, 12, 0S, AA, AA, Z, E, AEIVA (estándar, reducido, exento, inversión del sujeto pasivo).
namepercentcategorynotas
ДДС20, 9, 0S, AA, ZIVA.
namepercentcategorynotas
VAT8.1, 2.6, 3.8, 0S, AA, AA, EIVA; 0% normalmente para exportaciones.
namepercentcategory
ΦΠΑ19, 5, 9, 0S, AA, AA, Z
namepercentcategory
DPH21, 12, 0S, AA, Z
namepercentcategorynotas
USt19, 7, 0S, AA, ZIVA.
namepercentcategory
VAT25, 0S, Z, E
namepercentcategory
km22, 9, 0S, AA, Z

España tiene varios regímenes de IVA según el código postal de la empresa:

  • Península/Islas Baleares: IVA.
  • Islas Canarias: IGIC.
  • Ceuta/Melilla: IPSI.

comment se usa para la razón de exención/no sujeto en Facturae/Verifactu. Si envía percent: 0 para una operación exenta o no sujeta, añada la razón en comment (ejemplo: comment: "E2"). Si su cuenta ya establece la razón predeterminada, puede omitirlo.

namepercentcategorynotas
IVA21, 10, 7.5, 5, 4, 2, 0S, AA, AA, AA, AAA, AAA, Z/E/AEIVA.
IRPF-19, -15, -7SRetención del impuesto sobre la renta.

Islas Canarias (IGIC) / Ceuta y Melilla (IPSI)

Sección titulada «Islas Canarias (IGIC) / Ceuta y Melilla (IPSI)»

Ejemplos (según código postal):

namepercentcategorynotas
IGIC15, 9.5, 7, 3, 1.5, 0H, H, S, AA, AA, ZEquivalente al IVA en Canarias.
IPSI10, 8, 4, 2, 1, 0.5H, H, S, AA, AA, SImpuesto indirecto local para Ceuta/Melilla.
IRPF-19, -15, -7SRetención.

Notas (España)

  • Use IVA/IGIC/IPSI con percent: 0 y la category correcta (E, Z o AE) más una razón en comment para operaciones exentas/no sujetas (p. ej., E2).
  • Use percent negativo para retenciones de IRPF.

Consulte también: Verifactu y TicketBAI.

namepercentcategory
ALV25.5, 10, 14, 0S, AA, AA, Z/E
namepercentcategory
TVA20, 5.5, 10, 2.1, 0S, AA, AA, AAA, Z/AE
namepercentcategory
VAT20, 5, 0S, AA, Z
namepercentcategory
ΦΠΑ24, 6, 13, 0S, AA, AA, Z
namepercentcategory
PDV25, 5, 13, 0S, AA, AA, Z
namepercentcategory
ÁFA27, 5, 18, 0S, AA, AA, Z
namepercentcategory
VAT23, 9, 13.5, 4.8, 0S, AA, AA, AA, Z
namepercentcategory
VSK24, 11, 0S, AA, Z/E
namepercentcategorynotas
IVA22, 10, 5, 4, 0S, AA, AA, AAA, N.. / E / Z / AEIVA.
IRPEFnegativo (p. ej., -20)SRetención (cuando aplica mediante FatturaPA).

Para FatturaPA, las operaciones no sujetas a impuesto usan códigos category como N1, N2.1, N2.2, N3.1, N3.2, N3.3, N3.4, N3.5, N3.6, N4, N5, N6.1… (consulte su configuración de FatturaPA). Deben enviarse como IVA al 0% con name: "IVA" y category: "N..".

Recomendación (Italia)

  • Para operaciones estándar: name: "IVA", category: "S", percent: 22.
  • Para operaciones no sujetas: name: "IVA", percent: 0 y el código N.. apropiado en category.

Consulte también: Enviar una factura a través de SDI.

namepercentcategorynotas
VAT10, 8, 0S, AA, E/G/OImpuesto sobre el consumo japonés.
namepercentcategory
PVM21, 5, 9, 0S, AA, AA, Z
namepercentcategory
TVA17, 3, 8, 14, 0S, AA, AA, AA, Z
namepercentcategory
PVM21, 5, 12, 0S, AA, AA, Z
namepercentcategory
TVA20, 5.5, 10, 2.1, 0S, AA, AA, AAA, Z/AE
namepercentcategory
VAT18, 5, 7, 0S, AA, AA, Z
namepercentcategorynotas
SST10, 8, 6, 5, 0T, T, T, T, E/OImpuesto sobre ventas y servicios.

Consulte también: Enviar informe fiscal a LHDN.

namepercentcategory
BTW21, 9, 0S, AA, Z/AE
namepercentcategory
MVA25, 15, 12, 0S, AA, AA, Z/E
namepercentcategory
GST15, 0S, Z/E
namepercentcategory
PTU23, 5, 8, 0S, AA, AA, Z
namepercentcategory
IVA23, 6, 13, 0S, AA, AA, Z
namepercentcategory
TVA19, 9, 5, 0S, AA, AA, Z
namepercentcategory
Moms25, 6, 12, 0S, AA, AA, Z/E
namepercentcategory
ضريبة القيمة المضافة15, 0S, Z/E/O

Singapur utiliza categorías GST específicas mandadas por IRAS. El nombre del impuesto es siempre GST; la categoría codifica el tratamiento GST.

namepercentcategorynotas
GST9SRSuministro a tipo estándar.
GST0ZRSuministro a tipo cero.
GST0 / 9SRCA-SContabilidad del cliente – ventas.
GST9SRCA-CContabilidad del cliente – compras.
GST9SRRCInversión del sujeto pasivo.
GST9SROVR-RSRegistro de proveedor extranjero – servicios remotos.
GST9SROVR-LVGRegistro de proveedor extranjero – bienes de bajo valor.
GST9SRLVGBienes locales de bajo valor.
GST0ES33Exento: reglamento 33.
GST0ESN33Exento: no reglamento 33.
GST9DSSuministros desestimados.
GST0OSFuera del ámbito.
GST0NGCargo no GST.

Recomendación (Singapur)

  • Use siempre name: "GST".
  • Use la categoría GST de IRAS apropiada en category y establezca percent en consecuencia (normalmente 9 o 0).
namepercentcategory
DDV22, 9.5, 0S, AA, Z
namepercentcategory
DPH20, 10, 0S, AA, Z
namepercentcategorynotas
VAT0OSe usa para indicar “sin IVA” / fuera del ámbito.

Recomendación (EE. UU.)

  • Para empresas sin ID de IVA, use un único impuesto con name: "VAT", percent: 0, category: "O" y opcionalmente comment: "Company without VAT ID".
  • No cree nombres de impuesto de ventas locales en taxes_attributes; el tratamiento del IVA se modela como 0% fuera del ámbito.

Ejemplo – Línea de factura española con IVA e IRPF

Sección titulada «Ejemplo – Línea de factura española con IVA e IRPF»
"taxes_attributes": [
{
"name": "IVA",
"category": "S",
"percent": 21.0
},
{
"name": "IRPF",
"category": "S",
"percent": -15.0
}
]

Ejemplo – Venta alemana exenta dentro de la UE (inversión del sujeto pasivo)

Sección titulada «Ejemplo – Venta alemana exenta dentro de la UE (inversión del sujeto pasivo)»
"taxes_attributes": [
{
"name": "USt",
"category": "AE",
"percent": 0.0,
"comment": "Intra‑community supply – reverse charge"
}
]

Ejemplo – GST a tipo estándar en Singapur

Sección titulada «Ejemplo – GST a tipo estándar en Singapur»
"taxes_attributes": [
{
"name": "GST",
"category": "SR",
"percent": 9.0
}
]