DocumentacionUpgrade y portal de facturacion

Upgrade y portal de facturacion

Stripe Checkout para cambiar de plan y Customer Portal para gestionar pagos.

Mejora tu tenant mediante Stripe Checkout o gestiona una suscripcion existente en el Stripe Customer Portal. Ambos flujos requieren autenticacion JWT del panel (JwtAuthGuard + contexto de tenant).

Flujo de suscripcion

  1. Listar planes disponibles

    GET /billing/plans
    Authorization: Bearer <jwt>
    

    Devuelve planes activos con limites mensuales de email, tokens IA y price IDs de Stripe.

  2. Iniciar checkout

    POST /billing/checkout
    Authorization: Bearer <jwt>
    X-Tenant-Id: clxxxxxxxx
    Content-Type: application/json
    
    {
      "planSlug": "pro",
      "successUrl": "https://tu-app.com/billing/success",
      "cancelUrl": "https://tu-app.com/billing/cancel"
    }
    

    Respuesta: { "url": "https://checkout.stripe.com/..." } — redirige el navegador del admin a esa URL.

  3. Stripe completa el pago

    Stripe envia checkout.session.completed a POST /billing/webhook. MailingCore activa la suscripcion y otorga los tokens IA mensuales del plan.

  4. Verificar suscripcion

    GET /billing/subscription
    Authorization: Bearer <jwt>
    X-Tenant-Id: clxxxxxxxx
    

    Confirma slug del plan, estado y fechas del periodo actual antes de reanudar envios de alto volumen.

Customer Portal

Para actualizar metodo de pago, facturas, cancelacion o reactivacion:

POST /billing/portal
Authorization: Bearer <jwt>
X-Tenant-Id: clxxxxxxxx

Respuesta: { "url": "https://billing.stripe.com/..." }. La URL de retorno apunta por defecto al dashboard.

Cuando hacer upgrade

SituacionAccion
X-Quota-Warning: true en enviosValora subir de plan antes del 110 % de gracia — ver Aplicacion de cuota
HTTP 429 cuota mensual excedidaPOST /billing/checkout con un planSlug superior, o espera al siguiente ciclo
Mas dominios, miembros o plantillasCompara tiers en Planes y precios

Atajo en el panel

La ruta Billing del dashboard replica estos endpoints: ver uso actual, lanzar checkout o abrir el Customer Portal sin curl.

Relacionado