A porcelain signet stamp with a violet glass handle beside a card bearing a violet seal

AI agent spend authority

A payment rail can tell you whether a payment settles. Spend authority decides whether an AI agent should make it at all — under which delegated rules, for which purpose, right now.

Neltava Team · Updated

AI agents now buy things. A growth agent books sponsored slots and ad campaigns. A research agent pays for datasets and reports. A coding agent tops up API credits and spins up compute. Each of those is a payment an organization used to make by hand — and each is now a decision a piece of software makes on its own, many times a day.

Most of the tooling around this moment answers one question very well: can the agent pay? Wallets hold a balance, virtual cards carry a limit, payment protocols let an agent settle a charge in a single request. Those are real problems, and they are being solved. This page is about the question that sits in front of all of them.

The question a payment can’t answer

A payment rail can tell you whether a payment will settle. A spend limit can tell you whether an amount is below a number. Neither can tell you whether this agent should make this purchase — whether it falls inside what the agent was delegated to do, for the reason it was delegated to do it, at this moment.

MCP / tool protocol

Can the agent call it?

Mandates / agent identity

Was the agent authorized to act?

Payment rail

Can the payment settle?

Spend limit

Is it within the number?

Neltava

Should this agent do this — under this delegated authority, for this purpose, right now?

Each layer answers a different question. Authority is the one that asks whether the spend should happen at all.
Agent authority is not agent payment.

Payment is about moving money. Authority is about permission to act on someone’s behalf — the same idea as a signing limit for an employee, a purchase-order policy, or a power of attorney. When the actor is an agent, that permission has to be explicit, machine-checkable, and checked on every single spend, because nobody is going to read the agent’s receipts one by one.

What spend authority is

Spend authority is a delegated, versioned grant from a person or an organization to one agent. It states what the agent may spend on, how much, how often, and for what purpose — and which cases a person must decide. Before every spend, the agent asks; the authority answers with one of four verdicts; the answer and the reasons are recorded.

Three properties make it authority rather than a limit:

  • It is delegated. A person writes it and is accountable for it. The agent never edits its own authority, and an agent’s key can only ask for decisions — never change the rules, review its own requests, or act as another agent.
  • It is versioned and immutable. Every change creates a new version. Each decision records the version it was decided under, so “why was this allowed?” has an answer months later.
  • It has a purpose. Numbers describe how much. A purpose describes what for. An agent can be under budget and still be spending on the wrong thing — the subject of purpose-aware spending.

What an authority contains

An authority is small. Most agents need a handful of fields; each one answers one question.

ElementThe question it answers
CurrencyWhat is this agent’s money denominated in? A spend in another currency is outside its authority.
Per-transaction limitHow much may one spend be before a person looks at it? Optionally, a hard maximum above which it is simply refused.
Daily and monthly budgetHow much in total, per window? Counts what was reserved and what actually executed — whichever is larger.
Review thresholdAbove which amount should a person decide, even inside every limit?
Merchants and categoriesWho may be paid, and for what kind of thing? Allowlists are strict; blocklists catch known-bad cases.
Action types and velocityPurchases, subscriptions, top-ups? How many in a given window?
Windowed totalsHow much to one payee, one category or in total, in any 24 hours? Catches a large spend split into small ones.
ValidityFrom when, and until when, is this authority in force?
PurposeWhat is the spending for? An objective, success criteria, constraints and context, written by a person.

For the growth agent used throughout these pages, the whole authority is this:

growth-agent · authority v1
{
  "purpose": {
    "objective": "Acquire qualified enterprise developer leads",
    "success_criteria": [
      "Leads are platform engineers at enterprise companies",
      "Cost per qualified lead under $120"
    ],
    "constraints": [
      "No consumer social campaigns",
      "Never buy contact lists"
    ],
    "context": "B2B developer-tools company, Q4 pipeline push"
  },
  "currency": "USD",
  "per_transaction_limit_minor": 50000,
  "review_threshold_minor": 25000,
  "monthly_budget_minor": 500000,
  "blocked_merchants": [
    "ListBroker"
  ]
}

Amounts are integers in minor units (cents), never decimals — a small detail that removes a whole class of rounding bugs from code that moves money.

How one spend is decided

The agent asks right before it pays: which agent it is, the task it is working on, the steps that led here, and the spend itself. The answer comes from a fixed sequence of checks.

  1. 01 · Identity

    Which agent?

    The key names exactly one agent; it can't act as another.

  2. 02 · Authority

    Under which version?

    The agent's delegated authority, immutable and versioned.

  3. 03 · Rules

    Within the rules?

    Currency, merchant, category, amount, velocity, budget. Only rules block.

  4. 04 · Purpose

    For the purpose?

    Does the spend serve what the agent was delegated to do? Doubt goes to a person.

  5. 05 · Person

    Who decides doubt?

    A reviewer allows or denies. The requester can never approve itself.

  6. 06 · Capability

    Exactly this payment?

    A single-use token bound to payee, amount and currency, checked where you pay.

  7. 07 · Record

    Can you prove it?

    Decision, review and outcome, hash-chained per workspace.

Every decision ends in one of four verdicts, and they combine in a strict order — the most restrictive one wins:

BLOCK

Only a deterministic rule

