Get paid by agents
Put a price on something your product already does. Agents pay a link. You get paid in Stripe. You keep the data.
What you are setting up
A pay link, not a storefront
You create one link per thing you sell, for example a full company dossier. Agents pay that link. People can open the same link in a browser if they need to. Your marketing site stays as it is.
Your login is not the merchant
Signing in makes you the account owner. Opening Accept creates your first seller, the checkout identity that owns the links and the money. Add more later if you have separate products.
We do not need your API
Rill hosts the paywall. You do not install an SDK to take the first payment. You add a webhook only when you want your own product to unlock automatically after a pay.
The file stays yours
We do not store, cache, or resell what you return after payment. The receipt is one-time proof. The agent gets whatever you send for that receipt, once.
What you can sell
Two shapes. One-shot: one pay unlocks one call or one artifact (the default). Credit top-up: one pay adds a fixed number of credits to the buyer's account on your side, set with sku_kind=credit_topup, credits, and credit_unit on the pay link. Both arrive on the same payment.succeeded webhook; credit top-ups carry metadata.credits so your backend can add them. Do not map a pay onto a seat plan that renews.
How your product unlocks
Share the gate, not the pricing page
Create a pay link and copy the gate URL. That is what agents pay. A pricing page is not a paywall.
A webhook tells your backend to fulfill
When a pay succeeds, Rill calls you with which product was bought and a receipt. You grant access in your own system, the same way you would after any other payment notification.
Prove it with a test pay
Fund a wallet on Home, pay your own gate, and confirm the webhook fired. That is the rehearsal. It is not the product you sell.
When you need more than a hosted link
Hosted gate is enough for most teams
Share the link, listen for the webhook, fulfill on your side. No SDK.
Protect a route in your own app only if you need to
The accept-echo example shows a webhook unlock you can copy. Use the Accept kit later if a route in your app must stay locked until a receipt is shown.
Go live
Copy your seller key
Open Accept. We create the seller for you. Save the key if we show it; it appears once.
Create the pay link
Give it a name, a path your team recognizes, and a price. Copy the gate URL and keep it for agents and for your own test.
Turn payments on
Turn on agent payments for that seller. Until this is on, agents cannot finish a pay.
Add a webhook
Subscribe to successful pays so your backend can unlock. Skip this only if you will fulfill by hand.
Pay it once yourself
Add funds on Home and pay the gate. You should see unlocked proof and, if you added a webhook, your own unlock.
Connect Stripe to receive the money
New to Connect: create an Express account and pick your country (Cyprus is allowed if Stripe accepts it). Already on Stripe: link that existing account. Money from agent pays lands on Rill first, then Transfers to you. Test payouts run on their own. Live auto payout turns on by itself once Stripe enables payouts on your account and you have completed one Test pay; manual payout from the dashboard is available as soon as Stripe enables payouts.
Good to know
- You set the price. There is no platform fee today. A later fee would be a small withhold on payout, not a cut of your product.
- A receipt is one pay. Do not map it onto a monthly plan that has to renew or cancel. Price a single capability or a one-shot credit top-up.
- Payouts start after Stripe says you can receive them and the seller balance is at least $1. Test mode remits automatically. Live auto payout turns on when Stripe has enabled payouts on your account and you have completed one Test pay; Rill can pause it per seller. Manual payout from the dashboard is available as soon as Stripe enables payouts.
- Agent pays use USDC on Base (x402, contract 0x8335…2913) and USDC.e on Tempo (MPP, contract 0x20c0…8b50), plus Stripe card and Link at $0.50 and above. Prices are in USD. Stripe converts the stablecoin at settlement and the cash sits at Stripe as fiat USD; you never hold crypto. Your Express account pays out in your bank currency (Stripe FX applies, Rill adds nothing). Test uses Base Sepolia and Tempo testnet. There is no card chargeback on the stablecoin rail. If you need to refund, do it with the buyer out of band.
- Rill pays your gate from a small set of public addresses. If you allowlist payers, the current Live and Test addresses are on the Spend page and in GET /agent/capabilities under open_rails.spend_payer_addresses.
- Spend logs keep the upstream response body by default so buyers can replay a receipt. Turn Keep API responses off on the Accept page and Rill stores only status and headers for pays to your hosts.
- How to verify a webhook, including the signed payload and an example payment.succeeded event, is on the Webhooks API page.
Before you go live
You set the price and you fulfill unlocks. Open-rail agent pays are typically irreversible. Card chargebacks apply to wallet top-ups, not to settled agent pays. See the Terms of use.