What You Can Migrate
Products & Pricing
Products and their prices.
Customers
Customer records, including contact details.
Discount Codes
Discount codes and coupons.
License Keys
License keys with customer and product mappings (Polar.sh and Lemon Squeezy only).
Install the Tool
Run a Migration
Choose the command for your current provider:- Lemon Squeezy
- Stripe
- Polar.sh
- Paddle
- Your provider’s API key
- Your Dodo Payments API key
- Whether to test first or go live
- Which Dodo Payments brand to migrate to
- Which data to migrate (products, customers, discounts, license keys)
Non-Interactive Mode
To skip the prompts, pass values as flags.--mode takes test_mode or live_mode. Use a Dodo Payments API key created in the same mode. If you omit --dodo-brand-id, the tool lists your brands and asks you to pick one.
The flag that selects what to migrate is --types for Lemon Squeezy and --migrate-types for the other providers. If you omit it, the tool asks you to choose. When no terminal is attached, Paddle migrates only products and Polar.sh migrates products and discounts.
- Lemon Squeezy
- Stripe
- Polar.sh
- Paddle
License Key Migration
License keys can be migrated from Polar.sh and Lemon Squeezy. When you select license keys in the interactive prompt, or passlicense_keys in --types (Lemon Squeezy) or --migrate-types (Polar.sh), the tool imports your existing keys with the correct customer and product associations.
What Migrates
- License key strings
- Activation limits
- Expiration dates
- Customer and product associations
What Doesn’t Migrate
- License key activations — customers must re-activate on their devices after migration.
- Revoked or disabled keys — only active keys are migrated.
- Keys without a matching product or customer are skipped with a warning.
Get Help
- Tool help:
dodo-migrate --help - Provider-specific help:
dodo-migrate lemonsqueezy --help(orstripe,polar,paddle) - Community: Discord
- Report issues: GitHub