The billing layer
for stablecoins.

One API for one-time payments and recurring subscriptions. Your customer signs once. You charge them every period. They don't pay gas. Your USDC arrives in seconds.

Read the docs

Free to start · No credit card · Settled in USDC

app.strimz.finance/app/subscriptions

Subscriptions

12 active
0x3f4a…a2d1
Pro$20.00 USDC/month
active

Built for

SaaS billing
Marketplace fees
Subscription apps
DAO treasuries
Cross-border B2B
Creator payouts
How it works

From signature to webhook in about 20 seconds.

Four steps, end to end. No three-day wait. No chargeback window. The on-chain hash is the receipt.

01 · Sign

Customer signs once

Your customer connects a wallet (Privy or Reown both work) and signs one transaction. That signature lets you charge them on the schedule you set.

02 · Charge

Contract pulls USDC

When a charge is due, our scheduler calls the contract. Each attempt has a unique ID derived from the subscription and period, so retries can never double-charge.

03 · Index

Indexer projects

A Go process watches Arc and writes every event into your Postgres. If our database ever drifts, you can rebuild it from chain history. The contract is the source of truth.

04 · Notify

Webhook fires

We POST the event to your endpoint with an HMAC-SHA256 signature. Failed deliveries retry on a backoff. The signature includes a timestamp, so an attacker can’t replay old events.

Built for production scale

$0M+
Settled volume
0
Transactions
0s
Median settlement
0.00%
Webhook success

Retries that can’t double-charge

Every charge attempt has a unique ID built from the subscription and period. Retry the same call a hundred times and only one charge lands. The contract enforces it, not the database.

Subscriptions that don’t expire

Your customer signs one transaction. We charge them every period after that. Daily, weekly, monthly, yearly. Without asking again. There’s no card to expire and no payment method to update.

Settlement in seconds

Payments confirm in about 13 seconds and the USDC lands in your payout wallet right away. No three-day hold. No chargeback window. The on-chain hash is your receipt.

The billing primitives, already built.

Pick what you need, copy the snippet, ship the feature. We deal with retries and reconciliation; the contracts handle idempotency.

Subscriptions

Recurring revenue, on stablecoins.

Your customer signs once. After that, the scheduler runs every period and pulls the next charge. Each attempt has a deterministic ID, so a flaky scheduler can’t double-charge anyone.

  • Batch charges so gas stays cheap at scale
  • Pick your grace window: 24, 48, or 72 hours
  • The AutoPay Agent emails customers on failed charges
  • Customers can cancel in their wallet; we project the change on-chain
Subscriptions API
POST /v1/subscription-plans200 OK · 84ms
{
"name": "Pro",
"amount": "20000000",
"currency": "USDC",
"interval": "monthly",
"intervalCount": 1,
"trialPeriodDays": 14
}
// 201 Created
{
"id": "plan_pro_monthly",
"checkoutUrl": "https://strimz.finance/sub/plan_pro_monthly",
"activeSubscribers": 0,
"createdAt": "2026-05-01T12:00:00Z"
}
Refunds

Refunds with a real audit trail.

You create the intent on the server. The merchant signs the transfer from their own wallet. The indexer watches Arc and updates the refund the moment the transfer confirms. Every refund has a tx hash you can verify yourself.

  • You can’t refund more than the original transaction (we check at insert time)
  • The create response includes the wallet-signing instructions
  • `refund.completed` webhook fires with the on-chain tx hash
  • Full state machine visible in the dashboard timeline
Refunds API
rf_x4f8b9d2c1a200 OK · 84ms
1
Refund created
awaiting_signature
2m ago
2
Tx hash recorded
submitted
1m ago
3
Indexer confirmed
completed
just now
refund.completed
webhook delivered
Analytics

Forecasts, not just dashboards.

Conversion, churn, MRR, LTV, and a 90-day forecast. Every metric runs as SQL against your own Postgres. The AutoPay Agent uses the same queries to put together its monthly summary.

  • Daily conversion rate per session created
  • 12-month trailing churn
  • MRR normalised across daily, weekly, monthly, and yearly plans
  • Forecast confidence rated low, medium, or high
Analytics API
GET /v1/stats/forecast200 OK · 84ms
MRR
$48,250
+12%
Churn 12m
4.1%
-0.4pt
90d
+18%
high
last 90 daysforecast: high confidence
Developer-first

One API. Three ways to integrate.

Use the server SDK from Node or Bun. Drop the React SDK into your app for embedded checkout. For other languages, generate a client from our OpenAPI schema. Webhooks come signed with HMAC-SHA256.

@strimz/sdkServer SDK

TypeScript client for Node 18+ and Bun. Every response is Zod-validated. Retries are idempotent by default.

pnpm add @strimz/sdk
@strimz/sdk-reactReact SDK

Drop in <StrimzPayButton/> or our embedded checkout. Read-only hooks for client components. Uses publishable keys, so it’s safe in the browser.

pnpm add @strimz/sdk-react
openapi.jsonOpenAPI 3.1 schema

Every endpoint described in a machine-readable file. Open it in Postman or Insomnia, or generate a client in any language.

curl https://api.strimz.finance/openapi.json
checkout.tsxClient
'use client'
import { useRouter } from 'next/navigation'
import { StrimzPayButton } from '@strimz/sdk-react'
export function Checkout({ session }: { session: { id: string } }) {
const router = useRouter()
return (
<StrimzPayButton
sessionId={session.id}
onSuccess={(txHash) => router.push(`/thanks?tx=${txHash}`)}
onError={(err) => console.error(err.message)}
/>
)
}
webhooks.tsServer
import { verifyWebhookSignature } from '@strimz/sdk'
app.post('/webhooks/strimz', async (req, res) => {
const payload = req.rawBody.toString()
const result = await verifyWebhookSignature(
payload,
req.headers['strimz-signature'] as string,
process.env.STRIMZ_WEBHOOK_SECRET!,
)
if (!result.valid) return res.status(401).end()
const event = JSON.parse(payload)
// ... handle event ...
res.status(200).end()
})

Want the full reference? Every endpoint, parameter, and webhook event is documented.

Open the docs

Pricing that gets cheaper as you grow.

You pay a percentage of each transaction. The more you process, the lower the rate. No platform fees. No hidden tiers.

Free
0%
per transaction
First $1k volume
  • All payment APIs
  • Recovery + digest
  • 1k webhook events / mo
Start free
Most popular
Starter
0.5%
per transaction
Up to $50k / mo
  • Everything in Free
  • Anomaly + yield agent
  • Storefront builder
Start with Starter
Growth
0.4%
per transaction
Up to $1M / mo
  • Everything in Starter
  • Custom domains
  • CCTP V2 routing
Talk to sales
Enterprise
Custom
per transaction
Unlimited
  • Everything in Growth
  • Dedicated SE
  • 99.99% SLA
Contact us

Frequently asked questions

Don't see yours? Email us. Real people read every message.

Strimz lets your business take payments in stablecoins. You can charge a customer once, or set up a subscription that charges them every period. You get paid in USDC; we handle the on-chain side, refunds, webhooks, dashboards, and everything in between.

Stop writing billing code.
Build the rest of the app.

The free plan includes every feature. Live mode unlocks after identity verification, which usually takes under five minutes.

Talk to sales