Cómo conectar Holded con Stripe
Cobros Stripe contabilizados en Holded sin Excel ni reconciliación manual.
Por Juan Cantón Rodríguez · Actualizado el
Tiempo de implantación · 4-7 días laborables
El problema
Stripe es excelente cobrando: enlace de pago, recurrencia, gestión de tarjetas. Pero la factura legal y los impuestos los llevas en Holded, y la integración nativa entre ambos solo sirve para cobrar facturas que ya existen: un pago que entra por Checkout, un enlace de pago o una suscripción no genera ninguna factura en Holded. Así que alguien acaba descargando el informe de Stripe, buscando cada cliente y creando facturas a mano, y luego cuadrando payouts que llegan netos de comisiones. Y si Stripe también envía sus propias facturas al cliente, acabas con dos documentos y dos numeraciones para la misma venta.
PropuestaLa solución
Cada pago Stripe (one-off, suscripción, link de pago, payment element) genera la factura correspondiente en Holded con el cliente, el IVA y la serie correctos. Los refunds disparan facturas rectificativas. Las comisiones Stripe se contabilizan como gasto en su cuenta correspondiente. En los pagos en divisas, la factura lleva el tipo de cambio fiscal y el cobro se concilia con el tipo que aplicó Stripe. Idempotencia por cobro, no solo por evento: ni los reintentos de webhook de Stripe ni dos eventos del mismo pago generan una segunda factura.
Qué automatizamos
- PaymentIntent succeeded → factura Holded con cliente, IVA y serie correctas
- Renovación de suscripción cobrada → factura en la serie de recurrentes que definas
- Stripe Checkout / Payment Link → factura tras succeeded
- Refund Stripe (total o parcial) → factura rectificativa Holded
- Stripe fee → asiento de gasto en la cuenta contable que definas
- Multidivisa: tipo fiscal del Banco de España en la factura y tipo de Stripe para conciliar el banco
- Pagos fallidos → aviso por email, Slack o CRM, sin emitir factura hasta que lo decidas
- Customer Portal: cambios de plan reflejados en la siguiente factura
- Tax IDs de Stripe → NIF/VIES en Holded con validación intracomunitaria
Casos de uso típicos
Perfiles en los que la integración Holded ↔ Stripe suele encajar y qué cambia con ella. Son ejemplos ilustrativos, no clientes concretos.
SaaS B2B con suscripciones en Stripe
Antes: Cada renovación mensual obliga a alguien a crear la factura a mano en Holded.
Después: Cada renovación cobrada genera su factura en la serie de recurrentes. Administración solo mira los cobros fallidos.
Ecommerce DTC cobrando con Stripe + Klarna
Antes: Muchos pagos pequeños, reembolsos parciales por devoluciones y descuentos por código.
Después: Factura emitida al confirmarse el cobro y rectificativa por el importe exacto de cada reembolso parcial.
Consultoría con cobros internacionales en USD
Antes: Pagos en USD se facturaban al tipo del día del banco, generando descuadre con cobro real.
Después: El cobro se concilia con el tipo de Stripe y la factura lleva el tipo fiscal. La diferencia de cambio queda contabilizada, no perdida.
Qué cambia exactamente
El día a día sin la integración y con ella, lado a lado.
Sin la integración
- CSV mensual de Stripe abierto en Excel y limpiado a mano
- Horas cada mes creando a mano las facturas de los pagos de Stripe
- Refunds parciales mal reflejados o ignorados
- Comisiones Stripe sin contabilizar como gasto
- Multidivisa con desfases EUR/USD
Con la integración
- Webhook Stripe → factura Holded en segundos
- Cero admin para pagos exitosos, solo dunning de fallos
- Rectificativas parciales automáticas con importe exacto
- Fees Stripe como asiento de gasto contable
- Multidivisa con el tipo fiscal correcto y la diferencia de cambio registrada
Cómo lo construimos
Endpoint webhook firmado de Stripe (verificación HMAC con secret) que filtra solo los events relevantes: payment_intent.succeeded, charge.refunded, invoice.payment_succeeded, customer.subscription.updated. Cola persistida BullMQ, worker idempotente que deduplica por event.id y además por el PaymentIntent o la factura de Stripe de origen (una renovación dispara invoice.payment_succeeded y payment_intent.succeeded a la vez y no debe crear dos facturas), llamadas a API REST de Holded con backoff. Toda la lógica de mapeo (qué Stripe Product → qué Holded item, qué serie según moneda o tipo de cobro) en config versionada. Si Holded está caído, reintentamos durante 24 h; si pasado eso falla, alerta por email/Slack.
¿Qué conectores hay para Holded y Stripe?
Todas las opciones que existen, no solo la nuestra. Si tu caso lo resuelve un módulo de 50 €, cógelo: te lo decimos aquí antes de que nos escribas.
Integración nativa de Holded con Stripe
Se activa gratis desde Holded Store. Añade Stripe como forma de pago para que tus clientes paguen con tarjeta las facturas desde el portal de cliente, y sincroniza los movimientos de Stripe como una pasarela en Tesorería, de forma automática cada 24 horas o a mano. Si la factura nace en Holded y Stripe solo sirve para cobrarla, con esto suele bastar y no nos necesitas.
Dónde se queda corto: No crea facturas a partir de los cobros de Stripe ni da de alta contactos: la propia ayuda de Holded remite a Zapier para eso. Tampoco guarda la tarjeta del cliente para cobros automáticos. La comisión de cada cobro se cuadra a mano contra una cuenta puente, según la guía de Holded.
Striptu
Crea en Holded la factura de cada cobro de Stripe con el desglose de IVA y los datos del cliente, y se la envía. Admite suscripciones y cobros en varias divisas, sin programar nada.
Dónde se queda corto: Según su propia web, todavía no emite facturas rectificativas automáticas: los reembolsos siguen yendo a mano.
Zapier
Es la vía que propone la propia Holded para lo que su integración no hace. Tiene disparadores de Stripe (nuevo cobro, reembolso, disputa, cambios de suscripción) y acciones de Holded para crear el contacto, la factura, la rectificativa y registrar el cobro. Va bien con poco volumen y casos sencillos.
Dónde se queda corto: Cada caso especial (reembolso parcial, otra divisa, cliente con NIF intracomunitario) es una rama más del zap que alguien tiene que mantener. Entre sus acciones de Holded no hay ninguna para asientos ni movimientos de tesorería, y evitar facturas duplicadas queda de tu cuenta.
Make
Tiene módulos de Stripe completos (cobros, reembolsos, payouts, facturas) y una app de Holded para contactos, productos y pagos.
Dónde se queda corto: La app de Holded en Make no trae módulos de facturas. Para facturar hay que usar su llamada genérica a la API, que en la práctica ya es programar.
n8n con n8n-nodes-holded (nuestro nodo)
n8n trae de serie un disparador de Stripe, y nuestro nodo comunitario para Holded, verificado por n8n y open source, cubre la API v2 de Holded: facturas, rectificativas, cobros, contactos, tesorería y asientos. Encaja si ya usas n8n o quieres el flujo en tu propio servidor.
Dónde se queda corto: Es una pieza, no una integración hecha. La lógica de IVA, divisas, reembolsos, disputas y duplicados la tienes que montar y mantener tú.
Integración a medida contra las API de Stripe y Holded
Lo que queda fuera de los anteriores: rectificativas parciales al céntimo, disputas, comisiones llevadas a su cuenta, payouts desglosados para conciliar contra el banco, varias divisas, suscripciones con prorrateos y volumen alto con reintentos idempotentes.
Qué se rompe al conectar Holded con Stripe
Los fallos que aparecen de verdad, casi siempre semanas después de dar la integración por buena.
- 01
La integración nativa cobra, pero no factura
Es el malentendido más común. Activar Stripe en Holded Store te deja cobrar facturas con tarjeta y ver los movimientos en Tesorería, pero un pago que entra por un enlace de pago, un Checkout o una suscripción de Stripe no genera ninguna factura en Holded. Si no lo cubre otra pieza, esa venta no existe en tu facturación.
- 02
Stripe paga neto y en lotes
Un payout no es una venta: es la suma de varios cobros menos las comisiones y menos los reembolsos, y en España llega por defecto a los 3 días hábiles. Si no se descompone, ni las facturas, ni las comisiones, ni lo que entra en el banco cuadran entre sí. Con la integración nativa, la comisión se ajusta a mano cobro a cobro.
- 03
Un reembolso no te devuelve la comisión
Stripe no devuelve la comisión del cobro original, ni en reembolsos totales ni en parciales. La rectificativa va por el importe devuelto, pero el gasto de la comisión se queda. Y como en Holded una factura aprobada no se puede modificar ni borrar, cualquier corrección pasa por rectificativa.
- 04
Una disputa no es un reembolso
Cuando se abre, Stripe retira de tu saldo el importe en disputa más una comisión que no devuelve aunque ganes, y mientras siga abierta no puedes reembolsar ese pago. El proceso tarda de 2 a 3 meses y el importe final puede no coincidir con el cobro si hubo cambio de divisa. Perder una disputa tampoco equivale por sí solo a una devolución a efectos de IVA: cómo reflejarla lo decide tu asesor, no el conector.
- 05
El tipo de cambio de Stripe no es el del IVA
Si cobras en dólares, Stripe convierte a euros con su propio tipo. Para la base imponible del IVA, la ley pide el tipo vendedor del Banco de España vigente en el devengo. Uno cuadra con el banco y el otro con Hacienda, y la diferencia es una diferencia de cambio que hay que contabilizar.
- 06
Dos eventos de Stripe para el mismo cobro
Una renovación de suscripción dispara a la vez invoice.paid y payment_intent.succeeded. Si la integración escucha los dos, salen dos facturas, y deduplicar por el identificador del evento no lo evita porque son eventos distintos. Además Stripe reintenta cada webhook fallido hasta 3 días: hay que deduplicar por cobro, no por evento.
- 07
IVA de otros países de la UE (OSS)
Si vendes a consumidores de otros países de la UE y pasas de 10.000 € al año, aplicas el IVA del país del cliente. Holded aplica el impuesto por país solo en las ventas que entran por sus integraciones de tienda online. En una factura creada por API, el impuesto es el que le mande la integración, así que el país del cliente tiene que viajar desde Stripe.
- 08
Dos facturas para la misma venta
Stripe Billing, Checkout y los enlaces de pago pueden emitir y enviar sus propias facturas al cliente. Si además se crea la factura en Holded, el cliente recibe dos documentos con dos numeraciones distintas. Hay que decidir cuál es la factura legal y apagar la otra.
Preguntas frecuentes
¿Y los pagos en USD u otras divisas?
Guardamos los dos tipos: el que aplica Stripe al convertir el cobro, que es el que cuadra con lo que llega a tu banco, y el tipo vendedor del Banco de España del día del devengo, que es el que pide la ley para la base imponible del IVA. La diferencia entre ambos queda registrada como diferencia de cambio en vez de esconderse en un descuadre.
¿Funciona con Stripe Subscriptions y Stripe Billing?
Sí. Cada renovación cobrada genera su factura en Holded, en la serie que definas para recurrentes (no usamos las facturas recurrentes automáticas de Holded, para no facturar dos veces). En los cambios de plan copiamos las líneas de la factura de Stripe, así que el prorrateo es el mismo que calcula Stripe.
¿Cómo se manejan los chargebacks?
Cuando Stripe notifica una disputa, la registramos y te avisamos, pero no tocamos la factura: mientras está abierta, Stripe retiene el importe y cobra su comisión. Si la ganas, el dinero vuelve y no hay nada que corregir. Si la pierdes, dejamos preparado en borrador el documento que decida tu asesor (rectificativa o tratamiento como impagado), porque en Holded una factura aprobada ya no se puede modificar ni borrar.
¿Stripe Connect (marketplace) está soportado?
Se puede, pero no hay una respuesta única: depende del tipo de cargo de Connect que uses y de quién vende a efectos de IVA, tú o cada vendedor. Lo analizamos antes de presupuestar y lo dejamos por escrito, porque de eso depende si facturas la venta entera o solo tu comisión.
¿NIF intracomunitario en Stripe?
Sí. Stripe permite guardar Tax IDs en el Customer. Los leemos y validamos contra VIES en el momento del cobro. Si es válido B2B intracomunitario, IVA 0%; si no, tipo local del país.
¿Y los pagos fallidos / dunning?
Los reintentos de cobro los gestiona Stripe. Nosotros te avisamos de cada pago fallido (email, Slack o tu CRM, como HubSpot o Pipedrive) para que comercial vea el riesgo de baja. Si una cuota fallida tiene que facturarse igualmente lo decides con tu asesor, y lo configuramos así.
Holded vs el resto. Sin marketing.
Si todavía no tienes claro si Holded es la herramienta correcta para tu pyme, estas son las comparativas honestas con las alternativas más comunes en España.
Holded vs Quipu
Facturación y contabilidad simplificada para autónomos y pymes pequeñas
Leer comparativavsHolded vs FacturaDirecta
Facturación online simple para autónomos y micropymes
Leer comparativavsHolded vs Contasimple
Facturación y contabilidad enfocada en autónomos y pymes españolas
Leer comparativaIntegraciones relacionadas
Otras conexiones de la misma categoría que Stripe y las que comparten plataforma con esta.
Integración NetSuite Stripe. Pagos, reembolsos, payouts y suscripciones de Stripe conciliados en NetSuite, con revenue schedules y cuadre automático contra el banco.
Integración Odoo Stripe. Stripe y Odoo conciliados: pagos, reembolsos, payouts y suscripciones en tu contabilidad open source.
Integración Holded PayPal. Cobros PayPal contabilizados en Holded con IVA, fees y multidivisa correctos.
¿Quieres conectar varios SaaS a la vez? Ver pack "Proyecto completo"
¿Hablamos de tu integración con Stripe?
Llamada de 30 minutos sin compromiso. Salimos con alcance y precio.