DocumentazioneUpgrade e portale fatturazione

Upgrade e portale fatturazione

Stripe Checkout per cambi piano e Customer Portal per gestire i pagamenti.

Aggiorna il tenant tramite Stripe Checkout o gestisci un abbonamento esistente nel Stripe Customer Portal. Entrambi i flussi richiedono autenticazione JWT della dashboard (JwtAuthGuard + contesto tenant).

Flusso di sottoscrizione

  1. Elenca i piani disponibili

    GET /billing/plans
    Authorization: Bearer <jwt>
    

    Restituisce i piani attivi con limiti email mensili, grant token IA e price ID Stripe.

  2. Avvia checkout

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

    Risposta: { "url": "https://checkout.stripe.com/..." } — reindirizza il browser dell'admin a quell'URL.

  3. Stripe completa il pagamento

    Stripe invia checkout.session.completed a POST /billing/webhook. MailingCore attiva l'abbonamento e accredita i token IA mensili del piano.

  4. Verifica sottoscrizione

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

    Conferma slug piano, stato e date del periodo corrente prima di riprendere invii ad alto volume.

Customer Portal

Per aggiornare metodo di pagamento, fatture, cancellazione o riattivazione:

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

Risposta: { "url": "https://billing.stripe.com/..." }. L'URL di ritorno punta per default alla dashboard.

Quando fare upgrade

SituazioneAzione
X-Quota-Warning: true sugli inviiValuta l'upgrade prima del 110% di grazia — vedi Applicazione quota
HTTP 429 quota mensile superataPOST /billing/checkout con planSlug superiore, o attendi il ciclo successivo
Più domini, membri o templateConfronta i tier in Piani e prezzi

Scorciatoia dashboard

La route Billing della dashboard replica questi endpoint: visualizza utilizzo, avvia checkout o apri il Customer Portal senza curl.

Correlati