This project already includes Paddle support for both app billing and subscription.
Before using it, create a Paddle account and collect the required credentials from your Paddle dashboard (https://www.paddle.com/).
Add the following values to your .env file:
PADDLE_API_KEY=
PADDLE_WEBHOOK_SECRET_KEY=
NEXT_PUBLIC_PADDLE_CLIENT_TOKEN=
NEXT_PUBLIC_PADDLE_ENV=sandboxYou should also make sure these URLs are configured correctly:
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_JAMPACK_APP_URL=http://localhost:3000In your Paddle dashboard, open Developer Tools and collect both server and client credentials.



Create your recurring Paddle prices for each paid plan and copy those IDs into src/config/pricing.ts.
This project expects the Paddle variant structure below:
variantIds: {
paddle: {
monthly: "pri_xxx",
yearly: "pri_xxx",
},
}Create a Paddle webhook destination and point it to your app webhook route.
https://your-domain.com/api/webhooks/paddlehttp://localhost:3000/api/webhooks/paddlePADDLE_WEBHOOK_SECRET_KEY=...The current webhook route verifies the paddle-signature header using PADDLE_WEBHOOK_SECRET_KEY.