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

Monthly or yearly: how to price a USDC subscription for both.

On Fianto a monthly USDC plan renews every 30 days and a yearly plan every 365 days, so a 12.00 monthly plan charges 13 times in its first 365 days and is worth 146.00 USDC a year, not 144.00. Price the yearly plan against that figure: at 120.00 a yearly customer saves about 18%, and you collect the year up front. Because the merchant pays no fees on either, the yearly discount is a choice about cash and churn, not about saving processing costs.

On this page
How often does a monthly USDC subscription renew?How much does a monthly plan collect in a year?How big should the yearly discount be?What does a yearly renewal ask of the customer's wallet?How do you offer monthly and yearly side by side?Can a customer switch from monthly to yearly?SourcesQuestions
TL;DR
  • Monthly means every 30 days and yearly every 365 days; there are no other intervals. A 30-day plan renews about 12.17 times a year.
  • Price yearly against 365 days of monthly: for a 12.00 plan that is 146.00 USDC, so 120.00 is an 18% discount, not "two months free".
  • A yearly renewal needs the whole year's price in the wallet on one day, with about 24 hours of retries. Fianto sends no reminder, so you send it.

How often does a monthly USDC subscription renew?

A monthly USDC subscription on Fianto renews every 30 days, measured in hours from the moment the customer subscribed, and the dashboard labels the two choices "Monthly (every 30 days)" and "Yearly (every 365 days)". There is no weekly, quarterly or custom interval. The renewal is attempted two minutes after each period ends, so the time of day never moves; the date does.

Card billing usually works differently. Stripe's docs give the example of a monthly subscription anchored on January 31 that "bills the last day of the month closest to the anchor date, so February 28 (or February 29 in a leap year), then March 31, April 30, and so on" (Stripe billing cycle docs, checked 15 October 2026). A 30-day plan has no anchor date. Take a customer of Quillfern Labs, an invented research newsletter, who subscribes at 09:00 UTC on 15 October 2026:

ChargeMonthly plan (every 30 days)Yearly plan (every 365 days)
1st15 Oct 202615 Oct 2026
2nd14 Nov 202615 Oct 2027
3rd14 Dec 202614 Oct 2028
4th13 Jan 202714 Oct 2029
13th10 Oct 2027-

The monthly date slides back about five days a year. The yearly date stays put until a leap day falls inside the period: 2028 has 366 days, so the third yearly charge lands on 14 October. Neither drift costs anyone money, but write "every 30 days" on your pricing page so no customer expects the same date each month.

How much does a monthly plan collect in a year?

A monthly plan at price M collects M × 365 ÷ 30, about 12.17 times M, per year of service, and its first 365 days contain 13 charges. The first charge is paid at checkout, then one falls on day 30, 60 and so on up to day 360. For Quillfern Labs at 12.00 USDC a month:

Monthly at 12.00Yearly at 120.00
Charges in the first 365 days131
USDC to the merchant in the first 365 days156.00 (the 13th charge pays for days 360 to 390)120.00
Value of 365 days of service146.00120.00
Network fee the customer pays in those 365 days, today0.13 USDC (13 charges at 0.01)0.01 USDC
Fee the merchant pays00

The customer pays the 0.01 USDC network fee with every charge today, on plans created since 6 October 2026, and no Fianto fee during the beta. After the beta the customer pays about 0.1 to 0.5% on top of your price, the same share on either plan. The merchant receives the full price every time. The wider picture of what a USDC subscription costs each side is on USDC subscriptions.

How big should the yearly discount be?

Set the yearly discount against 365 days of monthly charges, not against twelve of them. For a 12.00 monthly plan, the reference is 146.00 USDC:

Yearly priceDiscount against 146.00Periods of monthly the customer gets free
146.000%0
132.00 (11 × monthly)9.6%about 1.2
120.00 (10 × monthly)17.8%about 2.2
99.0032.2%about 3.9

With cards, part of a yearly discount pays for itself. At Stripe's US rate of "2.9% + 30¢" per successful domestic card charge, as listed on 15 October 2026 (Stripe pricing), twelve monthly charges of $12 cost the merchant about $7.78, while one $120 charge costs $3.78. On Fianto the merchant pays nothing on either, so there is no fee saving to pass on. The case for yearly is the cash in hand on day one and one renewal a year instead of twelve chances to fail.

Our default: price yearly at 10 times monthly and say plainly that it saves about 18%. Go deeper only if a yearly customer is worth more to you than the discount, for example because annual readers rarely leave.

How a monthly or yearly plan is set up on chain, collected and retried, in one page.

See how a plan is billed

What does a yearly renewal ask of the customer's wallet?

