How to accept USDC payments on Solana.
Create a Fianto account, prove you control the wallet you want paid to, and wait for a person to review the business. Then your server opens a checkout session for each order, your customer pays from their Solana wallet, and a signed webhook tells you the order is paid. The USDC goes straight to your wallet.
What USDC on Solana is
USDC is a dollar stablecoin issued by Circle. On Solana it is an SPL token: balances live in token accounts owned by a wallet, and a payment is a token transfer recorded in a Solana transaction. Fianto accepts USDC on Solana only; other tokens and networks are not accepted yet.
Your customer needs USDC and a little SOL in their wallet: SOL pays the network fee of each transaction they sign. You need none, and you never pay a network fee.
1. Open your account
- Sign up and give your business details.
- Turn on two-factor sign-in.
- Name your receiving wallet and sign a message with it, to show you control it. Every payment goes there.
- A person at Fianto reviews the business before it can take payments.
2. Create what you sell
In the dashboard, create a product and give it a price in USDC: one-off, or recurring every month (30 days) or every year (365 days). A price must be at least 0.01 USDC. For a one-off sale you can also send the amount, or up to 50 line items, with each checkout session instead.
3. Open a checkout session from your server
Create an application in the dashboard to get its ID and secret. Your server calls the API with them as HTTP Basic credentials and an Idempotency-Key header, so a retried request never opens two sessions:
POST /v1/checkout-sessions
{
"mode": "payment",
"order_id": "order_1042",
"amount": "120.00",
"success_url": "https://example.com/thanks",
"cancel_url": "https://example.com/cart"
}Send your customer to the session's url, or open it as a popup. They see your name, the amount and your order ID, connect Phantom, Solflare, Backpack, MetaMask or a WalletConnect wallet, and approve. For a subscription, use mode: "subscription" with the price_ of a recurring price.
4. Mark the order paid from the webhook
Add a webhook endpoint in the dashboard and verify it. When the payment settles, order. reaches your server with your order ID and the transaction signature. Mark the order paid from the webhook, not from the redirect to your success URL: a customer can close the page after approving. See webhooks for access.
5. Go live
There is no test mode and there are no test keys. Send a signed test event to your endpoint from the dashboard (or POST /v1/webhook/test-event), then take a small real payment and check it on any Solana explorer.
