How to accept USDC payments online
To accept USDC online with Cosmos Pay, add the wallet that will receive the money, then charge with a payment link, the hosted checkout or the Payments API. Your customer pays from their own wallet on Stellar, Solana or Monad, and the USDC goes to your address. Run it on a test network before you charge real money.

What you need
A Cosmos Pay account. Creating one is free, and the Starter plan has no monthly fee: each payment pays 1.5% + 18¢.
A wallet address that will receive the USDC, on the network you charge on: Stellar, Solana or Monad. You add it to your organization in the dashboard and prove it is yours with a signature. Payment links created in the dashboard pay only into the wallets added there.
What your customer needs
A wallet on the same network that holds the USDC and can open the payment: on Stellar, any wallet that opens SEP-7 links; on Solana, any wallet that reads Solana Pay links; on Monad, any EVM wallet that reads EIP-681 links. Their wallet also pays the network fee.
No account. They open the checkout, scan the QR code or tap the wallet button, and approve the payment in their wallet.
Three ways to charge
All three use the same checkout, dashboard and webhooks, so you can start with a link and move to the API when you need it.
- Payment link: create it in the dashboard and send it by chat or email, or show its QR code. No code.
- Hosted checkout: send your customer to the link’s checkout page, open it from a pay button, or show it inside your page with one script tag.
- Payments API: create each payment from your server with one request, or with the TypeScript SDK, and draw your own payment screen.
Send a payment link on WhatsAppTry every integration optionEmbed a payment
Accept your first USDC payment, step by step
Create your account and switch to Sandbox
Sign in to the dashboard and choose Sandbox at the top. What you create there runs on the test networks (Stellar Testnet, Solana Devnet and Monad Testnet) and moves no real money.
Add the wallet that receives the money
In your organization’s settings, add a wallet on the network you will charge on and sign what the dashboard asks for, which proves the wallet is yours.
Create a test charge
In Payments, create a payment link with the network, the amount, the asset and the wallet that receives it. Or create a test API key (it starts with dv_) and call POST /v1/payment-intents/pay from your server. On Stellar Testnet you can charge in XLM, which Friendbot, the Testnet faucet, sends to a test account.
Pay it from a test wallet
Open the checkout page: it says it runs on a test network. Pay from a wallet on that network, and watch the checkout turn to Paid and the link to Succeeded in the dashboard.
Confirm payments on your server
Add a webhook endpoint in the dashboard. When the network confirms a payment, Cosmos Pay sends PAYMENT_INTENT_SUCCEEDED, signed with HMAC-SHA256. Deliver the order when it arrives, not when the customer’s page says it is paid.
Switch to Production
Choose Production in the dashboard and create a live API key (it starts with prod_). The same requests now charge on the main networks: the key decides the network, not the code.
Which network to charge on
Charge on the network where your customers already hold USDC. USDC has a preset on Stellar and Solana, on their main and test networks, and on Monad’s main network. On all three, any other token can be charged by its issuer, mint or contract.
Stellar vs Solana vs MonadStellar paymentsSolana paymentsMonad payments
What it costs
Each payment pays your plan’s rate, the same on every network: 1.5% + 18¢ on Starter, with no monthly fee. The payer’s wallet pays the network fee; on Monad, the fee of the relay that forwards the payment to you is deducted from the payment.
Can I accept USDC without writing code?
Yes. Create a payment link in the dashboard and share it by chat or email, or show its QR code. Each payment’s status shows in the dashboard.
Does my customer pay in USDC, and do I receive USDC?
Yes. Your customer pays in the asset set on the link, and that same asset reaches your address.
Can I try it without real money?
Yes. In Sandbox and with test keys (dv_), links run on test networks, and their checkout says that no real funds move.
Can a customer reverse a USDC payment?
No. Once the network confirms a payment, it is final. A refund is a new payment you send from your wallet.
