Skip to main content
Gli entitlement trasformano un pagamento completato o un abbonamento attivo in accesso: una chiave di licenza nella casella di posta del cliente, un feature flag verificato dalla tua app, un ruolo Discord, un repository GitHub, un template Notion, un link per il remix su Framer, un invito a una chat Telegram o un pacchetto di file scaricabili. Dodo Payments emette, monitora e revoca automaticamente questo accesso quando cambia il ciclo di vita del 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 gli entitlement?

Un entitlement è una definizione riutilizzabile di qualcosa che fornisci a un cliente, ad esempio una chiave di licenza Pro, un ruolo Discord “Patrons”, l’accesso al tuo repository GitHub privato o un pacchetto di e-book scaricabili. Colleghi gli entitlement ai prodotti e Dodo Payments li consegna quando un cliente paga. Quando un cliente acquista il prodotto, Dodo Payments crea un grant: l’emissione di quell’entitlement per un singolo cliente. Un grant ha uno di quattro stati: Pending mentre la consegna è in corso, Delivered quando il cliente ha ottenuto l’accesso, Failed se la consegna non è stata completata e Revoked quando l’accesso viene ritirato.
Gli entitlement regolano il fulfillment (il cliente ha accesso?). I crediti regolano il consumo (quanto può utilizzarne?). Puoi collegare entrambi allo stesso prodotto. Consulta Credit-Based Billing per i crediti.

Integrazioni Disponibili

Ogni entitlement viene consegnato tramite una sola integrazione. Scegli l’integrazione più adatta 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

Consegna file scaricabili, come e-book, template e contenuti multimediali, tramite URL di download presigned e istruzioni opzionali.

Feature Flags

Limita le funzionalità della tua app in base a un acquisto. Viene consegnato alla creazione, verificato tramite API e revocato alla cancellazione.

Discord

Assegna a un cliente un ruolo nel tuo server Discord quando acquista. Il ruolo viene rimosso 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

I grant seguono gli stessi eventi di pagamento e abbonamento che ricevi come webhook. Dodo Payments crea e revoca automaticamente i grant per gli acquisti, in base al ciclo di vita del pagamento, quindi non devi chiamare personalmente l’API dei grant.

Ciclo di vita delle concessioni

Un grant attraversa questi stati:
1

Created

Dodo Payments crea un grant quando un pagamento viene completato o un abbonamento diventa attivo. I grant dei feature flag iniziano come Delivered. Anche i grant delle chiavi di licenza iniziano come Delivered quando l’entitlement utilizza fulfillment_mode: auto (il valore predefinito). Con fulfillment_mode: manual, il grant inizia come Pending senza chiave, finché non ne fornisci una tramite Fulfill License Key Grant. Ogni altra integrazione inizia come Pending.Le integrazioni basate su OAuth (Discord, GitHub, Notion) espongono un oauth_url che il cliente visita per prestare il consenso. Dodo Payments tenta di generare questo URL quando crea il grant. Se l’operazione fallisce, il campo rimane null finché il cliente non avvia il flusso di accettazione dall’e-mail di consegna o dal Customer Portal. Le integrazioni dirette alla piattaforma (Telegram, Framer, Digital Files) rimangono Pending solo mentre la consegna viene predisposta, poi passano a Delivered.
2

Delivered

Quando la consegna viene completata, il grant passa a Delivered e viene impostato delivered_at. La consegna è completa quando viene generata la chiave di licenza, viene assegnato il ruolo, viene concesso l’accesso al repository, vengono risolti i link ai file o viene completato il flusso OAuth.
3

Failed

Se la chiamata all’integrazione restituisce un errore non ritentabile, come un token OAuth revocato, un’autorizzazione negata o un file che non esiste più, il grant passa a Failed. I campi error_code e error_message registrano il motivo.
4

Revoked

Quando l’accesso viene ritirato, ad esempio perché un abbonamento viene cancellato, viene emesso un rimborso o revochi il grant, il grant passa a Revoked. Il campo revocation_reason registra il fattore scatenante.

Comportamento dei grant in base all’evento

Ogni evento di pagamento e abbonamento modifica i grant come segue:
I grant gestiti dagli abbonamenti sono idempotenti per (entitlement, customer, subscription), quindi rinnovi e riattivazioni non creano grant duplicati. I grant una tantum sono idempotenti per (entitlement, customer, payment).

Crea il tuo primo entitlement

1

Open Entitlements

Vai alla sezione Entitlements nella dashboard e fai clic su + per creare un entitlement.
2

Pick an Integration

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

Configure Delivery

Compila i campi dell’integrazione. Ad esempio, GitHub richiede un repository e un livello di autorizzazione, Discord richiede un server e un ruolo opzionale, mentre License Key richiede un limite di attivazioni e una durata della licenza.
Modulo Nuovo entitlement con selettore dell'integrazione e campi di configurazione

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

4

