Skip to main content
Le autorizzazioni trasformano un pagamento avvenuto o un abbonamento attivo in vero accesso: una chiave di licenza nella casella di posta del cliente, un flag delle funzionalità che la tua app controlla, un ruolo Discord, un repository GitHub, un modello Notion, un link remix di Framer, un invito alla chat di Telegram o un pacchetto di file scaricabili. Dodo Payments emette, traccia e revoca automaticamente tale accesso in base ai cambiamenti del ciclo di pagamento.
Dashboard delle entitlements con un elenco di entitlements a sinistra e l'attività di concessione a destra

The Entitlements dashboard. Each entitlement is a reusable template; the right pane shows individual customer grants.

Cosa sono le Entitlements?

Un’entitlement è una definizione riutilizzabile di qualcosa che fornisci a un cliente: una chiave di licenza Pro, un ruolo “Patrons” su Discord, accesso al tuo repository GitHub privato, un pacchetto di e-book scaricabile. Le entitlements si associano ai prodotti, e Dodo Payments si occupa del resto. Quando un cliente acquista il prodotto, Dodo Payments crea un grant, ovvero l’assegnazione di tale entitlement a un singolo cliente. I grant attraversano un insieme ristretto di stati: Pending mentre la consegna è in corso, Delivered quando il cliente ottiene l’accesso, Failed se la consegna non può essere completata e Revoked quando l’accesso viene revocato.
Le entitlements controllano il fulfillment (il cliente ha accesso?). I crediti controllano il consumo (quanto possono utilizzare?). Entrambi possono essere collegati allo stesso prodotto. Vedi Credit-Based Billing per i crediti.

Integrazioni Disponibili

Dodo Payments consegna ogni entitlement attraverso un’integrazione dedicata. Scegli l’integrazione che corrisponde a ciò che vendi.

License Keys

Genera chiavi di licenza uniche con limiti di attivazione e scadenza. Ideale per software, plugin e CLI.

Digital Files

Fornisci file scaricabili (e-book, template, media) con URL di download presigned e istruzioni opzionali.

Feature Flags

Limitare l’accesso alle funzionalità nella tua app dopo un acquisto. Consegnato istantaneamente, verificato tramite API, revocato alla cancellazione.

Discord

Concedi a un cliente un ruolo nel tuo server Discord quando acquista. Revocato automaticamente alla cancellazione.

GitHub

Aggiungi i clienti come collaboratori a un repository privato al livello di autorizzazione che scegli.

Telegram

Aggiungi i clienti a una chat o canale privato di Telegram dopo l’acquisto.

Framer

Sblocca un link di remix del modello Framer per i clienti paganti.

Notion

Duplica un modello Notion nello spazio di lavoro del cliente all’acquisto.

Come funzionano le concessioni

Le concessioni sono generate dagli stessi eventi di pagamento e abbonamento che già ricevi come webhook. Non è necessario chiamare l’API delle concessioni per gli acquisti. Dodo Payments crea e revoca le concessioni automaticamente in base al ciclo di vita del pagamento sottostante.

Ciclo di vita delle concessioni

1

Created

Una concessione viene creata quando un pagamento viene completato o un abbonamento diventa attivo. I flag delle funzionalità passano direttamente a Delivered. Anche le chiavi di licenza passano direttamente a Delivered quando l’entitlement utilizza fulfillment_mode: auto (il valore predefinito); con fulfillment_mode: manual la concessione viene creata in Pending senza chiave, finché non ne fornisci una tramite Esegui il fulfilment della concessione della chiave di licenza. Ogni altra integrazione inizia in Pending. Le integrazioni basate su OAuth (Discord, GitHub, Notion) espongono un oauth_url che il cliente deve visitare per completare il consenso; il campo è null in una concessione appena creata e viene popolato quando il cliente avvia il flusso di accettazione dalla propria email di consegna o dal customer portal. Le integrazioni dirette alla piattaforma (Telegram, Framer, Digital Files) rimangono in Pending solo brevemente, mentre viene predisposta la consegna, poi passano a Delivered.
2

Delivered

Quando la consegna è completata (license key generata, ruolo assegnato, accesso al repository concesso, link ai file risolti, OAuth completato), il grant passa a Delivered e delivered_at viene impostato.
3

Failed

Se la chiamata all’integrazione restituisce un errore non ritentabile (token OAuth revocato, autorizzazione negata, file non più esistente), il grant passa a Failed. I campi error_code e error_message contengono il motivo.
4

Revoked

Quando l’accesso viene revocato (abbonamento annullato, rimborso emesso o revoca avviata dal merchant), il grant passa a Revoked. Il campo revocation_reason registra il trigger.

Comportamento delle concessioni per evento

Le concessioni basate su abbonamento sono idempotenti per (entitlement, customer, subscription); i rinnovi e le riattivazioni non creano concessioni duplicate. Le concessioni una tantum sono idempotenti per (entitlement, customer, payment).

Creare il tuo primo diritto

1

Open Entitlements

Vai su Diritti nel tuo pannello di Dodo Payments e fai clic su + per creare un nuovo diritto.
2

Pick an integration

