Format de factura electrònica XML Facturae: Exemple

Saps què és el format de factura electrònica l’XML Facturae? Es tracta d’una mena d’arxiu que conté totes les dades d’una factura en un llenguatge que pot ser llegit i processat per ordinadors i plataformes informàtiques. Aquest format de factura electrònica que la normativa ha definit a Espanya. En aquest article t’expliquem tot el que necessites saber sobre l’XML Facturae amb exemples i com pots generar-ho de manera senzilla i gratuïta.

Què és el format Facturae?

Facturae és el nom que rep el format de la factura electrònica a Espanya. Es tracta d’un format electrònic estructurat basat en el llenguatge XML i que defineix l’estructura del format de la factura electrònica a Espanya.

L’any 2006 el Ministeri d’Economia i Hisenda juntament amb la banca van definir el model AEAT XML. AEAT són les sigles de l’Agència Estatal d’Administració Tributària, però aviat es va veure la necessitat de canviar-ne el nom. Així va passar a nomenar-se Facturae, que significa senzillament Factura Electrònica.

El format va néixer amb la versió Facturae 3.0, però a causa de la necessitat de corregir alguns aspectes de la versió 3.0, es va crear la versió Facturae 3.1. Posteriorment, es va formar la versió 3.2, la qual ha resultat ser la més utilitzada per les comunicacions amb el sector públic (les versions 3.0 i 3.1 estan discontinuades, és a dir, ja no es poden utilitzar).

Última versió: Facturae 3.2.2

Quan l’any 2017 es van incorporar les comunicacions de factures al sector privat, es van realitzar dues versions més, la versió Facturae 3.2.1 i Facturae 3.2.2 que estenen la funcionalitat de la versió 3.2. Aquestes permeten informar de l’encaminament en el sector privat, entre altres temes que veurem més endavant.

Ara per ara, la versió de Facturae més utilitzada per facturar al sector públic és la 3.2, mentre que pel sector privat és la 3.2.2.

Diferèncis entre Facturae 3.2 i Facturae 3.2.2

Les diferències entre Facturae 3.2 i Facturae 3.2.2 són tècniques, i s’han anat implementant per poder adaptar el format a les necessitats de facturació de l’entorn B2B, és a dir, a les relacions entre empreses privades. Les novetats principals són la incorporació dels següents elements:

  • Informació relacionada amb la cessió de Factoring: S’han incorporat els camps FactoringAssignmentDocument, DocumentCharacter, RepresentationIdentity, DocumentType, Repository, RepositoryName.
  • Informació que permet identificar la factura rectificada.
  • Descripció general de la factura: InvoiceDescription.
  • Etiquetes pel que fa a la línia de la factura: ReceiverTransactionReference, FileReference i ReceiverContractReference.
  • Per la forma de cobrament: PaymentInKind, PaymentInKindReason i PaymentInKindAmount.
  • Altres: S’afegeix Quilovat per hora a la llista d’untats i el format HTML a la llista de formats admesos.
  • A més, s’han modificat els tipus de dades, permetent numèriques amb nombres de decimals variables DoubleUpTonnDecimalType.

Com és l’arxiu XML Facturae? Exemple

Facturae és un llenguatge definit mitjançant XML (eXtended Markup Language) que descriu el model de factura que s’utilitza a Espanya.

Facturae defineix una sèrie d’elements de la factura electrònica, de dades amb un significat únic en una estructura de fitxer XML que en el seu conjunt defineix una factura.

Per exemple, per a definir el número de la factura s’utilitza el tag InvoiceNumber. Un tag és una etiqueta que delimita la dada. S’obre mitjançant <InvoiceNumber> i es tanca amb  </InvoiceNumber>:

<InvoiceNumber>2022-9912</InvoiceNumber>

A l’esquema també es defineix el tipus de dades permeses i (en el cas de Facturae) la seva mida. Per exemple, en el cas del número de factura, es permet un màxim de 20 caràcters de text en Facturae 3.2.

Tot llenguatge XML com Facturae es defineix mitjançant un esquema (anomenat XSD). Aquest esquema és el que marca les regles que han de tenir els elements del document XML. Les normes que defineixen l’esquema són del tipus:

  1. Ordre dels elements dins la factura. P. ex. primer s’ha de posar el número de la factura i després la data.
  2. Obligatorietat i repetició d’elements a la factura. P. ex. el CIF de l’emissor és obligatori, la informació de pagament és opcional…
  3. El format dels elements de dades. P. ex. nombre de decimals permesos, longitud de camps…
  4. Les agrupacions de dades. P. ex. les dades relatives a l’emissor o al receptor, o les dades relatives a les línies.

