- Documentation
- Developers
- Webhooks
Selling platforms
Gumroad, Lemon Squeezy, Paddle, Shopify.
Beyond the generic webhook and Stripe, Bao can receive events directly from several selling platforms. Each source is configured and enabled separately in the dashboard.
| Platform | What Bao expects |
|---|---|
| Gumroad | A token generated by Bao, to put in Gumroad's ping |
| Lemon Squeezy | Your webhook's signing secret |
| Paddle | The signing secret, and an API key for verification |
| Shopify | Your webhook's signing secret |
The common principle
Whatever the platform:
- You enable the source in Bao and collect the webhook URL.
- You paste that URL into the platform.
- You copy the platform's secret into Bao. Secrets are stored encrypted and never shown again in the clear.
- You choose the default tier, and optionally a product-to-tier mapping.
A purchase opens an entitlement, a refund or a cancellation closes it, with the configured grace period.
Identifying the buyer
As with Stripe, these platforms know an email, rarely a Discord ID. The behaviour is the same: without a Discord ID, Bao creates a pending entitlement, which the buyer collects through claiming in Discord.
This is normal operation, not a degraded mode. Most servers only ever use this one.
Several sources at once
Nothing stops you having Stripe, Gumroad and the direct webhook active at the same time. Each entitlement keeps a record of its source, and the role is only removed when no source justifies it any more.