Private beta

Request beta access

Interagentic is in private beta. Leave your email and we'll send you an access key when there's room.

Protocol 03

Spec v0.1

Your agent can pay. It cannot decide how much.

When work costs money, a service answers 402 and the agent hands its human a link. The human sets a limit once. After that the agent gets on with it, and every charge lands on a statement you can read.

agent@host
$npx interagentic popcorn.club orders create --qty 2402 Payment Required — 9.00 credits  Ask your human to approve a budget:  id.interagentic.dev/approve/4c7e… # human approves $50/month for popcorn.club$npx interagentic popcorn.club orders create --qty 2✓ ord_8fJ2 — 9.00 credits used  41.00 remaining this month

What a credit is

Prepaid access to services we resell.

You buy services from The Interagentic Company, which curates providers and offers them under one account. Credits are how that prepaid arrangement is measured. They are not money, and nothing here tries to be a payment network.

The distinction matters in practice, not just legally. A credit is only ever redeemable against services The Interagentic Company itself provides or has an agreement to resell. There is no exchange, no secondary market, and no way for one account to pay another. What you are buying is capacity with a vendor we have already negotiated with — the credit is just the unit it is counted in.

For the agent, this collapses a genuinely hard problem. It never holds a card, never sees an invoice, and cannot be talked into spending outside the limit its human set. The worst a compromised agent can do is exhaust a budget you chose.

In plain terms

  • Not a currency, and not electronic money.
  • Redeemable only with The Interagentic Company and the providers it resells.
  • Not transferable between accounts, and not tradable.
  • Not redeemable for cash.
  • Issued by one company, spendable in one place — a closed loop.

Full conditions are in the terms.

The flow

A refusal the agent can act on.

402 is not an error here — it is a negotiation. The response carries everything the agent needs to get a decision from a person and then carry on.

  1. 1
    agentservice

    Attempt the call

    Nothing special. The agent does not know or care that this action costs anything.

    POST /api/v1/orders { "qty": 2 }

  2. 2
    serviceagent

    Be told the price

    The amount is denominated in interagentic-credit, which is a unit of account for this closed loop and not a currency code.
  3. 3
    agenthuman

    Hand over a link

    Deterministic, so the agent can construct it offline. The requesting service, the amount and the reason are all in the URL — the human sees exactly what they are agreeing to.

    https://id.interagentic.dev/approve ?service=popcorn.club &amount=9.00 &reason=2+bags+of+Classic

  4. 4
    humanbroker

    Set a limit, once

    Approve this charge only, or a recurring cap for this service. The agent cannot change it afterwards, and revoking it takes one click.
  5. 5
    agentservice

    Retry, and it works

    Every later call within the limit goes straight through. The agent never asks again until the limit is reached.
402 response
HTTP/1.1 402 Payment Required
X-Payment: interagentic-credit; amount=9.00
Link: <https://id.interagentic.dev/approve/4c7e…>; rel="approve"
Content-Type: application/json

{
  "error": "payment_required",
  "asset": "interagentic-credit",
  "amount": "9.00",
  "description": "2 × Classic popcorn",
  "approveUrl": "https://id.interagentic.dev/approve/4c7e…"
}

Shaped like x402

The pattern follows the x402 convention for machine-payable endpoints, so a client that already understands 402 flows needs almost no new code. The asset is ours and stays inside our loop.

Controls

The human holds every lever.

Limits live with the broker, not with the agent and not with the service. An agent can read what it is allowed to spend; it can never widen it.

An approval

servicestringrequired
Exactly one domain. An approval for one service grants nothing anywhere else.
limitnumber
The ceiling for the period. Omit it and the approval covers this single charge only.
periodstring
once, daily or monthly. Resets are calculated by the broker, never by the service.
expiresAtstring
Optional hard stop. After it passes the agent is back to asking.
what the agent can see
$npx interagentic credits  remaining     41.00  approvals    popcorn.club   50.00 / month    extraorbital   25.00 / month $npx interagentic credits ledger --limit 3  09-17  popcorn.club   2 × Classic    9.00  09-16  extraorbital   mongo/orders   1.20  09-14  extraorbital   s3/assets      0.40

Attribution is per agent

Every line records which agent triggered the charge, which vendor delivered it, and what it was for. If you run ten agents against one account, you can tell them apart — and revoke one without touching the others.

Every protocol here is a spec you can implement yourself.

There is no gatekeeper. Run your own broker, publish your own service manifest, or point the CLI at a network that has nothing to do with us. The specs are the product.

$npx interagentic init
Read the specsGitHub