Suscripciones
AM gestiona el ciclo de vida de suscripciones de Stripe para cuentas, para que puedas enfocarte en precios y acceso en lugar de manejar webhooks.
Crea sesiones de checkout, permite que los clientes administren sus planes y mantén el acceso de la cuenta sincronizado con Stripe.
Flujo de Suscripción
Endpoints
| Endpoint | Propósito |
|---|---|
POST /api/accounts/:account_id/subscriptions/stripe/checkout-session | Iniciar checkout de suscripción |
POST /api/accounts/:account_id/subscriptions/stripe/portal-session | Abrir portal de cliente |
POST /api/accounts/:account_id/subscriptions/stripe/checkout-session-sync | Sincronizar checkout con suscripción |
POST /api/accounts/:account_id/subscriptions/sync | Sincronizar suscripciones desde Stripe |
POST /api/accounts/:account_id/subscriptions/change | Cambiar plan o precios |
POST /api/accounts/:account_id/subscriptions/cancel | Cancelar suscripción |
GET /api/accounts/:account_id/subscriptions | Listar suscripciones |
GET /api/accounts/:account_id/subscriptions/features | Listar features activas |
GET /api/accounts/:account_id/subscriptions/identity | Obtener identidad de cliente Stripe |
POST /api/applications/:application_id/subscriptions/stripe/webhook | Webhook de Stripe |
Sesión de Checkout
Crea una sesión de Stripe Checkout para nuevas suscripciones:
// Request
{
price_id: "price_...",
success_url: "https://app.example.com/success",
cancel_url: "https://app.example.com/cancel"
}
// Response
{
url: "https://checkout.stripe.com/..."
}
Redirige a los usuarios a la URL devuelta. Después del pago, Stripe redirige a tu URL de éxito.
Portal de Cliente
Permite a los clientes autogestionar:
- Actualizar método de pago
- Ver facturas
- Cancelar suscripción
- Cambiar plan
// Request
{
return_url: "https://app.example.com/settings";
}
// Response
{
url: "https://billing.stripe.com/...";
}
Identidad de Suscripción
Cada cuenta tiene una identidad de suscripción que vincula la cuenta con el cliente de Stripe. Se usa para resolver webhooks y sincronizar el estado de facturación.
Eventos de Webhook
AM maneja webhooks de Stripe y reintenta cuando fallan:
| Evento | Acción |
|---|---|
checkout.session.completed | Vincular cliente y crear suscripción |
customer.subscription.* | Sincronizar datos de suscripción |
invoice.paid | Sincronizar factura + actualizar acceso |
invoice.payment_failed | Actualizar ventana de acceso |