Appearance
Payments
Nuxt SaaS Kit comes with support for Lemon Squeezy out of the box. This allows you to start accepting payments from your customers right away.
Setting up Lemonsqueezy
- To get started, create an account or login into your Lemonsqueezy
- Create a new store and retrive your store URL and store ID. To do so, go to Settings > Stores. You'll find the Store ID next to the Store URL. Copy the Store URL and ID and update the environment variable:
LEMONSQUEEZY_STORE_ID="YOUR_STORE_ID"
LEMONSQUEEZY_STORE_URL="YOUR_STORE_URL"
- Next, you have to create a product in the created store. Fill in the form fields. After completing the creation of the product. We'll be using the information in the
pricing-plans.ts
file:
ts
export type BillingFrequency = 'month' | 'year'
export type Plan = {
id: number
title: string
description: string
features: string[]
prices: {
price?: number
currency?: string
frequency: BillingFrequency
productId?: string
variantId?: string
}[]
cta: string
mostPopular: boolean
}
export const currency = 'USD'
export const defaultPlans: Plan[] = [
{
// add your pricing plans
}
]
Example
ts
{
id: 1,
title: 'Basic',
description: 'The essentials to provide your best work for clients',
features: [
'5 products',
'Up to 1,000 subscribers',
'Basic analytics',
'48-hour support response time',
],
prices: [
{
price: 24,
frequency: 'month',
productId: 'jd8jde-sdjju-wca',
variantId: '',
},
{
price: 200,
frequency: 'year',
productId: '',
variantId: '',
},
],
cta: 'Start your trial',
mostPopular: false,
},
Generate your API Key
To integrate with Lemonsqueezy, you need an API Key.
- Go to Settings > API to create an API Key
- Follow the process to generate the API Key. Copy the key and add it to your
.env
file
LEMONSQUEEZY_API_KEY="YOUR_API_KEY"
Webhook Integration
To integrate Lemonsqueezy to able to save data on the database, you need to configure webhook.
- Go to Settings > Webhooks to create a new webhook.
- Add your webhook URL
- Generate a new webhook signing secret and copy it into the
.env
file
LEMONSQUEEZY_SIGNING_SECRET="YOUR_SECRET"
Select the actions below to be triggered by the webhook:
- subscription_created
- subscription_updated
- subscription_cancelled
- subscription_resumed
- subscription_expired
- subscription_paused
- subscription_unpaused
- subscription_payment_failed
- subscription_payment_success
- subscription_payment_recovered
- subscription_payment_refunded
- subscription_plan_changed