{"id":442,"date":"2026-09-07T03:50:39","date_gmt":"2026-09-07T01:50:39","guid":{"rendered":"https:\/\/itcons.app\/conector-stripe\/2026\/09\/07\/verifactu-archivo-registros-firmados-en-stripe\/"},"modified":"2026-09-07T03:50:39","modified_gmt":"2026-09-07T01:50:39","slug":"verifactu-archivo-registros-firmados-en-stripe","status":"publish","type":"post","link":"https:\/\/itcons.app\/conector-stripe\/2026\/09\/07\/verifactu-archivo-registros-firmados-en-stripe\/","title":{"rendered":"VeriFactu: archivo de registros firmados en Stripe"},"content":{"rendered":"\n<p><strong>Si facturas con <a href=\"https:\/\/stripe.com\/payments\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Stripe<\/a>, no basta con guardar la factura en PDF.<\/strong> Yo tendr\u00eda listo un archivo que una <strong>XML firmados<\/strong>, <strong>PDF con QR<\/strong>, <strong>respuestas de la <a href=\"https:\/\/sede.agenciatributaria.gob.es\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">AEAT<\/a><\/strong>, <strong>logs del sistema<\/strong> y los <strong>IDs de Stripe<\/strong> de cada cobro, factura, abono o rectificaci\u00f3n.<\/p>\n<p>En pocas palabras, esto es lo que dejar\u00eda atado desde el d\u00eda 1:<\/p>\n<ul>\n<li><strong>Qu\u00e9 guardar:<\/strong> XML de alta, anulaci\u00f3n y rectificativa; PDF conforme; acuses de AEAT en VERI*FACTU; y registro de eventos.<\/li>\n<li><strong>C\u00f3mo ordenarlo:<\/strong> carpetas por <strong>a\u00f1o, mes, serie y n\u00famero<\/strong>, con estados como <em>pendiente<\/em>, <em>aceptado<\/em>, <em>aceptado-con-errores<\/em> y <em>rechazado<\/em>.<\/li>\n<li><strong>C\u00f3mo enlazarlo con Stripe:<\/strong> guardar <code>invoice.id<\/code>, <code>payment_intent.id<\/code>, <code>charge.id<\/code>, <code>customer.id<\/code>, <code>credit_note.id<\/code>, <code>refund.id<\/code> y, si aplica, <code>subscription.id<\/code>.<\/li>\n<li><strong>Qu\u00e9 revisar:<\/strong> numeraci\u00f3n sin huecos, cadena <strong>SHA-256<\/strong>, QR, NIF, base imponible y firma.<\/li>\n<li><strong>Cu\u00e1nto tiempo conservarlo:<\/strong> <strong>4 a\u00f1os<\/strong> por criterio fiscal y <strong>6 a\u00f1os<\/strong> por criterio mercantil.<\/li>\n<li><strong>C\u00f3mo protegerlo:<\/strong> copias <strong>diarias<\/strong> en dos ubicaciones y acceso por roles.<\/li>\n<\/ul>\n<p>Hay una diferencia que cambia todo: en <strong>VERI*FACTU<\/strong> el registro se remite a la AEAT en tiempo real (similar al funcionamiento del <a href=\"https:\/\/itcons.app\/conector-stripe\/ticketbai\/\" style=\"display: inline;\">conector Stripe TicketBai<\/a>); en <strong>NO VERI*FACTU<\/strong> yo debo custodiar los XML firmados con su cadena hash intacta. <em>Ese punto marca c\u00f3mo archivo, c\u00f3mo valido y c\u00f3mo respondo ante una revisi\u00f3n.<\/em><\/p>\n<p>Si quiero encontrar un expediente en segundos, necesito que cada registro se pueda buscar por <strong>factura<\/strong>, <strong>pago<\/strong>, <strong>cliente<\/strong>, <strong>serie y n\u00famero<\/strong> o <strong>ID <a href=\"https:\/\/sede.agenciatributaria.gob.es\/Sede\/iva\/sistemas-informaticos-facturacion-verifactu.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">VeriFactu<\/a><\/strong>. Y si Stripe genera un abono o una anulaci\u00f3n, el enlace con la factura original debe quedar guardado <strong>en ambos lados<\/strong>.<\/p>\n<p><strong>Mi idea base ser\u00eda simple:<\/strong> un archivo fiscal ordenado, trazable y exportable en ZIP, con todo lo que pide una comprobaci\u00f3n sin tener que reconstruir nada a mano despu\u00e9s.<\/p>\n<figure>         <img decoding=\"async\" src=\"https:\/\/assets.seobotai.com\/undefined\/6a9e00b7180d85018c31ae8f-1788743524614.jpg\" alt=\"Archivo VeriFactu con Stripe: Estructura, Metadatos y Trazabilidad\" style=\"width:100%;\"><figcaption style=\"font-size: 0.85em; text-align: center; margin: 8px; padding: 0;\">\n<p style=\"margin: 0; padding: 4px;\">Archivo VeriFactu con Stripe: Estructura, Metadatos y Trazabilidad<\/p>\n<\/figcaption><\/figure>\n<h2 id=\"2-estructura-de-carpetas-para-xml-firmados-pdfs-registros-y-mensajes-de-la-aeat\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">2. Estructura de carpetas para XML firmados, PDFs, registros y mensajes de la <a href=\"https:\/\/sede.agenciatributaria.gob.es\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">AEAT<\/a><\/h2>\n<p>Una vez tengas claro qu\u00e9 documentos debes conservar, toca decidir <strong>d\u00f3nde guardarlos<\/strong> y <strong>c\u00f3mo nombrarlos<\/strong> para que una inspecci\u00f3n no se convierta en una b\u00fasqueda eterna. Lo m\u00e1s sensato es separarlo desde el primer d\u00eda por tipo de archivo.<\/p>\n<h3 id=\"21-carpetas-principales-recomendadas\" tabindex=\"-1\">2.1 Carpetas principales recomendadas<\/h3>\n<p>La estructura base para un archivo Stripe-VeriFactu separa cuatro tipos de contenido en carpetas independientes:<\/p>\n<table style=\"width:100%;\">\n<thead>\n<tr>\n<th>Ruta<\/th>\n<th>Contenido<\/th>\n<th>Para qu\u00e9 sirve<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>\/verifactu\/records\/xml\/<\/code><\/td>\n<td>XML firmados enviados a la AEAT<\/td>\n<td>Archivo fiscal del alta<\/td>\n<\/tr>\n<tr>\n<td><code>\/verifactu\/invoices\/pdf\/<\/code><\/td>\n<td>PDFs con el QR obligatorio y el texto \u00abVeriFactu\u00bb<\/td>\n<td>Copia para el cliente<\/td>\n<\/tr>\n<tr>\n<td><code>\/verifactu\/logs\/<\/code><\/td>\n<td>Registros de eventos: accesos, errores y actualizaciones<\/td>\n<td>Trazabilidad del sistema<\/td>\n<\/tr>\n<tr>\n<td><code>\/verifactu\/aeat\/<\/code><\/td>\n<td>Mensajes de env\u00edo y respuesta de la AEAT<\/td>\n<td>Prueba de env\u00edo y respuesta<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Esta separaci\u00f3n hace que localizar un expediente por factura, pago o cliente sea mucho m\u00e1s simple. Adem\u00e1s, ayuda cuando toca revisar, filtrar o exportar documentaci\u00f3n.<\/p>\n<p>Con las carpetas ya divididas, el siguiente paso es dar a cada expediente una ruta y un nombre que no dejen lugar a dudas.<\/p>\n<h3 id=\"22-convenciones-de-nombre-y-anidado-por-ano-serie-y-estado\" tabindex=\"-1\">2.2 Convenciones de nombre y anidado por a\u00f1o, serie y estado<\/h3>\n<p>Dentro de cada carpeta principal, usa la estructura <code>AAAA\/MM\/Serie\/N\u00famero\/<\/code>. Este orden cronol\u00f3gico viene muy bien para detectar huecos en la secuencia num\u00e9rica, algo que importa porque la numeraci\u00f3n debe ser correlativa y sin saltos. Tambi\u00e9n conviene que la ruta coincida con el identificador interno del registro, para que apunte de forma directa a la capa de metadatos.<\/p>\n<p>Para los nombres de archivo, un patr\u00f3n como <code>SERIE-NUMERO_FECHA_NIF-RECEPTOR.pdf<\/code> permite reconocer el documento sin tener que abrir la base de datos. Es de esas cosas que parecen peque\u00f1as, pero cuando buscas una factura concreta entre cientos o miles de archivos, se nota.<\/p>\n<p>Dentro de cada serie, mant\u00e9n subcarpetas de estado:<\/p>\n<ul>\n<li><strong><code>\/pendiente\/<\/code><\/strong><\/li>\n<li><strong><code>\/aceptado\/<\/code><\/strong><\/li>\n<li><strong><code>\/aceptado-con-errores\/<\/code><\/strong><\/li>\n<li><strong><code>\/rechazado\/<\/code><\/strong><\/li>\n<\/ul>\n<p>As\u00ed, el sistema puede mover cada registro desde <code>\/pendiente\/<\/code> a <code>\/aceptado\/<\/code> en cuanto llegue la respuesta de la AEAT. Y de ese modo, cada expediente queda listo para exportarse sin perder la trazabilidad.<\/p>\n<h3 id=\"23-exportaciones-zip-y-copias-de-seguridad-periodicas\" tabindex=\"-1\">2.3 Exportaciones ZIP y copias de seguridad peri\u00f3dicas<\/h3>\n<p>Para una inspecci\u00f3n, prepara archivos ZIP que incluyan el XML, el PDF y la respuesta de la AEAT de cada factura. La exportaci\u00f3n no sirve solo para \u201csacar una copia\u201d. Sirve para conservar y mover un expediente completo sin romper el hilo documental.<\/p>\n<p>Establece copias peri\u00f3dicas en dos ubicaciones distintas. Antes de exportar, valida estos datos: <strong>NIF, base imponible, QR y hash<\/strong>. Si falta uno solo, el paquete queda incompleto y puede no ser v\u00e1lido ante la AEAT.<\/p>\n<p>Con la estructura ya fijada, el siguiente paso es unir cada expediente con los IDs de Stripe mediante un <a href=\"https:\/\/itcons.app\/conector-stripe\/\" style=\"display: inline;\">conector Stripe Verifactu<\/a> y con sus datos fiscales.<\/p>\n<h6 id=\"sbb-itb-b01fb3c\" class=\"sb-banner\" style=\"display: none;color:transparent;\">sbb-itb-b01fb3c<\/h6>\n<h2 id=\"3-modelo-de-metadatos-que-vincula-los-registros-verifactu-con-facturas-pagos-y-clientes-de-stripe\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">3. Modelo de metadatos que vincula los registros <a href=\"https:\/\/sede.agenciatributaria.gob.es\/Sede\/iva\/sistemas-informaticos-facturacion-verifactu.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">VeriFactu<\/a> con facturas, pagos y clientes de <a href=\"https:\/\/stripe.com\/payments\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Stripe<\/a><\/h2>\n<p>Con la estructura de carpetas ya cerrada, aparece un problema menos visible, pero igual de serio: saber si el XML que tienes delante corresponde <em>exactamente<\/em> a ese pago de Stripe y a ese cliente. Ah\u00ed entra el modelo de metadatos. Sin ese modelo, el archivo acaba siendo un conjunto de ficheros sueltos, sin un nexo claro entre ellos.<\/p>\n<h3 id=\"31-campos-fiscales-y-de-trazabilidad-obligatorios\" tabindex=\"-1\">3.1 Campos fiscales y de trazabilidad obligatorios<\/h3>\n<p>Cuando los ficheros ya est\u00e1n ordenados por tipo y fecha, cada expediente necesita metadatos comunes para poder localizarlo y comprobarlo. Cada registro debe incluir emisor, receptor, serie, n\u00famero, fecha e impuestos. La trazabilidad, por su parte, se apoya en la huella SHA-256, el hash previo y la marca de tiempo en formato ISO 8601.<\/p>\n<p>Los campos de trazabilidad obligatorios son:<\/p>\n<ul>\n<li>Huella SHA-256 del registro actual<\/li>\n<li>Huella SHA-256 del registro inmediatamente anterior<\/li>\n<li>Identificador del sistema emisor<\/li>\n<li>Fecha y hora en ISO 8601<\/li>\n<\/ul>\n<h3 id=\"32-identificadores-de-stripe-que-hay-que-guardar-en-cada-registro\" tabindex=\"-1\">3.2 Identificadores de Stripe que hay que guardar en cada registro<\/h3>\n<p>El archivo debe recoger los identificadores del objeto de Stripe que dio origen al registro. As\u00ed puedes unir el registro con la operaci\u00f3n de Stripe sin dar rodeos.<\/p>\n<table style=\"width:100%;\">\n<thead>\n<tr>\n<th>Campo de metadatos<\/th>\n<th>Origen en Stripe<\/th>\n<th>Funci\u00f3n en el archivo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>stripe_invoice_id<\/code><\/td>\n<td><code>invoice.id<\/code><\/td>\n<td>Enlace principal con la factura<\/td>\n<\/tr>\n<tr>\n<td><code>payment_intent_id<\/code><\/td>\n<td><code>payment_intent.id<\/code><\/td>\n<td>Vincula el registro con la transacci\u00f3n<\/td>\n<\/tr>\n<tr>\n<td><code>charge_id<\/code><\/td>\n<td><code>charge.id<\/code><\/td>\n<td>Referencia al cargo concreto<\/td>\n<\/tr>\n<tr>\n<td><code>customer_id<\/code><\/td>\n<td><code>customer.id<\/code><\/td>\n<td>Permite buscar todos los registros de un cliente<\/td>\n<\/tr>\n<tr>\n<td><code>credit_note_id<\/code> \/ <code>refund_id<\/code><\/td>\n<td><code>credit_note.id<\/code> \/ <code>refund.id<\/code><\/td>\n<td>Trazabilidad de rectificativas y abonos<\/td>\n<\/tr>\n<tr>\n<td><code>subscription_id<\/code><\/td>\n<td><code>subscription.id<\/code><\/td>\n<td>\u00datil en facturaci\u00f3n recurrente<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Con estos IDs guardados, ya puedes pasar al siguiente paso: <a href=\"https:\/\/itcons.app\/conector-stripe\/manual\/\" style=\"display: inline;\">enlazar devoluciones y rectificativas<\/a> con el registro original.<\/p>\n<h3 id=\"33-enlace-bidireccional-entre-stripe-y-el-archivo\" tabindex=\"-1\">3.3 Enlace bidireccional entre Stripe y el archivo<\/h3>\n<p>Guarda en los campos <code>metadata<\/code> de la factura de Stripe el identificador VeriFactu, el estado de env\u00edo a la AEAT y la URL del PDF con el QR obligatorio. El <a href=\"https:\/\/itcons.app\" style=\"display: inline;\">Stripe Verifactu Connector<\/a> automatiza este proceso y mantiene el v\u00ednculo al d\u00eda en ambos sentidos.<\/p>\n<p>Con ese enlace guardado por las dos partes, la siguiente secci\u00f3n aplica las reglas de cadena y b\u00fasqueda.<\/p>\n<h2 id=\"4-reglas-de-trazabilidad-para-facturas-abonos-y-documentos-rectificativos\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">4. Reglas de trazabilidad para facturas, abonos y documentos rectificativos<\/h2>\n<p>Con los metadatos bien enlazados, el siguiente paso es dejar el archivo listo para una revisi\u00f3n de principio a fin. La idea es simple: que una revisi\u00f3n interna o una inspecci\u00f3n pueda seguir la secuencia de registros sin huecos ni choques entre datos. A partir de esos metadatos, toca encadenar cambios y ubicar cada expediente sin margen de duda.<\/p>\n<h3 id=\"41-cadena-de-hashes-y-referencias-al-registro-anterior\" tabindex=\"-1\">4.1 Cadena de hashes y referencias al registro anterior<\/h3>\n<p>Cada registro debe guardar su propia huella SHA-256, la del registro anterior y la referencia a la serie, el n\u00famero y la fecha del registro previo. Tambi\u00e9n debe conservar la marca temporal exacta del registro: d\u00eda, hora, minuto y segundo. Esta cadena sirve para detectar cambios o borrados durante una auditor\u00eda y, adem\u00e1s, hace m\u00e1s f\u00e1cil localizar el expediente por factura, pago o cliente.<\/p>\n<p>Si el hash recalculado no coincide con el almacenado, el registro no es v\u00e1lido. As\u00ed de claro. Con la cadena cerrada, ya se puede pasar a separar bien abonos, anulaciones y rectificativas.<\/p>\n<h3 id=\"42-enlace-entre-abonos-rectificativas-y-el-registro-original\" tabindex=\"-1\">4.2 Enlace entre abonos, rectificativas y el registro original<\/h3>\n<p>Cuando Stripe genera un abono o una anulaci\u00f3n, crea el <a href=\"https:\/\/itcons.app\/albaranes\" style=\"display: inline;\">documento fiscal<\/a> que toque y enl\u00e1zalo con la factura original. La secuencia siempre sigue el mismo orden: factura original \u2192 abono o anulaci\u00f3n \u2192 documento rectificativo \u2192 enlace expl\u00edcito al registro original con serie, n\u00famero, fecha y huella.<\/p>\n<p>Para que luego no toque rebuscar, guarda el <code>invoice_id<\/code> de Stripe y el identificador del registro original junto con la huella VeriFactu y el estado AEAT. Conviene guardar ese v\u00ednculo en ambos sentidos, tanto en los metadatos del archivo como en Stripe. Un flujo automatizado con webhooks ayuda a generar el XML y el PDF rectificativos sin intervenci\u00f3n manual.  Para lograr esta automatizaci\u00f3n, se puede emplear la <a href=\"https:\/\/itcons.app\/api-de-itcons-app\" style=\"display: inline;\">API de itcons.app<\/a> para el intercambio de datos.<\/p>\n<h3 id=\"43-busqueda-por-factura-pago-o-cliente\" tabindex=\"-1\">4.3 B\u00fasqueda por factura, pago o cliente<\/h3>\n<p>Un archivo bien montado permite localizar cualquier expediente desde varios puntos de entrada. Esta tabla muestra qu\u00e9 se puede recuperar seg\u00fan el criterio de b\u00fasqueda:<\/p>\n<table style=\"width:100%;\">\n<thead>\n<tr>\n<th>Criterio de b\u00fasqueda<\/th>\n<th>Elementos recuperados del archivo<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong><code>stripe_invoice_id<\/code><\/strong><\/td>\n<td>XML firmado, PDF con QR, respuesta de la AEAT, log de eventos<\/td>\n<\/tr>\n<tr>\n<td><strong><code>payment_intent_id<\/code><\/strong> \/ <strong><code>charge_id<\/code><\/strong><\/td>\n<td>Factura original y rectificativa asociada, si existe<\/td>\n<\/tr>\n<tr>\n<td><strong><code>customer_id<\/code><\/strong> \/ NIF<\/td>\n<td>Historial fiscal del cliente<\/td>\n<\/tr>\n<tr>\n<td>Serie + n\u00famero<\/td>\n<td>XML firmado, posici\u00f3n en la cadena de hashes, hash anterior y posterior<\/td>\n<\/tr>\n<tr>\n<td>ID de registro VeriFactu<\/td>\n<td>Estado de verificaci\u00f3n en la AEAT, marca temporal de env\u00edo<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Guarda el NIF legal junto al <code>customer_id<\/code>. Con esa trazabilidad cerrada, el siguiente paso es validar exportaciones, firmas y copias de seguridad.<\/p>\n<h2 id=\"5-exportacion-verificacion-y-lista-de-comprobacion-final\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">5. Exportaci\u00f3n, verificaci\u00f3n y lista de comprobaci\u00f3n final<\/h2>\n<p>Con la trazabilidad ya cerrada, queda la \u00faltima parte: <strong>mantener el archivo sano con el paso del tiempo<\/strong>. Exportar, verificar y controlar accesos no es algo que se haga una vez y ya est\u00e1. Conviene tratarlo como una rutina y, si puedes, dejarlo automatizado desde el primer d\u00eda.  Puedes ver c\u00f3mo funciona en esta <a href=\"https:\/\/itcons.app\/demo-verifactu-1.html\" style=\"display: inline;\">demo del conector Stripe\u2013VeriFactu<\/a>.<\/p>\n<h3 id=\"51-comprobaciones-periodicas-de-archivos-y-firmas\" tabindex=\"-1\">5.1 Comprobaciones peri\u00f3dicas de archivos y firmas<\/h3>\n<p>Con el archivo ya trazado, toca revisarlo y conservar su integridad.<\/p>\n<p>Cada env\u00edo a la AEAT debe figurar como aceptado. Si no lo est\u00e1, el sistema tiene que reintentar el env\u00edo de forma autom\u00e1tica y marcar ese registro con una incidencia.<\/p>\n<p>Tambi\u00e9n conviene programar revisiones autom\u00e1ticas semanales para comprobar tres cosas: que no haya saltos en la numeraci\u00f3n, que la cadena de hashes SHA-256 siga intacta y que el PDF mantenga el formato legal correcto.<\/p>\n<p>Si el sistema genera firma electr\u00f3nica, revisa adem\u00e1s que esa firma siga siendo verificable. Parece un detalle menor, pero no lo es: una firma que no se puede validar deja el expediente cojo.<\/p>\n<h3 id=\"52-copias-de-seguridad-y-control-de-acceso\" tabindex=\"-1\">5.2 Copias de seguridad y control de acceso<\/h3>\n<p>Las copias de seguridad deben hacerse <strong>cada d\u00eda<\/strong> y mantenerse en dos copias, en ubicaciones f\u00edsicas y proveedores distintos.<\/p>\n<p>En cuanto al acceso, aplica un modelo por roles. Dicho de forma simple: solo el responsable fiscal o el asesor autorizado deber\u00edan poder consultar o exportar los registros. Para proteger la integridad y la confidencialidad, restringe tambi\u00e9n el acceso a los certificados digitales y conserva el log de eventos junto con las copias.<\/p>\n<p>Sobre los plazos de conservaci\u00f3n, hay dos referencias que no conviene perder de vista:<\/p>\n<ul>\n<li><strong>4 a\u00f1os<\/strong> seg\u00fan la <a href=\"https:\/\/www.boe.es\/buscar\/pdf\/2003\/BOE-A-2003-23186-consolidado.pdf\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">Ley General Tributaria<\/a> <\/li>\n<li><strong>6 a\u00f1os<\/strong> seg\u00fan el <a href=\"https:\/\/www.boe.es\/buscar\/act.php?id=BOE-A-1885-6627\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" style=\"display: inline;\">C\u00f3digo de Comercio<\/a> <\/li>\n<\/ul>\n<h3 id=\"53-primeros-pasos-para-poner-en-marcha-el-archivo\" tabindex=\"-1\">5.3 Primeros pasos para poner en marcha el archivo<\/h3>\n<p>Antes de emitir la primera factura, deja fijadas estas cinco reglas operativas:<\/p>\n<ol>\n<li><strong>Estructura de carpetas estable<\/strong>: usa la jerarqu\u00eda ya definida de a\u00f1o, mes, serie y n\u00famero, y mantenla coherente para recuperar cualquier expediente con rapidez.<\/li>\n<li><strong>Metadatos obligatorios desde el primer registro<\/strong>: desde el primer registro, guarda los metadatos fiscales y de trazabilidad obligatorios.<\/li>\n<li><strong>Vinculaci\u00f3n con identificadores de Stripe<\/strong>: cada registro debe incluir <code>stripe_invoice_id<\/code> y <code>payment_intent_id<\/code>.<\/li>\n<li><strong>Cadena de hashes activa<\/strong>: no incorpores ning\u00fan registro sin la huella anterior; si falla la cadena, no incorpores el registro al archivo.<\/li>\n<li><strong>\u00cdndice maestro exportable en una base de datos externa<\/strong>: enlaza IDs, archivos y estado AEAT.<\/li>\n<\/ol>\n<p>El <a href=\"https:\/\/itcons.app\" style=\"display: inline;\">Stripe VeriFactu Connector<\/a> automatiza captura, firma, env\u00edo y PDF con QR sin tocar el flujo de Stripe.<\/p>\n<h2 id=\"faqs\" tabindex=\"-1\" class=\"sb h2-sbb-cls\">FAQs<\/h2>\n<h3 id=\"que-diferencia-practica-hay-entre-verifactu-y-no-verifactu-al-archivar-registros\" tabindex=\"-1\" data-faq-q>\u00bfQu\u00e9 diferencia pr\u00e1ctica hay entre VERIFACTU y NO VERIFACTU al archivar registros?<\/h3>\n<p>La diferencia principal est\u00e1 en <strong>qui\u00e9n se hace cargo de la conservaci\u00f3n y la trazabilidad<\/strong> frente a la AEAT.<\/p>\n<p>En <strong>VERI*FACTU<\/strong>, los registros se env\u00edan de forma autom\u00e1tica, segura e inmediata a la sede electr\u00f3nica.<\/p>\n<p>En <strong>NO VERI*FACTU<\/strong>, ese env\u00edo no se hace en l\u00ednea. Por eso, el empresario debe guardar los registros y poder acreditar ante una inspecci\u00f3n su <strong>integridad, legibilidad y trazabilidad inalterable<\/strong>.<\/p>\n<h3 id=\"que-pasa-si-falta-un-id-de-stripe-o-se-rompe-la-cadena-hash\" tabindex=\"-1\" data-faq-q>\u00bfQu\u00e9 pasa si falta un ID de Stripe o se rompe la cadena hash?<\/h3>\n<p>Si falta un ID de Stripe o se rompe la cadena hash, se pierde la <strong>integridad<\/strong> y la <strong>trazabilidad<\/strong> que exige VeriFactu. Y ah\u00ed empieza el problema.<\/p>\n<p>Los registros deben ser inalterables. No puede haber omisiones ni cambios posteriores. Si falta una pieza, aunque parezca peque\u00f1a, el registro deja de cumplir lo que pide la norma.<\/p>\n<p>Adem\u00e1s, cualquier fallo en la secuencia o la ausencia de datos ligados al cobro impide generar el c\u00f3digo QR reglamentario y cumplir con la remisi\u00f3n a la AEAT.<\/p>\n<h3 id=\"como-recupero-rapido-una-rectificativa-vinculada-a-una-factura-original\" tabindex=\"-1\" data-faq-q>\u00bfC\u00f3mo recupero r\u00e1pido una rectificativa vinculada a una factura original?<\/h3>\n<p>Accede a la ficha de la <strong>factura original<\/strong> desde tu panel de Stripe. Desde ah\u00ed podr\u00e1s ver qu\u00e9 factura se ha modificado y encontrar su <strong>rectificativa<\/strong> gracias a la estructura de datos que conecta ambos registros.<\/p>\n<p>En esa misma ficha tambi\u00e9n puedes revisar el estado de la comunicaci\u00f3n con la Agencia Tributaria, comprobar el c\u00f3digo VeriFactu y descargar el PDF con el c\u00f3digo QR.<\/p>\n<h2>Publicaciones de blog relacionadas<\/h2>\n<ul>\n<li><a href=\"\/blog\/verifactu-renovaciones-automaticas-en-stripe\" style=\"display: inline;\">VeriFactu para renovaciones autom\u00e1ticas en Stripe<\/a><\/li>\n<li><a href=\"\/blog\/verifactu-por-entidad-en-stripe-billing\" style=\"display: inline;\">VeriFactu por entidad en Stripe Billing<\/a><\/li>\n<li><a href=\"\/blog\/comparativa-opciones-cumplir-verifactu-uso-stripe\" style=\"display: inline;\">Comparativa de opciones para cumplir con verifactu si uso stripe<\/a><\/li>\n<li><a href=\"\/blog\/datos-cliente-para-verifactu\" style=\"display: inline;\">7 datos de cliente para VeriFactu<\/a><\/li>\n<\/ul>\n<p><script async type=\"text\/javascript\" src=\"https:\/\/app.seobotai.com\/banner\/banner.js?id=6a9e00b7180d85018c31ae8f\"><\/script><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"\u00bfQu\u00e9 diferencia pr\u00e1ctica hay entre VERIFACTU y NO VERIFACTU al archivar registros?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"La diferencia principal est\u00e1 en qui\u00e9n se hace cargo de la conservaci\u00f3n y la trazabilidad frente a la AEAT. En VERI*FACTU, los registros se env\u00edan de forma autom\u00e1tica, segura e inmediata a la sede electr\u00f3nica. En NO VERI*FACTU, ese env\u00edo no se hace en l\u00ednea. Por eso, el empresario debe guardar los registros y poder acreditar ante una inspecci\u00f3n su integridad, legibilidad y trazabilidad inalterable.\"}},{\"@type\":\"Question\",\"name\":\"\u00bfQu\u00e9 pasa si falta un ID de Stripe o se rompe la cadena hash?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Si falta un ID de Stripe o se rompe la cadena hash, se pierde la integridad y la trazabilidad que exige VeriFactu. Y ah\u00ed empieza el problema. Los registros deben ser inalterables. No puede haber omisiones ni cambios posteriores. Si falta una pieza, aunque parezca peque\u00f1a, el registro deja de cumplir lo que pide la norma. Adem\u00e1s, cualquier fallo en la secuencia o la ausencia de datos ligados al cobro impide generar el c\u00f3digo QR reglamentario y cumplir con la remisi\u00f3n a la AEAT.\"}},{\"@type\":\"Question\",\"name\":\"\u00bfC\u00f3mo recupero r\u00e1pido una rectificativa vinculada a una factura original?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Accede a la ficha de la factura original desde tu panel de Stripe. Desde ah\u00ed podr\u00e1s ver qu\u00e9 factura se ha modificado y encontrar su rectificativa gracias a la estructura de datos que conecta ambos registros. En esa misma ficha tambi\u00e9n puedes revisar el estado de la comunicaci\u00f3n con la Agencia Tributaria, comprobar el c\u00f3digo VeriFactu y descargar el PDF con el c\u00f3digo QR.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gu\u00eda para organizar y enlazar XML firmados, PDFs con QR y metadatos Stripe para cumplir VeriFactu y auditor\u00edas.<\/p>\n","protected":false},"author":1,"featured_media":440,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[15],"tags":[],"class_list":["post-442","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-verifactu"],"featured_image_src":"https:\/\/itcons.app\/conector-stripe\/files\/2026\/09\/image_6316aff504d0936416d8f8e1acdfa9a3-600x400.jpeg","featured_image_src_square":"https:\/\/itcons.app\/conector-stripe\/files\/2026\/09\/image_6316aff504d0936416d8f8e1acdfa9a3-600x600.jpeg","author_info":{"display_name":"Itcons.app | Parte de trabajo digital","author_link":"https:\/\/itcons.app\/conector-stripe\/author\/itconsaoo\/"},"_links":{"self":[{"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/posts\/442","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/comments?post=442"}],"version-history":[{"count":0,"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/posts\/442\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/media\/440"}],"wp:attachment":[{"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/media?parent=442"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/categories?post=442"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/itcons.app\/conector-stripe\/wp-json\/wp\/v2\/tags?post=442"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}