VeriFactu y Fiscal

Conectar Stripe con FactuTPV: factura fiscal automática y VeriFactu en un clic

Equipo FactuTPV9 min de lectura
Compartir:
En este artículo

Stripe cobra genial, pero sus recibos no son facturas fiscales españolas

Si cobras suscripciones o pagos puntuales con Stripe, ya sabes cómo funciona: el cargo se ejecuta, Stripe envía un receipt (recibo) al cliente y tú recibes el ingreso. Perfecto para el flujo de caja. Pero tu asesor, tu cliente B2B y la AEAT quieren otra cosa: una factura fiscal completa, con serie, numeración correlativa, NIF del emisor, base imponible, cuota de IVA y, desde 2026, firma VeriFactu en el hash de la cadena.

Los recibos de Stripe no cumplen ninguno de esos requisitos. Son comprobantes de pago, no facturas. Hasta ahora, las opciones eran dos:

  1. Emitir la factura a mano en FactuTPV cada vez que Stripe cobra. Escalable con 5 clientes al mes, inviable con 200.
  2. Activar Stripe Invoicing: emite un PDF bonito, pero sin numeración correlativa válida en España, sin VeriFactu y con la serie que Stripe decide. Tu asesor sigue teniendo que traducirlo a mano al libro de IVA.

La nueva integración Stripe ↔ FactuTPV elimina ese puente manual. Cada invoice.payment_succeeded de Stripe se convierte automáticamente en una Venta con factura F1 fiscalmente válida, numerada en tu serie, firmada VeriFactu, con PDF y email al cliente. En tu gestión y en la de tu asesor aparece como si la hubieras emitido tú en el TPV, porque técnicamente es así.

Qué resuelve la integración de Stripe con FactuTPV

La integración cubre el recorrido completo desde que Stripe confirma el cobro hasta que la factura está depositada en VeriFactu y entregada al cliente:

Antes (Stripe solo)Después (Stripe + FactuTPV)
Recibo de Stripe no fiscalFactura F1 con serie, número, NIF y VeriFactu
IVA sin desglose oficialBase imponible + cuota de IVA correctas (21 %, 10 %, 4 %, 0 %)
Cliente pide factura por emailPDF enviado automáticamente en el momento del cobro
Duplicas en libro de IVA a manoEntrada automática en el libro de IVA y en el modelo 303
Cliente B2B no ve la compra en su gestiónFactura replicada como "Factura Recibida" en su FactuTPV (si también es cliente)
Reembolso = desajuste fiscalRectificativa R1/R5 generada en la misma serie

FactuTPV se come su propio producto: cuando tú te suscribes a un plan de FactuTPV, esta misma integración es la que te genera la factura oficial y te la deja en "Facturas Recibidas" sin que tengas que pedirla.

Es decir, no es una feature teórica: la estás usando en el momento en que pagas tu plan. Si aún no eres cliente, puedes ver cómo es el flujo real entrando en la página principal y revisando los planes.

Flujo automático paso a paso

Esto es lo que ocurre desde que tu cliente paga con Stripe hasta que la factura fiscal está entregada:

  1. Stripe confirma el cobro y emite el evento invoice.payment_succeeded.
  2. Stripe notifica al webhook de FactuTPV firmado con tu clave de integración. El webhook es único por integración, así que desconectar y reconectar rota automáticamente la URL y corta accesos antiguos.
  3. FactuTPV verifica la firma, deduplica el evento y carga tu configuración (serie asignada, TPV, reglas de IVA, auto-email, etc.).
  4. Resuelve el cliente: busca el NIF/CIF en tu base de clientes; si no existe y tienes activado el auto-alta, crea la ficha completa con los datos que Stripe envía.
  5. Calcula IVA correcto: usa el desglose real de Stripe (total_taxes), detecta si el cobro estaba en modo inclusivo o exclusivo y ajusta al tipo español más cercano (21, 10, 4, 0) con tolerancia ±0,5 %. Si el cliente es una empresa de otro país de la UE con VAT válido, aplica 0 % por inversión del sujeto pasivo.
  6. Crea la Venta: serie + número correlativo, líneas con descripción limpia (añade sufijo mensual, trimestral, semestral o anual según el período real cobrado), forma de pago Stripe, referencia al charge_id.
  7. Firma VeriFactu: la Venta entra en la cadena de hash inmutable, se encola y se envía a la AEAT según el scheduler existente del tenant. Cero intervención manual.
  8. Genera PDF profesional A4: la misma plantilla de tus facturas normales, con logo, datos fiscales, desglose de IVA, QR VeriFactu y hash oficial.
  9. Envía email al cliente con el PDF adjunto (si tienes activo el auto-email).
  10. Replica la factura en la sección "Facturas Recibidas" del tenant comprador (si también usa FactuTPV), con el PDF ya adjunto, listo para su asesor.