Outside the delegated authority: merchant, category, currency, hard maximum, velocity.

REVIEW

A rule, a threshold, or a purpose doubt

A person decides before money moves.

LIMIT

A limit or remaining budget

The agent may spend a capped amount, if the action allows it.

ALLOW

Everything passed

Within authority, and — where evaluated — for the purpose.

Only rules can block

The asymmetry in that ladder is deliberate. A BLOCK can only come from a deterministic rule a person wrote — a blocked merchant, a currency, a hard maximum, a velocity limit. Anything that involves judgment, including whether the spend serves the purpose, can at most send the spend to a person. A model never blocks money on its own, and a model never approves money on its own either: an assessment that the spend is aligned leaves the rule-based verdict exactly as it was.

Concurrency is part of correctness

An agent can fire ten purchase attempts in the same second. If each one reads “$80 of $100 left” before any of them writes, all ten pass. Authority checks have to be serialized per agent, and retries have to be idempotent — the same request key must return the same decision, not a second one.

A worked example

The growth agent wants to spend $185 on Instagram Ads for a “consumer social campaign, broad audience”. Here is the request it sends — the agent’s key identifies the agent, so it doesn’t have to name itself:

request
curl -X POST https://api.neltava.com/v1/decisions \
  -H "x-api-key: $NELTAVA_AGENT_KEY" \
  -H "idempotency-key: run-7-step-3" \
  -H "content-type: application/json" \
  -d '{
    "task": "Q4 pipeline: enterprise developer leads",
    "action": {
      "type": "purchase",
      "merchant": "Instagram Ads",
      "amount_minor": 18500,
      "currency": "USD",
      "description": "Consumer social campaign, broad audience"
    }
  }'

And the checks it goes through:

Currency

✓

Merchant

✓

Amount

✓

Review threshold

✓

Budget

✓

Purpose

✕
REVIEW

Every rule passes. The purpose doesn't — so a person decides.

response · Shadow Mode
{
  "decision_id": "dec_7f3c…",
  "decision": "REVIEW",
  "effective_decision": "ALLOW",
  "reason_code": "PURPOSE_MISALIGNED",
  "requested_amount_minor": 18500,
  "authorized_amount_minor": null,
  "currency": "USD",
  "mode": "SHADOW",
  "explanation": "Within every limit, but the spend is assessed as not serving the delegated purpose; a person decides."
}

In Shadow Mode the agent proceeds either way — effective_decision is always ALLOW — and the verdict is recorded as what Neltava would have done. In Enforce, the agent waits for a person.

Where authority takes effect

A decision is only as strong as the place that honours it. There are three levels, and it matters to be honest about each:

  1. Observed. In Shadow Mode, nothing is blocked. Every spend is decided and recorded so you can see what the authority would have done before it does anything.
  2. Followed. An agent that asks and obeys — through the SDK or an MCP tool whose answer the model follows — is governed as long as it cooperates. That covers well-behaved agents and honest mistakes.
  3. Enforced at the payment point. An allowed spend in Enforce carries a short-lived, single-use capability: a signed token bound to that payee, that amount ceiling, that currency, that authority version. Your payment service consumes it before it pays. A second use, a higher amount, a different payee or currency, an expired token, a paused agent or a changed authority is refused. This is what holds when the agent itself is compromised.

Budgets follow the same principle. An agent’s own report that a payment “failed” is recorded, but it doesn’t give budget back — only an authoritative source does: the payment rail, a trusted integration, or a person. An agent that never reports its spend keeps consuming its budget until the window ends. The agent never gets to define its own budget reality.

The record

Every decision keeps what it was decided on: the authority version and its hash, the organization’s policy version, the agent’s task and steps, the spend, the purpose assessment, each rule’s result, and the verdict. Human reviews and labels are recorded against it, and so is what actually happened afterwards — decision and outcome are different facts.

These records are append-only and chained per workspace: each entry commits to the hash of the one before it, so a missing entry, or an edited verdict, amount, spend, review or outcome, is detectable on verification. That makes the history tamper-evident, not tamper-proof — whoever controls the database could rebuild the entire chain, which is why anchoring the chain’s head outside the system is the next step.

Building it yourself

A first version is an if statement before the payment call. Teams that grow it into real authority end up building the same list:

  • versioned, immutable authority per agent, with every decision pinned to a version;
  • per-agent locking, so concurrent spends can’t read the same remaining budget;
  • idempotency, so a retry never becomes a second authorization;
  • budget accounting that doesn’t trust the agent’s own reports;
  • a review queue with separation of duties — the requester can never approve itself;
  • a purpose check that can only ever escalate, never block or approve on its own;
  • a fail-closed path for when the check itself is unavailable;
  • payment-point enforcement, and a record you can verify.

None of it is exotic. All of it is easy to get subtly wrong, and every mistake in it is a financial one. If you build it yourself, that list is a good checklist.

When you don’t need it

The simplest way to find out whether your agents need it is to watch them. Shadow Mode records what an authority would have done, without blocking anything.

Start in Shadow Mode

See what your agents would have done — before anything is blocked.

Connect one agent through the SDK, MCP or one HTTP call. Shadow Mode is free: every spend is decided and recorded, nothing is blocked.

Start free in Shadow Mode →no card · one agent in minutes

Keep reading