Skip to main content
Cuando creas una suscripción, Fintoc genera un Invoice por cada ciclo de facturación. Una invoice representa el monto que tu cliente debe por un período dado. Con charge_automatically, Fintoc intenta cobrar la invoice usando el método de pago inscrito. Con send_invoice, la invoice queda open para que la cobres tú. Fintoc crea las invoices de la suscripción por ti. También puedes crear tus propias invoices por montos que la suscripción no cubre, y cobrar cualquier invoice abierta bajo demanda. Para detalles completos sobre invoices, consulta el Invoice object.

Invoices en el flujo de suscripción

Después del evento checkout_session.finished, Fintoc crea la primera invoice y cobra el método de pago inscrito. Con charge_automatically, la suscripción queda incomplete hasta que ese primer pago tiene éxito, y ahí pasa a active. Maneja los siguientes eventos relacionados a invoices junto con los eventos posteriores a la sesión en Crea suscripciones para tu cliente: Mes 1: Cuando se crea la suscripción, Fintoc genera la primera invoice y la finaliza sin la ventana de una hora en draft. Luego Fintoc cobra el método de pago inscrito. En caso de éxito, recibes invoice.created, seguido de invoice.finalized, invoice.payment_succeeded, invoice.paid y payment_intent.succeeded. Mes 2 en adelante: En cada renovación de ciclo de facturación, según el billing_cycle_anchor de la suscripción, Fintoc crea una nueva invoice en estado draft. Después de 1 hora, Fintoc finaliza la invoice, la pasa a open y cobra el método de pago inscrito. Usa esa hora para ajustar la invoice antes de que Fintoc la cobre. En caso de éxito, recibes invoice.finalized, invoice.payment_succeeded e invoice.paid. En caso de falla, recibes invoice.payment_failed. Fintoc finaliza las invoices de una suscripción por ti. Una invoice que creas tú queda en draft hasta que la finalices, como se describe en Cobra un monto fuera del ciclo de facturación.

Recuperar un pago fallido

Cuando un cobro automático falla, Fintoc emite invoice.payment_failed. Para recuperar el pago, envía el hosted_invoice_url de la invoice a tu cliente por tu propio canal, como email o WhatsApp. La página alojada permite que tu cliente pague usando los métodos de pago habilitados en la cuenta de tu organización. Un pago exitoso crea un payment_intent en la invoice y salda la deuda. El método de pago inscrito de la suscripción sigue siendo válido, y Fintoc cobra el siguiente ciclo automáticamente. El hosted_invoice_url queda disponible en el objeto Invoice una vez que la invoice alcanza el estado open. Para más detalles, consulta el Invoice object.
Una invoice acepta solo un pago a la vez. Si abres el hosted_invoice_url mientras un cobro automático está en curso, la página muestra que hay un pago de invoice en progreso y el enlace de pago queda deshabilitado. Fintoc vuelve a habilitar el enlace de pago si el cobro automático falla.

Cobra un monto fuera del ciclo de facturación

Fintoc emite las invoices de la suscripción por ti. También puedes crear una invoice tú mismo por un monto que la suscripción no cubre. Úsala para un ajuste puntual, un servicio extra o un cobro fuera del calendario de facturación. Créala para el mismo customer, con el método de pago inscrito durante el checkout como default_payment_method.
fintoc-invoice-creation-diagram
Servidor
Node
Fintoc devuelve la invoice en estado draft, con subscription en null. La invoice le cobra al customer, no a la suscripción, así que no cambia el ciclo de facturación ni el monto de la suscripción. Finaliza la invoice para pasarla a open y cobrar el default_payment_method. A diferencia de las invoices de una suscripción, que Fintoc finaliza por su cuenta después de una hora en draft, una invoice que creas tú queda en draft hasta que la finalices. Servidor
Después de finalizarla, la invoice se comporta como una invoice de suscripción. Emite los mismos eventos invoice.*, guarda el mismo historial en payments y expone el mismo hosted_invoice_url como respaldo cuando un cobro falla. También puedes reintentar un cobro fallido con Pagar una invoice, contra el método de pago inscrito o contra otro método activo del mismo customer. Para el flujo on-demand completo, incluyendo cómo cobrar una invoice a un cliente sin método de pago inscrito, consulta Guardar un método de pago para cobros futuros.

Cobrar las invoices tú mismo en vez de cobrar automáticamente

Con collection_method en send_invoice, Fintoc deja de hacer cobros automáticos. Fintoc igual emite una invoice por período de facturación, pero cada invoice queda open y tú decides cómo cobrarla. Tienes tres formas de saldar una invoice abierta:
  1. Enviarle a tu cliente el link de pago que está en hosted_invoice_url y dejar que pague en la página alojada por Fintoc.
  2. Cobrar la invoice a pedido con Pagar una invoice, usando el payment method asociado a la suscripción.
  3. Cobrar la plata fuera de Fintoc, por transferencia o en efectivo, y marcar la invoice como pagada. Fintoc lo registra con external_payment en true.
Como send_invoice nunca cobra automáticamente, no requiere payment method. Para crear una suscripción así con la API, sin pasar a tu cliente por un enrolamiento de checkout, consulta Emite invoices sin cobrar. Igual puedes asociar un payment method después, lo que te permite cobrar invoices a pedido. Fintoc no contacta a tu cliente por ningún canal. Contactarlo es tu responsabilidad, cualquiera sea la opción que uses. Cobrar las invoices tú mismo tiene tres consecuencias:
  • Las invoices impagas se acumulan. Cada período de facturación agrega una invoice, y cada una se salda por separado.
  • La suscripción nace active, y eso no significa que tu cliente haya pagado. Con send_invoice no hay cobro que esperar, así que Fintoc se salta el estado incomplete que usa con charge_automatically. Sigue el status de cada invoice para saber qué te debe tu cliente.
  • Solo Actualizar una suscripción cambia el modo de cobro. Asociar un payment method no cambia la suscripción a charge_automatically.
Los eventos son distintos según quién cobra. Consulta Eventos de pago de una invoice.

Probar la creación de invoice con estado draft

Para probar una invoice que se crea en estado draft, crea una suscripción con un line item usando el nombre de producto sandbox_draft: Servidor
Node
Fintoc crea el Checkout Session:
Fintoc crea la invoice en estado draft, de modo que puedas editar sus ítems con el endpoint Add lines antes de que la invoice salga de draft.