Human-only payment handoff for agent physical requests
When a fixed quote exists, relay total and hosted payment URL to the human payer. Never collect card secrets. Never authorize the charge.
An agent has an active HumansLikeStuff request. Status shows a fixed quote and, when live, a hosted payment URL. What should the agent do?
Do: Present the exact total_cents (and line breakdown if present), expiry if present, and payment.url to the human payer named in the contact / approval context. Wait for human completion. Poll status for paid (or terminal decline/cancel).
Do not: Authorize a charge. Store or request card, bank, password, or wallet secrets in payment_approval_context or chat. Claim the agent can “just pay.” Treat a quote as paid because a human said “looks good” in chat without completing the hosted page.
Authority model
Humans pay; agents relay quote and URL only. On HLS, agent_authorized_charge is always false. Payment approval is human_only.
When this handoff applies
Use this workflow only when all of the following are already true:
- A physical path was chosen for honest reasons — see When a physical item helps.
- Recovery is not still open — if a ticket/incident is unfixed, do not be here; see After a failure, fix first.
- HLS was the right leftover executor (US outcome, not a catalog SKU job) — see HumansLikeStuff is not a catalog MCP. If the hard part was outcome-known / vendor-not after merchant and catalog paths lost, that fork is Outcome known, vendor not — this page starts only after a fixed quote exists.
statusfor the exactrequest_idshows a fixed quote the human should review.
If any of those fail, stop. Do not invent a payment step to force a send.
Agent steps (relay, do not charge)
These steps assume the request already exists. Field schemas and install live on Connect; this page does not duplicate them.
- Call
statuswith the exact opaquerequest_id. Do not guess IDs; HLS does not enumerate by email. - Read payment gates on the projection. A hosted URL is externally usable only when the exact status reports
external_payment_available: true(and related live payment fields as documented on /connect). If false, do not invent a checkout link. - Present the quote to the human payer. Include total, currency, expiry if present, and what the quote covers in plain language. Relay the hosted
payment.urlfor their review and completion. - Refuse secrets. If the human pastes a card number, bank account, password, or one-time code into the agent channel, stop and tell them to use only the hosted page. Never copy secrets into
payment_approval_context. - Wait for truth on
status. Supplier purchase waits until the request is actuallypaidthrough an approved live-payment path. Chat assent is not payment. - On terminal
declined/cancelled, stop cleanly. Do not retry payment theater.
What “relay” looks like (illustrative, not a live quote)
Illustrative shape — IDs and amounts are fake:
Request: req_… (exact ID you saved)
Quote total: 12500 cents USD (illustrative)
Expires: <expires_at from status>
Payment URL: <payment.url from status, only if external_payment_available is true>
Agent authorized charge: false
Next: Human payer opens the URL, reviews the fixed amount, completes payment themselves.
Do not embroider with catalog SKUs you invented. Do not add a second “agent wallet” story.
Anti-patterns (refuse)
| Anti-pattern | Why refuse |
|---|---|
| Agent says “I’ll pay with the company card on file” | HLS has no agent charge path; no customer balance for agents to spend |
| Collecting PAN / bank / CVV in chat or tool args | Secrets ban; hosted page only |
Treating awaiting_payment as optional theater | No supplier purchase before real paid |
| Borrowing catalog-MCP daily-cap / unattended-send narratives onto HLS | Different authority model; capability inflation |
| Using x402 / MPP / “agent pay” tutorial patterns as if they were HLS | Market SERP noise; not this product |
| Payment handoff while a support ticket is still open as the “sorry” | Wrong sequence — fix first; gift optional after |
Honest lose / displace cases
- Catalog MCP with capped autonomous spend. If the organization already authorized a catalog rail to send within a daily cap, that product may match their policy better than a human-quote leftover. Do not claim HLS is “safer autonomous spend” — HLS is not autonomous spend.
- Merchant checkout the human already has. Named item on a store: the human pays the merchant. No HLS quote.
- No physical send. If words, refund, or silence win, there is nothing to pay here.
Sister decisions
| If you are deciding… | Go here |
|---|---|
| Classify HLS vs catalog MCP | HumansLikeStuff is not a catalog MCP |
| Outcome known but no trusted vendor/SKU/catalog row | Outcome known, vendor not |
| Whether / which physical path | When a physical item helps |
| Open failure / apology token | After a failure, fix first |
| Why the public surface is only request + status | Why request + status |
| Request/status call failed — which /connect section | Common request errors |
| Contract: fields, lifecycle, safety, payment invariants | Connect |
| Terms / privacy | Terms, Privacy |
Claim hygiene
- Never state that an HLS agent can authorize charges.
- Never pull-quote 33% or IRS $25 as payment or gift rules for HLS.
- Never invent paid invoices, conversion rates, or customer logos.
What this page is not
- Not a Stripe/Checkout tutorial.
- Not a second
/connectfield table or install page. - Not an agent-wallet product announcement.
- Not permission to automate apology gifts after payment.
- Not the long-tail leftover worked-example (see Outcome known, vendor not).
Sources
- HumansLikeStuff /connect — Payment and approval; status payment projection; agents do not authorize charges.
- HumansLikeStuff /guides/long-tail-outcome-known-vendor-not — leftover fork that often precedes a fixed quote.
- HumansLikeStuff /guides/methodology-request-status-minimal-surface — why create+poll, not a fat toolbox.
- HumansLikeStuff /guides/common-request-errors — symptom → /connect section matrix.
- HumansLikeStuff /llms.txt — compact agent contract.
- HumansLikeStuff /terms — pilot terms pointer for human-approved live payment (re-fetch at publish).
- Landscape contrast only: public catalog-MCP spend-gate / unattended-send documentation; general agent-pay protocol tutorials. Not HLS features.