Irene Solutions SL

Quickstart: Empieza con VeriFactu en 3 pasos


Cumplir con VeriFactu es más sencillo de lo que imaginas. Sigue estos pasos básicos para empezar:

  1. Genera el código QR
    Incluye un código QR en las facturas que emites, generalmente en formato PDF. Nuestra API REST te permite obtener un bitmap del código QR que cumple con las normativas fiscales de la AEAT.
  2. Envía los datos a la AEAT
    Utiliza nuestra API REST para registrar las facturas electrónicas en el sistema de la Agencia Tributaria Española (AEAT). La integración es rápida y asegura el cumplimiento normativo.
  3. Valida tus operaciones
    Verifica que tus envíos cumplen con los requisitos fiscales en nuestro entorno de pruebas antes de pasar a producción.

Entorno de Pruebas


Realiza todas las pruebas necesarias en un entorno seguro diseñado para simular el envío de facturas sin comprometer tu situación fiscal.

  • Los envíos realizados aquí no tienen validez legal.
  • Es ideal para validar integraciones y realizar ajustes antes de acceder al entorno de producción.


Acceso al Entorno de Producción


¿Listo para comenzar a enviar datos reales?

  • Envíanos un correo electrónico a info@irenesolutions.com con tu solicitud de acceso.
  • Nuestro equipo te guiará paso a paso para habilitar tu cuenta de producción y empezar a operar con seguridad.


Soporte y Sugerencias


¿Tienes preguntas o ideas para mejorar nuestra API?

  • Escríbenos a info@irenesolutions.com y estaremos encantados de ayudarte.
  • Nuestro equipo está aquí para garantizar una experiencia fluida y resolver cualquier duda técnica.

Gracias por confiar en VeriFactu. Tu gestión fiscal, ahora más sencilla.


1. Generación del código QR


Es necesario incluir un código QR en las facturas, cumpliendo con las especificaciones establecidas por la AEAT. Este código permite al comprador verificar si la factura ha sido correctamente comunicada a la AEAT y si los datos enviados coinciden con los registrados en el sistema.


Ejemplo de factura con código QR de VeriFactu
Escanee el código QR para verificar la validez y los datos registrados de esta factura.

El Endpoint para obtener el código QR es:

https://facturae.irenesolutions.com:8050/Kivu/Taxes/Verifactu/Invoices/GetQrCode

Método:

POST

Body JSON ( No requerido encabezado Authorization, ServiceKey en body):

Pruebalo tu mismo


2. Envío de información a la AEAT


Cuando emitimos nuestra factura con el código QR debemos enviarla a la AEAT para que el código QR de validación de un resultado correcto.

El Endpoint para enviar una factura es:

https://facturae.irenesolutions.com:8050/Kivu/Taxes/Verifactu/Invoices/Create

Método:

POST

Body JSON ( No requerido encabezado Authorization, ServiceKey en body):

Pruebalo tu mismo

Datos de acceso
Seleccione el Enpoint a probar, pulse 'Ejecutar' y vea el resultado de la llamada POST

Puede editar el JSON de entrada para ver los distintos resultados:

Seleccione emisor de documentos a consultar
# Fecha Id. Comprador Nombre comprador Importe Resultado

Invoice


Todos los Enpoints reciben como parámetro de entrada un objeto Invoice. El número de parámetros obligatorios difiere de la operación que estemos ejecutando (alta, anulación o generación de código QR de validación).


En la siguiente tabla se describe el valor de las propiedades de Invoice:

Propiedad Descripción
Status

Indica el estado del documento. Si queremos realizar un envío definitivo al servidor de la AEAT debe contener cualquier valor distinto de 'DRAFT'. Sin embargo si lo que queremos es obtener un borrador con el XML del registro y la imágen del código QR necesitamos consignar el valor 'DRAFT'.

Alfanumérico(20).

InvoiceType

