SaaS Merchant Guide

Accept USDC subscriptions in minutes

AuthOnce gives your SaaS product a recurring billing layer that requires no smart contract knowledge. Share a pay link, receive USDC. Everything else is automatic.

No code required to get started. Create a product, share your pay link, and receive your first payment — all from the dashboard. Webhooks and the REST API are available when you're ready to go deeper.

Quickstart

From zero to first payment in four steps:

1

Apply as a founding merchant

Go to authonce.io and submit your application. The first 10 approved merchants pay zero protocol fees for 3 months.

2

Connect your wallet

Your merchant wallet is where USDC lands when a payment executes. Connect MetaMask, Coinbase Wallet, or any EVM-compatible wallet. This address is public — it's your on-chain identity as a merchant.

3

Create a subscription product

Set a name, price, billing interval (weekly / monthly / yearly), and which payment methods you accept. Takes under 2 minutes.

4

Share your pay link

Every product gets a unique URL: authonce.io/pay/your-name/your-product. Send it by email, embed it in your app, or put it in a button. Subscribers click, connect a wallet, and they're subscribed.

Create a product

From your merchant dashboard, click Add product. You'll configure:

FieldDescription
Product nameShown to subscribers on the pay page. E.g. "Pro Plan".
SlugURL-friendly identifier. Auto-generated from the name. E.g. pro-plan.
PriceSet in USDC or your preferred fiat currency. All tokens are priced 1:1 with USD.
IntervalWeekly, Monthly, or Yearly. Immutable after the first subscriber.
Payment methodsChoose any combination: USDC, EURC, or USDT. All non-custodial, wallet to wallet — see Payment methods below.
Grace period1–30 days. How long a failed payment retries before the subscription expires. Default: 7 days.
Introductory pricingOptional. First N payments at a lower price. Useful for free trials and launch discounts.

Interval is immutable. Once a subscriber is on a product, the billing interval cannot change. If you need a different interval, create a new product and migrate subscribers.

Every product generates a unique pay link:

https://authonce.io/pay/{merchant-slug}/{product-slug}

From your dashboard you can:

The pay page is fully responsive and works on any device. Subscribers choose their payment method on arrival — no friction, no account required.

Payment methods

AuthOnce is fully non-custodial. Every payment method moves USDC, EURC, or USDT directly from the subscriber's own wallet to yours — AuthOnce never processes a card, never touches fiat, and never holds a key to either side's funds.

USDC / EURC — one signature, gasless

The subscriber connects a wallet and signs a single EIP-2612 permit. No gas required. From that point, AuthOnce's keeper bot pulls the subscription amount on each billing date directly to your wallet. The subscriber never needs to sign again.

USDT — two-step approval

USDT doesn't support EIP-2612 permits. The subscriber approves the vault on-chain first (one gas transaction), then confirms the subscription. Slightly more friction up front than USDC/EURC, but the same non-custodial, pull-based billing from then on.

Zero chargebacks. On-chain payments are cryptographically final. There is no chargeback mechanism — once the payment executes, it's settled.

Subscribers without a stablecoin wallet yet

AuthOnce doesn't process cards and doesn't touch fiat at any point. A subscriber who doesn't already hold USDC, EURC, or USDT gets it through an onramp partner (Circle or Coinbase Onramp), which delivers stablecoin straight to their own wallet — AuthOnce is never in that path. This onramp integration is not yet live; until it is, subscribers need a stablecoin wallet before they can subscribe.

Grace period & dunning

When a payment fails — either because the subscriber's wallet has insufficient balance or their approval expired — AuthOnce does not immediately cancel the subscription. Instead, it enters a grace period.

During the grace period:

If the subscriber tops up their wallet (or re-approves), the next daily retry will succeed and billing continues normally. If the grace period ends with no successful payment, the subscription expires.

SettingRangeDefault
Grace period1 – 30 days7 days
Retry frequencyEvery 24 hoursFixed

Set grace period per product, not per subscriber. Configure it when creating or editing the product. All subscribers on that product share the same grace period setting.

Fees

AuthOnce charges a single flat fee, hardcoded in the smart contract:

