Starter project for embedding web payments into iOS apps using Paddle checkout in Next.js.
Paddle Billing is the developer-first merchant of record. We take care of payments, tax, subscriptions, and metrics with one unified API that does it all.
This is a Next.js starter project for implementing a Paddle checkout on Web with an iOS app.
As of April 30, 2025, Apple's updated App Store rules allow app developers to use third-party payment processors like Paddle for in-app purchases. This starter shows you how to implement a web-based checkout that can be opened from iOS apps.
Even though you're redirecting users to Web to complete their purchase, Apple pay is still supported.
This starter project provides a fully functional implementation of a Paddle checkout within a Next.js application that can be easily embedded into iOS apps.
@paddle/paddle-js
for launching a checkoutnext-themes
for light/dark mode supportsrc
Main application code
app
Next.js app directory
.well-known
Contains Apple app site association filecheckout_redirect
Checkout success and redirect pagespage.tsx
Main checkout pagecomponents
React components
ui
UI componentslib
Utility functions
paddle.tsx
Paddle integration logicFirst, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the checkout page.
Create a .env.local
file based on .env.example
with the following variables:
APPLE_TEAM_ID
- Your Apple Team ID (for Universal Links)NEXT_PUBLIC_BUNDLE_IDENTIFIER
- Your iOS app's bundle identifierNEXT_PUBLIC_APP_REDIRECT_URL
- The redirect url back to your appNEXT_PUBLIC_PADDLE_CLIENT_TOKEN
- Your Paddle client tokenNEXT_PUBLIC_PADDLE_ENV
- Paddle environment (sandbox
or production
)NEXT_PUBLIC_PADDLE_PRICE_ID
- The ID of your Paddle priceNEXT_PUBLIC_THEME
- The theme of your checkout, can be light or dark (optional)For more detailed setup instructions, check out Paddle's documentation on opening a checkout from iOS apps.
Starter project for embedding web payments into iOS apps using Paddle checkout in Next.js.
Paddle Billing is the developer-first merchant of record. We take care of payments, tax, subscriptions, and metrics with one unified API that does it all.
This is a Next.js starter project for implementing a Paddle checkout on Web with an iOS app.
As of April 30, 2025, Apple's updated App Store rules allow app developers to use third-party payment processors like Paddle for in-app purchases. This starter shows you how to implement a web-based checkout that can be opened from iOS apps.
Even though you're redirecting users to Web to complete their purchase, Apple pay is still supported.
This starter project provides a fully functional implementation of a Paddle checkout within a Next.js application that can be easily embedded into iOS apps.
@paddle/paddle-js
for launching a checkoutnext-themes
for light/dark mode supportsrc
Main application code
app
Next.js app directory
.well-known
Contains Apple app site association filecheckout_redirect
Checkout success and redirect pagespage.tsx
Main checkout pagecomponents
React components
ui
UI componentslib
Utility functions
paddle.tsx
Paddle integration logicFirst, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the checkout page.
Create a .env.local
file based on .env.example
with the following variables:
APPLE_TEAM_ID
- Your Apple Team ID (for Universal Links)NEXT_PUBLIC_BUNDLE_IDENTIFIER
- Your iOS app's bundle identifierNEXT_PUBLIC_APP_REDIRECT_URL
- The redirect url back to your appNEXT_PUBLIC_PADDLE_CLIENT_TOKEN
- Your Paddle client tokenNEXT_PUBLIC_PADDLE_ENV
- Paddle environment (sandbox
or production
)NEXT_PUBLIC_PADDLE_PRICE_ID
- The ID of your Paddle priceNEXT_PUBLIC_THEME
- The theme of your checkout, can be light or dark (optional)For more detailed setup instructions, check out Paddle's documentation on opening a checkout from iOS apps.