Su valor por defecto es F1. Se corresponde con el valor del campo TipoFactura en las especificaciones de VERI*FACTU. El significado de este campo es la Clave del tipo de factura y los valores adminitdos se corresponden con la lista L2 sgúna las siguientes equivalencias:

  • F1: Factura (art. 6, 7.2 y 7.3 del RD 1619/2012).
  • F2: Factura Simplificada y Facturas sin identificación del destinatario art. 6.1.d) RD 1619/2012.
  • F3: Factura emitida en sustitución de facturas simplificadas facturadas y declaradas.
  • R1: Factura Rectificativa (Error fundado en derecho y Art. 80 Uno Dos y Seis LIVA).
  • R2: Factura Rectificativa (Art. 80.3). Cuando el destinatario de las operaciones sujetas al Impuesto no haya hecho efectivo el pago de las cuotas repercutidas y siempre que, con posterioridad al devengo de la operación, se dicte auto de declaración de concurso.
  • R3: Factura Rectificativa (Art. 80.4). Cuando los créditos correspondientes a las cuotas repercutidas por las operaciones gravadas sean total o parcialmente incobrables.
  • R4: Factura Rectificativa (Resto).
  • R5: Factura Rectificativa en facturas simplificadas facturadas y declaradas.

RectificationType

Su valor por defecto es I. Identifica si el tipo de factura rectificativa es por sustitución 'S' o por diferencia (L3). Y sus posibles valores:

  • S: Por sustitución.
  • I: Por diferencias.

IsInvoiceFix

Indica que se trata de un envío de subsanación de una factura envíada anteriormente a la AEAT, y la cual se tiene que modificar porque contiene algún error.

  • false: Alta normal factura.
  • true: Subsanación de factura envíada anteriormente.

InvoiceID

Identificador de la factura. Su valor representa el campo NumSerieFactura, Nº Serie+Nº Factura que identifica a la factura emitida.

Alfanumérico(60).

InvoiceDate

Fecha de expedición de la factura.

SellerID

Número de identificación fiscal (NIF) del obligado a expedir la factura.

FormatoNIF(9).

CompanyName

Nombre-razón social del vendedor.

Alfanumérico(120).

RelatedPartyID

Identificador del comprador. Debe utilizarse el identificador fiscal si existe (NIF, VAT Number...). En caso de no existir, se puede utilizar el número de pasaporte, documento oficial de identificación expedido por el país o territorio de residencia; o cualquier otro identificador establecido.

Alfanumérico(20).

RelatedPartyName

Nombre-razón social del comprador.

Alfanumérico(120).

RelatedPartyIDType

Su valor por defecto es 02. Clave para establecer el tipo de identificación en el pais de residencia. L7.

  • 02: NIF-IVA (02).
  • 03: PASAPORTE (03).
  • 04: DOCUMENTO OFICIAL DE IDENTIFICACIÓN EXPEDIDO POR EL PAÍS O TERRITORIO DE RESIDENCIA (04).
  • 05: CERTIFICADO DE RESIDENCIA (05).
  • 06: OTRO DOCUMENTO PROBATORIO (06).
  • 07: NO CENSADO (07).

Text

Descripción del objeto de la factura, equivalente al campo DescripcionOperacion.

Alfanumérico (500).

TaxItems

Colección de elementos TaxItem que recopila la información de las líneas de impuesto de la factura.

Las propiedades del elemento TaxItem están recogidas en la siguiente tabla.

RectificationItems

Colección de elementos InvoiceRectification que recopila la información de las facturas rectificadas por una factura rectificativa.

Las propiedades del elemento InvoiceRectification son.

  • InvoiceID
  • InvoiceDate
RectificationTaxBase

BaseRectificada para rectificativas por sustitución 'S'. Se corresponde con el importe total de la base de la factura original a la que sustituye la rectificativa.

Decimal(3,2).

RectificationTaxAmount

CuotaRectificada para rectificativas por sustitución 'S'. Se corresponde con el importe total de la cuota de la factura original a la que sustituye la rectificativa.

Decimal(3,2).

RectificationTaxAmountSurcharge

CuotaRecargoRectificado para rectificativas por sustitución 'S'. Se corresponde con el importe total de la cuota por recargo de equivalencia de la factura original a la que sustituye la rectificativa.

Decimal(3,2).


TaxItem


En la siguiente tabla se describe el valor de las propiedades de TaxItem:

Propiedad Descripción
Tax

