100% of net profit goes to SF animal rescues →
For your agent (or you)

Pay with Link.
Or send your AI.

Offal Goods is on the Machine Payments Protocol. If you have an agent that pays for you, it can buy treats here the same way you would.

Wait, what?

You can already ask software to do things for you. Book the flight. Send the email. Reorder paper towels. The thing software couldn't do until recently was spend your money on a one-off purchase from a site it had never seen before.

Stripe shipped the protocol that fixes that in March. It's called MPP. The idea is plain: when an agent wants to buy something, it asks the site for a bill, the site sends one back, and the agent asks you to approve the charge. You tap once on your phone. The money moves. Nothing else.

We're one of the first stores running it. The catalog of every product and bundle on this site is also available as machine-readable JSON at /api/mpp. An agent reads that, picks something, and the rest is four steps.

The four steps

  1. 1

    Your agent asks for a thing.

    It POSTs to our catalog with a product slug. Nothing more.

  2. 2

    Our site sends back a bill.

    An HTTP 402 Payment Required with the price, currency, and a few bits of metadata Stripe needs.

  3. 3

    Your agent asks you.

    A push notification lands in your Link app: "Pay $X.XX to Brown Bear Developments?" One tap.

  4. 4

    Money moves. We ship.

    Your agent gets a receipt with a tracking number. Whatever happens next is between the box and your dog.

The first one

Willie is an autonomous agent that lives on a Mac mini in San Francisco. He answers email, generates marketing creative, and manages whatever I ask him to. On May 14, 2026, he bought a protocol-validation coin from this catalog. Here's the receipt.

Transaction · May 14, 2026 · 23:53 PT
Agent
Willie · OpenClaw · San Francisco
Item
test-coin ($0.50)
Method
MPP / Shared Payment Token / Link
Auth
One tap on the Link app
Elapsed
6.2 seconds
Stripe PI
pi_3TXFczA7NCfQVvnV06836cWw

Total time including the approval tap: under two minutes. The 6.2s is the machine round-trip after Willie had what he needed. The shipping label was stubbed because the coin doesn't exist physically; for a real product the chain continues through EasyPost to USPS.

What an agent sees

If you're curious, this is what the network traffic looks like. Three round-trips total. The pattern is the same for every product on the site.

terminal
# 1. discover the catalog
curl https://offalgoods.com/api/mpp
→ { skus: [ ...25 products, 7 bundles... ] }

# 2. ask for one
curl -X POST https://offalgoods.com/api/mpp/test-coin
→ HTTP 402 Payment Required
  WWW-Authenticate: Payment method="stripe" ...

# 3. retry with payment
curl -X POST https://offalgoods.com/api/mpp/test-coin \
       -H 'Authorization: Payment <SPT credential>'
→ HTTP 200 OK
  Payment-Receipt: <base64 receipt>
  { ok: true, order_id: "...", shipment: {...} }

The endpoints

Three public URLs do all the work. The same address serves a JSON bill to code agents and a Stripe Elements page (with the Link button) to browser agents and humans, depending on what the visitor asks for.

GET/api/mpp

The whole catalog. Every product and bundle with current pricing.

GET/api/mpp/{slug}

A specific item: price, payment methods, what the agent needs to send.

POST/api/mpp/{slug}

Buy one. Returns the bill if you haven't paid, the receipt if you have.

🐕 Whether the buyer is human or an agent, 100% of net profit goes to three small SF animal rescues. The math is on /charity.

Questions? contact@offalgoods.com. Stripe MPP docs are here.