Rättighetsbeviljande
Den nyttolast som skickas till din webhook-endpoint när ett rättighetsbeviljande skapas, levereras, misslyckas eller återkallas.
Documentation Index
Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
Use this file to discover all available pages before exploring further.
Webhook-händelser för rättighetsbeviljande
Dessa händelser utlöses när en kunds rättighetsbeviljande ändrar tillstånd, till exempel när en licensnyckel genereras, en Discord-roll tilldelas, en nedladdningslänk tillhandahålls eller åtkomst återkallas. Prenumerera på dessa händelser för att hålla din applikation synkroniserad med vad varje kund kan komma åt.| Händelse | Beskrivning |
|---|---|
entitlement_grant.created | En ny beviljande rad skapades. Status är delivered omedelbart för licensnycklar, och pending för varje annan integration. |
entitlement_grant.delivered | Beviljandet övergår till levererat. Kunden har nu åtkomst till den berättigade plattformen, filen eller licensnyckeln. |
entitlement_grant.failed | Leverans misslyckades och försöks inte igen. Inspektera error_code och error_message. |
entitlement_grant.revoked | Åtkomst drogs tillbaka. Inspektera revocation_reason för att förstå varför. |
EntitlementGrantResponse nyttolast dokumenterad i schemat nedan.
Händelsetriggare
entitlement_grant.created
En beviljanderad infogades just. Beviljandet har alltid en stabilid från och med nu, även om dess status ändras. Använd denna händelse för att registrera att uppfyllande pågår.
För licensnycklar infogas raden direkt med status: "delivered" och delivered_at ifyllda, så en enda created-händelse följs av inga ytterligare tillståndsändringar om inte beviljandet senare återkallas.
För alla andra integrationer anländer raden med status: "pending". En delivered eller failed-händelse följer när leveransen slutförs:
- OAuth-baserade integrationer (Discord, GitHub, Notion) inkluderar en
oauth_urlsom kunden måste besöka för att slutföra samtycket. Beviljandet förblirpendingtills kunden godkänner. - Plattformsdirekta integrationer (Telegram, Framer, Digitala Files) förblir i
pendingendast kort medan plattformsanropet körs, för att sedan flytta tilldelivered.
entitlement_grant.delivered
Beviljandet övergick frånpending till delivered. Kunden har nu åtkomsten som beskrivs av rättigheterna. Använd denna händelse för att låsa upp beroende funktioner i dina egna system, till exempel för att tillhandahålla en arbetsyta, skicka ett anpassat välkomstmail eller markera en “uppfylld” flagga.
Nyttolastens delivered_at-fält fångar när leveransen slutfördes. För beviljanden som anlände delivered vid skapandet, kommer du att få created och delivered-händelser back-to-back.
entitlement_grant.failed
Leverans försöktes och misslyckades med ett icke-återprovbart fel. Fältenerror_code och error_message förklarar felet. Vanliga orsaker inkluderar en återkallad OAuth-token, en nekad plattformsbehörighet eller ett saknat mål (t.ex., en raderad Discord-gille).
entitlement_grant.revoked
Åtkomst drogs tillbaka på plattformsnivån: Discord-roll borttagen, GitHub-samarbetare borttagen, licensnyckel inaktiverad, filnedladdnings-URL:er ej längre tillhandahållna. Fältetrevocation_reason registrerar utlösaren.
revocation_reason | Utlösare |
|---|---|
subscription_cancelled | Kundens prenumeration avbröts (subscription.cancelled händelse). |
subscription_on_hold | Prenumerationen är på paus på grund av misslyckad förnyelse (subscription.on_hold). Återhämtbar: En lyckad omprovning leder till en ombeviljning. |
subscription_expired | Prenumerationen nådde slutet av dess period (subscription.expired). |
plan_changed | Planen ändrades; gamla beviljanden återkallas innan nya utfärdas (subscription.plan_changed). |
refund | En återbetalning behandlades för den ursprungliga engångsbetalningen (refund.succeeded). |
manual | En handlare återkallade beviljandet via API eller instrumentpanelen. Manuella återkallelser återbeviljas inte automatiskt vid prenumerationsförnyelser. |
license_key_disabled | Licensnyckeln bakom en licensnyckel-beviljande inaktiverades. Beviljandet återaktiveras automatiskt om nyckeln återaktiveras. |
platform_external | Plattformsidan av en integration gick ur synk (till exempel, en Discord-roll togs bort manuellt, GitHub-appen förlorade repository-åtkomst, eller en avstämningspass upptäckte ett saknat mål). Beviljandet återbeviljas inte automatiskt vid prenumerationsförnyelser förrän den underliggande plattformsfrågan är löst. |
Nyttolastvarianter
Fältetdata är alltid ett EntitlementGrantResponse-objekt. Två integrationstyper bifogar extra kapslade objekt:
license_keyingår när rättighetsintegrationstypen ärlicense_key. Det innehåller den genererade nyckeln, utgångsdatum och aktiveringsanvändning.digital_product_deliveryingår när integrationstypen ärdigital_files. Det innehåller försignerade nedladdnings-URL:er, den valfriainstructions, och den valfriaexternal_url.
null; den relevanta konfigurationen fångas i själva rättigheten, inte i beviljandet.
Exempel på nyttolaster
Licensnyckel levererad (entitlement_grant.delivered)
Digitala filer levererade (entitlement_grant.delivered)
Discord-roll skapad och väntande (entitlement_grant.created)
Beviljande återkallat vid prenumerationsavslut (entitlement_grant.revoked)
Leverans misslyckades (entitlement_grant.failed)
Integrationstips
- Vänta på
entitlement_grant.deliveredinnan du låser upp beroende funktioner. Enpayment.succeededhändelse talar om för dig att pengarna gått igenom; det talar inte om för dig att kunden har GitHub-repot eller Discord-rollen än.delivered-händelsen är den sanningskälla för uppfyllande. - Kartlägg
revocation_reasontill retention flöden. Ensubscription_on_holdåterkallelse innebär vanligtvis att kundens kort misslyckades och nästa förnyelse kommer att nybevilja åtkomst. Enmanualellersubscription_cancelledåterkallelse är avsiktlig. Behandla dem olika i kundmeddelandena. - Använd grant
idsom din idempotensnyckel. Ett enda beviljande avger högst ettcreated-händelse och högst en slutlig händelse (deliveredellerfailed), och högst ettrevoked-händelse. Återleveranser från webhooksystemet kan upprepa händelser; dupplikat på grantidplustype. - Inspektera
license_keyochdigital_product_deliveryför att känna igen integrationstypen. Grant nyttolasten i sig bär inte integrationstypen, men exakt ett av dessa kapslade objekt fylls i för licensnyckel och digitala filer rättigheter. - För OAuth-baserade beviljanden, visa
oauth_urlför kunden.entitlement_grant.created-händelsen för Discord, GitHub, eller Notion prenumerantflöden inkluderar enoauth_urlochoauth_expires_at. Maila det till kunden eller visa det i din app för att låsa upp leveransen.
Detailed view of a single entitlement grant: who it's for, its lifecycle state, and any integration-specific delivery payload.
Identifier of the business that owns the grant.
Timestamp when the grant was created.
Identifier of the customer the grant was issued to.
Identifier of the entitlement this grant was issued from.
Unique identifier of the grant.
Arbitrary key-value metadata recorded on the grant.
Lifecycle status of the grant.
Pending, Delivered, Failed, Revoked Timestamp when the grant was last modified.
Timestamp when the grant transitioned to delivered, when applicable.
Digital-product-delivery payload, present when the entitlement
integration is digital_files.
Machine-readable code reported when delivery failed, when applicable.
Human-readable message reported when delivery failed, when applicable.
License-key delivery payload, present when the entitlement integration
is license_key.
Timestamp when oauth_url stops being valid, when applicable.
Customer-facing OAuth URL for OAuth-style integrations. Populated
during the customer-portal accept flow; null until the customer
completes that step, and on grants for non-OAuth integrations.
Identifier of the payment that triggered this grant, when applicable.
Reason recorded when the grant was revoked, when applicable.
Timestamp when the grant transitioned to revoked, when applicable.
Identifier of the subscription that triggered this grant, when applicable.