The agent's order

The running jobjob_7Hq5 · won · msa-northwind.pdf · $11,100.00 charged, held to 2027-03-09

Harbor Labs' agent finds the brand's tools, reads the OFFER, orders with a scoped payment token, sends what it learns and waits through the people on the deal and the account's payment. It sets the mechanics it may, and hands the floor to the person who decides it.

sales's wordsdeal is a jobaccount is a subjectgig is a taskcloser is a memberseller is a clientseller is a buyer

Most sellers on api.forsale order through an agent. The agent holds the seller's delegated key and a scoped payment token, and it can do everything a buyer does except decide the merits. This is the order that opened Northwind Freight's deal, over MCP.

Eleven tools in the deal's own words, and the instructions every agent reads first:

Call
→ tools/list
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← order_deal · get_deal · list_deals · cancel_deal · end_deal · reorder_deal · set_deal_policy · send_deal_signal · send_deal_message · list_deal_messages · list_events
  11 tools, about 3,912 tokens
Call
→ initialize
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
  order_deal takes the account, its value, the offer, max_usd and a key.
  Without max_usd you get an OFFER: nothing on effort, 5% of the closed value at won, and 10% more to the closer on a deal of $50,000 or more.
  Nothing is charged before won. Won is proven by the account paying the seller's own invoice, which carries the deal's id, and held 60 days.
  send_deal_signal sends what you learn: committee or person draws a closer to the deal, whatever its value.
  get_deal with wait: 50 waits through any person's line. A deal ends won or lost: there is nothing to accept.
  floor binds the merits: only the seller sets it, in its own session. set_deal_policy moves humans_from, setter and stall_days.
  This is test mode: a sk_test_ key, simulated AI and money; metadata.sandbox picks branches.

An order without max_usd answers an OFFER: the price at each end and the exact call that orders. The agent sends it back with a scoped payment token, good for one seller, up to one amount, until one date. Nothing is held. The seller's consent sentence is on the record:

Call
→ tools/call order_deal {"account":{"name":"Northwind Freight","email":"replies@example.test"},"value":80000,"offer":"https://harbor.example/route-planner","key":"northwind"}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← OFFER · Nothing on effort. 5% of the closed value when the deal is won, proven by the payment.
  a closer    15% from $50,000: the 5%, and 10% to the closer, charged to the seller
  this deal   at most $12,000.00, at the $80,000 it lists for
  next        order_deal {…,"max_usd":12000,"payment":{"token":"spt_…","max_usd":12000}}
Call
→ tools/call order_deal {"account":{"name":"Northwind Freight","email":"replies@example.test"},"value":80000,"offer":"https://harbor.example/route-planner","max_usd":12000,"payment":{"token":"spt_…","max_usd":12000,"seller":"api.forsale","expires_at":"2027-04-30"},"key":"northwind"}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← job_7Hq5 · deal · working · mandated · up to $12,000.00, charged at won
  consent   "Harbor Labs authorizes api.forsale to charge up to $12,000.00 when this deal is won, proven by the payment, until 30 Apr 2027."

stall_days and setter bind the mechanics, so the agent moves them. floor binds the merits, so only Harbor Labs sets it, in its own session. The agent gets the link to hand on, and no tool for the act:

Call
→ tools/call set_deal_policy {"id":"job_7Hq5","policy":{"floor":0.7}}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
  "code": "merits_not_yours",
  "reason": "floor binds the merits, and only Harbor Labs sets it, in its own session. Hand the link in next to the person who decides.",
    "url": "https://api.forsale/portal/deals/job_7Hq5/policy",
    "tool": null,
  "doc_url": "http://localhost:8787/docs/errors/merits_not_yours",
Call
→ tools/call set_deal_policy {"id":"job_7Hq5","policy":{"stall_days":21}}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← job_7Hq5 · deal · working · mandated
  policy  {"floor":0.8,"humans_from":50000,"setter":"on_warm","stall_days":21}

The agent reads the seller's own inbox and CRM, so it often knows first that procurement has joined. committee draws a closer to a deal of any value, and the closer keeps it to the end:

Call
→ tools/call send_deal_signal {"id":"job_7Hu2","signal":"committee","note":"procurement and the CFO joined the thread"}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← job_7Hu2 · deal · working · signal.raised · committee
  staffing  meet escalates to a closer: committee, though $30,000 is under humans_from · the closer keeps the deal to the end
  price     won at $30,000: $4,500.00 · the 5% and the closer's 10%, charged to the seller once the account pays
  next      get_deal {"id":"job_7Hu2","wait":50}

wait: 50 holds the call through every person's line, then through the account's payment. The deal waits on Dana, the closer, then on Northwind's payment of Harbor's invoice, then reads won and charged:

Call
→ tools/call get_deal {"id":"job_7Hq5","wait":50}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← job_7Hq5 · deal · waiting · on closer · tsk_7Hq5 claimed 9 Nov · nothing charged
  next  get_deal {"id":"job_7Hq5","wait":50}
  next  cancel_deal {"id":"job_7Hq5"}
Call
→ tools/call get_deal {"id":"job_7Hq5","wait":50}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← job_7Hq5 · won · awaiting payment · nothing charged · due by 4 Mar 2027
  next  get_deal {"id":"job_7Hq5","wait":50}
Call
→ tools/call get_deal {"id":"job_7Hq5","wait":50}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
← job_7Hq5 · won · msa-northwind.pdf · $11,100.00 charged, held to 2027-03-09
  next  list_events {"job":"job_7Hq5","after":"evt_7Hq5w"}

A won deal is final. A refund or chargeback inside the window reverses its charge, and nothing an agent sends does:

Call
→ tools/call end_deal {"id":"job_7Hq5","end":"lost"}
magic values: account.email = replies@example.test, metadata.sandbox.proof = "paid"
  "code": "job_ended",
  "reason": "job_7Hq5 ended won on 4 Dec, for good. A refund or chargeback inside the 60 days after the payment reverses its charge; nothing else does.",

What an agent can never do lists every act that stays with people. Scoped payment tokens covers paying the OFFER.