Tax Rates a los tipos impositivos que configuras manualmente. Para el cálculo automático utiliza el nombre Stripe Tax. En esta guía los llamaremos tipos impositivos manuales y Stripe Tax.
Elige cómo indicar el impuesto
Cada pago de un Payment Link genera una sesión de Checkout. Finseed aplica el mismo orden de prioridad en ambos casos. Stripe copia a la sesión los metadatos que has configurado en el enlace. El ejemplo de tipos manuales solo se aplica a sesiones de Checkout creadas mediante la API.
Cómo determina Finseed el impuesto
Finseed comprueba estas fuentes por orden y utiliza la primera que aporta un impuesto válido:- La marca
ev_gift_card. Si el pago está marcado como emisión de un bono polivalente, la operación no está sujeta a IVA y no consultamos ninguna otra fuente. No procesamos el pago si Stripe ha cobrado impuesto en alguna de sus líneas o si la sesión cobra gastos de envío: consulta cómo marcar un pago como venta de tarjeta regalo. - Los metadatos
ev_tax_rateyev_tax_namede la sesión. Si la sesión no contiene ninguna de las dos claves, buscamos el par en el PaymentIntent. Cuando el par es válido, aplicamos ese tipo a todas las líneas. - El impuesto de cada línea. Puede proceder de un tipo impositivo manual o del cálculo de Stripe Tax. Si todos los impuestos de Stripe de la línea llegan con importe cero y con el motivo
not_collecting,not_supportedonot_available, la línea no aporta un impuesto, porque Stripe no lo ha calculado. - La configuración para líneas sin impuesto. Indica si el precio incluye IVA, si la operación está exenta o no sujeta, o si debemos pausar la emisión de la factura para que revises el pedido.
not_collecting, not_supported o not_available. Una línea al 0 % por cualquier otro motivo retiene el pedido. Con Servicios sin tipo elegido, retenemos el pedido. Si llega con un impuesto distinto del IVA español, por ejemplo IGIC o IPSI, retenemos el pedido. Si el impuesto va al 21 %, 10 % o 4 % con un importe distinto de cero pero su nombre no permite saber si es IVA, como «Standard», o incluye una palabra como «no», «sin» o «exento», usamos la clasificación que le diste en Configuración > Impuestos. En una sesión de Checkout en modo suscripción, cada línea cuenta como un servicio, salvo que su producto de Stripe indique que requiere envío. Encontrarás el detalle en Ventas de servicios.
Los ejemplos utilizan la biblioteca de Stripe para Node.js. La variable stripe representa un cliente ya inicializado.
Configurar un tipo impositivo manual con el IVA incluido
Un tipo impositivo manual de Stripe combina un porcentaje y una etiqueta. Lo creas una vez y lo asignas a cada línea. Stripe aplica el porcentaje que has indicado, pero no lo calcula por ti. Es la opción más sencilla si todos tus productos tributan al mismo tipo de IVA. Cuando vendes a particulares en España, el precio suele incluir el impuesto. Crea el tipo una vez y añádelo a cada línea de Checkout.ES IVA 21% para que la configuración sea explícita y fácil de reconocer. Consulta la referencia de metadatos para ver la convención completa de nombres.
El valor inclusive: true indica que el importe ya contiene el impuesto. En el ejemplo, la factura muestra este desglose:
Crea un tipo para cada porcentaje de IVA que utilices, como 21 %, 10 % o 4 %, y asigna el correcto a cada línea.
Calcular los impuestos con Stripe Tax
Stripe Tax calcula el tipo aplicable a partir del producto, la dirección del comprador y tus registros fiscales. Actívalo en la sesión para que Stripe determine el impuesto de cada línea.customer_update: { address: 'auto' }. Stripe Tax necesita esta opción para utilizar la dirección que introduce el comprador.
Indicar el impuesto mediante metadatos
Cuando ya conoces el impuesto y no quieres que Stripe lo calcule, indícalo en la sesión. Finseed aplicará ese tipo a todas las líneas del pago.- Escribe los metadatos al crear la sesión. Finseed los lee cuando Stripe comunica el pago. Si los añades después, no llegan a tiempo y los ignoramos.
- No los utilices en una cesta con distintos tipos de IVA. Finseed aplica un único porcentaje a todas las líneas. Una cesta con un producto al 21 % y un libro al 4 % se facturaría por completo al 21 %.
'21', '10.5' o '0'.
Si el par de la sesión no es válido, lo ignoramos y comprobamos el impuesto de cada línea. En ese caso no consultamos los metadatos del PaymentIntent. El pago no queda bloqueado por este error. Consulta la referencia de metadatos para ver todos los campos y sus reglas de validación.
Cómo factura Finseed una línea al 0 %
En Stripe, una línea al 0 % puede representar situaciones fiscales distintas. Stripe Tax añade un motivo, llamadotaxability_reason, para explicar por qué el cálculo ha dado cero. Una línea puede llevar varios impuestos de Stripe, cada uno con su propio motivo. Finseed utiliza esos motivos para distinguir cada caso.
Si la línea de un servicio que vendes desde la península o Baleares a Canarias, Ceuta o Melilla tiene un importe distinto de cero y llega con
ev_tax_rate: '0' o al 0 % con el motivo standard_rated, la facturamos como no sujeta por reglas de localización cuando tu perfil fiscal indica Contenido digital automático, y retenemos el pedido con cualquier otra respuesta de servicios.
Estos son los motivos más habituales que Stripe puede comunicar:
not_collecting: no tienes un registro fiscal para ese destino, o el producto lleva en Stripe el código fiscal de producto no sujeto (txcd_00000000). Stripe no calcula el impuesto.not_supported: Stripe Tax no calcula impuestos en ese destino, como Canarias, Ceuta y Melilla, o no calcula el de ese producto en ese destino.not_available: Stripe no ha calculado el impuesto.customer_exemptyproduct_exempt: el comprador o el producto está exento.zero_rated: corresponde aplicar un tipo del 0 %.reverse_charge: el comprador declara el IVA, como ocurre en una operación intracomunitaria que cumple los requisitos fiscales.not_subject_to_tax: la venta queda fuera del ámbito del impuesto.standard_rated: corresponde el tipo habitual del producto. Algunos bienes en España pueden tener un tipo del 0 %.
Impuestos en ventas internacionales
Si vendes a particulares de otros países de la UE, indica tu situación en Configuración > Datos de facturación, dentro de Perfil fiscal. Finseed no calcula el tipo impositivo. Stripe o tu integración deben aportar el porcentaje correcto para el destino. Si indicas que no estás registrado en la ventanilla única (OSS), Finseed acepta los tipos españoles y retiene los pagos que llegan con un tipo extranjero. Si indicas que sí lo estás, clasifica la operación como una venta OSS en el país de destino cuando el tipo recibido es uno de los de ese país, y retiene el pago cuando no lo es. Cómo resolver un pago retenido por este motivo está en Pedidos con un IVA que no corresponde al destino. Esta regla describe cómo interpreta Finseed tu configuración. No determina si tienes la obligación fiscal de registrarte o de cobrar el IVA en destino. Para que Finseed reconozca un tipo manual sin pedirte que lo clasifiques, utiliza la misma convención de nombres que en España: país, nombre y porcentaje. Por ejemplo, FR TVA 20% o DE MwSt 19%. Cuando el comprador está fuera de la UE, su país permite clasificar la operación fuera del ámbito del IVA español. Una venta de bienes puede ser una exportación. Una prestación de servicios puede quedar no sujeta por sus reglas de localización. Los metadatos conev_tax_rate: '0' pueden servir para estas ventas cuando todas las líneas comparten el mismo tratamiento. El nombre del impuesto debe quedar clasificado como exportación o como operación no sujeta, según corresponda.
Generar el código con un asistente
Copia este texto en tu asistente de programación para implementar la opción adecuada para tu negocio. El texto incluye la recogida del NIF-IVA para ventas a empresas. Consulta recoger el identificador fiscal para entender ese requisito.Copia este texto para crear sesiones de Stripe Checkout que Finseed pueda facturar correctamente.