Pagos recurrentes
Cobros cripto recurrentes sin tarjeta guardada
Todos los productos de suscripción que has usado guardan un medio de pago y lo cobran. Aquí no hay nada que guardar. Cada suscriptor recibe una dirección de depósito permanente derivada de tu monedero, y la llegada de su pago es lo que renueva el periodo: no se almacena nada que pueda cobrarse sin él, ni puede filtrarse nada que permita a otro cobrarle.
Cómo ocurre realmente una renovación
Todo el ciclo es de envío, nunca de cobro. Lee esta sección y sabrás exactamente qué hace el sistema, porque no hay mucho más.
- 01
Una dirección permanente por suscriptor
Al crear la suscripción, el suscriptor recibe una dirección de depósito derivada de tu propio monedero, y no cambia entre periodos. Puede guardarla, automatizar el envío desde su monedero o pagar manualmente cada periodo. Nunca le pides credenciales ni almacenas ninguna.
- 02
Un reloj de periodo, no un intento de cobro
Una suscripción lleva el inicio y el fin de su periodo actual. Al terminar no se intenta nada: sin reintentos, sin gestión de impagos, sin cobro fallido. El periodo simplemente vence si no llega un pago, y es un pago lo que lo hace avanzar.
- 03
Llega el pago, se evalúa la renovación
Cuando el dinero llega a esa dirección, se evalúa según el estado de la suscripción. Si el periodo había vencido o estaba pendiente, cuenta como renovación y recibes el estado exacto del importe —pagado, pagado de menos o pagado de más— para que tu aplicación decida qué acceso concede. Un pago que llega tarde se evalúa como renovación al llegar, no se descarta.
- 04
Una suscripción nueva empieza sin acceso
Las suscripciones empiezan pendientes, no activas. El acceso comienza cuando se detecta el primer pago, de modo que no existe ninguna ventana en la que alguien tenga una suscripción activa sin haber pagado. Tu aplicación debe tratar «pendiente» como «todavía sin derecho».
Qué pasa con el dinero que llega a un periodo ya pagado
Se registra como crédito de ese suscriptor. Tú decides qué hacer con él: aplicarlo al siguiente periodo o dejarlo como extra. En cualquier caso se te informa, en lugar de tener que cuadrar una sorpresa más adelante.
El crédito es contabilidad, no custodia. Los fondos ya están en tu propia dirección; el saldo de crédito es una cifra contable que describe lo que llegó, no un saldo que guardemos por ti. No hay nada que retirar, porque no hay nada guardado.
Los webhooks que recibe tu aplicación
El estado de una suscripción solo sirve si tu aplicación se entera. Estos son los eventos publicados hoy, en el orden en que ocurren a lo largo de un periodo.
- subscription.renewed
- Se evaluó un pago frente a una suscripción pendiente o vencida. Incluye el estado del importe —pagado, pagado de menos o pagado de más— junto con las cantidades y tu propia referencia del suscriptor, para que tu aplicación decida qué desbloquea.
- subscription.expiring_soon
- El periodo actual vence dentro del plazo de aviso que configures. Este es el enganche para tu propio correo de recordatorio, enviado antes de perder nada.
- subscription.expired
- El periodo venció sin pago. No se cobró a nadie ni se intentó nada; la suscripción simplemente dejó de estar al corriente, y tu aplicación debe retirar el acceso.
- subscription.credit_added
- Llegó un pago a una suscripción cuyo periodo actual ya estaba totalmente pagado, y se registró como crédito en lugar de tratarse como renovación.
Cada webhook de suscripción va firmado, se entrega con reintentos y lleva tu propia referencia externa del suscriptor, así que quien lo recibe nunca tiene que adivinar de quién se trata.
Cómo funciona lo recurrente sin tarjeta guardada
Todo esto se deriva de no tener un medio de pago guardado. Diseña teniéndolo en cuenta y el modelo funciona.
- No puedes cobrar a un suscriptor. No hay medio de pago almacenado ni domiciliación, así que cada periodo exige que el suscriptor envíe, que es exactamente por lo que nada puede cobrarse sin él.
- Un suscriptor que se olvida simplemente vence. El webhook de vencimiento próximo existe para que puedas recordárselo, pero el recordatorio es tuyo y la decisión sigue siendo suya.
- Un plan con precio en cripto se mueve con el mercado entre periodos. Ponle precio en una stablecoin si quieres que el importe signifique lo mismo el mes que viene.
- No hay contracargos ni reversiones. Un reembolso es un pago que devuelves tú, en tus propios términos, desde tu propio monedero.
- Conceder y retirar el acceso es tarea de tu aplicación. Unheld te dice qué pasó y cuándo; no se coloca delante de tu producto.
Preguntas
¿Puede Unheld cobrar el pago automáticamente cada mes?
No, y no es un descuido. No hay tarjeta ni mandato guardado, así que no se puede cobrar nada: el suscriptor envía a su dirección de depósito permanente y ese pago renueva el periodo. Quien quiera despreocuparse puede automatizar la transferencia desde su propio monedero, lo que mantiene la iniciativa de su lado y no del nuestro.
¿Qué pasa si un suscriptor paga tarde?
El pago se evalúa como renovación al llegar, no se rechaza por tardío. Recibes entonces el webhook de renovación y decides si el nuevo periodo cuenta desde el pago o desde el calendario original. El dinero nunca queda varado por llegar después de una fecha.
¿Y si pagan un importe equivocado?
Se te dice exactamente cuál fue. Una renovación lleva un estado de importe —pagado, pagado de menos o pagado de más— junto con las cifras, para que tu aplicación conceda el acceso completo, lo retenga o registre el sobrante como crédito. Nada se redondea ni se absorbe en silencio.
¿Cómo cancela un suscriptor?
No pagando. No hay mandato que revocar, tarjeta que eliminar ni ticket de soporte necesario para detener el dinero: el siguiente periodo simplemente vence y la suscripción termina. También puedes terminarla tú en cualquier momento.
Prueba un ciclo completo en testnet
Crea un plan, suscribe a un cliente de prueba, paga la dirección y observa cómo llega el webhook de renovación, todo en una testnet gratuita y antes de mover dinero real.
Empieza gratisPrecios · Enlaces de pago · No custodial · Respuestas claras.