Buyer, client, party
The buyer pays and holds the key. A party is a person the work is for or about, named in the input, who acts only through their own single-use link. The buyer can be the client, or order for one.
Who is a job for, and who may act on it? Two different people, often.
The buyer orders and pays. They hold the key (sk_test_ on localhost), and their key, or their agent, reads the job, accepts it, sends it back or cancels it.
A party is a person the input names with the type word party: a client, an applicant, a recipient, the founders. A party never holds a key. Each act the work needs of them is an ask, opened to them alone, through a hosted link that works once and needs no account. The buyer can be the client, ordering for themselves, or order for a client who acts through their own links.
| The buyer | A party | |
|---|---|---|
| Is | whoever orders and pays | a person the input names, as party or party[] |
| Holds | a key, or an agent with one | a link per ask, single-use, that expires and can be reissued |
| Can | order, read, accept, send back, cancel, end | consent, answer, upload, sign, decide, name who does a declined step |
| Never | sign, consent or decide for a party | see the brand's internals or a member's contact |
A Service whose Pool shows parties to its members asks the client's consent before any member reads the matter. A sandbox party who signs consents at once; one who declines ends the job at $0:
→ POST /private-translation {"document":"memo.pdf","to":"de","client":{"name":"Ada Lovelace","email":"signs@example.test"},"max_usd":59,"key":"consents","metadata":{"sandbox":{"asks":{"register":"informal"}}}}← job_7Hq2 · delivered · memo.de.pdf · $59.00 charged
record consent · client · consent | register · client · decide · decided informal | translate · ai | review · ai · pass
ledger +$59.00 · AI $0.84 · you $58.16→ POST /private-translation {"document":"memo.pdf","to":"de","client":{"name":"Ada Lovelace","email":"declines@example.test"},"max_usd":59,"key":"declines"}← job_7Hq3 · ended · declined · $0
record declined · ended · Ada Lovelace declined consent.
ledger you $0.00When the buyer is the client, their consent is the session that ordered, and no link is sent. sheet_without_consent fails a Pool whose sheet names parties with no consent ask ahead of the first role step.
A key, the owner or an agent that tries a party's act is refused needs_the_party, and handed the link to pass on:
curl -X POST http://localhost:8787/jobs/job_7Hq3/accept -H 'content-type: application/json' -d '{}'{
"type": "BLOCKED",
"category": "blocked",
"code": "needs_the_party",
"reason": "sign waits on Ada Lovelace to sign. Only they can, through their own link. Hand them the link in next.",
"param": "ask_7Hq2",
"party": "Ada Lovelace",
"next": {
"do": "hand_to_person",
"url": "http://localhost:8787/a/ask_7Hq2?t=cHGjprSn08ODyOp_8zLIVH",
"arguments": {
"ask": "ask_7Hq2"
},
"party": {
"name": "Ada Lovelace",
"email": "ada@example.com"
},
"to": "sign",
"expires_at": "2026-11-01T14:02:11.000Z",
"tool": null,
An agent ordering for a person reads the same next, hand_to_person with the link, on every surface, and never the act itself.
| Pattern | Who pays | Who acts as the party |
|---|---|---|
| The client orders for themselves | the client | the client: their consent is the session that ordered |
| A buyer or their agent orders for a client | the buyer | the client, through each link the buyer hands on |
| A reseller orders for its customer | the reseller, with a tenant key | its customer, through the same links |
The party's links, their reminders and expiry are in Ask the buyer. What a member may learn of a party, and when, is in What a member sees.