Skip to Content
🎉 Mailprex 1.0 is soon to released. Read more →
Gumroad billing (Pro / Business)

Gumroad billing (Pro / Business)

Billing uses Gumroad Ping  webhooks. No Stripe required.

Setup

  1. Create Pro (and optional Business) products on Gumroad.
  2. In each product → Settings → Ping, set:
https://api.mailprex.excelso.xyz/billing/gumroad/ping
  1. Add to back/.env:
GUMROAD_SELLER_ID=your_seller_id GUMROAD_PRODUCT_ID_PRO=abc123 GUMROAD_URL_PRO=https://yourname.gumroad.com/l/pro-product GUMROAD_PRODUCT_ID_BUSINESS=def456 GUMROAD_URL_BUSINESS=https://yourname.gumroad.com/l/business-product GUMROAD_LIBRARY_URL=https://gumroad.com/library

Find seller_id and product_id in Gumroad ping test payloads or product URLs.

User flow

  1. User clicks Upgrade to Pro in the dashboard.
  2. API returns a Gumroad checkout URL with ?email= prefilled (must match Mailprex account email).
  3. After payment, Gumroad sends a ping → API upgrades userType to standard (Pro) or business.
  4. Manage billing opens the Gumroad library (subscriptions/refunds).

Important

  • The buyer email on Gumroad must match the Mailprex account email.
  • Refunds and subscription cancellations downgrade the user to free.

API routes

MethodPathAuthDescription
POST/billing/checkoutCookieBody { "plan": "standard" | "business" } → { url }
GET/billing/portalCookie{ url } → Gumroad library
POST/billing/gumroad/pingGumroadPing webhook (form-urlencoded)

Plan limits

userTypeLabelMonthly sends
freeFree200
standardPro5,000
businessBusinessUnlimited

Public config

GET /auth/config includes:

{ "billingEnabled": true, "billing": { "provider": "gumroad", "proUrl": "https://…", "businessUrl": "https://…", "libraryUrl": "https://gumroad.com/library" } }
Last updated on
Mailprex Docs 2026 © Mailprex.