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.

¿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:

  1. 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.
  2. 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.

Aquí puedes encontrar toda la información sobre la factura electrónica entre empresas privadas en España.

¿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:

  1. Orden de los elementos dentro de la factura. P.e. primero hay que poner el número de factura y después la fecha.
  2. Obligatoriedad y repetición de elementos en la factura. P.e. el CIF del emisor es obligatorio, la información de pago es opcional,…
  3. El formato de los elementos de datos, P.e. Número de decimales permitidos, longitud de campos…
  4. 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 el FileHeader permite informar de datos asociados al factoring de la factura, aunque no se utiliza normalmente.
  • Parties Incluye información del vendedor SellerParty y el comprador SellerParty. La complejidad de los partes en Facturae es que tienen varias alternativas para definir ciertos aspectos. Por ejemplo, puedes definir o bien LegalEntity (si la parte es una entidad jurídica) o bien Individual (si se trata de un consumidor). Otro ejemplo, en las direcciones se diferencia entre AddressInSpain cuando la dirección es en España, frente a OverseasAddress 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 los AdministrativeCenters 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.). Cada TaxesOutputs 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 el TaxTypeCode (sujeto a una lista de códigos, p.e. 01 = IVA, 02=IPSI), el TaxRate que indica el porcentaje aplicado y el TaxableBase que es la base imponible. Además se puede definir el TaxAmount o importe del impuesto. Esta clase contiene dos particularidades, en primer lugar los elementos SpecialTaxableAmount y SpecialTaxAmount, 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 elementos EquivalenceSurcharge y EquivalenceSurchargeAmount que hacen referencia al recargo de equivalencia.
    • TaxesWithheld Sigue la misma estructura que TaxesOutputs 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. El TotalGrossAmount es el total importe bruto de la factura. El TotalGeneralDiscount y el TotalGeneralCharges contienen el total de descuentos y cargos a nivel de factura respectivamente. El TotalGrossAmountBeforeTaxes es el bruto con descuentos y cargos a nivel de factura. El TotalTaxesOutputs es el total de impuestos repercutidos y el TotalTaxesWithheld el total de impuestos retenidos (es obligatorio, es decir, hay que ponerlo con valor 0.00 en facturas sin IRPF) y finalmente el InvoiceTotal 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 el TotalOutstandingAmount, que es el total a pagar, y el TotalExecutableAmount 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 tenemos IssuerTransactionReference, IssuerContractReference, ReceiverContractReference o FileReference. 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ículo ArticleCode así como información adicional no estructurada en AdditionalLineItemInformation. 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 fecha InstallmentDate, un importe InstallmentAmount, y una forma de pago codificada PaymentMeans. De forma opcional, se puede agregar información de las cuentas bancarias AccountToBeCredited y AccountToBeDebited, referencias para facilitar la conciliación bancaria PaymentReconciliationReference i DebitReconciliationReference. Otros datos en cada vencimiento son las notas adicionales CollectionAdditionalInformation y un campo denominado RegulatoryReportingData 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 mediante RelatedInvoice, relación de anexos a la factura con los datos de los anexos embebidos en base64 en RelatedDocuments, y notas adicionales a la factura en InvoiceAdditionalInformation. En AdditionalData también se pueden incorporar Extensions 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 obligatorio TotalAmount, y otro opcional denominado EquivalentInEuros. Usar Facturae con importes en una moneda distinta al EUR implicaria tener que usar el elemento EquivalentInEuros 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 nn TextMax20Type, 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 y ReceiverContractReference.
  • Para la forma de cobro: PaymentInKind, PaymentInKindReason y PaymentInKindAmount.
  • 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:

FuncionalidadB2BrouterFacturae
Factura electrónica con empresas privadasDisponibleNo disponible
Factura electrónica a otros paísesDisponibleNo disponible
Firma electrónica delegadaDisponibleNo disponible
Factura electrónica con administración pública EspañolaDisponibleDisponible
Conexión con Puntos Generales de Entrada de España (FACe, eFACt, PUEF, etc)DisponibleNo disponible
Integración con ERPDisponibleNo disponible
Conexión con FACeB2BDisponibleNo disponible
Atención al clienteDisponibleNo disponible
Recepción de factura electrónicaDisponibleNo disponible

Estos son solo algunos ejemplo de las oportunidades que ofrece B2Brouter respecto al uso de Facturae.