Impuesto de aplicación. Si no se informa este campose entenderá que el impuesto de aplicación es el IVA. Este campo es necesario porque contribuye a completar el detalle de la tipología de la factura.

Alfanumérico (1) L1:

  • 01: Impuesto sobre el Valor Añadido (IVA).
  • 02: Impuesto sobre la Producción, los Servicios y la Importación (IPSI) de Ceuta y Melilla.
  • 03: Impuesto General Indirecto Canario (IGIC).
  • 05: Otros.

TaxScheme

Su valor por defecto es 01. Esquema impositivo. Su valor por defecto es 0. Se corresponde con el campo ClaveRegimen del DetalleDesglose, e identifica el tipo de régimen del IVA o IGIC o una operación con trascendencia tributaria. Sus valores para el IVA y el IGIC están en las tablas L8A/L8B.

Alfanumérico(2).

  • 01: Operación de régimen general ('01').
  • 02: Exportación ('02').
  • 03: Operaciones a las que se aplique el régimen especial de bienes usados, objetos de arte, antigüedades y objetos de colección ('03').
  • 04: Régimen especial del oro de inversión ('04').
  • 05: Régimen especial de las agencias de viajes ('05').
  • 06: Régimen especial grupo de entidades en IVA/IGIC (Nivel Avanzado) ('06').
  • 07: Régimen especial del criterio de caja ('07').
  • 08: L8A y L8B: Operaciones sujetas al IPSI / IGIC / IVA (Impuesto sobre la Producción, los Servicios y la Importación / Impuesto General Indirecto Canario).
  • 09: Facturación de las prestaciones de servicios de agencias de viaje que actúan como mediadoras en nombre y por cuenta ajena (D.A.4ª RD1619/2012) ('09').
  • 10: Cobros por cuenta de terceros de honorarios profesionales o de derechos derivados de la propiedad industrial, de autor u otros por cuenta de sus socios, asociados o colegiados efectuados por sociedades, asociaciones, colegios profesionales u otras entidades que realicen estas funciones de cobro ('10').
  • 11: Operaciones de arrendamiento de local de negocio ('11').
  • 14: L8A y L8B: Factura con IVA / IGIC pendiente de devengo en certificaciones de obra cuyo destinatario sea una Administración Pública ('14').
  • 15: L8A y L8B: Factura con IVA / IGIC pendiente de devengo en operaciones de tracto sucesivo ('15').
  • 17: L8A: OSS e IOSS IVA. L8B: Régimen especial de comerciante minorista ('17').
  • 18: L8A: Recargo de equivalencia. L8B: Régimen especial del pequeño empresario o profesional ('18').
  • 19: L8A: Operaciones de actividades incluidas en el Régimen Especial de Agricultura, Ganadería y Pesca (REAGYP). L8B: Operaciones interiores exentas por aplicación artículo 25 Ley 19/1994 ('19').
  • 20: Régimen simplificado sólo para IVA ('20').

TaxType

Su valor por defecto es S1. Se corresponde con el valor del campo CalificacionOperacion y es la clave de la operación sujeta y no exenta o de la operación no sujeta. Los valores que puede tener están relacionados con los de la lista L9.

Alfanumérico(2).

  • S1: Operación Sujeta y No exenta - Sin inversión del sujeto pasivo.
  • S2: Operación Sujeta y No exenta - Con Inversión del sujeto pasivo.
  • N1: Operación No Sujeta artículo 7, 14, otros.
  • N2: Operación No Sujeta por Reglas de localización.

TaxException

Se corresponde con el valor del campo OperacionExenta y es EL campo que especifica la causa de exención. Los valores que puede tener están relacionados con los de la lista L10.

Alfanumérico(2).

  • E1: Exenta por el artículo 20.
  • E2: Exenta por el artículo 21.
  • E3: Exenta por el artículo 22.
  • E4: Exenta por los artículos 23 y 24.
  • E5: Exenta por el artículo 25.
  • E6: Exenta por otros.

TaxBase

Base imponible. Se corresponde con el campo BaseImponibleOimporteNoSujeto o con el campo BaseImponibleACoste en grupos nivel avanzado, es la magnitud dineraria sobre la que se aplica aplica el tipo impositivo.

