Todo sobre Facturae
Con la aplicación de la normativa de factura electrónica, se ha definido en España el formato Facturae. Este formato es el que se utiliza para enviar facturas electrónicas estructuradas al sector público, entre contratistas y subcontratistas del estado y que también se utilizará para intercambiar facturas entre privados a partir de la entrada en vigor de la Ley Crea y Crece.
En este artículo te contamos todo lo que necesitas saber sobre Facturae: conceptos, versiones, la aplicación, errores, alternativas, etc.
Tabla de contenidos
¿Qué es el Formato Facturae?
Facturae es el nombre que recibe el formato de la factura electrónica en España.
En el año 2006 el Ministerio de Economía y Hacienda junto con la banca definieron el modelo AEAT XML. AEAT son las siglas de la Agencia Estatal de Administración Tributaria por lo que pronto se vio la necesidad de cambiar el nombre y se pasó a denominar Facturae, que significa sencillamente Factura Electrónica.
El formato nació con la versión Facturae 3.0 pero debido a la necesidad de corregir algunos aspectos de la versión 3.0, se creó la versión Facturae 3.1 y posteriormente la versión Facturae 3.2, que ha resultado ser la más utilizada para las comunicaciones con el sector público (las versiones 3.0 y 3.1 están descontinuadas, es decir, ya no se pueden utilizar).
Cuando en el año 2017 se incorporaron las comunicaciones de facturas en el sector privado, se realizaron dos versiones más, la versión Facturae 3.2.1 y Facturae 3.2.2 que extienden la funcionalidad de la versión 3.2, permitiendo informar del encaminamiento en el sector privado así como de otros temas que veremos más adelante.
Hoy por hoy, la versión de Facturae más utilizada para facturar al sector público es la 3.2 y para el sector privado la 3.2.2.
¿Cuándo enviar una factura en Facturae?
En la actualidad, las empresas españolas necesitan enviar factura electrónica en formato Facturae en dos casos:
- Para facturar a la Administración Pública: Desde el año 2015, todos los proveedores de la Administración Pública tienen la obligación de utilizar la factura electrónica para facturar a los organismos públicos. Como consecuencia, necesitan generar una factura en formato Facturae, añadir los códigos de enrutamiento, firmar la factura de forma digital y registrar el documento en el Punto General de Entrada correspondiente al receptor.
- Facturación entre Contratistas y Subcontratistas del estado: En las relaciones entre Contratistas y Subcontratistas sobre obras o servicios referentes a contratos públicos, es obligatorio utilizar factura electrónica y también en formato Facturae. En estas facturas electrónicas debe constar el código DIRE del receptor, el código DIR3 del organismo público involucrado en la transacción y es necesario utilizar el Punto General de Entrada de FACeB2B para realizar el intercambio de esta factura.
A pesar de que la factura electrónica sólo es obligatoria en los casos mencionados anteriormente, ya se ha publicado en el BOE la Ley Crea y Crece que, entre muchas otras cosas, obliga a todas las empresas privadas españolas a utilizar la factura electrónica en todas sus transacciones, tanto para emitir, como para recibir. En este caso, para el intercambio de factura electrónica entre empresas privadas también se ha decidido implementar en formato Facturae además de los exigidos por la Unión Europea, el formato UBL y el CII.
¿Cómo es el archivo XML de Facturae?
Facturae es un lenguaje definido mediante XML (eXtended Markup Language) que describe el modelo de factura que se utiliza en España.
Facturae define una serie de elementos de la factura electrónica, de datos con un significado único en una estructura de fichero XML que en su conjunto describe una factura.
Por ejemplo, para definir el número de la factura se utiliza el tag InvoiceNumber. Un tag es una etiqueta que delimita el dato. Se abre mediante <InvoiceNumber>
y se cierra con </InvoiceNumber>
:
<InvoiceNumber>2022-9912</InvoiceNumber>
En el esquema también se define el tipo de datos permitido y (en el caso de Facturae) su tamaño. Por ejemplo, en el caso del número de factura, se permite un máximo de 20 caracteres de texto en Facturae 3.2.
Todo lenguaje XML como Facturae se define mediante un esquema (denominado XSD). Este esquema es el que marca las reglas que tienen que tener los elementos de la documento XML. Las reglas que define el esquema son del tipo:
- Orden de los elementos dentro de la factura. P.e. primero hay que poner el número de factura y después la fecha.
- Obligatoriedad y repetición de elementos en la factura. P.e. el CIF del emisor es obligatorio, la información de pago es opcional,…
- El formato de los elementos de datos, P.e. Número de decimales permitidos, longitud de campos…
- Las agrupaciones de datos, Pe. los datos relativos al emisor o al receptor, o los datos relativos a las líneas.
En Facturae, los esquemas “oficiales” se pueden encontrar aquí
Estructura de Facturae
Te explicamos las principales áreas de la estructura técnica de las facturas en formato Facturae.
FileHeader
Contiene metadatos de la factura. Los más relevantes son los datos del tercero firmante. En caso que la factura la firme un tercero con firma delegada (como en el caso de B2Brouter) el campo FileHeader/ThirdParty contiene los datos de Invinet Sistemes (la entidad jurídica titular de B2Brouter) y el campo InvoiceIssuer es TE por Tercero en lugar de EM por Emisor. Otro conjunto de elementos en elFileHeader
permite informar de datos asociados al factoring de la factura, aunque no se utiliza normalmente.Parties
Incluye información del vendedorSellerParty
y el compradorSellerParty
. La complejidad de los partes en Facturae es que tienen varias alternativas para definir ciertos aspectos. Por ejemplo, puedes definir o bienLegalEntity
(si la parte es una entidad jurídica) o bien Individual (si se trata de un consumidor). Otro ejemplo, en las direcciones se diferencia entreAddressInSpain
cuando la dirección es en España, frente aOverseasAddress
cuando no es española. Este último choice es poco elegante ya que para saber si una dirección es o no es en España, bastaría con el código de país.
Por otra parte, en las partes se pueden definir losAdministrativeCenters
o unidades organizativas de una entidad. Son elementos opcionales necesarios para definir los códigos DIR3 en las entidades públicas en España. Cuando se definen centros administrativos hay que incorporar los datos de la dirección física ya que son elementos obligatorios a nivel de esquema.Invoices
La sección invoices puede contener múltiples facturas (Invoice). No conocemos ninguna implementación de Facturae donde se utilicen más de una factura por fichero Facturae, de hecho, normalmente se prohíbe el uso de diversas facturas en un único fichero ya que los sistemas de gestión no están preparados para su gestión. Cada factura tiene las siguientes secciones:InvoiceHeader
Contiene información de cabecera de la factura, tal como el número y serie de la factura y el tipo y clase. El tipo y clase sirven para clasificar las facturas. Con el tipo define si es completa, abreviada, autofactura y con la clase se define si se trata de una factura original, una rectificativa o una recapitulativa. En caso de ser factura rectificativa, en InvoiceHeader se incluye también información de la factura corregida, donde se tiene que informar del motivo corrección y del método de corrección con dos elementos de datos cada uno, sujetos cada uno de ellos a sendas listas de códigos. Veremos ejemplos de rectificativas más adelante.InvoiceIssueData
Datos de cabecera de factura, como fecha de factura IssueDate, pero también fecha de operación OperationDate, así como lugar de emisión, período de facturación, moneda de emisión, tasa de cambio o idioma de la factura.TaxesOutputs
Esta sección es obligatoria y es donde se definen los impuestos de la factura (IVA, Recargo de Equivalencia, etc.). CadaTaxesOutputs
puede contener muchos grupos Tax. Cada grupo Tax se utiliza para definir un tipo de impuesto con un porcentaje. Como obligatorio en cada grupo Tax hay que definir elTaxTypeCode
(sujeto a una lista de códigos, p.e. 01 = IVA, 02=IPSI), elTaxRate
que indica el porcentaje aplicado y elTaxableBase
que es la base imponible. Además se puede definir elTaxAmount
o importe del impuesto. Esta clase contiene dos particularidades, en primer lugar los elementosSpecialTaxableAmount
ySpecialTaxAmount
, campos que hacen referencia al artículo tercero punto 5 de la Ley 36/2006: Cinco. Se añade un nuevo Capítulo IX al Título IX de la Ley, con la siguiente redacción: «CAPÍTULO IX Régimen especial del grupo de entidades Artículo 163 quinquies. Requisitos subjetivos del régimen especial del grupo de entidades. Por otra parte hay los elementosEquivalenceSurcharge
yEquivalenceSurchargeAmount
que hacen referencia al recargo de equivalencia.TaxesWithheld
Sigue la misma estructura queTaxesOutputs
pero sirve para definir el IRPF básicamente. Se tienen que informar en positivo aunque se resta del total factura.InvoiceTotals
Define los importes totales de la factura. Prácticamente todos los elementos de datos son obligatorios. ElTotalGrossAmount
es el total importe bruto de la factura. ElTotalGeneralDiscount
y elTotalGeneralCharges
contienen el total de descuentos y cargos a nivel de factura respectivamente. ElTotalGrossAmountBeforeTaxes
es el bruto con descuentos y cargos a nivel de factura. ElTotalTaxesOutputs
es el total de impuestos repercutidos y elTotalTaxesWithheld
el total de impuestos retenidos (es obligatorio, es decir, hay que ponerlo con valor 0.00 en facturas sin IRPF) y finalmente elInvoiceTotal
que es el total factura incluyendo impuestos. Después se puede informar de otros importes como las subvenciones, los pagos a cuenta o los suplidos que veremos más adelante en ejemplos. Como elementos obligatorios adicionales hay elTotalOutstandingAmount
, que es el total a pagar, y elTotalExecutableAmount
que es el total a pagar menos los importes retenidos más gastos reembolsables.Items
Esta sección contiene múltiples líneas de factura InvoiceLine. Cada línea de factura tiene un gran número de referencias, aunque es difícil entender a qué hace referencia cada una. De hecho es uno de los principales problemas de Facturae, ya que distintos receptores obligan a utilizar distintas referencias. Como ejemplo tenemosIssuerTransactionReference
,IssuerContractReference
,ReceiverContractReference
oFileReference
. Además de las diversas referencias se puede describir la línea de factura, la cantidad, el precio y los impuestos a nivel de línea. Se pueden añadir descuentos y cargos a nivel de línea. También se puede incluir un identificador de artículoArticleCode
así como información adicional no estructurada enAdditionalLineItemInformation
. Cada línea tiene un punto de extensión que se puede utilizar para añadir datos estructurados adicionales.PaymentDetails
Es una sección opcional en la que se pueden definir múltiples vencimientos mediante la clase Installment. Cada vencimiento debe contener una fechaInstallmentDate
, un importeInstallmentAmount
, y una forma de pago codificadaPaymentMeans
. De forma opcional, se puede agregar información de las cuentas bancariasAccountToBeCredited
yAccountToBeDebited
, referencias para facilitar la conciliación bancariaPaymentReconciliationReference
iDebitReconciliationReference
. Otros datos en cada vencimiento son las notas adicionalesCollectionAdditionalInformation
y un campo denominadoRegulatoryReportingData
que es un código estadístico usado en operaciones transfronterizas.LegalLiterals
Es una sección que puede contener múltiples LegalReference que son campos textuales de hasta 2500 caracteres donde se puede incluir determinada información requerida para donaciones, subvenciones, etc.AdditionalData
Permite relacionar números de facturas relacionadas medianteRelatedInvoice
, relación de anexos a la factura con los datos de los anexos embebidos en base64 enRelatedDocuments
, y notas adicionales a la factura enInvoiceAdditionalInformation
. EnAdditionalData
también se pueden incorporarExtensions
a nivel de una factura.
Extensions
Permite incorporar cualquier extensión estructurada a la factura.ds:Signature
Esta sección pertenece a la especificación de la firma electrónica. Contiene los datos que permiten garantizar la identidad e integridad de la factura.
¿Qué datos contiene el archivo XML de Facturae?
En Facturae hay distintas listas de códigos que restringen el uso de determinados elementos de datos. Técnicamente, estas listas de códigos son enumeraciones definidas dentro del propio XSD, de modo que no se pueden modificar sin la creación de una nueva versión del modelo Facturae.
Las listas son:
RoleTypeCodeType
Identifica el tipo de AdministrativeCenter. Sirve para identificar los DIR3.PersonTypeCodeType
Para discriminar si la parte es una persona física o jurídica.ResidenceTypeCodeType
Discrimina el tipo de residencia (España, Europa o resto).InvoiceIssuerTypeType
Define quien es el emisor de la factura. En caso de firma delegada, el emisor debe ser “TE” (un tercero).InvoiceDocumentTypeType
Discrimina si se trata de una factura completa, abreviada o auto-factura.InvoiceClassType
Identifica si es una factura original, rectificativa o recapitulativa o copia de alguna de las anteriores.ReasonCodeType
Describe el motivo de corrección.ReasonDescriptionType
Exactamente igual que la lista anterior pero con textos.CorrectionMethodType
Describe el método de corrección de la factura. Existen 4 tipos de corrección.CorrectionMethodDescriptionType
Exactamente igual que la lista anterior pero con textos.UnitOfMeasureType
Unidades de medida codificadas.PaymentMeansType
Formas de pago codificadas.TaxTypeCodeType
Tipos de impuestos permitidos.CountryType
Países codificados con el código alpha3.CurrencyCodeType
Monedas codificadas con el código de 3 dígitos.ModalityType
Indicador si la factura es individual o múltiple.LanguageCodeType
Código del idioma de la parte.SpecialTaxableEventCodeType
Permite indicar si la operación es no sujeta o bien sujeta y exenta.
Además de las enumeraciones de listas de códigos, en Facturae se definen distintos tipos de datos que restringen el formato de la información que se puede utilizar en cada elemento de datos.
AmountType
Es el tipo de datos usado para definir los importes. Contiene una secuencia con un dato obligatorioTotalAmount
, y otro opcional denominadoEquivalentInEuros
. Usar Facturae con importes en una moneda distinta al EUR implicaria tener que usar el elementoEquivalentInEuros
así como la tasa de cambio.DoublennDecimalType
Se utiliza en Facturae 3.2 para definir importes con nn decimales.DoubleUpTonnDecimalType
Se utiliza en Facturae 3.2.2 para importes de hasta nn decimales.TextMaxnnType
En Facturae se limita el tamaño de las cadenas de texto. Existen diversos tipos dependiendo del valor de nnTextMax20Type
,TextMax70Type
, etc.TextMinaaMaxbbType
Cadenas de texto entre aa y bb caracteres.PostCodeType
Cadena de 5 dígitos.RegulatoryReportingDataType
Cadena de 6 dígitos.PartyIdentificationType
Cadena de 10 dígitos.
¿Cómo firmar electrónicamente una factura en Facturae?
La firma electrónica es opcional en el formato Facturae, aunque legalmente es obligatoria en las facturas que se remiten al sector público.
Las facturas se pueden firmar con el certificado del emisor o bien con el de una tercera parte de confianza. En el caso de utilizar B2Brouter se puede optar por ambas modalidades, firmar con el certificado propio, de manera que se deberá incorporar el PIN del certificado cada vez que se firme, o bien con el certificado de Invinet Sistemes (si trabajas con B2Brouter) en la modalidad de firma delegada.
Firmar con firma delegada
Cuando se utiliza la firma delegada, hay que tener en cuenta que el código del emisor de la factura debe ser TE y se debe informar de los datos del firmante en la sección ThirdParty
de la factura.
La firma delegada es considerada como correcta para firmar la factura electrónica que se tramita a la Administración Pública.
Firmar con certificado propio
En caso de firmar con certificado propio, el emisor de la factura debe ser EM y no se debe informar del ThirdParty
. Los datos del firmante deben coincidir con los del emisor de la factura.
Diferencias entre Facturae 3.2 y Facturae 3.2.2
Las diferencias entre Facturae 3.2 y Facturae 3.2.2 son técnicas y se han implementado para poder adaptar el formato a las necesidades de facturación en el entorno B2B, es decir en las relaciones entre empresas privadas. Las novedades principales son la incorporación de los siguientes elementos:
- Información relacionada con la cesión de Factoring: Se han incorporado los campos
FactoringAssignmentDocument
,DocumentCharacter
,RepresentationIdentity
,DocumentType
,Repository
,RepositoryName
. - Información que permite identificar la factura rectificada.
- Descripción general de la factura:
InvoiceDescription
. - Etiquetas a nivel de línea de la factura:
ReceiverTransactionReference
,FileReference
yReceiverContractReference
. - Para la forma de cobro:
PaymentInKind
,PaymentInKindReason
yPaymentInKindAmount
. - Otros: Se añade Kilovatio por hora en la lista de unidades y el formato HTML a la lista de formatos admitidos.
- Además se han modificado tipos de datos, permitiendo numéricos con número de decimales variables
DoubleUpTonnDecimalType
.
¿Qué es el programa Facturae?
Con el desarrollo de la Ley 25/2013, de impulso de la factura electrónica en nuestro país, el Ministerio de Hacienda desarrolló una herramienta gratuita para que las empresas pudieran crear las facturas electrónicas que necesitaban presentar a sus clientes públicos. Esta herramienta adoptó el mismo nombre que el formato de factura electrónica Española: Facturae.
Se trata de una aplicación a la que cualquiera tiene acceso y que te permite generar la factura electrónica en formato Facturae, siguiendo todas las especificaciones y requisitos para cumplir con la normativa.
A pesar de esto, se trata de una herramienta difícil de usar y poco ágil para las empresas, ya que tiene muchas carencias y solo está pensada para facturar a la Administración Pública Española.
Estos son algunos de los pasos que hay que seguir para trabajar con Facturae:
¿Cómo descargar Facturae?
El programa Facturae es una aplicación que debes descargar en el escritorio de tu ordenador. Esto quiere decir que necesitas una versión actualizada de tu sistema operativo para poder descargar e instalar la aplicación y además necesitas disponer del espacio suficiente.
Una vez descargado Facturae, necesitas instalar la aplicación. Una vez instalada ya la puedes ejecutar y empezar a utilizar.
¿Cómo crear una factura electrónica con Facturae?
Una vez abres el programa Facturae, te encuentras una interfaz de apariencia algo desfasada y algo difícil de entender. Dispones de diferentes opciones y secciones que te permiten trabajar con la aplicación.
Para crear una factura nueva debes utilizar la opción de Generar factura y accedes a otra pantalla donde encuentras diferentes opciones que te permiten añadir los datos de la factura que quieres generar.
Una vez introducida la información puedes guardar la factura. Como consecuencia, se genera la factura electrónica en archivo Facturae y se almacena en tu ordenador, en la carpeta que selecciones.
Firmar Facturae
Una vez generado el archivo y antes de enviarlo, necesitas firmar el Facturae. Para hacerlo debes utilizar la aplicación de AutoFirma y necesitas tener la tu certificado correctamente instalado y configurado en tu sistema.
Una vez seguido el proceso de firma, puedes volver a guardar la factura en tu sistema en formato .xsig, lo que significa que es el Facturae firmado.
¿Cómo enviar un Facturae?
El envío del Facturea es manual e individual. Como consecuencia, debes acceder al Punto General de Entrada donde se encuentra adherido tu cliente y subir el fichero Facturae, ya firmado, para que se registe.
Debes tener en cuenta que en España hay una extensa lista de Puntos Generales de Entrada de facturas electrónicas, donde pueden estar adheridos tus clientes públicos. Estos son algunos ejemplos:
- Punto General de Entrada de FACe.
- Punto General de Entrada de eFACT.
- Punto General de Entrada de la Junta de Andalucía.
- Punto General de Entrada del Gobierno Vasco.
- Punto General de Entrada de La Rioja.
- Punto General de Entrada de La Xunta de Galicia.
- Punto General de Entrada de Castilla-La Mancha.
- Punto General de Entrada de Castilla y León.
- Otros Puntos Generales de Entrada de facturas electrónicas.
Error Facturae
Es posible que mientras trabajas en la creación de la factura electrónica con Facturae, puedan aparecer algunos errores que te impiden finalizar la creación.
Estos son algunos de los errores en Facturae más comunes:
- Error en Facturae por introducir datos incorrectos.
- Error en Facturae por añadir datos o caracteres en un formato no aceptado (por ejemplo guiones en un NIF).
- Error en Facturae por introducir códigos DIR3 del receptor incorrectos.
- Otro tipo de error producido en el momento de firmar el Facturae.
Para añadir un poco más de dificultad, la definición de estos errores no es del todo clara, por lo que puede ser complicado interpretar donde reside el problema.
Ayuda con Facturae
En el pasado, Facturae proporcionaba soporte a sus usuarios para ayudarles a solucionar dudas de usabilidad o los errores mencionados anteriormente. Después de un tiempo, Facturae suprimió este servicio.
En la actualidad, cuando un usuario tiene dudas sobre el funcionamiento de la herramienta o no sabe como solucionar estos errores, no puede solicitar ayuda y debe buscar la manera de solventar la situación de otro modo.
A pesar de esto no todo está perdido, ya que B2Brouter te ayuda con Facturae.
¿Es obligatorio utilizar el programa Facturae?
Muchos receptores públicos recomiendan a sus proveedores el uso del programa Facturae. A pesar de esto, no es obligatorio su uso, ya que existen otras aplicaciones o proveedores de factura electrónica habilitados para poder gestionar este tipo de facturas.
Se trata de soluciones más completas, adaptadas a las necesidades de las empresas, no tan enfocadas a la factura electrónica, pero asegurándote que cumples con los requisitos técnicos y legales.
Alternativas a Facturae
Teniendo en cuenta que Facturae es una aplicación de difícil uso, solo útil para la factura electrónica a la Administración Pública Española y que además no proporciona soporte a sus usuarios, debes saber que existen alternativas que te permiten gestionar la factura electrónica en formato Facturae, de una forma más sencilla y eficaz para la gestión de tu empresa.
Algunas de estas alternativas también tienen versión gratuita y además te permiten gestionar toda tu facturación con clientes nacionales e internacionales, público y privados, de forma sencilla, utilizando diferentes formatos (Facturae, UBL, PDF, XRechnung, etc) y diferentes redes públicas y privadas.
B2Brouter es una alternativa a Facturae que puede ayudarte con la gestión de toda tu factura electrónica, con empresas públicas y privadas de todo el mundo.
B2Brouter VS Facturae
Estas son algunas de las diferencias entre B2Brouter y Facturae:
Funcionalidad | B2Brouter | Facturae |
Factura electrónica con empresas privadas | Disponible | No disponible |
Factura electrónica a otros países | Disponible | No disponible |
Firma electrónica delegada | Disponible | No disponible |
Factura electrónica con administración pública Española | Disponible | Disponible |
Conexión con Puntos Generales de Entrada de España (FACe, eFACt, PUEF, etc) | Disponible | No disponible |
Integración con ERP | Disponible | No disponible |
Conexión con FACeB2B | Disponible | No disponible |
Atención al cliente | Disponible | No disponible |
Recepción de factura electrónica | Disponible | No disponible |
Estos son solo algunos ejemplo de las oportunidades que ofrece B2Brouter respecto al uso de Facturae.