API errors
When using the production environment moonpay.hel.io, set your API endpoint to:
api.hel.io/v1
and generate API keys there.
For the development environment, use:
api.dev.hel.io/v1
and generate API keys from moonpay.dev.hel.io.
I forgot my API keys
If you forget your keys:
Log in to the dashboard
Go to Developer → API
Toggle Enable to generate your Public (apiKey) and Secret API Key (bearer)
Note: Save your keys securely — the Secret API Key cannot be retrieved later. You can regenerate both keys if needed.
Retrieving the Currency ID
To retrieve the currencyId use our Get Currency endpoint here.
Retrieving your Wallet ID
In the dashboard, go to Settings → Manage Wallets.
Click the three dots next to your wallet and select Copy Helio ID.
Note: The Helio ID is different from your Public Key.
Paylink unauthorized?
If you ever see this error when opening a paylink, it’s because you’re using a dynamic paylink.
Important: Dynamic paylinks are designed exclusively for the checkout widget, and cannot be accessed natively via the URL.
Tip: To see a simulated checkout widget experience, enter the paylink at demo.hel.io.
The checkout widget is not loading
To ensure the checkout widget works as intended, please copy the code snippet directly from step 3 of the payment creation — without adding any customizations to the code.
Note: Editing or reformatting the code may introduce syntax errors that prevent the widget from loading.
How to verify webhook payload is from MoonPay Commerce
Each webhook request includes a unique secret token in the header:
Authorization: Bearer SHARED_TOKEN
This token verifies that the webhook originates from MoonPay Commerce.
Tip: Keep this token safe — it’s also required to authenticate and delete webhooks later.
I didn’t get assigned the role for my Discord membership
If you didn’t get assigned the Discord role automatically, you can claim the role manually via the buyers dashboard.
I can't send my USDC from my Helio Wallet, what is going on?
If you’re sending USDC on Solana from a new wallet, you’ll need a tiny amount of SOL (under $0.5) to create the USDC token account.
Note: MoonPay Commerce covers regular fees, but not this one-time setup cost.
Liquid Brokers – how to complete a deposit
If your Liquid Brokers deposit didn’t complete, your funds are likely in your Helio wallet.
To complete the transaction:
Go back to the Liquid Brokers page
Select Pay with card → choose Wallet
Sign in with your email
Enter your balance (from moonpay.hel.io) to finish the transaction
Tip: You won’t be charged again — the funds are already in your wallet.
My card was charged, but the merchant doesn’t see my purchase
When you pay with a card, the transaction happens in two steps:
Card payment (onramp): You first use your card to buy crypto — this converts your fiat currency into cryptocurrency
On-chain transaction: Once the crypto is credited to your wallet, you’ll need to complete the purchase on-chain by connecting your wallet and confirming the transaction
If your card has been charged but the merchant doesn’t see your purchase, it usually means the first step (card payment) was successful, but the second step (on-chain transaction) hasn’t been completed yet.
To fix this:
Log in with your connected wallet
Complete the transaction on-chain to finalize the payment
