Get your first checkout running
This guide walks you through creating a Polar account, setting up your first product, and generating a checkout link. No code required to get started.Create your Polar account
Head to polar.sh and sign up with your GitHub account.After signing in, you’ll create your first organization. This represents your business or project.
Polar uses GitHub OAuth for authentication. This also enables automatic GitHub repository access benefits if you need them later.
Create your first product
Navigate to Products in the dashboard sidebar and click Create Product.Click Create Product to save.
- Subscription
- One-Time
- Pay-What-You-Want
For recurring revenue (SaaS, memberships):
- Name: “Pro Plan”
- Description: Describe what customers get
- Type: Select Subscription
- Price: Set your monthly price (e.g., $29/month)
- Billing Interval: Choose Monthly or Yearly
Add benefits (optional)
Benefits are what customers receive after purchasing. You can add them now or skip this step.
Learn more about Benefits →
GitHub Repository Access
GitHub Repository Access
Automatically invite customers to private repositories:
- Go to your product page
- Click Add Benefit → GitHub Repository Access
- Connect your GitHub account if not already connected
- Select the repository
- Choose permission level (Read, Write, or Admin)
Discord Role
Discord Role
Auto-assign Discord roles to customers:
- Click Add Benefit → Discord
- Connect your Discord server
- Select the role to assign
- Customers will receive an invite link after purchase
License Key
License Key
Generate unique license keys:
- Click Add Benefit → License Keys
- Configure key settings:
- Prefix for your keys
- Expiration (optional)
- Activation limit (optional)
- Keys are generated automatically on purchase
File Downloads
File Downloads
Provide secure download links:
- Click Add Benefit → File Downloads
- Upload your files (PDFs, ZIPs, etc.)
- Files are available in the customer portal
Set up Stripe (for production)
Polar uses Stripe to process payments. For testing, you can skip this step.
- Test Mode
- Production
By default, you’re in Sandbox mode. All checkouts use Stripe test mode:
- Use test card:
4242 4242 4242 4242 - Any future expiry date
- Any CVC code
Create a checkout link
Now create a shareable link customers can use to purchase:Share this link anywhere - website, social media, emails, etc.
- Navigate to Checkout Links in the sidebar
- Click Create Checkout Link
-
Configure your checkout:
Select the product you createdWhere to redirect customers after payment:The
{CHECKOUT_ID}parameter is replaced automatically.Internal label to organize your links (e.g., “Twitter Bio Link”)Let customers enter discount codes at checkout - Click Create to generate your link
What you’ve accomplished
Product created
Product created
You now have a product that represents what you’re selling. You can:
- Add more price tiers (monthly + yearly)
- Update description and images
- Attach multiple benefits
- Archive when no longer selling
Checkout flow ready
Checkout flow ready
Your checkout link handles:
- Secure payment collection
- Customer account creation
- Tax calculation (sales tax & VAT)
- Receipt generation
- Benefit fulfillment
Test environment configured
Test environment configured
You can safely test:
- Different payment scenarios
- Subscription flows
- Benefit grants
- Webhook events
Next steps
Integrate via API
Create checkouts programmatically with our REST API
Set up webhooks
React to checkout events in your application
Customize checkout
Brand your checkout with custom colors and logos
Add usage billing
Bill customers based on consumption metrics
Common customizations
Add a discount code
- Go to Discounts in the sidebar
- Click Create Discount
- Configure:
- Code:
LAUNCH20(customer enters this) - Type: Percentage or fixed amount
- Value: 20% or $10 off
- Duration: Forever, once, or repeating
- Code:
- Customers can enter this code at checkout
Offer a free trial
- Edit your subscription product
- Scroll to Trial Period
- Set trial duration (e.g., 14 days)
- Choose whether to require a payment method
Embed checkout in your site
Instead of redirecting to Polar’s hosted checkout, embed it:API-first workflow
Prefer to manage everything via API? Here’s the complete flow:Get an access token
Create a Personal Access Token or Organization Access Token:
- Go to Settings → Tokens
- Click Create Token
- Select scopes:
products:write,checkouts:write - Copy the token (shown once)
Listen for webhooks
Troubleshooting
Checkout link doesn't work
Checkout link doesn't work
Issue: Link shows “Product not found” or similar errorSolutions:
- Verify the product is not archived
- Ensure you’re not in Sandbox mode if using production link
- Check that the product has at least one active price
Benefits not granted
Benefits not granted
Issue: Customer completed checkout but didn’t receive benefitsSolutions:
- Check Orders → select the order → view Benefits tab
- Look for errors in the benefit grant status
- For GitHub: Ensure the repository is accessible
- For Discord: Verify bot has proper permissions
- Check webhook logs for
benefit.grant.createdevents
Stripe connection fails
Stripe connection fails
Issue: Can’t complete Stripe onboardingSolutions:
- Verify your country is supported (view list)
- Ensure you have a valid business entity
- Check Stripe’s restricted businesses
- Contact support if issues persist
Test payments failing
Test payments failing
Issue: Test checkouts show payment errorsSolutions:
- Use Stripe test card:
4242 4242 4242 4242 - Ensure you’re in Sandbox mode (check dashboard banner)
- Try a different test card from Stripe’s test cards
- Check browser console for errors
Need more help? Join our Discord community or check GitHub Discussions.
Related guides
Next.js Integration
Full guide for Next.js apps
Laravel Integration
Complete Laravel setup
Webhooks Guide
Handle checkout events