Todo esto ocurre en menos de 2 segundos desde que Stripe confirma el pago. Si alguno de los pasos falla (por ejemplo, el certificado electrónico de firma caducado), la integración registra el error en el log de eventos y devuelve un 200 a Stripe para que no lo reintente en bucle, mientras tú recibes una alerta por email.

Flujo completo: Stripe confirma pago, webhook dispara FactuTPV, genera Venta F1 con VeriFactu, PDF y email
De un webhook de Stripe a una factura fiscal válida, firmada VeriFactu y entregada al cliente

Cómo activar la integración en 3 minutos

La activación la haces tú, sin intervención del soporte. Necesitas una cuenta Stripe con permisos para crear una restricted API key (cualquier cuenta Stripe estándar vale) y un plan Negocio o Profesional de FactuTPV.

  1. Entra en Ajustes → Integraciones → Stripe desde el panel de FactuTPV.
  2. Crea una Restricted API Key en Stripe con permisos de lectura sobre Customers, Invoices, Charges, Refunds, PaymentIntents, Subscriptions, Prices, Products y TaxRates. Ningún permiso de escritura. La clave sale con prefijo rk_live_... y solo la ves una vez, así que cópiala al portapapeles inmediatamente.
  3. Pega la clave en el campo correspondiente de FactuTPV y haz clic en "Probar conexión". Si todo está bien, verás el nombre de tu cuenta Stripe y el número de clientes disponibles.
  4. Configura el destino fiscal: el TPV al que pertenecen estas ventas, la serie que asigna número correlativo, la regla de IVA por defecto cuando Stripe no envía tax breakdown, y si quieres auto-crear clientes por NIF y auto-enviar el PDF por email.
  5. Copia la URL del webhook que FactuTPV te muestra tras conectar y pégala en Stripe como endpoint de webhook, suscribiendo los eventos invoice.payment_succeeded, charge.refunded, customer.updated y invoice.voided.
  6. Stripe te da un webhook secret (whsec_...). Pégalo en FactuTPV y activa la integración.

Lo único que debes desactivar en Stripe es el envío automático del receipt por email (Settings → Emails → "Email customers about successful payments"). Si lo dejas encendido, el cliente recibirá dos correos: el recibo de Stripe y la factura oficial de FactuTPV. La factura de FactuTPV es la que vale fiscalmente.

En cuestión de un par de minutos estás recibiendo el primer cobro y viendo aparecer la factura correlativa en tu listado de ventas. Si algo falla, cada evento queda registrado en el log con el error exacto, así puedes corregir la configuración sin adivinar.

Qué configurar bien desde el principio: serie, TPV, IVA y auto-email

La integración es potente, pero los cuatro campos de configuración deciden cómo aparecen las facturas en tu contabilidad. Conviene pensarlos antes de pulsar "Activar":

TPV asignado

Cada Venta nace adscrita a un TPV. Si usas FactuTPV sobre todo para tienda física y Stripe sólo para el e-commerce, lo razonable es crear un TPV virtual llamado "Online" o "Stripe" y asignarlo a la integración. Así en los informes diarios distingues ingresos de caja física vs cobro online de un vistazo.

Serie

Puedes reutilizar la serie del TPV asignado (todas las ventas de ese TPV van en un mismo hilo correlativo) o crear una serie específica tipo STRIPE. La primera opción es más limpia contablemente; la segunda es más práctica si tu asesor quiere aislar el canal online.

Regla de IVA por defecto

Stripe envía desglose de IVA si tienes Stripe Tax o TaxRates activos. Si no, FactuTPV usa la regla por defecto que configures aquí. Recomendación para España: 21 % estándar. Para productos digitales o servicios B2B intracomunitarios con NIF-IVA válido, la integración aplica automáticamente 0 % por inversión del sujeto pasivo, así que no necesitas tocar nada.

