Sell kits with your own Stripe account
How the /xrbuykit payment flow works, end to end
XBot never touches your money. Each community connects its own Stripe account — members pay you directly, and XBot's only job is to watch for the payment and flip a Discord role on or off. No marketplace cut, no XBot-owned Stripe account in the middle.
/xrbuykit, picks a kit, pays on Stripe — the kit's role is granted the instant payment succeeds, and revoked automatically the moment they cancel. Nobody touches Discord roles by hand.1. Get your Stripe Secret Key
-
Open your Stripe Dashboard
No Stripe account yet? Create one free at stripe.com — it takes a few minutes.
-
Find your API keys
Search the Dashboard for "API keys" (Stripe has reorganized this a few times — the search bar always finds it, regardless of where the menu currently lives). Copy the Secret key (starts with
sk_live_...orsk_test_...if you're testing first). -
Paste it into Discord
Run
/xrserverconnecton your server → 💳 Edit Stripe → paste the Secret Key. It's encrypted at rest (AES-256-GCM) — nobody, including XBot's own team, can read it back out.
2. Create what you're selling
-
Add a Product in Stripe
Dashboard → Product catalog → Add product. Give it a name (e.g. "Kit Tier 3"), a price, and set it as recurring (subscription) — that's what makes the automatic revoke-on-cancel possible.
-
Copy the ID
You can copy either ID Stripe shows you — the Product ID (
prod_..., shown prominently at the top of the product page) or the Price ID (price_..., listed under the price itself). XBot accepts both and resolves a Product ID to its active price automatically, so you can't paste the "wrong" one. -
Attach it to a kit
Run
/xrkitcreate→ pick the kit tier → at the purchase-links step, paste the ID into the Price/Product ID field. Save.
3. Connect the webhook
This is the piece that makes the role grant/revoke automatic — without it, payments still work but nobody gets their role.
-
Add an event destination
In your Stripe Dashboard, search for "Webhooks" (or go to dashboard.stripe.com/webhooks) → Add destination.
-
Pick the events
Search for and select exactly these two:
checkout.session.completedandcustomer.subscription.deleted. -
Set the endpoint URL
Choose destination type Webhook endpoint, and set the URL to:
https://xtremebot.tech/stripe/webhook -
Copy the signing secret
Once created, Stripe shows a Signing secret (
whsec_...). Paste that into/xrserverconnect→ 💳 Edit Stripe → Webhook Secret.
4. Members buy with /xrbuykit
Any member on your server can now run /xrbuykit, pick a kit from the ones you've connected, and get a personal, single-use Stripe Checkout link (expires in 24h). On successful payment, the role shows up automatically — no admin action needed, no waiting.
One more thing: Terms of Service
Stripe Checkout requires an "I agree to the Terms" checkbox for this flow. In your Stripe Dashboard, set a Terms of Service URL under Settings → Public details — without it, checkout sessions will fail to create.
Questions about a specific step? The same walkthrough lives in your server's 🔒 Ghid Admin channel, generated automatically by /xrbotsetup.