# MoonPay Commerce > MoonPay Commerce (formerly Helio) is a crypto payment infrastructure API that lets developers accept payments, deposits, and subscriptions on Solana, EVM chains (Ethereum, Polygon, Base), and Bitcoin. Create Pay Links, embed checkout widgets, run headless payment flows, and manage transactions programmatically. Important notes: - **API base URL:** Production: `https://api.hel.io/v1` | Devnet: `https://api.dev.hel.io/v1` - **Authentication:** Pass your public API key as a `publicKey` query parameter and your secret API key as a `Authorization: Bearer ` header. Partner integrations also require an `x-merchant-id` header. - **Dashboard:** Production: [moonpay.hel.io](https://moonpay.hel.io) | Devnet: [moonpay.dev.hel.io](https://moonpay.dev.hel.io) - **SDK packages** are published under the `@heliofi/*` namespace on npm. - **Supported blockchains:** Solana, Ethereum, Polygon, Base, Bitcoin, and more. - **Webhook verification:** All webhook payloads include an `X-Signature` header containing an HMAC-SHA256 hex digest of the request body, signed with your webhook's `sharedToken`. - **Error responses** return JSON: `{ "message": "...", "code": , "errorCode": "...", "errorType": "..." }`. - **Rate limiting** is enforced per IP. Specific endpoints (e.g. Pay Link creation) enforce stricter limits per API key. ## Quick Start - [Introduction](https://docs.hel.io/docs/introduction.md): Overview of MoonPay Commerce and its capabilities - [For Developers](https://docs.hel.io/docs/for-developers.md): Get started on MoonPay Commerce as a developer and build custom crypto payment flows - [No Code](https://docs.hel.io/docs/for-creators.md): Get started on MoonPay Commerce and launch crypto payments in minutes - [API Getting Started](https://docs.hel.io/reference/getting-started.md): Use the API to create payments and track transactions ## Product Guides - [Deposits](https://docs.hel.io/docs/deposits.md): Let users fund your app with any crypto, ideal for gaming deposits, embedded wallets & trading apps - [Charges](https://docs.hel.io/docs/charges.md): Create single-use Pay Links and checkout sessions - [Subscriptions](https://docs.hel.io/docs/subscriptions.md): Crypto subscription payments made easy - [Headless Payments](https://docs.hel.io/docs/headless-payments.md): Run complete payment flows via API — no UI required - [Checkout Widget](https://docs.hel.io/docs/checkout-widget.md): Embed crypto payments in your website or app with a few lines of code - [Stripe](https://docs.hel.io/docs/stripe.md): Manage on-chain payments through Stripe - [Solana Pay - Shopify Plugin](https://docs.hel.io/docs/solana-pay-shopify-plugin.md): Accept digital payments on your Shopify store - [Split Payments](https://docs.hel.io/docs/split-payments.md): Receive payment across multiple wallet addresses - [Gated Payments](https://docs.hel.io/docs/gated-payments.md): Make your sales event exclusive with easy-to-use access controls - [Discounts](https://docs.hel.io/docs/discounts.md): Enable discounts via codes or NFTs ## Developer Tools - [SDK](https://docs.hel.io/docs/helio-sdk.md): Installation and usage guide for the @heliofi SDK - [Webhooks](https://docs.hel.io/docs/webhooks.md): Getting started with webhooks for payment event notifications - [Devnet](https://docs.hel.io/docs/test-helio-on-devnet.md): Test your integration in the devnet environment - [Autofill User Data](https://docs.hel.io/docs/autofill-user-data.md): Pass and autofill user parameters directly to checkout pages - [Google App Script](https://docs.hel.io/docs/google-app-script.md): Add MoonPay Commerce transactions to your Google Sheets using the API ## API Reference — Pay Links - [Pay Link Overview](https://docs.hel.io/reference/paylink/overview.md): Pay Link API creation request body and full options reference - [Create a Pay Link](https://docs.hel.io/reference/paylink/create.md): Create a new paylink with full control over pricing, currency, and payout configuration - [Update a Pay Link](https://docs.hel.io/reference/paylink/update.md): Update the details of a paylink - [Disable a Pay Link](https://docs.hel.io/reference/paylink/disable.md): Disable an active paylink, preventing further payments - [Get Pay Link Transactions](https://docs.hel.io/reference/paylink/list-transactions.md): Retrieve all transactions associated with a specific paylink ID ## API Reference — Charges - [Charge Overview](https://docs.hel.io/reference/charge/overview.md): Create single-use Pay Links and checkout sessions - [Create a Charge](https://docs.hel.io/reference/charge/create.md): Creates a one-time pay link (charge) for collecting a single payment from a customer - [Get a Charge by ID](https://docs.hel.io/reference/charge/retrieve.md): Retrieve a one-time charge using its unique chargeId ## API Reference — Deposits - [Create a Deposit](https://docs.hel.io/reference/deposits/create.md): Creates a new deposit with optional payment methods and notification settings - [Get Deposits](https://docs.hel.io/reference/deposits/search.md): Retrieve all deposits for the authenticated account - [Update a Deposit](https://docs.hel.io/reference/deposits/update.md): Update deposit fields including name, description, payment options, and blockchain symbols - [Get All Deposit Transactions](https://docs.hel.io/reference/deposits/list-transactions.md): Fetch transactions linked to a specific deposit with payment details, status, and amounts - [Get Deposit Transactions by Customer Token](https://docs.hel.io/reference/deposits/list-customer-transactions.md): Get all transactions for a deposit by customer token - [Get a Deposit Transaction by Signature](https://docs.hel.io/reference/deposits/retrieve-transaction-by-signature.md): Fetch a deposit transaction using its blockchain transaction signature - [Get a Deposit Customer (by customerId)](https://docs.hel.io/reference/deposits/retrieve-customer.md): Retrieve the customer associated with a specific deposit - [Create a Customer for a Deposit](https://docs.hel.io/reference/deposit-customers/create.md): Creates a new customer linked to a specific deposit - [Get a Deposit Customer (by Token)](https://docs.hel.io/reference/deposit-customers/retrieve.md): Retrieve a customer linked to a specific deposit using the depositCustomerToken - [Update Deposit Customer](https://docs.hel.io/reference/deposit-customers/update.md): Update a customer associated with a specific deposit - [Record Deposit Wallet Activity](https://docs.hel.io/reference/deposit-wallet/record-activity.md): Signal that a deposit wallet is displayed to a customer to increase balance polling frequency ## API Reference — Webhooks - [Webhook Overview](https://docs.hel.io/reference/webhook/overview.md): Getting started with webhooks - [Create a Webhook](https://docs.hel.io/reference/webhook/create.md): Create a global or pay link webhook - [Create a Pay Link Webhook](https://docs.hel.io/reference/webhook/paylink-transaction/create.md): Listen for transaction events on a specific pay link - [Get Webhooks for a Pay Link](https://docs.hel.io/reference/webhook/paylink-transaction/list.md): Retrieve all webhooks configured for a pay link - [Get a Pay Link Webhook by ID](https://docs.hel.io/reference/webhook/paylink-transaction/retrieve.md): Fetch details of a specific pay link webhook - [Delete a Pay Link Webhook](https://docs.hel.io/reference/webhook/paylink-transaction/delete.md): Delete a pay link webhook by ID - [Create a Subscription Webhook](https://docs.hel.io/reference/webhook/paylink-subscription/create.md): Listen for transaction events on a subscription pay link - [Get Webhooks for a Subscription](https://docs.hel.io/reference/webhook/paylink-subscription/list.md): Retrieve all webhooks configured on a subscription pay link - [Get a Subscription Webhook by ID](https://docs.hel.io/reference/webhook/paylink-subscription/retrieve.md): Fetch details of a specific subscription webhook - [Delete a Subscription Webhook](https://docs.hel.io/reference/webhook/paylink-subscription/delete.md): Delete a subscription webhook by ID - [Create a Deposit Webhook](https://docs.hel.io/reference/webhook/deposit/create.md): Create a webhook for a deposit - [Shopify Webhooks](https://docs.hel.io/reference/webhook/shopify.md): Set up webhooks for your Shopify orders ## API Reference — Transactions - [Get Transactions by Pay Link ID](https://docs.hel.io/reference/transactions/list.md): Retrieve all transactions for a specific paylink - [Get a Transaction by Signature](https://docs.hel.io/reference/transactions/retrieve-by-signature.md): Retrieve transaction details using its blockchain signature - [Get a Transaction by Shopify Payment ID](https://docs.hel.io/reference/transactions/retrieve-by-shopify-payment.md): Retrieve transaction details using its Shopify payment ID - [Export All Transactions](https://docs.hel.io/reference/export/payments.md): Get all transactions filtered by Pay Link ID, sender key, or date range ## API Reference — Headless Payments - [Prepare a Headless Payment](https://docs.hel.io/reference/transaction/headless/prepare.md): Prepares a Solana headless transaction and returns a payload for the payer to sign - [Submit a Headless Payment](https://docs.hel.io/reference/transaction/headless/submit.md): Submits a signed Solana headless transaction ## API Reference — Other - [Get Wallets](https://docs.hel.io/reference/wallet/list.md): Returns all wallets linked to a merchant across supported blockchain networks - [Get Pay Link Currencies](https://docs.hel.io/reference/currency/list.md): Returns all supported currencies including fiat and crypto - [Get Deposit Currencies](https://docs.hel.io/reference/currency/list-deposit.md): Returns all supported deposit currencies - [Get All Subscriptions](https://docs.hel.io/reference/subscriptions/list.md): Fetch all subscriptions associated with your account - [Get a Subscription by ID](https://docs.hel.io/reference/subscriptions/retrieve.md): Retrieve the details of a specific subscription - [Add to a Wallet Allowlist](https://docs.hel.io/reference/allowlist/add.md): Add a wallet address to your allowlist for paylink access control - [Merchant Account](https://docs.hel.io/reference/platform/overview.md): Programmatically create a merchant account on MoonPay Commerce - [Partner Account](https://docs.hel.io/reference/platform/partner-accounts.md): Make API calls on behalf of your connected merchants - [Creating a Merchant Account](https://docs.hel.io/reference/auth/sign-up.md): Create a new merchant account using an external authentication method - [Signing In to a Merchant Account](https://docs.hel.io/reference/auth/sign-in.md): Sign in to an existing merchant account ## Examples ### Create a Charge via API ```bash curl -X POST https://api.hel.io/v1/charge/create?publicKey=YOUR_PUBLIC_KEY \ -H "Authorization: Bearer YOUR_SECRET_KEY" \ -H "Content-Type: application/json" \ -d '{ "paylinkId": "YOUR_PAYLINK_ID", "customerDetails": { "email": "customer@example.com" }, "meta": { "orderId": "ORD-12345" } }' ``` ### Verify Webhook Signature (Node.js) ```javascript const crypto = require("crypto"); function verifyWebhookSignature(requestBody, signature, sharedToken) { const expectedSignature = crypto .createHmac("sha256", sharedToken) .update(JSON.stringify(requestBody)) .digest("hex"); return crypto.timingSafeEqual( Buffer.from(signature, "hex"), Buffer.from(expectedSignature, "hex") ); } // In your webhook handler: app.post("/webhook", (req, res) => { const signature = req.headers["x-signature"]; if (!verifyWebhookSignature(req.body, signature, SHARED_TOKEN)) { return res.status(401).send("Invalid signature"); } const { event, transactionObject } = req.body; // event: "CREATED" | "STARTED" | "RENEWED" | "ENDED" (paylink) // event: "DEPOSIT_TX_CONFIRMED" | "DEPOSIT_TX_SUBMITTED" | "DEPOSIT_TX_ENRICHED" (deposit) console.log(`Received ${event} for transaction ${transactionObject.id}`); res.status(200).send("OK"); }); ``` ### Initialize the SDK ```javascript import { HelioSDK } from "@heliofi/sdk"; const helio = new HelioSDK({ publicKey: "YOUR_PUBLIC_KEY", network: "mainnet", // or "devnet" }); ``` ## OpenAPI Specs - [commerce-api-clean](https://docs.hel.io/commerce-api-clean.json) ## Optional - [FAQ](https://docs.hel.io/docs/welcome-to-helio.md): Frequently asked questions about MoonPay Commerce - [Fees](https://docs.hel.io/docs/pricing-fees.md): Explore MoonPay Commerce pricing options & fees - [Security](https://docs.hel.io/docs/security.md): Security standards for protocol and user safety - [Verification](https://docs.hel.io/docs/verification.md): Safety tools for merchants & users - [Team Roles](https://docs.hel.io/docs/team-roles.md): Invite collaborators and manage team permissions - [Buyer Dashboard](https://docs.hel.io/docs/buyer-dashboard.md): Browse orders, access receipts & manage subscriptions - [Pre-sales](https://docs.hel.io/docs/pre-sales.md): Launch a pre-sales campaign in minutes - [Affiliate Links](https://docs.hel.io/docs/affiliate-links.md): Allow friends to share your links to earn rewards in real-time - [Discord Memberships](https://docs.hel.io/docs/discord-memberships.md): Include access to your exclusive Discord community with every sale - [Telegram Memberships](https://docs.hel.io/docs/telegram-memberships.md): Include access to Telegram groups with every purchase - [Sharing Screen Recordings](https://docs.hel.io/docs/sharing-screen-recordings-with-inspect-mode-enabled.md): How to share screen recordings to MoonPay Commerce support - [Terms of Service](https://docs.hel.io/docs/terms-of-service.md): Effective October 1, 2025 - [Privacy Policy](https://docs.hel.io/docs/privacy-policy.md): Effective January 28, 2026 - [NFT Purchase Terms & Conditions](https://docs.hel.io/docs/nft-purchase-terms-conditions.md): Terms for NFT purchases