Auto-email y auto-creación de clientes

Ambos on por defecto. Apágalos sólo si:

  • Auto-email: ya tienes un flujo propio que envía la factura (por ejemplo, desde tu CRM). En ese caso deja el PDF sólo dentro de FactuTPV.
  • Auto-creación de clientes: trabajas con una lista cerrada de clientes y quieres validar manualmente cada alta. Nota: si desactivas esto, cualquier cobro de un cliente que no esté previamente en tu base de datos queda marcado como FAILED(CUSTOMER_NOT_MAPPED) y no emite factura hasta que lo resuelvas.

Quién hace qué después de conectar

Es útil tener claro cómo se reparten las responsabilidades entre las dos plataformas una vez la integración está viva:

TareaStripeFactuTPV
Cobrar la tarjeta o SEPA
Gestionar reintentos de pago fallido
Prevención de fraude
Emitir el recibo (comprobante) al clienteOpcional (apagar)
Emitir la factura fiscal F1 con serie
Firmar en la cadena VeriFactu / AEAT
Generar PDF oficial con QR y hash
Enviar la factura al cliente
Libro de IVA y modelo 303
Rectificativas por reembolso✓ (a partir de charge.refunded)
Replicar factura en "Facturas Recibidas" del comprador✓ (si el comprador también usa FactuTPV)

Resumen: Stripe sigue siendo tu pasarela de pagos. FactuTPV asume absolutamente todo lo fiscal. No hay solapamiento ni doble factura si apagas el receipt de Stripe.

Para quién es esta integración (y para quién no)

La integración brilla especialmente en estos escenarios:

  • SaaS españoles que cobran suscripciones recurrentes con Stripe y necesitan emitir factura a sus clientes cada mes/año con numeración correlativa.
  • E-commerce con cobros en Stripe donde el cliente exige factura B2B inmediata.
  • Formación online y cursos vendidos con suscripción Stripe: la integración genera factura por cada cuota.
  • Servicios profesionales recurrentes (consultoras, agencias, abogacía) que usan Stripe Subscriptions.
  • Cualquier negocio que factura a empresas de otros países UE con VAT válido: la integración detecta y aplica la inversión del sujeto pasivo automáticamente.

Donde no aporta tanto:

  • Negocios que no usan Stripe (para Redsys, Bizum o PayPal habrá integraciones propias en futuras versiones).
  • Cobros puntuales anónimos sin NIF del cliente: en ese caso la integración emite ticket F2, pero si tu modelo es 100 % de este tipo, tu flujo normal de TPV ya resuelve el caso.

Un apunte importante: la integración sólo está disponible en los planes Negocio y Profesional de FactuTPV. Si estás en Inicio o Esencial, verás la página de integraciones pero el botón de conectar lleva a la página de upgrade. Puedes revisar los planes y precios para decidir cuál te encaja.

Qué pasa con reembolsos, devoluciones y bajas a mitad de ciclo

La fiscalidad española no permite anular una factura ya emitida y entregada. La vía correcta es la factura rectificativa, con su propia serie rectificativa y referenciando el documento original.

La integración automatiza este flujo también:

  • Reembolso total en Stripe → FactuTPV genera una rectificativa R1 (o R5 si la original era F2) con importes negativos por las mismas líneas, referenciando la factura original y la stripe_refund_id.
  • Reembolso parcial → rectificativa con las líneas prorrateadas al importe devuelto.
  • Cambio de plan a mitad de ciclo con proration negativa → FactuTPV lo emite como línea de importe negativo en la siguiente factura, exactamente como hace Stripe internamente.

En todos los casos, la rectificativa entra en VeriFactu con su propio hash y es enviada al cliente con PDF por email, igual que una factura normal. Cero trabajo manual para ti o tu asesor.

Próximos pasos

Si ya eres cliente Negocio o Profesional, entra en Ajustes → Integraciones → Stripe y sigue la guía de conexión. En 3 minutos tienes el primer cobro generando factura correlativa VeriFactu.

Si estás valorándolo, el camino más rápido es probar 14 días gratis el plan Negocio, conectar una cuenta Stripe de test y disparar un par de pagos para ver el flujo completo. No hace falta tarjeta para la prueba y al acabar puedes quedarte en el plan Inicio sin perder datos.

