No Fianto fee during the beta. Any fee comes with at least 30 days notice. See pricing
Guides9 min read

How to refund a USDC payment, record it, and write the policy behind it.

To refund a USDC payment taken with Fianto, you send USDC from your own receiving wallet to the customer's wallet, because Fianto never holds the money and has no refund API. That transfer is yours: you sign it and pay its Solana fee in SOL. Fianto charges you nothing for it, and cannot see it either, so you keep the record yourself.

On this page
Why is there no refund button for a USDC payment?How do you refund a USDC payment, step by step?How much should you refund when fees were added on top?How do you refund a subscription charge without it charging again?How do you record a refund that Fianto cannot see?A refund and cancellation policy template for USDC paymentsSourcesQuestions
TL;DR
  • 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:

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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 youAmountSource
Solana base fee5,000 lamports (0.000005 SOL) per signature; your wallet may add a priority feeSolana docs: fees
Rent for the customer's USDC account, only if it no longer exists1,488,440 lamports, about 0.00149 SOL, as of 15 October 2026Measured on mainnet; Solana is cutting rent in phases
Fianto feeNone: Fianto takes no part in the refundFianto 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 paidWhere it wentIn the refund?
Your price ("Amount")Your walletYes, in full or in part
Fianto feeFianto's treasury; none during the beta, about 0.1 to 0.5% after itYour choice, paid from your own funds
Network fee on a subscription chargeFianto's treasury; 0.01 USDC per charge today on plans created since 6 October 2026Your choice, paid from your own funds
Solana transaction feeThe network, in SOLUsually 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 work

How 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}/cancel with at set to now, which sends subscription.ended, or period_end, which sends subscription.cancel_scheduled unless a cancel is already scheduled. The subscriptions API docs list both.
  • 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:

ColumnExampleWhere you get it
Payment IDfian_pay_...The payment page, "Payment ID"
Your order ID or subscriptionorder_1001The payment page, "Your order ID"
Amount received25.00 USDC"Amount"
Amount refunded16.666666 USDCYour wallet
Refund date and time (UTC)2026-10-15 09:12Your wallet or Solscan
Refund signature5KQ...Your wallet or Solscan
ReasonPro-rata, cancelled day 10Your 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.

  1. 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.
  2. 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].
  3. 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.]
  4. 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.
  5. 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.
  6. Duplicate payments. If you pay the same order twice, we refund the extra payment in full.
  7. 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.
  8. 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.

Sources
Questions

Questions about refunding USDC payments.

Does Fianto have a refund API?

No. Fianto never holds your funds, so it cannot refund. You send the USDC back from your own wallet to the customer's wallet.

Who pays the fee when a merchant refunds USDC?

The merchant. The refund is your own Solana transaction, so your wallet pays its fee in SOL: a 5,000-lamport base fee per signature, plus rent if the customer's USDC account has to be recreated.

Can I refund a USDC payment to a card or bank account?

Not through Fianto. Fianto moves only USDC on Solana and has no fiat payouts, so a refund goes back as USDC to a Solana wallet.

Does a refund cancel the customer's subscription?

No. Cancel it first in the dashboard or with the API, then send the refund. A refund on its own changes nothing in Fianto, and the next renewal would still be collected.

Should I refund the network fee as well?

That is your choice. The 0.01 USDC network fee on a subscription charge today, and any Fianto fee after the beta, went to Fianto, so refunding them comes out of your own funds.

Read next.

Guides9 min read

Ten questions customers ask when paying in USDC, and how to answer them

Most questions from customers paying in USDC are answered by one of three things: the payment's status in your dashboard, the exact sentence the checkout showed them, or the transaction signature. A payment the customer saw succeed shows as Confirmed until Solana finalizes it, then Succeeded; only then does your order turn Paid. Below are the ten questions that come up, what the customer saw, and where you look before you reply.

PaymentsWallets9 min read

Wrong amount, token or network: crypto payment mistakes and how a signed checkout prevents them

Once a crypto transfer is final, nobody can pull it back: not your wallet, not the network and not Circle, whose USDC terms say "Circle does not have the ability to reverse or recall any transaction once initiated." The only way to get mistaken USDC back is for whoever controls the receiving address to send it, and anyone who offers to "recover" it for a fee is almost certainly running a scam. A checkout that builds the transaction for the customer removes the usual mistakes before the wallet opens: on Fianto the amount, the token, the network and the destination are fixed by the server and checked again after signing.

Compare8 min read

Chargebacks versus crypto refunds: what a merchant needs to know

No: a USDC payment on Solana cannot be reversed by the payer. There is no card issuer to file a dispute with, so there are no chargebacks. Once Solana has finalized the transfer, the money stays in the merchant's wallet unless the merchant sends it back. That makes refunds the merchant's job, and a clear refund policy the merchant's responsibility.

Your wallet, your refund, your record.

Keep a little SOL in the receiving wallet and a log beside the CSV.

New posts are announced on X and Discord.