Integrar con la API Invoicing
Aprende a crear y enviar una factura con código.
El Dashboard es la vía más habitual para crear facturas. Si quieres automatizar este proceso, puedes hacer la integración con la API. Diseña una integración completa y funcional con Invoicing siguiendo nuestro modelo de integración.
Nota
No es necesario que te integres con la API Payments para integrarte con la API Invoicing.
Configurar Stripe
Usa nuestras bibliotecas oficiales para acceder a la API de Stripe:
Crear un producto
Para crear un producto, ingresa su nombre:
Crear un precio
Precios define cuánto cobrar por los productos y con qué frecuencia. Esto incluye cuánto cuesta el producto, qué moneda usar y el intervalo de facturación (cuando el precio es de una suscripción). Al igual que sucede con los productos, si tienes pocos precios, es preferible gestionarlos en el Dashboard. Usa el importe unitario para expresar los precios en la unidad más baja de la moneda, en este caso, centavos (USD 10 son 1,000 centavos, por lo que el importe unitario es 1000).
Nota
Como alternativa, si no necesitas crear un precio para tu producto, puedes usar el parámetro amount durante la creación de la partida de factura.
Para crear el precio y asignarlo al producto, especifica el ID de producto, el importe unitario y la moneda. En el siguiente ejemplo, el precio del producto “Gold Special“ es de USD 10:
Crear un cliente
El objeto Customer representa al cliente que compra el producto y es necesario para generar la factura. Para crear un cliente con name
, email
y description
, agrega el siguiente código y reemplaza los valores por los que correspondan:
Después de crear el cliente, guarda su id
en tu base de datos para poder usarlo después. En el próximo paso, por ejemplo, el ID del cliente se utiliza para crear una factura.
Nota
Busca los parámetros adicionales en Crear un cliente.
Crear una factura
Establece el atributo collection_method en send_
. Para que Stripe marque una factura como vencida, debes agregar el parámetro days_until_due. Cuando envías una factura, Stripe se la envía al cliente por correo electrónico junto con las instrucciones de pago.
A continuación, debes crear un ítem de factura indicando el id
del cliente, el price
del producto y la invoice
del ID de la factura.
La cantidad máxima de ítems de factura es 250.
Si estableces auto_
en false
, puedes seguir modificando la factura hasta su finalización. Para finalizar una factura en borrador, usa el Dashboard, envíasela al cliente o págala. También puedes utilizar la API Finalize:
Nota
Si creaste la factura por error, puedes anularla. También puedes marcar una factura como incobrable.
Gestionar eventos posteriores al pago
Stripe envía un evento invoice.paid cuando se completa el pago de una factura. Escucha este evento para garantizar un cumplimiento confiable. Si su integración se basa solo en una devolución de llamada del lado del cliente, el cliente podría perder la conexión antes de que se ejecute la devolución de llamada, lo que provocaría que se le cobre al cliente sin notificar a tu servidor. Si configuras tu integración para escuchar eventos asincrónicos, también podrás aceptar diferentes tipos de métodos de pago con una sola integración.
Nota
Los pagos de facturas exitosos activan tanto un evento invoice.paid como invoice.payment_succeeded. Ambos tipos de eventos contienen los mismos datos de factura, por lo que solo es necesario escuchar a uno de ellos para recibir una notificación de pagos de facturas exitosos. La diferencia es que los eventos invoice.
se envían para pagos de facturas exitosos, pero no se envían cuando marcas una factura como paid_out_of_band. Por otro lado, los eventos invoice.
se activan tanto para pagos exitosos como para pagos fuera de banda. Debido a que invoice.
cubre ambas opciones, generalmente recomendamos escuchar invoice.
en lugar de invoice.
.
Utiliza la herramienta webhook del Dashboard o sigue el inicio rápido del webhook para recibir estos eventos y ejecutar acciones como, por ejemplo, enviar un correo electrónico de confirmación del pedido a tu cliente, registrar la venta en una base de datos o iniciar un flujo de envío.
Además de administrar el evento invoice.
, recomendamos administrar otros dos eventos si se cobran pagos con el Payment Element:
Evento | Descripción | cliente |
---|---|---|
payment_intent.processing | Se envía cuando el cliente inició correctamente el pago, pero el pago aún no se ha completado. Este evento se envía con mayor frecuencia cuando se inicia un débito bancario. Más adelante, lo sigue un evento invoice. o invoice. . | Envía al cliente una confirmación del pedido que indique que el pago está pendiente. En caso de productos digitales, quizá te convenga completar el pedido antes de esperar que se complete el pago. |
invoice.payment_failed | Se envía cuando el cliente intentó pagar una factura, pero el pago falló. | Si un pago pasó de processing a payment_ , ofrécele al cliente otro intento de pago. |