Save

Fai clic su Create Entitlement. Ora puoi collegare l’entitlement a qualsiasi prodotto.

Collega gli entitlement ai prodotti

Apri un prodotto, vai alla sezione Entitlements e seleziona gli entitlement da consegnare quando il prodotto viene acquistato. Un prodotto può consegnare diversi entitlement contemporaneamente. Ad esempio, un piano Pro può includere una chiave di licenza, l’accesso a GitHub e un ruolo Discord.
Pannello di selezione degli entitlement del prodotto con caselle di controllo per ogni entitlement disponibile

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


Esperienza del cliente

E-mail e Customer Portal

Dopo un acquisto, il cliente riceve un’e-mail di consegna con la chiave di licenza, i link per il download, i link di invito OAuth o l’invito alla piattaforma applicabile agli entitlement del prodotto. Gli stessi dettagli rimangono disponibili nel Customer Portal, nella cronologia degli ordini, finché il grant è attivo.

Consegna basata su OAuth

L’accesso degli abbonati a Discord, GitHub e Notion richiede che il cliente autorizzi Dodo Payments a concedere tale accesso. Questi grant rimangono Pending finché il cliente non completa il flusso OAuth dal link nell’e-mail o nel Customer Portal. Dopo l’autorizzazione del cliente, il grant passa a Delivered e Dodo Payments configura l’accesso alla piattaforma.

Revoca

Quando un grant viene revocato, Dodo Payments rimuove l’accesso sulla piattaforma: rimuove il ruolo Discord, rimuove il collaboratore GitHub o disabilita la chiave di licenza. Il cliente vede la modifica nel Customer Portal.
Per Digital Files, la revoca impedisce la generazione di nuovi URL di download presigned, ma non invalida le copie che un cliente ha già scaricato. Tienilo presente quando pianifichi la gestione degli accessi ai tuoi contenuti.

Gestisci i grant

Apri qualsiasi entitlement dalla dashboard per visualizzarne i grant. Il pannello dei dettagli mostra il totale dei grant, un filtro per stato e una riga per ogni grant con il cliente, la data di accesso, lo stato e un’azione Revoke. Per gestire i grant a livello programmatico, elencali con il filtro status e revoca un singolo grant tramite ID:

Gestione tramite API

Create Entitlement

Crea un entitlement di qualsiasi tipo di integrazione.

List Entitlements

Elenca gli entitlement, filtrati per tipo di integrazione.

Get Entitlement

Recupera un entitlement e la relativa configurazione risolta.

Update Entitlement

Aggiorna il nome, la descrizione o la configurazione dell’integrazione.

Delete Entitlement

Elimina logicamente un entitlement. I grant esistenti non vengono revocati, ma Dodo Payments non li gestisce più.

Upload File

Carica un file fino a 500 MiB in un entitlement Digital Files.

List Grants

Elenca i grant di un entitlement, filtrati per stato e cliente.

Revoke Grant

Revoca manualmente un singolo grant.

Webhook

Dodo Payments invia quattro eventi webhook per il ciclo di vita dei grant. Iscriviti a questi eventi per mantenere la tua applicazione sincronizzata con ciò a cui ogni cliente può accedere.

Entitlement Grant Webhook Payloads

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

Best practice

  • Usa un entitlement per ogni canale di consegna. Non condividere un entitlement Discord tra prodotti con ruoli diversi. Crea un entitlement per ogni ruolo, così la revoca rimane pulita.
  • Esegui prima i test in modalità test. Crea l’entitlement, collegalo a un prodotto di test, esegui un checkout e osserva il grant passare da Pending a Delivered. Poi cancella l’abbonamento di test e verifica che il grant venga revocato.
  • Ascolta entitlement_grant.delivered, non payment.succeeded. Un pagamento può avere esito positivo prima che il fulfillment sia completato, soprattutto nei flussi OAuth. Attendi che il grant raggiunga Delivered prima di sbloccare le funzionalità dipendenti nei tuoi sistemi. Un grant consegnato alla creazione, come una chiave di licenza completata automaticamente o un feature flag, arriva come entitlement_grant.created con status: "Delivered".
  • Considera entitlement_grant.failed un evento che richiede un’azione. Un grant fallito significa che un cliente ha pagato ma non ha ottenuto l’accesso. Segnala questi grant al team di supporto o attiva una nuova emissione.
  • Collega revocation_reason ai tuoi flussi di fidelizzazione. Una revoca subscription_on_hold è recuperabile, perché il cliente potrebbe aggiornare la propria carta. Una revoca manual è intenzionale. Gestiscile in modo diverso nei messaggi ai clienti.
  • Non revocare l’accesso su subscription.past_due. Questo evento apre un periodo di tolleranza e il cliente mantiene l’accesso fino alla fine della finestra. Attendi subscription.on_hold o subscription.cancelled.
Ultima modifica il 26 settembre 2026