The agent's order

The running jobjob_4Tx2 · delivered · workpapers-2026.txt · return.txt · $1,800.00 charged

A business's bookkeeping agent buys the Tax Plan, pays with a scoped token, answers the organizer items it holds with the business's delegated key, asks a question inside the allowance and waits through the year. The officer's consent, signature and decisions stay hers, and the agent hands her each link.

tax's wordsreturn is a jobtaxpayer is a subjectreview is a taskpreparer is a member

Many businesses reach apis.tax through the agent that keeps their books. With the business's delegated key and a scoped payment token, it orders, pays, answers the organizer, and waits. The §7216 consent, each Form 8879, each decision and each Form 2848 are the officer's: the agent hands on her link. This is Fern & Co's plan, over MCP.

Thirteen tools in the brand's own words for ten Services, and the instructions every agent reads first:

Call
→ tools/list
magic values: none
← order_return · get_return · list_returns · accept_return · send_back_return · cancel_return · end_return · reorder_return · set_return_policy · send_return_signal · send_return_message · list_return_messages · reissue_ask
  13 tools, about 4,700 tokens
Call
→ initialize
magic values: none
  order_return orders any of tax's 10 Services: name it in service, with its own fields, max_usd and a key.
  Without max_usd you get an OFFER: the price, what it includes, and when it's charged. The Tax Plan is $2,400 a year and orders the year's 1099s, returns and estimates itself.
  A return is charged when every filing is accepted. Inside a Tax Plan allowance it is $0.00.
  The officer signs the §7216 consent and each return's Form 8879, decides each estimate and grants a Form 2848 for a notice, each through their own link. You get the link to hand on.
  With the business's delegated key, you may answer and upload organizer items for it over HTTP.
  get_return with wait: 50 waits through any person's line, the officer's included.
  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 year's price, what it includes, what costs extra, and when it orders. The agent sends it back with a token good for one brand, one amount and one date:

Call
→ tools/call order_return {"service":"tax-plan","business":{"name":"Fern & Co","email":"books@fern.example"},"owner":{"name":"Maya Fern","email":"maya@fern.example"},"ein":"98-7654350","entity":"C corp","jurisdictions":["US","US-CA"],"books":"https://books.example/fern","key":"fern-plan"}
magic values: none
← OFFER · $2,400 a year, charged at the start of each year.
  includes    1 annual return · 25 payees' 1099s · 4 estimates · 12 questions · 2 notice responses, each at $0.00 inside its allowance
  past one    the next is offered at its own price: a notice response $299, or $99 if the officer answers it herself
  outside     an amendment a restated figure needs, $900
  orders      the 2026 1099s now, still open until 2027-02-01 · the 2026 return on 2027-02-01, a month after the year ends · each estimate 10 days before it's due
  next        order_return {…,"max_usd":2400,"payment":{"token":"spt_…","max_usd":2400}}
Call
→ tools/call order_return {"service":"tax-plan","business":{"name":"Fern & Co","email":"books@fern.example"},"owner":{"name":"Maya Fern","email":"maya@fern.example"},"ein":"98-7654350","entity":"C corp","jurisdictions":["US","US-CA"],"books":"https://books.example/fern","max_usd":2400,"payment":{"token":"spt_…","max_usd":2400,"seller":"apis.tax","expires_at":"2027-01-31"},"key":"fern-plan"}
magic values: none
← sbn_7Ha1 · tax-plan · active · cycle 1 · 2027-01-25 → 2028-01-25 · $2,400.00 charged
  consent   "Fern & Co authorizes apis.tax to charge $2,400.00 a year for the Tax Plan, until canceled."
  minted    catch_up open → 2026 information-returns, job_4Ta0
  next mint annual → 2026 annual-return on 2027-02-01 · estimate → 2027-Q1 on 2027-04-05

On 1 February the plan mints the 2026 return, and it waits on Maya, the officer, to sign the §7216 consent. The agent reads where it waits and gets her link:

Call
→ tools/call get_return {"id":"job_4Ta1","wait":50}
magic values: none
← job_4Ta1 · annual-return · period 2026 · waiting · on party · consent · $0.00 on sbn_7Ha1
  party     Maya Fern, the officer · consent · her own link, sent to maya@fern.example
  next      hand_to_person https://apis.tax/asks/ask_7Ha2 · or reissue_ask {"id":"ask_7Ha2"} for a fresh link

Once she consents, naming her bank as a lender, the agent answers the organizer items it holds, on the record as the one who did. Form 8879 is a signature, so the agent gets needs_the_party and her link:

Call
→ POST /asks/ask_7Ha3 {"items":{"books":{"answer":"https://books.example/fern"},"bank":{"file":"https://files.fern.example/bank-2026.pdf"},"assets":{"answer":"none bought or sold"}}}   # x-services-dlg: dlg_…Ha1, the business's delegated key
200 · ask_7Ha3 · organizer · 3 of 6 answered by an agent (dlg_…Ha1) · 3 open: payroll, ca_account, estimates · magic values: none
  record    each answer names the agent as the one who gave it, under the business's key
Call
→ POST /asks/ask_7Ha4 {"signed":true}   # x-services-dlg: dlg_…Ha1
magic values: none
  "code": "needs_the_party",
  "reason": "authorize is a sign ask: only Maya Fern signs Form 8879-CORP, id-verified, through her own link. Hand the link in next to her.",
    "url": "https://apis.tax/asks/ask_7Ha4",
    "tool": null,
  "doc_url": "http://localhost:8787/docs/errors/needs_the_party",

A question draws on the allowance at $0. An answer that is advice waits for a signer to adopt, revise or refuse it:

Call
→ tools/call order_return {"service":"question","owner":{"name":"Maya Fern","email":"maya@fern.example"},"ein":"98-7654350","question":"Can we deduct the van we bought in March?","key":"fern-q1"}
magic values: none
← job_4Ta5 · question · working · $0.00 · allowance 1 of 12 on sbn_7Ha1
Call
→ tools/call get_return {"id":"job_4Ta5","wait":50}
magic values: none
← job_4Ta5 · question · delivered · $0.00
  answer    held: it tells the business what to do, so it waited for a signer · adopted as written by mbr_8Ea1, Katherine Johnson, EA, in her own name
  next      list_return_messages {"id":"job_4Ta5"}

wait: 50 holds the call through every person's line. The return waits on Maya, then on a signer, then on the IRS's receipts, and reads accepted, its figures kept for 2027:

Call
→ tools/call get_return {"id":"job_4Ta1","wait":50}
magic values: none
← job_4Ta1 · annual-return · period 2026 · accepted · $0.00 on sbn_7Ha1
  receipts  rcp_7Ha6 US 1120 2026 accepted · rcp_7Ha7 US-CA 100 2026 accepted, after rcp_7Ha6
  kept      sbj_7Ha1 · carryforwards and tax for 2026, for the 2027 return to read
  next      list_events {"subject":"sbj_7Ha1","after":"evt_7Ha9"}

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