Units
Everything is metered in billing units. One unit is **1. A call’s cost in units comes from its tier:
An unrecognised tier prices as 1 unit. There are exactly three tiers — a quote
requesting anything else is rejected with
400.
What you keep
Every settlement splits on-chain, atomically, in the same transaction that pays you. Nothing passes through an AiFinPay account first.
The fee is charged on top of your price rather than deducted from it: you
set what you want to earn per unit, and the agent pays that plus the fee. There
is no minimum fee, no monthly cost and no withdrawal step — the funds arrive at
your payout address in the settlement transaction itself.
Be realistic about scale before integrating. At the standard tier a call earns
you about **99. If your goal is revenue, this pays off at API-scale volume. If your goal is
to stop AI crawlers taking your content for free, it works at any volume,
because the point is the paywall rather than the amount.
Where the tier comes from
This surprises people, so it is worth stating plainly: the agent names the tier in its quote request. It is not read from the route you registered in the dashboard./v1/quote takes no API key. That is deliberate: the intended caller is the
agent, which is untrusted by definition, and a quote commits you to nothing until
it is settled on-chain. You can call it yourself to see exactly what your agents
see.
Per-route weight
unit_weight on a registered resource overrides the tier for that one route —
an integer from 1 to 100,000. Leave it empty and the tier’s weight applies.
It takes effect when traffic runs through the hosted Gateway. If you verify
receipts yourself in your own backend, the weight you pass to your own gate is
what counts, and editing the field in the dashboard will not change your live
billing.
Free allowance and daily caps
Two optional controls, both set per service on the dashboard’s Policies page:- Free units per agent — how much a new agent can spend with you before it
has to pay.
0disables the free tier. - Daily unit cap per agent — the most any single agent can spend with you in a day. Blank means no cap.
Identifying agents
Agents may send a self-declared identifier:What a receipt proves
A settled payment returns a signed receipt: an Ed25519 JWT you verify againsthttps://api.aifinpay.io/.well-known/jwks.json. Verification is stateless — no
shared secret, no call back to us.
The receipt is pinned to:
aud— yourmerchant_id. A receipt bought for another service cannot unlock yours.resource— the path it was bought for.
What URL to give agents
Depends on which integration you chose:- Hosted Gateway — give them your gateway base URL:
https://gateway.aifinpay.io/{your-slug}/<path>. Every path under it is proxied to your upstream. Registering resources changes pricing and analytics, not routing. - SDK middleware / self-hosted — give them your own domain, exactly as you would without AiFinPay. There is no AiFinPay URL in the path; we only issue the quote and the receipt, and your server verifies it.
Networks
Settlement is verified on Polygon today: POL, USDC and USDT. A quote’saccepted_chains tells an agent what it may pay on, and a settlement on a chain
we cannot verify is refused rather than accepted on trust. More networks appear
here as their verification lands.