plan.id to checkout, and PayNext handles pricing, billing intervals, and localization automatically. Changes apply immediately when you save.
How Plans Work
Define your pricing once in the Dashboard. At checkout, the correct price displays automatically based on the customer’s country. If the plan includes a trial, the customer sees the trial terms before subscribing. Your code only needs theplan.id — PayNext handles the rest.
Plan Types
Recurring Plans
For subscriptions and memberships. Charges on a schedule (daily, monthly, yearly, or custom interval). Features:- Billing frequency configuration
- Localized pricing by country
- Optional trial periods
Trial Periods
Offer free or reduced-price trials before the full subscription begins:
Trial pricing supports country-based overrides using the same logic as regular pricing.
One-off Plans
For single purchases and setup fees. Single charge with no renewal. One-off plan features:- Static pricing
- Localized pricing by country
- Optional custom price per payment (see Custom Pricing)
- No interval or trial configuration
Create a Plan
1
Open Plans
Go to Dashboard → Plans and click Create plan
2
Choose plan type
Select Recurring for subscriptions or One-off for single charges.
3
Set plan name
Assign an internal name (e.g., “Pro Monthly”, “Enterprise Annual”). This name appears in the Dashboard and webhooks.
4
Configure billing frequency
For recurring plans, set how often to charge: Every
[number] [Days | Months | Years].If a customer starts on January 30 and the next month lacks that date, billing occurs on the last valid date (Feb 28/29).
5
Set pricing
Define default pricing and optional country-specific overrides. See Localized Pricing below.
6
Configure trial (recurring only)
Add a trial period if needed. See Trial Periods above.
7
Save
Click Save to create the plan. Use the generated
plan.id in your integration.Localized Pricing
Charge different prices based on customer country. When you create a client session, pass the customer’s country—PayNext automatically selects the correct price at checkout.How It Works
- Default price — The first price you create applies to all countries
- Add country-specific prices — Select a country from the dropdown and set a custom price
- Automatic exclusion — Countries with specific prices are automatically removed from the default
- One price per country — Each country can only have one price rule
Example
You create a plan with these prices:
At checkout:
- Customer from Germany → €100 EUR (default)
- Customer from United States → $120 USD (country-specific)
- Customer from Spain → €85 EUR (country-specific)
Custom Pricing
Override a plan’s configured price for a single payment by passing aprice object. Every other setting—name, tax behavior, enabled payment methods—is still inherited from the plan; only the amount and currency change. Use this for variable-amount one-off charges (donations, top-ups, quotes) without creating a new plan for each price.
Custom pricing is supported for one-off plans only. Passing
price with a recurring plan returns a 400 error.amount (in minor units) and currency (ISO 4217). A custom price takes precedence over the default and any localized country-specific price—the exact amount and currency you send are charged:
POST /payments request (API-only). Because the price is sent from your server, the checkout SDK running in the browser cannot change it.
Create Client Session with Plan
Passplan.id and customer.address.country when creating a client session:
customer.address.country to resolve localized pricing.
Amounts use minor units based on currency. For example, $10.00 USD =
1000, ¥1000 JPY = 1000 (JPY has no decimal places).