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

How discount codes work on a USDC checkout, from one-off sales to subscriptions.

A Fianto coupon is a code your payer types on the hosted checkout to pay less in USDC: a percentage from 1% to 99%, or a fixed USDC amount off. On a subscription it lasts for the first charge, a set number of charges, or every charge. The discounted price must stay at least 0.01 USDC, and a discounted subscriber keeps the full-price cap on chain while Fianto collects less.

On this page
What is a discount code on a crypto checkout?Where does the payer enter the code?How low can a discounted price go?How do you limit a coupon?Why does a discounted subscription keep the full-price cap?How does a repeating coupon return to full price?Where do you manage coupons?SourcesQuestions
TL;DR
  • Coupons take a percentage (1% to 99%) or a fixed USDC amount off, once, for a number of billing periods, or forever. They work on API, shop and payment link checkouts.
  • You create and manage them in the dashboard only, with an optional expiry, a redemption limit and a once-per-wallet rule. The value never changes after creation.
  • A discounted subscription stays on the same on-chain plan, whose cap is the full price. Fianto pulls the lower amount while the discount lasts, then the full price.

What is a discount code on a crypto checkout?

A discount code is a short code a payer types at checkout to pay a lower price. Fianto added them, as coupons, on 14 October 2026: the merchant creates a code in the dashboard, and the payer enters it on Fianto's hosted checkout page before signing. The page reprices, and the payer signs the lower amount.

A coupon has a value and a duration, fixed when you create it:

SettingOptionsNotes
Percentage off1% to 99%, up to 2 decimalsThere is no 100% coupon: Fianto cannot settle a free order
Fixed amount offAn amount in USDCTaken off each discounted charge
Duration: onceThe first charge onlyA one-time payment is discounted once, whatever the duration
Duration: several billing periods1 to 120 chargesCounted from the first charge
Duration: foreverEvery chargeFor as long as the subscription runs

The code itself is 3 to 32 letters, digits and hyphens. Fianto stores it in upper case, so payers can type it in either case. The dashboard can also generate a random 10-character code for you. A merchant can have up to 100 active coupons at once.

A coupon is not tied to one product. It applies to any of your prices, on every kind of checkout: one your server starts through the API, a purchase in your shop, or a payment link.

Where does the payer enter the code?

On the checkout page, in a discount code field in the order summary. The field appears only while you have at least one active coupon that has not expired; a merchant with no coupons shows payers no empty box to wonder about.

  1. The payer opens the checkout from your site, shop or link, and types the code.
  2. Fianto checks the code against your coupons and their limits, then reprices the checkout. The page shows the price before the discount, the discount, and the new total.
  3. The payer connects a wallet and signs the discounted amount. The USDC goes straight to your wallet, as with any other Fianto payment.

Every bad code gets the same answer, whether it never existed, has expired, was archived or is used up, so guessing codes reveals nothing about which ones exist. A code can be removed before paying, and once the payer has started paying with one code the checkout cannot switch to a different one.

How low can a discounted price go?

The discounted price must be at least 0.01 USDC, the same minimum as any Fianto price. If a coupon would bring it lower, the code is refused for that purchase and the payer pays the full price. Fianto never quietly clamps a discount to fit.

  • A fixed 10 USDC off a 10 USDC product would leave nothing, so it is refused.
  • 99% off a 0.50 USDC price would leave 0.005 USDC, below the minimum, so it is refused too.
  • A percentage discount is rounded down to the smallest USDC unit, so any rounding falls in the merchant's favour.

Fees follow the discounted price. Fianto charges no fee during the beta; after it, the payer's Fianto fee is worked out on the discounted amount, not the list price. The merchant pays nothing either way. On a subscription, the flat network fee is not discounted: it stays 0.01 USDC with each charge today, paid by the payer. See the pricing page for the full list.

How do you limit a coupon?

Three optional limits stop a code from running further than you meant:

  • Expiry. A date and time from one minute to five years ahead, read in the dashboard's time zone. After it, the code stops working.
  • Maximum redemptions. From 1 to 1,000,000. Only paid redemptions count, never checkouts where the code was typed and nobody paid. You cannot lower the limit below the paid redemptions a coupon already has.
  • Once per wallet. A wallet that has paid with the code cannot use it again. This is about wallets, not people: a payer with two wallets has two chances.

While a payer is paying, their place counts toward the redemption limit for 5 minutes, so two payers cannot both take the last use at the same moment. As with payment link limits, a payment that lands on Solana late is still settled, so a coupon can very occasionally end a little past its limit.

The value and the duration never change after you create a coupon. The name, expiry, redemption limit and once-per-wallet rule stay editable. Coupons are archived, never deleted, and archiving cannot be undone. To change a discount, archive the coupon and create another; an archived code can be used again on the new coupon.

Take USDC on a hosted checkout with discount codes built in. The merchant pays nothing, and there is no Fianto fee during the beta.

See the checkout

Why does a discounted subscription keep the full-price cap?

