Give your agent a bounded buying workflow: an explicit request, a reviewable cart and a result your application can recover.
Illustrative sandbox environment · No live transactionreq_042- Bound the request
- Review the cart
- Recover the result
01 / A bounded request
One merchant.
One clear budget.
Start with the item, merchant and maximum total. Keep the conversation identifier across turns. Only an observed cart with the requested item and an explicit total inside the budget becomes confirmable.
Example merchant only · coverage follows the configured allowlist.Under $150.merchant.example · USD↗
hash_04202 / A reviewable boundary
Review this cart.
Confirm this version.
Confirmation binds to the current cart hash. A changed or unknown cart is rejected. Login, a challenge or an ambiguous checkout calls for human continuation rather than an invented success.
cart_042 · current revision · illustrative sandbox flowhash_04203 / A recoverable result
Keep the result.
Don’t buy twice.
Save the conversation and receipt identifiers. After an uncertain response, read the original operation before retrying. Sandbox confirmation returns a durable no-charge result: no live merchant order is placed.
Sandbox outcome · charge none · no order placedWireless headphones
- Reviewed total
- $139.32
- Charge
- None
- Order
- Not placed
req_042 / receipt_042charge_status: none
order_id: null
receipt_id: receipt_042From a scene to your workflow
Build with a boundary.
Keep the result.
Start in the sandbox workspace. Use the documentation to connect your application, preserve operation identifiers and inspect each returned status.
- 01Open your company workspace
Keep the company and customer context explicit.
- 02Connect the documented flow
Use the configured credentials and supported operations.
- 03Inspect the returned result
A request, an approval and a payment are separate facts.
A few useful distinctions
Purchase Agent, clearly.
Does sandbox confirmation place an order?
No. Sandbox confirmation records a durable receipt with charge_status none and no merchant order. It does not charge a card or place a live order.
Can it buy from every merchant?
No. Coverage follows the configured merchant allowlist and supported observed layouts. Ambiguous controls, login and challenges require a handoff.
What should an integration do after a timeout?
Read the saved conversation or original order result first. Reuse the same idempotency key for the same operation; do not create a fresh purchase to compensate for an uncertain response.