Saltar al contenido principal
Cuando configuras la integración con Stripe Payments sin redirigir al usuario a Stripe Checkout, la información de la que disponemos para hacer la factura es más limitada. En esta sección podrás conocer cómo configurar valores por defecto y cómo usar metadatos para personalizar impuestos y datos del destinatario en cada pago.

Configuración de valores por defecto

Al configurar la integración con Stripe Payments, debes establecer los valores que se aplicarán a los pagos procesados sin Stripe Checkout. Estos valores se usan como base cuando el pago no incluye campos de metadatos que los sobreescriban. Stripe Payments sin Checkout configuracion
  • Impuesto a aplicar por defecto: Puesto que únicamente recibimos el importe total con impuestos incluidos, deberás seleccionar el impuesto a aplicar. Al hacer la factura, calcularemos la base imponible a partir de dicho impuesto.
  • Descripción por defecto: La descripción que aparece en la línea de la factura se obtiene del campo Description del PaymentIntent en Stripe. Si usas la API, es el parámetro description que pasas al crear el PaymentIntent. Si el campo está vacío o no se proporcionó, EasyVerifactu utiliza la descripción por defecto configurada aquí.

Configuración para emitir facturas completas

Por defecto, los pagos sin Checkout generan facturas simplificadas. Si necesitas emitir facturas completas (por ejemplo, en ventas B2B donde el cliente proporciona su NIF), debes configurar tu integración para ello:
  1. Accede a los ajustes de tu integración de Stripe en EasyVerifactu.
  2. Busca la sección Facturas simplificadas y completas.
  3. Selecciona la opción “Emitir factura completa cuando el pedido tenga identificador fiscal”.
  4. Proporciona los datos fiscales del destinatario en cada pago mediante metadatos en el PaymentIntent.

Personalización con metadatos

Si necesitas que cada pago tenga un impuesto diferente al configurado por defecto, o si quieres emitir facturas completas con los datos fiscales del destinatario, puedes enviar esta información como metadatos del PaymentIntent de Stripe.

Campos de metadatos disponibles

Al crear un PaymentIntent desde tu backend, añade los campos necesarios en el objeto metadata:
Campo de metadatosDescripciónObligatorio
ev_tax_ratePorcentaje del impuesto como texto (ej: "21", "10", "4", "0").Sí, junto con ev_tax_name
ev_tax_nameNombre del impuesto (ej: "ES IVA 21%", "ES IVA 10%").Sí, junto con ev_tax_rate
ev_recipient_nameNombre o razón social del destinatario.No
ev_recipient_tax_idNIF, CIF, NIE o número de IVA intracomunitario.No
ev_recipient_countryCódigo de país ISO (ej: ES, FR, DE).No
ev_recipient_addressDirección (línea 1).No
ev_recipient_address_line_2Dirección (línea 2).No
ev_recipient_cityCiudad.No
ev_recipient_postal_codeCódigo postal.No
ev_recipient_emailEmail del destinatario.No
Ejemplo combinando impuesto y datos del destinatario:
const paymentIntent = await stripe.paymentIntents.create({
  amount: 12100, // 121 EUR
  currency: 'eur',
  metadata: {
    // Impuesto
    ev_tax_rate: '21',
    ev_tax_name: 'ES IVA 21%',
    // Destinatario
    ev_recipient_name: 'Acme S.L.',
    ev_recipient_tax_id: 'B12345678',
    ev_recipient_country: 'ES',
    ev_recipient_address: 'Calle Mayor 1',
    ev_recipient_city: 'Madrid',
    ev_recipient_postal_code: '28001',
    ev_recipient_email: 'billing@acme.es'
  }
})
Los campos de metadatos de Stripe tienen un límite de 500 caracteres por valor y un máximo de 50 claves por objeto.

Nombre recomendado para el impuesto

EasyVerifactu identifica cada impuesto por la combinación exacta de nombre y porcentaje. Por ello, recomendamos usar el prefijo del país seguido del tipo de impuesto y el porcentaje: "ES IVA 21%", "ES IVA 10%", "ES IVA 4%". Esta convención tiene dos ventajas:
  • Coincide con los impuestos preconfigurados. EasyVerifactu crea por defecto los impuestos españoles con este formato (ES IVA 21%, ES IVA 10%, ES IVA 4%, ES IVA 0%). Si usas exactamente ese nombre, el impuesto se reconoce automáticamente y el pago se procesa sin intervención. Si usas un nombre diferente (por ejemplo, "IVA 21%"), el sistema lo tratará como un impuesto nuevo y el pedido quedará bloqueado hasta que lo clasifiques manualmente.
  • Evita colisiones entre países. Si en el futuro procesas pagos con impuestos de otros países al mismo porcentaje (por ejemplo, IVA francés al 20% e IVA español al 21%), el prefijo del país garantiza que cada uno se identifique y clasifique de forma independiente.

Clasificación del impuesto

La primera vez que recibamos un pago con un impuesto nuevo (una combinación de nombre y porcentaje que no hayamos visto antes), el pedido quedará bloqueado en tu panel de EasyVerifactu. Necesitarás clasificar el impuesto una única vez, indicando su tipo (IVA, exento, etc.). A partir de ese momento, todos los pagos futuros con el mismo impuesto se procesarán automáticamente. Como se indica arriba, puedes evitar este paso usando los nombres preconfigurados (ES IVA 21%, ES IVA 10%, etc.).

Comportamiento cuando la información está incompleta

Campos de impuesto

Los campos ev_tax_rate y ev_tax_name deben proporcionarse siempre juntos. Si falta uno de ellos, o el valor de ev_tax_rate no es un número válido (por ejemplo, texto, un número negativo, o un campo vacío), EasyVerifactu ignora ambos campos y utiliza el impuesto por defecto configurado en la integración. Dicho de otro modo: la personalización del impuesto solo se aplica cuando ambos campos están presentes y contienen valores válidos. En cualquier otro caso, el pago se procesa con normalidad usando el impuesto por defecto.
El valor "0" es válido para ev_tax_rate y permite crear pagos exentos de impuesto.

Datos del destinatario

Todos los campos ev_recipient_* son individualmente opcionales. Se combinan con la información que ya existe en Stripe siguiendo este orden de prioridad:
  1. Metadatos del PaymentIntent (prioridad máxima)
  2. Datos de facturación del cargo (datos proporcionados por el cliente en el formulario de pago)
  3. Datos del cliente en Stripe (si existe un cliente asociado al pago)
Cada campo se resuelve de forma independiente: si proporcionas ev_recipient_name en los metadatos pero no ev_recipient_email, se usará el nombre de los metadatos y el email del cargo o del cliente.
Excepción para los campos de dirección: los campos de dirección (ev_recipient_address, ev_recipient_city, ev_recipient_postal_code, ev_recipient_country y ev_recipient_address_line_2) se tratan como un bloque. Si proporcionas cualquier campo de dirección en los metadatos, todos los campos de dirección se toman exclusivamente de los metadatos. Los valores de dirección del cargo o del cliente no se combinan. Si necesitas sobreescribir la dirección, asegúrate de incluir todos los campos de dirección relevantes.

Datos insuficientes para factura completa

Cuando el criterio de emisión de tu integración determina que se debe emitir una factura completa (por ejemplo, se detectó un identificador fiscal), pero faltan datos obligatorios como el nombre, la dirección o el código postal del destinatario, el pedido quedará bloqueado en tu panel de EasyVerifactu con un error descriptivo. Podrás completar los datos faltantes manualmente o corregir los metadatos en futuros pagos.