Activa la integración Stripe en tu FactuTPV

Convierte cada cobro de Stripe en una factura fiscal F1 con VeriFactu, PDF y email al cliente. Configuración en 3 minutos.

Empezar prueba gratis de 14 días

Preguntas frecuentes

¿Tengo que desactivar la facturación de Stripe para evitar duplicados?

El <em>receipt</em> automático de Stripe (el correo de confirmación de cargo) sí conviene desactivarlo para que el cliente sólo reciba la factura fiscal de FactuTPV. Lo haces en Stripe → Settings → Emails → «Email customers about successful payments». Si usas Stripe Invoicing, puedes dejarlo o apagarlo: la integración no depende de que esté activo, usa los eventos de cobro directamente.

¿Qué pasa con los cobros de Stripe anteriores a activar la integración?

La integración procesa de forma automática todos los cobros nuevos desde el momento en que la activas. Para facturas anteriores, existe una función de <em>backfill</em> (en desarrollo, llegará en la fase 4) que te permitirá seleccionar un rango de fechas y emitir facturas correlativas en retroactivo marcadas como importadas, sin duplicar el envío a VeriFactu (el canal fiscal ya ocurrió en Stripe; FactuTPV sólo replica en tus libros).

¿Funciona con suscripciones mensuales y anuales?

Sí. La integración detecta el período de cada línea y añade automáticamente el sufijo «(mensual)», «(trimestral)», «(semestral)» o «(anual)» a la descripción de la factura, para que quede claro qué ha cobrado. Esto vale para suscripciones recurrentes, pagos puntuales y cambios de plan con prorateo.

¿Cómo gestiona los reembolsos?

Cuando Stripe confirma un <code>charge.refunded</code>, FactuTPV crea automáticamente una factura rectificativa en serie rectificativa, con importes negativos y referencia a la factura original y al <code>stripe_refund_id</code>. La rectificativa entra en VeriFactu y se envía al cliente igual que una factura normal, respetando la inmutabilidad de la cadena fiscal española (la factura original nunca se modifica).

¿Es compatible con VeriFactu y la AEAT?

Sí. Las facturas generadas desde la integración pasan por el mismo pipeline VeriFactu que tus facturas del TPV: firma inmutable, QR, hash encadenado y envío a la AEAT según el scheduler del tenant. El cliente recibe una factura indistinguible de las que emites manualmente.

¿Qué plan de FactuTPV necesito?

La integración con Stripe está disponible en los planes <strong>Negocio</strong> y <strong>Profesional</strong>. En Inicio y Esencial puedes ver la página de integraciones pero el botón de conectar lleva a la página de upgrade. Puedes empezar una prueba gratis de 14 días del plan Negocio para validar la integración antes de comprometerte.

¿Puedo desconectar la integración en cualquier momento?

Sí, desde la misma página de configuración. Al desconectar, se revocan inmediatamente las credenciales de Stripe (la restricted API key se borra cifrada) y la URL del webhook queda inválida (futuros eventos de Stripe responden 410 Gone). Si reconectas más tarde, la integración genera una URL nueva, así que si alguna vez sospechas de accesos no autorizados, basta con desconectar y reconectar para rotarlo todo.

¿Qué datos del cliente guarda FactuTPV desde Stripe?

Los estrictamente necesarios para la factura fiscal: nombre, email, NIF/CIF/VAT, dirección, CP, ciudad, provincia y código de país. Los datos de la tarjeta <strong>nunca</strong> salen de Stripe —FactuTPV sólo almacena el <code>charge_id</code> como referencia. La restricted API key tiene permisos únicamente de lectura en los recursos necesarios, nunca de escritura ni de cobro.

Logo FactuTPV

Equipo FactuTPV

Somos el equipo detrás de FactuTPV, el software TPV con VeriFactu integrado para autónomos, pymes y hostelería en España. Escribimos sobre facturación electrónica, gestión de negocio y las últimas novedades fiscales para ayudarte a estar siempre al día.

Contactar con nosotros →

Sigue leyendo

Artículos relacionados

Plan gratuito permanente

¿Listo para probarlo?

Empieza gratis con FactuTPV. VeriFactu incluido, sin tarjeta de crédito, sin compromiso.