Skip to content

Key Concepts

Core concepts in GoPayLocal — PPP, parity tiers, pricing modes, charm pricing, and discount delivery.

Before diving into integrations and SDKs, it helps to understand the core concepts that power GoPayLocal.

PPP measures the relative cost of goods between countries. A basket of goods that costs $100 in the US might cost the equivalent of $30 in India, meaning India has a PPP factor of roughly 0.30.

GoPayLocal uses PPP data (sourced from the World Bank and IMF) to calculate fair discounts for each country. A 30% discount for India means your $100 product costs $70 — still more than local equivalents, but much more accessible than the full US price.

Rather than setting individual discounts for 200+ countries, GoPayLocal groups countries into parity tiers based on similar purchasing power.

The default setup has 5 tiers:

TierDiscountExample Countries
Tier 10%US, UK, Canada, Australia, Germany
Tier 215%Spain, Portugal, South Korea, Israel
Tier 330%Brazil, Mexico, Turkey, Thailand
Tier 445%India, Indonesia, Vietnam, Philippines
Tier 560%Nigeria, Pakistan, Bangladesh, Ethiopia

You can customize tiers in the Dashboard — add/remove tiers, change discount percentages, and move countries between tiers.

GoPayLocal supports three pricing modes that control how discounts are calculated:

Countries in the same parity tier get the same flat discount percentage. This is the simplest mode and works well for most use cases.

Example: All Tier 3 countries get 30% off, regardless of their individual PPP factor.

Discounts are calculated dynamically from each country’s actual PPP factor (World Bank data). This gives more precise, country-specific discounts.

Example: India (PPP factor 0.28) gets 72% off, while Brazil (PPP factor 0.42) gets 58% off.

Set exact discount percentages per country. Full control, but more configuration work.

Example: India gets exactly 50% off, Brazil gets exactly 35% off, and so on.

Charm pricing rounds discounted prices to psychologically appealing numbers. Instead of showing “₹1,583.75” (a mathematically correct discount), GoPayLocal rounds to “₹1,499” — a number that feels like a real price.

Charm pricing rules are currency-aware:

CurrencyRaw DiscountedCharm PriceRule
INR (₹)₹1,583.75₹1,499Round to X,X99
JPY (¥)¥7,234¥6,999Round to X,999
VND (₫)₫1,623,400₫1,499,999Round to X99,999
USD ($)$68.50$67.99Round to X.99
EUR€58.30€57.99Round to X.99

Charm pricing is configured per campaign in the dashboard. You can choose different strategies or disable it entirely.

GoPayLocal supports two ways to deliver discounts to your customers:

The default mode. A banner appears on your site showing the visitor’s discount and a coupon code. The visitor copies the code and applies it at checkout.

Pros:

  • Works with every payment provider
  • No checkout integration needed
  • Visitor sees the discount upfront

Cons:

  • Requires the visitor to manually apply the code
  • Some drop-off at checkout

The discount is automatically applied at checkout with no coupon code needed. This requires a connected payment integration (Stripe, Paddle, etc.) and uses provider-specific mechanisms.

Pros:

  • Zero friction for the visitor
  • Higher conversion rates
  • No coupon code to copy

Cons:

  • Requires a connected payment provider
  • Implementation varies by provider

See the Auto-Apply guide for provider-specific details.

A product in GoPayLocal represents something you sell. Each product has:

  • Name — Display name (e.g., “Pro Plan”)
  • URL — The page where this product is sold
  • Base Currency — The currency your prices are set in (usually USD)
  • Base Price — The default price before any discounts

A campaign links a product to a set of discount rules. Each campaign specifies:

  • Pricing mode — Group, PPP Factor, or Custom
  • Discount delivery — Banner + Coupon or Auto-Apply
  • Charm pricing — Strategy and configuration
  • Max discount — Cap on the maximum discount percentage
  • Coupon prefix — Prefix for generated coupon codes (e.g., “PPP-”)
  • Allowed domains — Which domains can use this campaign’s banner

GoPayLocal uses two types of API keys:

Key TypePrefixPurposePermissions
Public Keygpl_pk_*Banner script, SDK initializationRead-only (banner config)
Secret Keygpl_sk_*Server-side API accessFull CRUD access

Public keys are safe to include in client-side code. Secret keys must be kept on your server.