Scegli il tipo di integrazione: License Key, Digital Files, Feature Flag, Discord, GitHub, Telegram, Figma, Framer o Notion. Per le integrazioni della piattaforma, collega prima il tuo account se non l’hai già fatto.
3

Configure delivery

Compila i campi specifici dell’integrazione. Ad esempio, GitHub chiede un repository e un livello di autorizzazione; Discord chiede un server e un ruolo opzionale; la Chiave di licenza chiede limiti di attivazione e scadenza.
Nuovo modulo di diritto con selettore di integrazione e campi di configurazione

Creating a GitHub entitlement. Each integration shows the fields it needs.

4

Save

Salva il diritto. Ora puoi allegarlo a qualsiasi prodotto.

Allegare diritti ai prodotti

Apri un prodotto, espandi Impostazioni avanzate → Diritti e Crediti e seleziona i diritti che devono essere consegnati quando il prodotto viene acquistato. Un singolo prodotto può consegnare più diritti contemporaneamente. Ad esempio, un piano Pro può includere una chiave di licenza, l’accesso a GitHub e un ruolo Discord.
Pannello di selezione dei diritti del prodotto che mostra le caselle di controllo per ogni diritto disponibile

Attaching entitlements to a product. Selected entitlements are delivered on every successful purchase or active subscription.


Esperienza del cliente

E-mail e portale clienti

I clienti ricevono un’email di consegna dopo l’acquisto contenente la chiave di licenza, i link per il download, i link di invito OAuth o inviti alla piattaforma, a seconda di ciò che si applica ai diritti sul prodotto. Gli stessi dettagli rimangono disponibili indefinitamente dal Portale Clienti sotto la loro cronologia ordini.

Consegna basata su OAuth

L’accesso degli abbonati a Discord, GitHub e Notion richiede che il cliente autorizzi Dodo Payments a concedere loro l’accesso. Questi grant rimangono nello stato Pending finché il cliente non completa il flusso OAuth utilizzando il link contenuto nell’email o nel Customer Portal. Dopo l’autorizzazione, il grant passa a Delivered e l’accesso alla piattaforma viene configurato immediatamente.

Revoca

Le concessioni revocate vengono rimosse a livello di piattaforma: il ruolo Discord viene rimosso, il collaboratore GitHub viene rimosso, la chiave di licenza viene disabilitata. I clienti vedono il cambiamento riflesso nel portale clienti.
Per i file digitali, la revoca rimuove l’accesso agli URL presigned nel futuro ma non invalida le copie già scaricate dal cliente. Pianifica il contenuto del piano di conseguenza.

Gestisci le concessioni

Apri qualsiasi diritto dalla dashboard per vedere le sue concessioni. Il pannello dettagli concessioni mostra le concessioni totali, i filtri di stato, le informazioni sui clienti, le date di consegna e un’azione di revoca. Puoi anche gestire le concessioni in modo programmatico:

Gestione API

Create Entitlement

Crea un nuovo diritto di qualsiasi tipo di integrazione.

List Entitlements

Elenca i diritti con filtro per tipo di integrazione.

Get Entitlement

Recupera un diritto e la sua configurazione risolta.

Update Entitlement

Aggiorna nome, descrizione o configurazione dell’integrazione.

Delete Entitlement

Elimina un diritto in modo soft; le concessioni esistenti non sono influenzate.

Upload File

Carica un file in un diritto di File Digitali (fino a 500 MiB).

List Grants

Elenca tutte le concessioni per un diritto con filtri di stato e clienti.

Revoke Grant

Revoca manualmente una singola concessione.

Webhooks

Dodo Payments attiva quattro eventi webhook per il ciclo di vita delle concessioni. Iscriviti a questi eventi per mantenere la tua applicazione sincronizzata con ciò che ciascun cliente può accedere.

Entitlement Grant Webhook Payloads

Visualizza lo schema del payload completo, eventi di esempio e il riferimento revocation_reason.

Pratiche consigliate

  • Usa un entitlement per ogni canale di consegna. Non condividere un singolo entitlement Discord tra prodotti con intenzioni di ruolo diverse; creane uno per ruolo per semplificare la revoca.
  • Esegui prima i test in modalità di test. Crea l’entitlement, collegalo a un prodotto di test, esegui un checkout e osserva la transizione della concessione attraverso Pending → Delivered. Conferma che l’annullamento dell’abbonamento di test revochi la concessione.
  • Ascolta entitlement_grant.delivered, non payment.succeeded. Un pagamento può andare a buon fine prima che il fulfilment sia completato (soprattutto nei flussi OAuth). Attendi l’evento di consegna prima di sbloccare le funzionalità dipendenti nei tuoi sistemi.
  • Considera entitlement_grant.failed come un evento che richiede un’azione. Una concessione non riuscita significa che un cliente ha pagato ma non ha ottenuto l’accesso. Segnala questi casi al team di supporto o attiva una nuova concessione.
  • Associa revocation_reason ai tuoi flussi di fidelizzazione. Una revoca subscription_on_hold è recuperabile (il cliente potrebbe aggiornare la propria carta). Una revoca manual è intenzionale. Gestiscile in modo diverso nelle comunicazioni ai clienti.
Ultima modifica il 21 agosto 2026