TaxRate

Tipo impositivo. Se corresponde con el campo TipoImpositivo, y es el porcentaje aplicado sobre la base imponible para calcular la cuota.

Decimal(3,2).

TaxAmount

Importe cuota impuesto. Se corresponde con el campo CuotaRepercutida, y es la cuota resultante de aplicar a la base imponible el tipo impositivo.

Decimal(12,2).

TaxRateSurcharge

Tipo impositivo recargo. Se corresponde con el campo TipoRecargoEquivalencia, y es el porcentaje asociado en función del impuesto y tipo impositivo aplicado sobre la base imponible para calcular la cuota del recargo de equivalencia.

Decimal(3,2).

TaxAmountSurcharge

Importe cuota recargo impuesto. Se corresponde con el campo CuotaRecargoEquivalencia, y es la cuota resultante de aplicar a la base imponible el tipo de recargo de equivalencia.

Decimal(12,2).


Result


La respuesta devuelta se trata de un objeto Result. El objeto Result contiene las propiedades ResultCode, ResultMessage y Return:

  • ResultCode: Si todo ha ido correctamente devuelve el valor 0, en caso contrario devolverá un código de error.
  • ResultMessage: Mensaje descriptivo de cómo ha sido el resultado.
  • Return: Objeto con el resultado de la operación.


El objeto Return contiene las mismas propiedades que el objeto Invoice más los resultados del procesamiento de la llamada. En la siguiente tabla se describe el valor de las propiedades de Return adicionales:

Propiedad Descripción
ExternKey

Representa el identificador del eslabón de la cadena de bloques correspondiente a la factura identificada.

Alfanumérico(20).

StatusResponse

Estado asignado por la AEAT a la respuesto. Si todo ha ido bien devuelve el valor 'Correcto'.

Alfanumérico(20).

ErrorCode

Código de error devuelto por el servidor de la AEAT. Si todo ha ido bien su valor será null. Si su valor es '9999' significa que se ha producido un error interno de la libreria Verifactu. En el resto de casos devuelve el código de error de la AEAT asociado a la petición.

Alfanumérico(100).

ErrorDescription

Descripción del error devuelto por el servidor de la AEAT. Si todo ha ido bien su valor será null.

Alfanumérico(1000).

CSV

Código seguro de verificación (CSV) devuelto por la AEAT. Si todo ha ido bien debe contener un valor distinto de null.

Alfanumérico(100).

QrCode

Imagen en formato mapa de bits (.bmp) codificada en base 64.

Bytes.

Xml

Archivo XML envíado a la AEAT.

String.

Response

Archivo XML de respuesta de la AEAT.

String.

QrCodeUrl

Url del bitmap con el código QR asociado a la factura.

String.

ValidationUrl

Url de validación de factura contenida en el código QR.

String.

FilterSet


El objeto FilterSet se utiliza como parámetro de entrada en la llamada al Endpoint de consulta de envíos. En la siguiente tabla se describe el valor de las propiedades de FilterSet:

Propiedad Descripción
Count

Número de registros a devolver. Su valor por defecto es 5.000.

Entero.

Offset

Offset de registros a devolver. Establece la posición de inicio en la que se va a devolver el número de registros establecidos en la propiedad Count. Por ejemplo, en un conjunto de 10.000 registros, si establecemos el valor de Offset en 5.000, se devolverán los registros del 5.001 al 10.000.

Entero.

OrderClause

Clausula de ordenación. Clausula de ordenación en lenguaje SQL. Por ejemplo 'ORDER BY Created ASC'.

Alfanumérico(200).

Filters

Conjunto de filtros.

Array.

Filter


El objeto Filter representa un filtro a aplicar en una consulta de envíos, y se incluye en la colección Filters del objeto FilterSet. En la siguiente tabla se describen sus propiedades:

Propiedad Descripción
FieldName

Nombre del campo sobre el que operar.

Alfanumérico(64).

Operator

Operador para la comparación: =, LIKE, IN, >...

Alfanumérico(50).

Value

Valor de filtro respecto al cual se aplicará el operador.

Any.

Irene Solutions SL© 2025 Irene Solutions, S.L.
Verifactu