Skip to main content

MoonPay Commerce | Integration troubleshooting guide

Resolve common setup, API, and payment issues with MoonPay Commerce.

Updated this week

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:

  1. Go back to the Liquid Brokers page

  2. Select Pay with card → choose Wallet

  3. Sign in with your email

  4. 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:

  1. Card payment (onramp): You first use your card to buy crypto — this converts your fiat currency into cryptocurrency

  2. 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

Did this answer your question?