Skip to main content
This integration is currently in preview and subject to change.
MoonPay provides a test mode for integration development and testing. Test mode uses testnet blockchains and simulated payments. No real assets are transferred.

Enabling test mode

Test mode is determined by the API key you use when creating a session. Use your test API key (sk_test_...) to enable test mode. Use your live API key (sk_live_...) for production. You can find your API keys on the Developers page in your MoonPay dashboard.
All frames and SDK methods automatically operate in test mode when initialized with a session token created using test API keys.

Test accounts

When creating test accounts:
  • KYC verification is simulated - documents are not verified
  • We recommend using a US or UK address for test accounts, as these work best with test payment cards
  • You can skip document submission by clicking “Skip document submission” if prompted

Test data

Email addresses

You must use a real email address that you can access. MoonPay sends OTP codes for login verification, and there are no test bypass values.
You cannot reuse the same email address for different customers.
Tip: Use the + suffix pattern to create multiple unique addresses from a single inbox: you+test1@example.com, you+test2@example.com, etc.

Phone numbers

You must use a real phone number that you can access. MoonPay sends OTP codes for verification, and there are no test bypass values.
A phone number can only be associated with one customer at a time. If you verify with the same phone number on a different customer, it will be removed from the previous customer.

SSN (US residents)

SSN values are not verified in test mode. You can enter any 9-digit value.
Do not use your real Social Security number. Use a fake value like 123456789.

Test payment cards

Use the following test cards to simulate payments. Do not enter real payment card information. Use any valid 3-digit CVV (or 4-digit for Amex) and any future expiration date.

US customers

Card typeCard numberExpirationCVV
Visa Credit4000 0200 0000 000012/2030100
Mastercard Credit5436 0310 3060 637812/2030100
Amex Credit3456 7890 1234 56412/20301000

UK customers

Card typeCard numberExpirationCVV
Visa Credit4242 4242 4242 424212/2030100
Visa Debit4659 1055 6905 115712/2030100
Mastercard Debit5305 4847 4880 009812/2030100

EU customers

Card typeCard numberExpirationCVV
Visa Debit (FR)4010 0617 0000 002112/2030100
Mastercard Debit (DE)5305 4847 4880 009812/2030100
Amex Credit (ES)3456 7890 1234 56412/20301000

Declined transactions

Use these cards to test error handling for different failure scenarios.
Card numberExpirationCVVDecline reason
4544 2491 6767 367012/2030100Insufficient funds
4897 4535 6848 511312/2030100Suspected fraud
4818 9242 5013 107012/2030100Restricted card
4556 2537 5271 224512/2030100Security violation
4095 2548 0264 250512/2030100Timeout / Internal error
5437 8211 3539 968212/2030100Insufficient funds
5279 9884 0539 883412/2030100Restricted card
5265 1622 7058 796412/2030100Timeout / Internal error
5363 4501 8040 223912/2030100Lost card

Supported testnets

Test mode supports the following tokens and testnets:
TokenTestnet
BitcoinTestnet3
EthereumSepolia
ERC-20 tokensSepolia
SolanaTestnet
Binance CoinTestnet
TONTestnet
StellarTestnet
LitecoinTestnet
ERC-20 token transfers in test mode use MoonPay’s test token contract.

Troubleshooting

Common errors

ErrorCauseSolution
Framing 'https://blocks.moonpay.com' violates "frame-ancestors" CSPYour app or website domain has not been allowlistedAdd domains at https://dashboard.moonpay.com/developers