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

How crypto recurring payments work, from push to capped pull.

Crypto recurring payments work in one of two ways: the customer pushes a new payment every period, usually after an invoice link, or the customer approves once and the merchant pulls each charge within an on-chain limit. A wallet never pays on its own, so a true automatic renewal needs that approval and a program that enforces it. On Solana, Fianto uses the Solana Foundation's Subscriptions program for this and pulls each period's USDC straight into the merchant's wallet.

On this page
What is the difference between push and pull crypto payments?What are the ways to bill crypto on a schedule?How does a capped pull renewal work, step by step?What happens when the wallet is short on renewal day?What does your server see during a pull subscription?Which recurring model should a merchant pick?SourcesQuestions
TL;DR
  • Push: the customer signs every payment. Pull: the customer signs one approval with a cap, and an approved party collects each period within it.
  • Most crypto billing today is push with a reminder: an invoice or a payment link each period, paid by hand.
  • On Fianto a monthly plan is pulled every 30 days, tried up to four times over a day if the wallet is short, and capped at price plus fees.

What is the difference between push and pull crypto payments?

A push payment moves money only when the payer signs it, and a pull payment lets someone the payer approved start the transfer later. A blockchain transfer is push by nature: tokens leave a wallet when the owner's key signs a transaction, and at no other time. A card works the other way round. You hand over the number once, and the merchant charges it each month.

That gap is why crypto subscriptions were awkward for years. Stripe, announcing its own stablecoin subscriptions in October 2025, called the need to sign each transaction "a fundamental limitation of blockchain-based payments". The payment standard most Solana merchants know does not close it either: the Solana Pay specification defines a transfer request and a transaction request, each one payment, and has no recurring request at all. Why Solana Pay has no recurring payments goes through both request types.

Pull in crypto is built from delegation: the owner of a token account authorises another address to move up to an amount of that token. A plain delegation has no schedule and no destination, which is the problem Solana token delegation explained walks through. A subscription needs a program on top that says how much, how often and to whom.

What are the ways to bill crypto on a schedule?

There are four working models for billing crypto on a schedule, and two of them need nothing from the customer after the first signature: streaming, which pays by the second, and capped pull, which charges a set amount once a period. Each row below names what the customer signs and a public example, checked on 15 October 2026.

ModelWhat the customer signsWho starts each paymentPublic example
Invoice or link each periodA new payment every periodThe customer, after a reminderHelius by default issues a USDC invoice each cycle and sends a payment link by email
Manual transfer to an addressA plain transfer they type inThe customerMoralis asks crypto payers to contact support before the renewal date
StreamingOne transaction that opens a flowNobody: value moves every secondSuperfluid: tokens move "at a defined per-second rate"
Capped pullOne approval with a cap per periodAn approved collectorSolana Subscriptions program; Base Spend Permissions, which allow charges "up to a specified amount each billing period"

Vendors mix models. NOWPayments, in a guide dated 8 October 2026, renews automatically only when the customer pays the first invoice through a ChangeNOW account; for any other wallet, "Future renewal invoices must be paid manually." Helius offers an opt-in Crypto autopay built on the Subscriptions program next to its default invoices. Coinbase describes Base Spend Permissions as "a one-time approval that remains active until cancelled", with the merchant's own backend charging each period. The billing platforms themselves are set side by side in stablecoin subscription billing platforms compared.

Streaming fits payroll and per-second metering, and it stops when the sender's balance runs out. Invoices fit a yearly contract with a finance team on the other side. For a monthly product with many small customers, every manual step is a chance to lose the renewal, and capped pull removes them while keeping a fixed price per period. Which public services renew by themselves and which send a link is the subject of does crypto auto-renew.

How does a capped pull renewal work, step by step?

A capped pull renewal works in two moves: the customer signs one transaction that sets the limits and pays the first period, then a collector asks the program for each later period and the program checks the limits before anything moves. Here it is with real timings, for a Quillfern Labs plan at 25.00 USDC a month sold through Fianto.

  1. Quillfern Labs creates a recurring price of 25.00 USDC, Monthly (every 30 days), in the dashboard. When the first subscription checkout session for it is created, Fianto publishes a matching plan on the Subscriptions program: the amount per period, a period of 720 hours, and the wallets the money may go to.
  2. On 1 November 2026 at 10:00 UTC a customer opens the checkout and signs one transaction. It gives the program the wallet's USDC approval if the wallet has none yet, creates the subscription and pulls the first period. The cap per period is the price plus the Fianto fee plus the network fee: 25.00 + 0.00 during the beta + 0.01 today = 25.01 USDC.
  3. The period ends on 1 December at 10:00, exactly 30 days later. Two minutes after the boundary, at 10:02, Fianto's charging key asks the program to collect 25.01 USDC.
  4. The program refuses a signer that is not on the plan's puller list, a destination that is not on the plan and anything above the cap for the period. If all three pass, 25.00 USDC lands in the Quillfern wallet and the network fee, 0.01 USDC today, in the Fianto treasury, in one transaction that Fianto signs and pays the SOL fee for.
  5. The next boundary is 31 December at 10:00. A yearly plan works the same way with 8,760 hours, 365 days.

