See what every agent spent, and who allowed it.
Every purchase your agents make sits beside the limit it was made under, the person who approved it and a receipt the seller keeps too, so you can account for the month from one history instead of a stack of card statements.
History
| Time | Entry | Seller | Paid with | Amount | Approved by | Asked by | Device | Outcome | Receipt |
|---|---|---|---|---|---|---|---|---|---|
| 2026-09-30 15:12:40 UTC | Turned away | data.example.com | none | none | none | none | A key servicekP3vQ7xLm2RtYh9sWd4nBc8eJf6UaZ1oXgTiNrVyHqE | none | rcpt_eu_d80e0a20fec46a1f9143bae3f4ade866 |
| 2026-09-30 14:20:05 UTC | Purchase | gpu.example.com/v1/jobs | x402 | $12.60 | none | none | A key servicekP3vQ7xLm2RtYh9sWd4nBc8eJf6UaZ1oXgTiNrVyHqE | Seller disputed: Over the agreed amount | rcpt_eu_e2738fa222497dae7860f9c8553cc528 |
| 2026-09-30 13:05:31 UTC | Sent to a person | tools.example.com | none | none | none | none | none | none | rcpt_eu_4729775619ed39932487973c369ccc74 |
| 2026-09-30 11:47:02 UTC | Purchase | data.example.com/v1/datasets | x402 | $60.00 | none | none | A key servicekP3vQ7xLm2RtYh9sWd4nBc8eJf6UaZ1oXgTiNrVyHqE | none | rcpt_eu_5e9121abf78baa1078901a44416c840e |
| 2026-09-30 10:44:30 UTC | Purchase | hire.example.com/v1/orders | x402 | $1,840.00 | none | none | HardwareZsT3kQ0bN8vYh2LmRtWd4nBc8eJf6UaZ1oXgTiNKqXE | none | rcpt_eu_30165a97499986845f54ef67d483ce57 |
| 2026-09-30 10:44:12 UTC | Approved | hire.example.com | none | none | A person | none | none | none | rcpt_eu_b47c27e12f31974792bf472cfb3c611d |
| 2026-09-30 10:42:50 UTC | Sent to a person | hire.example.com | none | none | none | none | none | none | rcpt_eu_57ea61f5091ab0776d9f60a6e57942e8 |
| 2026-09-30 09:58:20 UTC | Purchase | data.example.com/v1/datasets | MPP | $45.00 | none | none | A key servicekP3vQ7xLm2RtYh9sWd4nBc8eJf6UaZ1oXgTiNrVyHqE | none | rcpt_eu_82eb45dc66cf07c52a0b6e290260e38e |
| 2026-09-30 09:12:07 UTC | Purchase | search.example.com/v1/search | x402 | $45.00 | none | none | A key servicekP3vQ7xLm2RtYh9sWd4nBc8eJf6UaZ1oXgTiNrVyHqE | none | rcpt_eu_262f4f2f596f7f8fed95d9337923d876 |
The dashboard's history, filtered to September, with sample data.
Why not a virtual card with a limit?
A card can cap what gets spent, but it tells the seller nothing about which company sent the agent or who allowed the purchase.
And many agents don't pay by card at all. They pay from a wallet over x402 or MPP, where a card's limit never applies.
TollRelay brings those purchases into one history, with who allowed each one and a receipt the seller keeps too, though card spend outside x402 and MPP isn't part of it.
The three things finance asks about any purchase, answered from its history
Who allowed this?
Someone in your organisation approved anything above the line you chose, on a screen no agent can reach, and that approval sits in the history right beside the purchase, with its time.
- Entry
- Approved
- Approved by
- A person
- Time
- 2026-09-30 10:44:12 UTC
Was it inside the limit?
The seller checked before serving and the wallet checked before paying, so a purchase over the limit never happens, and you'll still see the attempt in your history.
- Limit
- $5,000 a day, up to $2,500 a call, hire.example.com and tools.example.com
- This order
- $1,840.00
- Checked by
- The seller, then the wallet
Does the seller agree?
The seller writes the same receipt id into its own ledger, so reconciling comes down to matching two ids.
- Your receipt
- rcpt_eu_3016…ce57
- Seller's receipt
- rcpt_eu_3016…ce57
- Paid with
- x402
Whatever a seller's page says to an agent, the limit a person signed is what it can spend, because the seller checks it before it serves and the wallet checks it before it pays.
And if someone steals one of your agents' keys?
They can spend what that agent could and nothing more: the limit you signed, at the sellers you named if you named any, because every seller that checks reads that limit before it serves, and once your wallet is connected it declines anything over the limit too.
They can't raise the limit, because a new one needs a person to approve it on a screen no agent can reach. And they won't find the key with us, since it's made on the agent's own device and we only keep the public half, which can check a signature but can't make one.
Once you revoke the key in the dashboard, every seller's check turns the agent away within five minutes, and each attempt a seller checked is in your history.
Your history stays where you chose to keep it
You choose the EU or the US when you sign up, and the history never leaves it. Nothing in it is ever edited, because a correction goes in as a new row, so what an auditor reads is what actually happened.
And TollRelay never holds or moves your money: your agents pay from the wallet you already use, and we set each agent's limit inside it.
Pricing
| Plan | Price | What it includes |
|---|---|---|
| Start | Free | Passes, limits and history, without the verified mark |
| Verified company | Yearly, by agents | Your company verified, approvals by one or two people, export |
| Platform licence | Yearly, per business | For a platform that runs the check for many businesses |
Close next month with every agent's spend explained.
Installing it yourself? See how it works for engineering.