A Fianto subscription runs on the Solana Foundation's Subscriptions program. Each recurring price has a plan on chain, shared by its subscribers. The plan fixes the most that can be collected per billing period: the price, plus the Fianto fee, plus the network fee. When a payer subscribes, their wallet approves that cap, and the program refuses any collection above it. The mechanism is explained in Solana token delegation explained.

A discounted subscriber joins that same plan. Their approval is for the full-price cap, and Fianto simply collects less while the discount lasts. The checkout shows both before anything is signed: what is charged now, and the most that can be taken per period at full price.

Take a 20 USDC monthly plan from Quillfern Labs with a coupon of 25% off for 3 billing periods, during the beta, with the network fee at 0.01 USDC today:

ChargePrice chargedNetwork feePayer paysCap approved on chain
1 (at checkout)15.00 USDC0.01 USDC15.01 USDC20.01 USDC
2, 30 days later15.00 USDC0.01 USDC15.01 USDC20.01 USDC
315.00 USDC0.01 USDC15.01 USDC20.01 USDC
4 and after20.00 USDC0.01 USDC20.01 USDC20.01 USDC

Why not a smaller cap for discounted subscribers? Because the discount ends. If the payer had approved only 15.01 USDC, the fourth charge would be refused and they would have to sign again. With the full cap approved up front, the return to full price needs no new signature.

Be clear with yourself and your customers about what each side guarantees. The program guarantees the cap: no more than 20.01 USDC per period, and only to the plan's wallets. The discount is applied by Fianto's billing, which collects once per period at the discounted amount.

How does a repeating coupon return to full price?

When you create a coupon for several billing periods, the number counts charges from the first one, the charge at checkout included. A coupon for 3 periods discounts charges 1, 2 and 3. From charge 4 the subscription is billed at its list price, automatically, inside the approval the payer already gave. A coupon that lasts once discounts only the first charge; one that lasts forever discounts every charge.

The discount is copied onto the subscription when it starts. Archiving the coupon later, or letting it expire, stops new payers from using the code, but subscriptions that already have the discount keep it for its full duration.

Your MRR in the dashboard follows what is actually charged: it counts the discounted amount while the discount lasts and the list price after. Retries for a failed renewal work exactly as for any USDC subscription.

Where do you manage coupons?

In the merchant dashboard only, under Billing, then Coupons. There is no API route or SDK method to create, list or apply a coupon. Each coupon's page lists its paid redemptions with the list price, the discount and the amount paid, and you can export the list as CSV. Discounted sales also show up in Orders, Payments, Subscriptions and reporting like any other.

If you run code, you still see discounts: v1 responses and webhook payloads for orders and subscriptions carry a discount object and a discount_amount field. A one-time discounted payment still sends order.paid, and a discounted subscription sends the usual subscription.* events. There is no coupon event type. In a shop, the buyer's receipt and email show no amount; your own sale email shows the discounted amount paid.

Sources
Questions

Questions about discount codes for USDC payments.

Can a coupon make a product free?

No. A percentage coupon goes up to 99%, and the price after any discount must be at least 0.01 USDC, or the code is refused.

Can I limit a coupon to one product?

No. A Fianto coupon applies to any of your prices. To limit who uses it, set an expiry, a maximum number of paid redemptions, or once per wallet.

Does a subscriber have to sign again when the discount ends?

No. The wallet approved the full-price cap at checkout, so the first full-price charge is collected within that approval.

Can I change a coupon after creating it?

You can change its name, expiry, redemption limit and once-per-wallet rule. The discount and the duration are fixed: archive the coupon and create another to change them.

Can I create coupons through the API?

No. Coupons are created and managed in the dashboard only. The API and webhooks show the discount on orders and subscriptions.

Read next.

ProductGuides9 min read

USDC payment links: how to create, share and manage one

A Fianto payment link is a reusable address, checkout.fianto.xyz/l/ plus 16 random characters, that sells one price of one product in USDC on Solana. You create it in the dashboard, share it anywhere, and every payer who opens it pays on the hosted checkout: once for a one-time price, or as a subscription for a monthly or yearly one. This is the step-by-step version.

ProductGuides8 min read

A no-code USDC shop: sell digital products at your-name.fianto.xyz

A Fianto shop is a storefront at your-name.fianto.xyz that you build in the dashboard without code. It sells your own products for USDC on Solana, at one-time, monthly or yearly prices, and each payment goes straight from the buyer's wallet to yours. This is what it can sell, how editing and delivery work, and what it does not do.

Compare10 min read

Stripe stablecoin subscriptions vs Fianto: countries, chains, fees

As of 14 October 2026, Stripe's stablecoin subscriptions are a private preview that US businesses request access to, they charge 1.5% per payment, and the money settles in the merchant's Stripe balance in fiat. Fianto bills USDC on Solana only, pays each charge straight into the merchant's own wallet, and charges the merchant nothing. Stripe fits better when customers have no wallet or the business wants dollars in a bank; Fianto fits when customers already hold USDC on Solana or Stripe is not an option.

Discounts that settle in USDC.

Create a code in the dashboard and your payers type it at checkout.

New posts are announced on X and Discord.