Pagos recurrentes
Facturación cripto recurrente sin perseguir a cada pagador.
Intervalos fijos, periodos de prueba opcionales y un ciclo de estados que ya conoces. Elige cómo se cobra cada ciclo: un enlace alojado que el pagador abre, o una aprobación on-chain que OrcaRail cobra automáticamente.
Dos métodos de cobro
Elige el método de cobro al crear la suscripción. Los enlaces de pago son el valor por defecto. El cobro automático requiere una aprobación on-chain única y solo funciona en EVM y Solana.
Por defecto
Enlaces de pago
OrcaRail crea un enlace de checkout alojado para cada ciclo de facturación y puede enviarlo por correo al pagador.
Cobro on-chain
Cobro automático
El pagador aprueba una vez. En cada ciclo el proceso de facturación cobra el importe del periodo sin que el pagador haga nada.
Qué aprueba realmente el pagador
El cobro automático es un permiso de billetera, no una tarjeta guardada. El pagador lo concede una vez, ve el importe y el intervalo antes de firmar, y puede retirarlo cuando quiera sin contactarte.
EVM
El pagador fija un allowance ERC-20 para la dirección del spender de la suscripción. OrcaRail usa transferFrom en cada periodo.
Solana
El pagador delega la autoridad del token SPL al spender. OrcaRail cobra el importe del periodo usando esa delegación.
Revocación
El pagador retira el allowance o la delegación on-chain cuando quiera. Avisar también a OrcaRail cambia la suscripción a enlaces de pago en lugar de dejar que falle el siguiente cobro.
El cobro automático está migrando a un spender totalmente no custodial: un contrato público SubscriptionHub en EVM y un programa Anchor en Solana. El flujo del pagador no cambia; solo cambia la dirección del spender. Consulta la introducción no custodial.
Ciclo de estados
Los estados de facturación que ya conoces, adaptados a la liquidación on-chain.
- trialing
- En periodo de prueba. No se requiere pago hasta que termine.
- active
- Facturando con normalidad. Cada ciclo se cobra con el método elegido.
- past_due
- Un pago del ciclo falló o venció. Los reintentos siguen hasta alcanzar el límite.
- paused
- En pausa — por ejemplo cuando termina una prueba y no hay método de pago.
- canceled
- Cancelada de inmediato, al final del periodo o tras agotar los reintentos.
- completed
- Se han facturado todos los ciclos de total_cycles.
Eventos de webhook
Cada transición llega como un webhook firmado, así tu base de datos nunca tiene que consultar en bucle.
subscription.created
Se creó una suscripción.
subscription.payment_link.created
Se creó un enlace de pago para el ciclo.
subscription.payment_link.paid
Se pagó un ciclo — el enlace se liquidó o el cobro automático tuvo éxito.
subscription.payment_link.payment_failed
Falló el cobro automático del ciclo.
subscription.trial_will_end
Recordatorio enviado tres días antes de que termine una prueba.
subscription.past_due
La suscripción pasó a past_due.
Míralo funcionar antes de escribir código
La demo crea una suscripción real y recorre el flujo de aprobación de principio a fin.
