Stipendex

Checkout profile: purchasing goods

The Stipendex profile for "an agent buys goods for a human". The payment mechanics are a direct embodiment of the 4agents order-flow v2.1 model (hold on estimate+tolerance, "ACCEPT is the source of truth for the amount", capture ≤ hold) expressed in Stipendex objects.

Separation of concerns: Stipendex covers authority and money movement; commerce orchestration (cart, stock reservations, shipping, disputes, MoR, fiscal receipts) is run by an orchestrating platform — e.g. 4agents. The boundary is defined at the bottom.


Differences from the service profile

Service Checkout
Amount in Quote amount (fixed) estimate + tolerance
Proof mode capture hold, then capture(amount_final)
Confirmation above the approval_over threshold always mandatory
Receipt settled held → captured / voided
Rail account / mpp / x402 stripe-connect (or an equivalent with manual capture + split)

Flow

Agent/host         Wallet                Platform (4agents)          Rail (Connect)
  │ get_quote ─────────────────────────────▶│ (stock reserve, shipping
  │ ◀── Quote{estimate+tolerance, TTL 15m} ─│  estimate — its domain)
  │──Quote──▶│ mandate: allowlist+limits    │
  │          │ HITL: total+tolerance ──────▶ principal
  │          │ ◀─ Confirmation (approve) ───
  │          │ hold(estimate+tol) ─────────────────────────────────────▶│
  │          │◀──────── Proof{mode:hold} ────────────────────────────────│
  │ place_order + Proof ────────────────────▶│ Receipt{held}
  │                                          │ … seller ACCEPT:
  │                                          │ confirms price/stock/total
  │                                          │ capture(amount_final ≤ hold)──▶│ split
  │ ◀──────── Receipt{captured, amount_final, order_id} ────────────────────│
  │
  │  DECLINE / timeout / total out of tolerance:
  │ ◀──────── Receipt{voided} ── hold released, no money moved ─────────────│

Normative rules

The evidence chain for disputes

By the time of a dispute/chargeback the platform can present a complete machine-readable chain:

Mandate (principal's signature: limits, validity, purpose)
  → Confirmation (signature + passkey: "I accept the total $92.40 ± $8.40", timestamp, channel)
    → Quote (seller's signature: contents, estimate, tolerance)
      → Proof{hold} → Proof{capture(amount_final)}
        → Receipt{captured, order_id}

This closes the main legal risk of agentic purchases ("was there acceptance?" — H5 from the 4agents analysis): the human's consent to a specific amount is recorded cryptographically, not as "a chat reply".

The Stipendex ↔ orchestrating platform boundary

Domain Owner
Authority, limits, HITL, signatures, hold/capture/void Stipendex (wallet + rail)
Catalog, price/stock freshness, soft reserve, seller tiers platform
Shipping, tracking, return logistics platform/seller
Disputes, mediation, rolling reserve/escrow, seller anti-fraud platform + rail
MoR, taxes, fiscal receipts, jurisdictions seller/platform
Seller trust (verified/trusted+) trust registry (trust-registry.md)

The platform sees from Stipendex only: Proof/Confirmation references and Receipts. The principal's limits and allowlist are never disclosed to it.