A yearly renewal asks for the whole year's price, plus the network fee, in the customer's wallet on one day. The cap the customer approved is per period, so on a 120.00 plan created today, 120.01 USDC is exactly what it allows once every 365 days, and the program takes all of it or nothing.

If the wallet is short at the boundary, the subscription goes past due and Fianto tries again one hour, six hours and a day later. After the fourth counted failure the subscription ends and that year is never billed. Both plans end the same way, but the bar is higher on yearly: the wallet has to hold 120.01 USDC on one day instead of 12.01, and a customer who misses it can only come back through a new checkout, which also means paying the subscription account rent again, about 0.00144 SOL as of 15 October 2026 (the checkout shows the exact live amount), while the old account's rent waits for them to reclaim it. The full sequence is in failed renewals and retries.

How do you offer monthly and yearly side by side?

Offer both by adding two recurring prices to the same product, one monthly and one yearly; a product can hold up to 20 active prices. How the customer chooses depends on where you sell:

  • Shop: a product listing shows 1 to 10 of its prices, so monthly and yearly sit next to each other and the buyer picks one.
  • Payment link: a link sells exactly one price, so make two links. Creating a link with "New product" offers only One-off or Monthly; for yearly, create the price under Products first and pick it with "Existing price". Setting up links is covered in USDC payment links.
  • API: your pricing page sends the chosen price_id when your server creates the subscription session.

Prices cannot be edited after they are created, which matters more for yearly plans. Ending a yearly price cancels its subscribers at the end of the period they paid for, so a yearly price you retire today can still have subscribers 364 days from now. How to raise a price without stranding anyone is in changing a stablecoin subscription price, and the dashboard steps are in the docs on products and prices.

Can a customer switch from monthly to yearly?

A customer can move from monthly to yearly only by starting a new yearly subscription and ending the monthly one; there is no plan switching and no proration. The cleanest timing is near the end of a paid monthly period: the customer cancels the monthly plan in the portal, which runs to the end of that period, and subscribes to yearly. If they switch mid-period, the overlap is paid twice unless you refund the difference yourself in USDC from your wallet.

A discount code is the other way to push people toward a commitment without a second price (coupon recipes for USDC plans includes a yearly-only code). A coupon on the yearly price with the duration "Once" discounts the first year only; "Several billing periods" counts years on a yearly plan, up to 120 of them. The subscriber stays on the plan's full-price cap and Fianto simply pulls less while the discount lasts. Kinds, limits and the one-cent floor are in discount codes for USDC payments, and the case for selling both periods of a membership in selling a membership for USDC. The bigger question of whether a stablecoin subscription fits your business at all is on stablecoin subscriptions.

Sources
Questions

Questions about monthly and yearly USDC plans.

Can I offer an annual subscription paid in USDC?

Yes. Fianto has a yearly interval that renews every 365 days, collected from the customer's wallet within the cap they approved at checkout.

Does a monthly USDC subscription renew on the same date each month?

No. On Fianto monthly means every 30 days from the moment the customer subscribed, so the date moves back about five days a year.

Can I bill a USDC subscription weekly or quarterly?

No. Fianto offers only monthly (every 30 days) and yearly (every 365 days) recurring prices.

Can I offer a free trial before the yearly plan starts?

No. The first period is paid in the subscribe transaction. A discount code can lower the first charge instead, but it cannot make it free.

What happens if a yearly renewal fails?

The subscription goes past due and Fianto retries one hour, six hours and a day after the period ends. If all four attempts fail, the subscription ends and the customer has to subscribe again.

Read next.

Guides8 min read

How to change the price of a stablecoin subscription, and what happens to current subscribers

You cannot edit the price of a running stablecoin subscription on Fianto: the amount and interval are fixed on Solana when the customer subscribes. To charge more or less, add a new price to the product. New customers pay it, and existing subscribers keep their old price for as long as it stays active. To move everyone, end the old plan; each subscriber is cancelled at the end of the period they paid for and must subscribe again at the new price.

Product8 min read

Discount codes for USDC payments: how coupons work on a crypto checkout

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.

Use cases9 min read

Accept USDC for API and RPC plans: tiers, sessions and key webhooks

To accept USDC for API plans, make each tier a recurring USDC price, create a subscription checkout session when a signed-in account picks a tier, and let four webhook events drive the API key: issue it on subscription.created, extend it on subscription.renewed, decide on a grace rule at subscription.past_due, and revoke it on subscription.ended. Store the paid-until date from each event and check it on every request, so a missed webhook can never keep a key alive past what was paid. The customer approves once; Fianto collects every 30 or 365 days and sends the money straight to your wallet.

Two prices, one product.

Add the yearly price next to the monthly one and put the 365-day maths on your pricing page.

New posts are announced on X and Discord.