How to Accept Solana Payments in 10 Minutes

Published Sep 2, 2026 · 4 min read

Why Solana for payments

Solana isn't the only chain for merchant crypto, but for point-of-sale and web checkout it fits the constraints well. Transactions finalize in about one second and cost fractions of a cent, so a $5 coffee purchase doesn't get eaten by a $3 network fee like it would on Ethereum L1.

Solana natively supports SOL and any SPL token. In practice that means you can accept USDC, USDT, or SOL through the same integration — no additional contract deployment per token, no per-chain reconciliation. Wallet coverage in 2026 is broad: Phantom, Solflare, Backpack, and Glow on the native side, plus multi-chain wallets like Trust Wallet, Exodus, and Coinbase Wallet that all speak SPL out of the box.

Choose your integration approach

Solpaygate exposes two endpoints for creating a payment. Which you use depends on how much of the checkout UI you want to render yourself:

The hosted checkout is faster to ship and handles mobile wallet deep-links, QR rendering, and the countdown timer for you. For a longer comparison, see payment sessions vs payment links.

Add the API call

Once you have a company ID and API key from the dashboard, one POST is enough to create a payment:

const res = await fetch(
  `https://api.solpaygate.com/api/company/${COMPANY_ID}/payment-session`,
  {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "x-api-key": API_KEY,
    },
    body: JSON.stringify({
      amount: 25.00,
      currency: "USDC",
      reference: order.id,
      returnUrl: `https://yourstore.com/order/${order.id}/thanks`,
      webhookUrl: "https://yourstore.com/hooks/solpay",
    }),
  }
);
const { token } = await res.json();

Swap currency for "SOL" or "USDT" depending on what you're pricing in. The reference field is round-tripped back to your webhook so you can join the payment to an order in your database without extra bookkeeping.

Show the pay URL

Redirect the customer's browser to the hosted pay page:

https://app.solpaygate.com/pay?token=<token>

They see a checkout with the amount, a QR code, and a copyable Solana address. Any Solana wallet — Phantom, Solflare, Backpack, or Trust Wallet on mobile — can scan and pay in one confirmation. The session token itself is valid for 30 minutes to hand off to the customer; once the payment is opened, it expires 15 minutes after creation so stale QR codes don't linger.

If you set returnUrl, the customer's browser redirects there after payment. If you didn't set one, they see a success page hosted by Solpaygate. Either way, your webhook fires independently — do not rely on the browser redirect to update your order state, since customers close tabs.

Handle the webhook

Configure your webhookUrl to receive a POST when the payment confirms on-chain. The body contains the payment ID, amount, currency, the merchant reference you supplied, and the on-chain transaction signature. Verify the HMAC signature header, update your order in your database, then fulfill.

Retries are automatic if your endpoint doesn't return a 2xx — several attempts with backoff, so a brief outage won't lose the confirmation. For the how-to on securing and testing the webhook receiver, read our crypto webhooks guide.

That's the entire integration. Signup and dashboard setup take a few minutes, the API call is ten lines, and the webhook handler is another twenty. Ten minutes is the actual budget for a working end-to-end payment on a fresh account, not a marketing figure.

Ready to accept crypto payments?

Solpaygate lets your business accept SOL, USDT, and USDC on Solana with a single API call. Non-custodial, no smart contract to deploy.

Start for free