An agent recommending your business is not the same as an agent successfully transacting with it. The handoff has to preserve the customer's requirements, use current information, respect authorization, and produce a verifiable result. The same structure applies to purchases, reservations, and paid API jobs, although the details differ.
Make the transaction state explicit
| State | What is known | What is still needed |
|---|---|---|
| Discovered | The offering may fit | Verify current facts and constraints |
| Quoted | Terms and availability were checked | Required customer approval and valid quote |
| Submitted | A request reached the business | Confirmation of acceptance or failure |
| Confirmed | The business recorded the commitment | Receipt, access, fulfillment, or follow-up |
| Completed | The customer received the intended result | Support and any permitted aftercare |
Use the terms your actual system implements. A form that requests a table is an inquiry unless it reserves one. An accepted asynchronous API job is not a completed result. A checkout page displaying a total is not proof of an order.
Separate preview from commitment
Allow a caller to obtain the information needed to make a decision without silently committing. Show the actual item or service, amount and currency, material fees, time or location, relevant terms, and expiration of any quote. Changes that matter to the customer require a renewed decision under the application's authorization policy.
A publicly discoverable endpoint does not grant permission to purchase. An agent's ability to authenticate also does not mean the customer authorized every operation available to that account. Enforce the boundary in the application, not only in a natural-language instruction.
Design for uncertainty and retries
A network timeout can happen after a request has been accepted. If the caller simply repeats the action, the business might create a duplicate order, reservation, or charge. Define an idempotency mechanism and a way to retrieve the status of the original request.
Document how long the key is retained, what happens if the same key is reused with different inputs, and which identity owns the result. Do not make callers infer whether an error occurred before or after the commitment. Reconcile ambiguous outcomes against the business's authoritative record.
Account for changing offers
Inventory, appointment slots, promotions, and shipping costs can change between recommendation and checkout. Check them at the point of commitment. Return a specific unavailable or expired state and a permitted next step. An alternative product or time is a new proposal, not an automatic substitute unless the user authorized that flexibility.
For service businesses, make the difference between an estimate and a binding quote clear. For restaurants, distinguish menu information from live table inventory. For APIs, distinguish estimated usage from a charge actually incurred. These boundaries are part of the product experience.
Choose a protocol only after defining the journey
ACP focuses on compatible agent checkout. UCP describes interoperable commerce capabilities and profiles. AP2 addresses payment authorization. They may participate in a larger workflow, but their existence does not establish that your merchant account or target application supports the combination. See the protocol map and verify current participant documentation before implementation.
A conventional checkout or booking page may be the right starting point. Keep it accessible, preserve the selected item, and return a confirmation that can be inspected. Build a native agent integration when a supported consumer and a real customer need justify it.
Test the failures as well as the success
Test expired quotes, unavailable inventory, missing authorization, a changed total, duplicate submissions, and a timeout after acceptance in an authorized test environment. Verify the final business record and confirm that no unintended duplicate was created. Keep test activity out of sales reports.
The release gate is a trustworthy outcome with clear recovery, not merely a schema-valid request. Our authorization reference and action contract pattern provide technical review checklists for these boundaries.
Primary sources
Put the next step to work.
Find your starting point