A Facturae, els esquemes “oficials” es poden trobar aquí

Estructura del format de factura electrònica Facturae XML amb exemples

T’expliquem les principals àrees de l’estructura tècnica de les factures en format Facturae.

  • FileHeader Conté metadades de la factura. Les més rellevants són les dades del tercer signant. En el cas de que la factura la sgni un tercer amb signatura delegada (com en el cas de B2Brouter) el camp FileHeader/ThirdParty contélos dades d’Invinet Sistemes (l’entitat jurídica titular de B2Brouter) i el camp InvoiceIssuer és TE per Tercer en lloc d’EM per Emissor. Un altre conjunt d’elements al FileHeader permet informar de dades associades al factoring de la factura, encara que no s’utilitza normalment.
  • Parties Inclou informació del venedor SellerParty i el comprador SellerParty. La complexitat de les parts a Facturae és que tenen diverses alternatives per definir certs aspectes. Per exemple, pots definir o bé LegalEntity (si la part és una entitat jurídica) o bé Individual (si es tracta d’un consumidor). Un altre exemple, a les direccions es diferencia entre AddressInSpain quan la direcció és a Espanya, front a OverseasAddress quan no és espanyola. Aquest últim choice és poc elegant, ja que per saber si una direcció és o no és a Espanya valdria amb el codi de país.
    Per una altra banda, a les parts es poden definir els AdministrativeCenters o unitats organitzatives d’una identitat. Són elements necessaris per definir els codis DIR3 a les entitats públiques a Espanya. Quan es defineixen els centresa administratius s’han d’incorporar les dades de la direcció física, ja que són elements obligatoris a nivell d’esquema.
  • Invoices La secció invoices pot contenir múltiples factures (Invoice). No coneixem cap implementació de Facturae on s’utilitzi més d’una factura per fitxer Facturae. De fet, normalment es prohibeix l’ús de diverses factures en un únic fitxer, degut a que els sistemes de gestió no estan preparats per aquest tràmit. Cada factura té les següents seccions:
    • InvoiceHeader Conté informació de capçalera de la factura, tal com el número i sèrie de la factura, el tipus i la classe. El tipus i classe serveixen per classificar les factures. Amb el tipus es defineix si és completa, abreviada o autofactura, i amb la classe es defineix si es tracta d’una factura original, una rectificativa o una recapitulativa. En el cas de ser factura rectificativa, a InvoiceHeader s’inclou també informació de la factura corregida, on s’ha d’informar del motiu de correcció i del mètode de correcció amb dos elements de dades cadascun, subjectes a sendes de llistes de codis. Veurem exemples de rectificatives més endavant.
    • InvoiceIssueData Dades de capçalera de factura, com la data de factura IssueDate, però també data d’operació OperationDate, així com a lloc d’emissió, periode de facturacióm moneda d’emissió, taxa de canvi o idioma de la factura.
    • TaxesOutputs Aquesta secció és obligatòria i és on es defineixen els impostos de la factura (IVA, Recàrreg d’Equivalència, etc.). Cada TaxesOutputs pot contenir molts grups Tax. Cada grup Tax s’utilitza per definir un tipus d’impost amb un percentatge. És obligatori definir el TaxTypeCode (subjecte a una llista de codis, P. ex. 01 = IVA, 02=IPSI), el TaxRate que indica el percebtatge aplicat i el TaxableBase que és la base imposable. A més es pot definir el TaxAmount o import de l’impost. Aquesta classe conté dos particularitat, en primer lloc els elements SpecialTaxableAmountSpecialTaxAmount, camps que fan referència a l’article tercer punt 5 de la Llei 36/2006: Cinc. S’afegeix un nou Capítol IX al Títol IX de la Llei, amb la següent redacció: «CAPÍTULO IX Régimen especial del grupo de entidades Artículo 163 quinquies. Requisitos subjetivos del régimen especial del grupo de entidades. Per altra banda, hi ha els elements  EquivalenceSurchargeEquivalenceSurchargeAmount que fan referència al recàrreg d’equivalència.
    • TaxesWithheld Segueix la mateixa estructura que TaxesOutputs però serveix per definir l’IRPF. S’han d’informar en psitiu encara que es resti del total de la factura.
    • InvoiceTotals Defineix els imports totals de la factura. Pràcticament tots els elements de dades són obligatoris. El TotalGrossAmount és el total import brut de la factura. El TotalGeneralDiscount i el TotalGeneralCharges contenen el total de descomptes i càrregs a nivell de la factura respectivament. El TotalGrossAmountBeforeTaxes és el brut amb descomptes i càrregs a nivell de factura. El TotalTaxesOutputs és el total d’impostos repercutits i el TotalTaxesWithheld el total d’impostos retinguts (és obligatori, s’ha d eposar amb valor 0.00 a factures sense IRPF) i finalment, el InvoiceTotal que és el total de la factura, amb impostos inclosos. Després es pot informar d’altres imports com les subvencions, els pagaments a compte o els suplits que veurem més endavant amb exemples. Com elements obligatoris addicionals hi ha el TotalOutstandingAmount, que és el total a pagar, i el TotalExecutableAmount que és el total a pagar menys els imports retinguts més gastos reembolsables.
    • Items Aquesta secció conté múltiples línies de facture InvoiceLine. Cada línia de factura té un gran número de referències, encara que és difícil entendre a què fa referència cadascuna d’elles. De fet, és un dels principals problemes de Facturae, ja que diferents receptors obliguen a utilitzar diferents referències. Per exemple, trobem IssuerTransactionReference, IssuerContractReference, ReceiverContractReference o FileReference. A més de les diverses referències es pot descriure la línia de factura, la quantitat, el preu i els impostos a nivel de línia. Es poden afegir descomptes i càrregs a nivell de línia. També es pot incloure un identificador d’article ArticleCode així com informació addicinoal no estructurada a AdditionalLineItemInformation. Cada línia té un punt d’extensió que es pot utilitzar per afegir dades estructurades addicionals.
    • PaymentDetails És una secció opcional on es poden definir múltiples venciments de la classe Installment. Cada venciment ha de contenir una data  InstallmentDate, un import InstallmentAmount, i una forma de pagament codificada PaymentMeans. De forma opcional, es pot afegir informació sobre els comptes bancaris  AccountToBeCreditedAccountToBeDebited, referències per facilitar la conciliació bancària  PaymentReconciliationReference i DebitReconciliationReference. Altres dades a cada venciment són les notes addicionals   CollectionAdditionalInformation i un camp anomenat RegulatoryReportingData que és un codi estadístic utilitzat a operacions transfrontereres.
    • LegalLiterals És una secció que pot contenir múltiples LegalReference, que són camps textuals de fins a 2500 caràcters, on es pot incloure determinada informació requerida per a donacions, subvencions, etc.
    • AdditionalData Permet relacionar números de factures relacionades mitjançant RelatedInvoice, relació d’annexos a la factura amb les dades dels annexos embedades en base 64 a RelatedDocuments, i notes addicionals a la factura en InvoiceAdditionalInformation. En AdditionalData també es poden incorporar  Extensions a nivell d’una factura.Extensions Permet incorporar qualsevol extensió estructurada a la factura.
  • ds:Signature Aquesta secció pertany a la especificació de la signatura electrònica. Conté les dades que permeten garantitzar la identiat i integritat de la factura.

Com crear una factura en format Facturae?

Com pots comprovar, el format Facturae no és fàcil de generar, ja que requereix coneixements tècnics. El Ministeri ha creat una aplicació que et permet generar aquest arxiu, però no és gaire intuitiu ni funcional. Per això et parlem sobre altres solucions simples, eficaces i en alguns casos gratuites,, per crear i gestionar totes les teves factures electròniques sense complicacions.

Crea les teves factures electròniques de manera ràpida i senzilla

Existeixen diferents solucions especialitzades, preparades per a facilitar la creació de factures electròniques en diferents formats estructurats, com ara Facturae o altres (UBL, XRechnung, FatturaPA, etc). Algunes d’aquestes solucions ofereixen la possibilitat de generar factures electròniques de forma gratuita, afegint les dades de la factura en un formulari i convertit-lo de manera automàtica en l’arxiu i el format desitjat pel receptor.

Fer una factura electrònica!