devnet preview: payments use test USDC with no real value. Set your wallet to devnet and never send real funds.
SolanaPay Checkout

USDC payments for merchants

Accept USDC with a QR code. Settle straight to your wallet.

Create an invoice, share a Solana Pay QR code, and let customers pay from their own wallet. Every payment is verified on-chain before it is marked paid.

Open merchant dashboard

Example invoice

Paid

INV-2026-00001

10.00 USDC

Laptop accessory purchase

Order
ORDER-10001
Recipient
7xKX…92Ab
  1. Pending
  2. Confirming
  3. Paid

How it works

  1. 01

    Create an invoice

    Set the amount, order ID and expiry. A unique payment reference is generated for the invoice.

  2. 02

    Share the QR code

    The customer scans a Solana Pay QR code or opens the checkout link on any device.

  3. 03

    Customer pays in USDC

    The customer approves the transfer in their own wallet. Funds go directly to your wallet.

  4. 04

    Verified on-chain

    The backend confirms the transfer independently. The invoice shows Confirming, then Paid once finalized.

Paid means verified

A wallet saying “sent” is not proof of payment. The server reads the transaction from the blockchain itself and checks every field before an invoice changes state.

Recipient
Funds arrived in the merchant's wallet
Token
Circle's official USDC mint, from a server-side allowlist
Amount
Exact match in integer base units: no floating point
Reference
The unique reference tied to this invoice
Finality
Paid only after finalized commitment
Uniqueness
One transaction can settle only one invoice

Built on open standards

  • Solana

    Fast, low-fee settlement

  • USDC

    Circle's dollar stablecoin

  • Solana Pay

    Open payment request standard

  • Wallet Standard

    Phantom and other compatible wallets

  • Next.js + TypeScript

    Strictly typed web app and API

  • PostgreSQL

    Relational ledger of invoices and payments