Fee typeAmountWho pays
Protocol fee0.5% per successful paymentDeducted from each pull — merchant receives 99.5%
Monthly fee€0 on Starter tierOptional tiers unlock additional features — billed in USDC through AuthOnce's own protocol, see Pricing tiers
Setup / withdrawal feeNone—

The 0.5% fee is a hard ceiling. It is encoded in the smart contract and can only be lowered, never raised. No surprise increases.

Webhooks

Webhooks let your backend react in real time to subscription events. AuthOnce sends a signed HTTPS POST to your endpoint within seconds of each event.

Configure your webhook endpoint

From Dashboard → Settings → Webhooks, enter your endpoint URL. AuthOnce will sign every request with HMAC-SHA256 using your webhook secret.

Every webhook payload follows the same structure:

{
  "event":     "payment.success",
  "timestamp": 1750000000,
  "data": {
    "subscription_id": "42",
    "merchant_address": "0xbb6d...",
    "vault_address":    "0xd889...",
    "amount_usdc":      "10.00",
    "merchant_received_usdc": "9.95",
    "tx_hash":        "0xecb0...",
    "status":         "active"
  }
}

Webhook events

subscription.created

A new subscriber authorised a recurring payment. Billing will begin on the next billing date.

payment.success

A payment was pulled successfully. USDC is now in your wallet. Includes transaction hash.

payment.failed

Payment failed — insufficient balance or expired approval. Grace period has started. Includes grace period end date.

payment.upcoming

A subscriber has a payment due in 3 days. Fired once per billing cycle as an advance notice.

subscription.cancelled

A subscriber cancelled. No further payments will be collected. Merchants cannot trigger this event.

subscription.expired

Grace period ended without a successful payment. Subscription is permanently closed.

subscription.resumed

A subscription that was in grace period recovered — subscriber topped up and the retry succeeded.

subscription.expiring

You set a product expiry date. This fires when the 30-day notice was sent to the subscriber.

Signature verification

Every webhook includes an X-AuthOnce-Signature header. Always verify it before processing the event — it protects you from spoofed requests.

// Node.js example
const crypto = require("crypto");

function verifyWebhook(rawBody, signature, secret) {
  const expected = "sha256=" + crypto
    .createHmac("sha256", secret)
    .update(rawBody)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signature)
  );
}

// In your Express route:
app.post("/webhook/authonce", (req, res) => {
  const sig = req.headers["x-authonce-signature"];
  if (!verifyWebhook(req.rawBody, sig, process.env.AUTHONCE_WEBHOOK_SECRET)) {
    return res.status(401).send("Unauthorized");
  }
  // Safe to process
  const { event, data } = req.body;
  // ...
  res.status(200).send("OK");
});

Dashboard

Your merchant dashboard at authonce.io gives you:

Cancellations

Merchants cannot cancel subscriptions. Only the subscriber or their designated guardian can cancel. This is a deliberate protocol design — it guarantees subscribers that merchants cannot cut off their access or manipulate billing.

If you need to stop billing a subscriber, contact them directly and ask them to cancel from their subscriber portal at authonce.io/my-subscriptions. Alternatively, you can pause your product from the dashboard — no new payments will be attempted while paused.

Tax exports

From Dashboard → Payments → Export, you can download:

Pricing tiers

TierMonthly feeProtocol feeKey features
Starter Free €0 0.5% Full protocol, up to 3 products, all tokens, webhooks, basic email notifications
Growth €49 0.5% + Branded emails (your name and colour), unlimited products, advanced analytics
Business €199 0.5% + Custom sender domain ([email protected]), priority support
Enterprise Custom 0.5% + Custom integrations, SLA, white-label

Tier fees are billed in USDC. Growth, Business, and Enterprise are billed the same way your own subscribers pay you — a recurring USDC subscription through AuthOnce's own protocol. No card, no separate billing system.

Founding merchant offer. The first 10 approved merchants pay zero fees for 3 months. The first 5 receive lifetime Growth tier free. Apply now →

Ready to get started?

Apply as a founding merchant and receive zero fees for your first 3 months.

Apply now → Back to site