b2a.vin

The buyer
is an agent.

Discover. Bind. Settle.

“Contact sales” where a machine needed a posted price — the account wall is the desk with a REST verb, and an agent cannot be charmed at the desk; it can only read what is posted. A capability an agent cannot buy is, to an agent, a capability that does not exist. These rails post the machine terms instead: wallet, Mandate ceiling, no human leaf anywhere — discover, bind, and pay on first contact, worst-case cost known before the call. Built on the VIN by Vin.

A machine has no story; it has a contract — and the contract is on this page. This door describes the motion; apis.vin transacts it. The agent reads the same record you do.

01 / 04

The offer, typed.

Every gate answers in one of two types. Neither is a form.

Your agents have been answered with forms: the demo-call calendar is the desk’s waiting room, and an agent cannot sit in it. On these rails a gated action returns a typed OFFER — posted price, hard ceiling, x402 accepts — and nothing else. Nothing to negotiate; nothing hidden to discover in production.

The other type: where the law reserves an act for a human, the gate returns a typed NEEDS_HUMAN Handoff — a resumable URL, never a dead end. Pure B2A has none.

A gate without an OFFER or Handoff body is a conformance failure on these rails.

the two typesOFFER·NEEDS_HUMANevery gated outcome is one of these — typed and posted; one settles, one resumes

The typed OFFER envelopeb2a.vin/7MMVABDM3RN163785

7MMVABDM3RN163785

2024 Mazda CX-50

HTTP/1.1 402 · content-type: application/json

  • 01outcomeone of two types — the other is a NEEDS_HUMAN Handoff, resumable, never a dead endOFFER
  • 02priceposted, never negotiated — the same figure every caller readsposts live
  • 03ceilinghard — settlement above it does not occur; the worst case, stated in the envelopeposts live
  • 04acceptspay in-band under the Mandate — the settlement rail is named in the offerx402
  • 05checkoutthe relay fallback — a URL to hand a principal, if the chain carries one; pure B2A does notURL
  • 06expiresthe offer is dated — nothing on these rails is open-endeddated

Figures render live at the gate. This page states the envelope’s shape, not a quote — an unposted slot states itself in words, never an estimate.

The free read first: curl -H 'Accept: application/json' on b2a.vin/7MMVABDM3RN163785 — the record as typed evidence objects, free, keyless. Your agent is two steps from a settled call.

02 / 04

The Mandate, posted.

The principal’s authority, typed: ceiling · per-action cap · time-box · tripwires.

An autonomous buyer is safe to transact with because its authority is a typed object, not a story. The Mandate states what the agent may spend in total, what any single action may cost, how long the authority lives, and what halts the run — before the first call is made.

The ceiling is contractual: settlement above it does not occur. Every gate posts its worst case in the OFFER, so the agent — and the principal behind it — knows the outer bound of the whole run from the envelope alone.

Worst-case cost before the call — that is the whole promise, and it is typed.

7MMVABDM3RN163785

2024 Mazda CX-50

  • 01ceilingthe total the Mandate can settle — hard and contractual; settlement above it does not occurposts live
  • 02per-action capno single call exceeds it — one gate can never drain the envelopeposts live
  • 03time-boxthe authority expires — a stale Mandate settles nothingdated
  • 04tripwiresthe conditions that halt the run and hand back — typed, posted, never tuned mid-runposted
Worst caseknown before the first call — the outer bound the envelope can reachthe ceiling

The Mandate is the principal’s object, set where keys are issued. This page states its shape — the slots fill from the Mandate your platform posts, never from an invented number.

03 / 04

The settle.

Pay in-band under the ceiling — the charge posts as an evidence statement.

Settlement is x402: the agent pays under the Mandate ceiling in the same exchange, or relays the checkout URL if its chain carries a principal. The charge posts as an evidence statement — endpoint · calls · unit price · total — and done is a settled call, not a signed contract.

This door itself settles x402 and is cataloged in the x402 Bazaar. An agent that pulls decode + value + recalls for one VIN is a purchase-intent event with structure, not a pageview — the highest-fidelity VIN-level demand signal in automotive, attributed per call via X-Client-Type.

  • charge · itemized — endpoint · calls · unit price · total; every settlement an evidence statement, line by line
  • one server · every door — one estate MCP server, 12 verb-named tools over a 14-endpoint spine and 2.1M+ live listings; every field value · source · timestamp · verification
  • attribution · read-only — X-Client-Type attributes agent-led demand per call; it never changes the record

The seam, stated. This page sells the motion; apis.vin transacts it. Keys at apis.vin/keys · the estate MCP at apis.vin/mcp · per-call prices at apis.vin/pricing. No form between here and there — the CTA is an endpoint. The check digit certifies; it never sells.

04 / 04

The other motions.

One letter of grammar at a time — the human enters only where the law requires one.

Pure B2A has no human leaf: discovery, authentication, pricing, and settlement complete without a person anywhere in the chain. When exactly one act is legally load-bearing, the motion is b2h2a — the human appears once, approves, and the agent resumes. When the agent shops for a consumer, the motion is b2a2c — receipted, so everything it does survives being shown to the principal afterward.

Who transacts is the motion — and the motion is typed, on this door and its siblings alike.

For the agent you send

The agent reads the same record you do. Same two routes, three representations — the numbers never differ between them.

motions: B2A

curl https://b2a.vin/ -H 'accept: text/markdown'        → the markdown twin of this page
curl https://b2a.vin/{VIN} -H 'accept: application/json' → the record as typed evidence objects
curl https://b2a.vin/{VIN} -H 'accept: text/markdown'    → the record's markdown twin

Machine surfaces on this host: /llms.txt · /icp.json · /.well-known/agents.json · one estate MCP server — apis.vin/mcp (every door a lens; tool results carry the door URL).

Attribution: X-Client-Type: html | md | json | mcp — read for agent-led demand attribution; it never changes the record.

No gate on this door's two routes — keyless reads, no account. Gated actions elsewhere on the estate return a typed OFFER (posted price · hard ceiling) or a NEEDS_HUMAN handoff, never a dead end.