The customer did nothing on 1 December, and the merchant did not pay a network fee. Nothing was prepaid either: the USDC sat in the customer's wallet until the charge. The parts of the signed approval, and each check, are listed in recurring USDC payments. After the beta the Fianto fee will be about 0.1 to 0.5% on top of the price, paid by the customer: on 25.00 USDC, between 0.025 and 0.125 USDC.

Create a monthly or yearly USDC price and sell it from a shop, a payment link or your own server.

See crypto subscription payments

What happens when the wallet is short on renewal day?

When the customer's wallet cannot cover the charge, nothing moves and Fianto tries again on a fixed schedule: four attempts in all, the last one a day after the boundary. For the Quillfern plan the attempts fall like this.

AttemptWhenSubscription after a counted failure
11 December, 10:02 (boundary + 2 minutes)Past due
21 December, 11:00 (boundary + 1 hour)Past due
31 December, 16:00 (boundary + 6 hours)Past due
42 December, 10:00 (boundary + 24 hours)Ended

Four reasons count as a failure: too little USDC, a revoked approval, a frozen USDC account and a closed one. Any other error is retried without counting. A charge either takes the full amount or nothing, and a period that ended unpaid is never billed later. The merchant-side detail is in failed renewals and retries.

What does your server see during a pull subscription?

Your server sees a signed webhook for each change in the subscription, and no order: a Fianto subscription sends subscription.* events, and order.paid never fires for it.

EventSent when
subscription.createdThe subscribe transaction finalizes on Solana
subscription.renewedA renewal charge finalizes
subscription.payment_failedEvery counted failure: too little USDC, a revoked approval, a frozen or a closed account
subscription.past_dueThe first counted failure while the subscription is active, with attempts left
subscription.cancel_scheduledA cancel is scheduled for the period end, by the customer or the merchant
subscription.endedThe subscription stops, for whatever reason

Grant access on created, extend it on renewed and remove it on ended. Deliveries are at least once and in no fixed order, so key your handler on the event id. The full lifecycle with every state is on the subscription lifecycle docs page.

Which recurring model should a merchant pick?

Pick capped pull when customers already hold stablecoins and the plan is monthly, because it is the only model that charges a fixed amount once a period with nothing asked of the customer. Pick something else in these cases:

  • Your customers have no wallet. Card billing asks them for nothing new. A crypto plan asks for a wallet, USDC and a little SOL.
  • You bill once a year, by contract. An invoice and a manual payment is fine at that rhythm, and your customer's finance team may insist on one. Fianto has no invoices.
  • You need weekly, usage-based or per-second billing. Fianto bills every 30 or every 365 days, nothing else, and has no free trials. Streaming or metering tools exist for the rest.
  • Your customers pay on another chain or in another token. Fianto takes USDC on Solana only.

What changes for the person paying, from the first signature to getting the rent back, is in paying a subscription with crypto.

Sources
Questions

Questions about crypto recurring payments.

Are crypto payments push or pull?

Push by default: tokens move only when the owner signs. A pull needs a delegation the owner signed earlier, and for a subscription a program that limits it by amount, period and destination.

Can a merchant charge a crypto wallet every month without a new signature?

Yes, if the customer approved a capped pull such as a plan on the Solana Subscriptions program. Without that approval the merchant can only send a reminder and wait for the customer to pay.

Do recurring crypto payments need a smart contract?

A true automatic renewal needs on-chain code that holds the limits, called a program on Solana. Invoice-style recurring billing needs none, because the customer pays each period by hand.

How often can a Fianto subscription charge?

Every 30 days for a monthly price or every 365 days for a yearly one, two minutes after each period boundary. There are no weekly or custom intervals.

Does the merchant pay gas on renewals?

No. Fianto signs each renewal and pays its Solana fee in SOL, and the merchant never pays a network fee.

Read next.

Payments6 min read

Does crypto auto-renew? Which services renew on their own and which send a link

Usually not. A subscription paid in crypto ends when the paid period runs out unless you pay again, because a wallet has no card number the merchant can charge. It renews on its own only when you signed an approval with a limit per period at checkout, as Helius autopay and Fianto plans on Solana ask for, and then it keeps renewing until you cancel it or a renewal cannot be paid.

Solana9 min read

Solana token delegation explained: approvals, caps and who can pull

Token delegation on Solana lets a token account's owner approve one other address, the delegate, to move up to a set amount of that token. A plain approval has no schedule and no destination, so the Solana Foundation's Subscriptions program puts its own authority in the delegate slot and checks every transfer against a cap per period, a list of allowed wallets and a list of allowed signers.

SolanaCompare8 min read

Solana Pay recurring payments: why the spec has none, and what to use instead

Solana Pay cannot take recurring payments: its spec defines a transfer request and a transaction request, and both end with the customer signing one transaction, with no standing permission left behind for next month. As of 15 October 2026 the spec does not mention recurring payments or subscriptions at all. For recurring USDC on Solana you need a delegation the customer approves once, which is what Solana's Subscriptions program provides and what Fianto, the publisher of this post, runs subscriptions on.

Bill monthly without chasing payments.

One approval from your customer, a pull every 30 days.

New posts are announced on X and Discord.