The five types
File Downloads
Files served through signed, expiring links. Versioned, and switchable on and off without
deleting anything.
License Keys
A key per customer, with optional expiry and activation limits, validated by your software
through the License API.
GitHub Repository Access
Invite the buyer to private repositories, with the role you choose. Pro plan.
Link & Custom
A set of URLs, or a Markdown note. The catch-all for Discord invites, onboarding docs and
anything else.
Create a benefit
Benefits → New benefit. Pick the type, give it a Name — this is shown to customers, so write it for them (Acme Editor installers, not dl-benefit-v2) — then fill in the options
for that type.
A benefit’s type is fixed once created. If you picked the wrong one, create a new benefit and
swap it on the product.
Link
One or more URLs the customer can open after purchase. Each entry takes a URL and an optional Title. Good for: a private Discord invite, a members-only page, a Notion onboarding doc, a Figma file.Custom
A Markdown note shown to the customer on their order. Good for instructions, redemption codes you issue by hand, or explaining something a structured type doesn’t cover. Formatting is standard Markdown — headings, lists, links, code.Rules that apply to every type
Edits apply to new grants only
For license keys, the expiry and activation limit are captured on each customer’s key at the moment it’s issued. Changing the benefit later doesn’t rewrite keys already out there. To change one customer’s key, go to Licenses. Downloads and links behave the opposite way, and deliberately: they’re read live. Add a file to a download benefit and every customer who owns it sees the new file immediately. Turn a file off and it disappears from their portal at once.One benefit, many products
Attaching the same license benefit to five products doesn’t create five templates — it’s one definition. Change the activation limit and all five products issue keys under the new terms from then on.Refunds and cancellations revoke
GitHub revocation reaches upstream: the collaborator is removed from the repository and any
pending invitation is cancelled.