On this page
- A refund is a USDC transfer you send from your wallet to the address shown as "Customer wallet" on the payment. Fianto has no refund button and no refund API.
- You pay that transfer's Solana fee, a base fee of 5,000 lamports per signature. A refund to the USDC account the customer paid from needs no rent; only if they closed it since does a new one cost about 0.00149 SOL (as of 15 October 2026).
- Fianto cannot see refunds, so keep a refund log keyed by the Payment ID, and publish a policy that says what you refund, how and how fast.
Why is there no refund button for a USDC payment?
There is no refund button because the money is already in your wallet, not in Fianto's. The customer signs one Solana transaction that sends your price straight to your receiving wallet, and any fee straight to Fianto's treasury. Fianto keeps no balance for you to refund from, and only the owner of a wallet can move USDC out of it. Why the customer cannot pull the payment back on their own, as a cardholder can, is covered in chargebacks vs crypto refunds.
Two consequences follow. You need a little SOL in the receiving wallet to send a refund, even though receiving payments never costs you anything. And the refund is invisible to Fianto: no order or payment changes status, no webhook fires, and a row on Needs attention stays listed after you refund it.
How do you refund a USDC payment, step by step?
Refunding takes five steps, from the dashboard to your wallet app and back to your records:
- Find the payment. In the dashboard, open Payments and search by your order ID, the payment ID (PAY-12 or fian_pay_...), the customer's wallet or the whole transaction signature the customer sends you.
- Check it settled. The status should read Succeeded. A payment marked Failed can still have put USDC in your wallet: its page says "This payment failed, but a transfer reached your wallet." and the Payments filter "Money moved" lists it. Refund what actually arrived.
- Copy two addresses. "Customer wallet" is where the payment came from and where the refund goes. "Received in" is your wallet that got the money, so send the refund from that one.
- Send USDC on Solana. In your wallet app, send the refund amount of USDC to the customer wallet address. Paste the address, never type it, and compare the first and last few characters before you sign. A transfer cannot be undone.
- Record and tell. Copy the refund's transaction signature into your refund log (below) and send it to the customer, so they can see it on Solscan.
| What the refund transfer costs you | Amount | Source |
|---|---|---|
| Solana base fee | 5,000 lamports (0.000005 SOL) per signature; your wallet may add a priority fee | Solana docs: fees |
| Rent for the customer's USDC account, only if it no longer exists | 1,488,440 lamports, about 0.00149 SOL, as of 15 October 2026 | Measured on mainnet; Solana is cutting rent in phases |
| Fianto fee | None: Fianto takes no part in the refund | Fianto product |
Rent here is the SOL Solana requires an account to hold for as long as it exists. A refund to the USDC account the customer paid from needs no new account and no rent. Only a customer who closed that account after paying needs a new one, and a wallet app that creates it as part of the send pays its rent from your SOL. Solana's reduced-rent upgrade is lowering that figure in steps, with more expected in November 2026, so your wallet shows the live amount.
How much should you refund when fees were added on top?
You can refund only what reached your wallet unless you choose to add more: the fees the customer paid went to Fianto or to the Solana network, not to you. The payment page shows the split, with "Amount" for your price, "Fianto fee, paid by the customer", "Network fee, paid by the customer" on a subscription charge, and "Customer paid" for the total.
| Part of what the customer paid | Where it went | In the refund? |
|---|---|---|
| Your price ("Amount") | Your wallet | Yes, in full or in part |
| Fianto fee | Fianto's treasury; none during the beta, about 0.1 to 0.5% after it | Your choice, paid from your own funds |
| Network fee on a subscription charge | Fianto's treasury; 0.01 USDC per charge today on plans created since 6 October 2026 | Your choice, paid from your own funds |
| Solana transaction fee | The network, in SOL | Usually not |
A worked example
A customer pays a 25.00 USDC monthly plan. With no Fianto fee during the beta and the network fee at 0.01 USDC today, each charge takes 25.01 USDC from their wallet and puts 25.00 in yours. Ten days into the 30-day period they ask to leave with a refund for the unused part. Under a stream, which pays by the second, they would simply have stopped it at day ten; that model is compared in streaming payments vs per-period subscriptions.
- Unused share: 20 of 30 days.
- Pro-rata refund of your price: 25.00 x 20 / 30 = 16.666666 USDC, since USDC has 6 decimals. You might round it to 16.67.
- To refund the whole charge instead, network fee included: 25.01 USDC on a plan charged 0.01 USDC today, which is 0.01 USDC more than you received.
- Your cost on top: the Solana fee for one transfer, a fraction of a cent in SOL.
Take USDC with no merchant fees and refunds you control from your own wallet.
How USDC subscriptions workHow do you refund a subscription charge without it charging again?
Cancel the subscription first, then send the refund: a refund alone does not stop the next renewal. In the dashboard, open the subscription and choose Cancel subscription, then "At the end of this period" or "Now". The dialog explains "Now" in these words: "Ends today. The current period is not refunded; any refund is a transfer from your wallet. A renewal charge already on its way to Solana can still land."
- From code, the same cancel is
POST /v1/subscriptions/{id}/cancelwithatset tonow, which sendssubscription., orended period_, which sendsend subscription.unless a cancel is already scheduled. The subscriptions API docs list both.cancel_ scheduled - A cancellation cannot be undone. The dashboard says so: "The customer would subscribe again from a new checkout."
- If a renewal lands after you cancelled with "Now", it is a normal payment in your wallet. Refund it the same way.
Customers can cancel themselves in the customer portal at fianto.xyz/my, and their subscription then runs to the end of the period already paid. Fianto never back-bills: a renewal that fails four times ends the subscription, and the missed period is never charged later. A customer who asks for a refund of a renewal they forgot is often best served by your cancel plus a refund, and a reminder that the portal exists.
How do you record a refund that Fianto cannot see?
Record a USDC refund in your own refund log, keyed by Fianto's Payment ID, because nothing in Fianto changes when you send one. Fianto's Needs attention docs put it plainly: "Fianto cannot see refunds you send from your own wallet." One row per refund is enough:
| Column | Example | Where you get it |
|---|---|---|
| Payment ID | fian_pay_... | The payment page, "Payment ID" |
| Your order ID or subscription | order_1001 | The payment page, "Your order ID" |
| Amount received | 25.00 USDC | "Amount" |
| Amount refunded | 16.666666 USDC | Your wallet |
| Refund date and time (UTC) | 2026-10-15 09:12 | Your wallet or Solscan |
| Refund signature | 5KQ... | Your wallet or Solscan |
| Reason | Pro-rata, cancelled day 10 | Your support ticket |
Each month, export the payments CSV from the dashboard (up to 366 days and 50,000 rows per file) and match it against the log by Payment ID. Your accountant then sees gross receipts and refunds side by side. How to value each USDC movement for the books is in accounting for USDC revenue. If your app grants access from webhooks, revoke it yourself when you refund, since no event will tell your server.
A refund and cancellation policy template for USDC payments
A refund policy for USDC payments has to say what a card policy never needed to: which wallet the money goes back to, in what currency, and who pays the network fee. Copy the clauses below, replace everything in square brackets, and delete what does not apply.
- How we refund. Refunds are paid in USDC on Solana to the wallet the payment came from, within [5] business days of approval. We cannot refund to a card, a bank account, an exchange account or another network.
- One-off purchases. You can ask for a refund within [14] days of purchase if [you have not downloaded the file / the service has not started]. Write to [support@yourdomain].
- Subscriptions. Monthly plans renew every 30 days and yearly plans every 365 days from the day you subscribed. You can cancel any time at fianto.xyz/my; your plan stays active until the end of the period you paid for. [We do not refund partial periods. / We refund the unused part of the current period on request.]
- Failed renewals. If a renewal cannot be collected, it is retried up to three more times within about a day. If all attempts fail, the subscription ends and the missed period is never charged later.
- Fees. We refund the price we received. [We do not refund / We also refund] the network and service fees added at checkout. We pay the Solana fee for sending your refund.
- Duplicate payments. If you pay the same order twice, we refund the extra payment in full.
- Payments sent outside the checkout. We can only refund payments made through our checkout. Tokens sent on another network, or to the wrong address, are not received by us.
- Proof. Every refund comes with its transaction signature, which you can check on Solscan.
If you sell to consumers in the EU, read up on the right of withdrawal before you set clause 2. The EU's Your Europe page on returns (marked "Last checked: 28/04/2026") says consumers can generally cancel an online purchase within 14 days without giving a reason, and lists exceptions, including digital content the buyer has started to download or stream after agreeing to lose that right. Publish the finished policy where customers see it before paying, and set a support email in your Fianto Settings so the checkout shows them where to ask.
- Solana documentation: transaction fees
- Solana: reduced rent upgrade (SIMD-0437)
- Solana RPC: getMinimumBalanceForRentExemption
- Your Europe: guarantees and returns, right of withdrawal (last checked 28/04/2026)
- Fianto docs: Needs attention
- Fianto docs: orders and payments
- Fianto docs: subscriptions via the API