Facturas en divisas extranjeras en UBL

Emitir facturas en otra divisa en UBL: DocumentCurrencyCode, TaxCurrencyCode y dobles totales de IVA.

No todas las facturas se emiten en euros. En el comercio internacional, es habitual facturar en dólares, libras esterlinas u otra divisa. UBL lo permite, pero entra en juego una capa adicional: en muchos casos, el IVA debe expresarse en la moneda local de la administración tributaria. Este artículo explica cómo construir correctamente una factura en divisa extranjera.

DocumentCurrencyCode: la divisa de la factura

La divisa de la factura se determina mediante el elemento DocumentCurrencyCode. Todos los importes de la factura (importes por línea, totales, PayableAmount) se expresan en esta divisa:

<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>

En este ejemplo, la factura está emitida en dólares estadounidenses. Los códigos de divisa siguen la norma ISO 4217 (EUR, USD, GBP, CHF, etc.).

TaxCurrencyCode: la divisa del IVA

Cuando la divisa de la factura difiere de la divisa en la que el IVA debe declararse ante la administración tributaria, se indica una segunda divisa mediante TaxCurrencyCode:

<cbc:DocumentCurrencyCode>USD</cbc:DocumentCurrencyCode>
<cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode>

Esto indica que la factura está emitida en dólares, pero que los importes de IVA también deben expresarse en euros. En los Países Bajos, la divisa de declaración del IVA es siempre el euro, por lo que este elemento es relevante para proveedores neerlandeses que facturen en otra divisa.

Dobles totales de IVA

Cuando se ha indicado TaxCurrencyCode y difiere de DocumentCurrencyCode, la factura debe contener dos bloques TaxTotal:

  1. El primer TaxTotal en la divisa de la factura (con elementos TaxSubtotal)
  2. El segundo TaxTotal en la divisa del IVA (solo el importe total de IVA, sin TaxSubtotal)
<!-- IVA en la divisa de la factura (USD) -->
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="USD">210.00</cbc:TaxAmount>
  <cac:TaxSubtotal>
    <cbc:TaxableAmount currencyID="USD">1000.00</cbc:TaxableAmount>
    <cbc:TaxAmount currencyID="USD">210.00</cbc:TaxAmount>
    <cac:TaxCategory>
      <cbc:ID>S</cbc:ID>
      <cbc:Percent>21.00</cbc:Percent>
      <cac:TaxScheme>
        <cbc:ID>VAT</cbc:ID>
      </cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal>
</cac:TaxTotal>

<!-- IVA en la divisa de declaración (EUR) -->
<cac:TaxTotal>
  <cbc:TaxAmount currencyID="EUR">189.00</cbc:TaxAmount>
</cac:TaxTotal>

El primer bloque contiene el desglose completo del IVA en dólares. El segundo bloque solo contiene el importe total de IVA en euros. Este segundo importe se basa en el tipo de cambio vigente en el momento de la facturación.

Atención: el segundo bloque TaxTotal no contiene elementos TaxSubtotal. Solo se requiere el importe total de IVA en la divisa de declaración.

Tipo de cambio

La norma UBL no prescribe cómo debe registrarse el tipo de cambio. En la práctica existen dos enfoques:

Tipo implícito. El tipo de cambio puede deducirse de la relación entre los importes de IVA en ambas divisas. En el ejemplo anterior: 189,00 / 210,00 = 0,90 (1 USD = 0,90 EUR). Este es el enfoque más habitual.

Mención explícita. Algunas organizaciones incluyen el tipo de cambio utilizado en los PaymentTerms o como nota. No está estandarizado, pero puede resultar útil para la contabilidad.

Consejo: para el tipo de cambio puede utilizar el tipo de referencia del BCE vigente en la fecha de la factura. La mayoría de los programas de contabilidad aplican estos tipos automáticamente.

Totales de factura en divisa extranjera

Todos los importes en LegalMonetaryTotal se expresan en la DocumentCurrencyCode. No existe un bloque de totales independiente en la divisa de declaración:

<cac:LegalMonetaryTotal>
  <cbc:LineExtensionAmount currencyID="USD">1000.00</cbc:LineExtensionAmount>
  <cbc:TaxExclusiveAmount currencyID="USD">1000.00</cbc:TaxExclusiveAmount>
  <cbc:TaxInclusiveAmount currencyID="USD">1210.00</cbc:TaxInclusiveAmount>
  <cbc:PayableAmount currencyID="USD">1210.00</cbc:PayableAmount>
</cac:LegalMonetaryTotal>
¿Cuándo utilizar una divisa extranjera?

Las situaciones más habituales:

  • Exportación fuera de la UE: se factura a un cliente fuera de la UE en su divisa local (por ejemplo, USD o GBP)
  • Acuerdos con el cliente: se ha pactado contractualmente facturar en una divisa determinada
  • Prestación de servicios internacionales: se prestan servicios a clientes en países con otra divisa

En las entregas intracomunitarias dentro de la UE, la facturación se realiza generalmente en euros, pero se admite otra divisa siempre que la declaración del IVA se efectúe en la moneda local.

Procesamiento en eConnect

eConnect procesa facturas en todas las divisas habituales. Los elementos DocumentCurrencyCode y TaxCurrencyCode se reconocen y validan automáticamente. Si envía facturas en divisa extranjera a través de la PSB API, asegúrese de que todos los atributos currencyID contengan sistemáticamente el código de divisa correcto. Una mezcla de divisas en los importes por línea provocará un error de validación.

Validar una factura


Relacionado