Give each record a specific job
A checkout session describes a proposed purchase under current terms. A payment attempt records financial processing. An order records the merchant's commitment to the purchased items. Fulfilment records delivery. These records need to be connected, but they answer different questions and can change at different times.
Cedar Research is our fictional merchant. Sam buys its current personal-use report for an illustrative $29. The checkout completes and the payment is verified, but the download service briefly fails. Cedar now has a paid order with pending delivery. Calling the whole purchase “failed” hides the financial result and may encourage the assistant to create a duplicate.
Use the order timeline to show what actually happened. The labels and times are synthetic teaching data, not an official protocol enum or a recorded transaction. The important design choice is that the order survives the delivery exception and can be found by both the authorized buyer and support.
For a conceptual event record, retain an event identifier, order reference, occurrence time, responsible record type, prior state, new state and relevant financial or delivery reference. These are explanatory fields for your implementation, not a normative ACP or UCP schema. The timeline uses EV-01 through EV-06 to distinguish events from the checkout, payment and order records they update.
Illustrative order timeline
Scroll the table to compare all columns.
| Time | Event ID | Record | Event and result |
|---|---|---|---|
| 10:00:00 | EV-01 | Checkout C-29 | Current report and $29 terms returned |
| 10:00:12 | EV-02 | Authority A-29 | One-time purchase is approved within the stated limit |
| 10:00:14 | EV-03 | Payment P-29 | Supported financial verification confirms the attempt |
| 10:00:15 | EV-04 | Order O-29 | Paid order is committed for the personal report license |
| 10:00:16 | EV-05 | Delivery D-29 | Temporary service failure; order remains paid and pending |
| 10:02:00 | EV-06 | Delivery D-29 | Recovery grants the purchased entitlement against O-29 |
Make status useful to an agent and a person
A status should support a next action. “Awaiting buyer input” can tell the agent to ask a specific question. “Payment outcome unresolved” can direct it to retrieve the existing attempt. “Paid, delivery pending” tells it to wait or follow the support route. A generic error cannot safely convey those differences.
Map internal detail to the external contract you implement. ACP has its own documented checkout statuses and order event structure. UCP has defined commerce capabilities and order-related interfaces. Do not return internal workflow terms as if they were additional values in a standard's enum. [1] [2]
Expose timestamps or update references where your actual contract supports them, and make the authoritative record clear. The assistant's memory of a previous response can be stale. After uncertainty, it should retrieve the current order through an authorized endpoint rather than infer state from a conversation summary.
Reserve availability through the authoritative service
Physical stock is the obvious example, but digital offers can also have constraints. A report license might be limited to a particular customer type, or a purchased service might have finite delivery capacity. Define what checkout reserves and when that reservation ends. Do not advertise unlimited availability when a downstream service can reject the committed order.
Use the same inventory and product rules for the agent route and the ordinary store. If two callers attempt to buy the last available service slot, the authoritative service needs a consistent result. A model should not decide which order wins by interpreting free-text messages. Keep that decision in the business system responsible for capacity.
Decide how a reservation interacts with payment. A reservation released too early can leave a paid order without available fulfilment. A reservation held indefinitely can block legitimate buyers. Document the actual rule and test the case where payment confirmation arrives close to expiry. The appropriate implementation depends on the merchant and payment route.
Record the financial result before relying on delivery
Verify payment through the chosen provider or protocol's supported mechanism. The order should preserve the relevant attempt reference and amount. A chat message, browser screenshot or agent-supplied “paid” field does not replace the authoritative financial result.
For the Cedar order, delivery starts against the paid order's identity. If the download worker receives the instruction twice, it should not charge Sam again or create an inconsistent second purchase. Depending on the product, regenerating access can be acceptable; creating another financial obligation is a different operation that needs its own authority.
Do not expose raw credentials in the order record merely for debugging. Support usually needs the provider reference, current financial outcome and relevant timestamps. Keep secrets in their appropriate protected systems and give operators the minimum access required to investigate the customer case.
Handle repeated and delayed events deliberately
Payment providers and commerce integrations can deliver events more than once or after a delay. Verify the event through the actual integration's mechanism, record an appropriate event identity and apply the corresponding business transition consistently. Never assume arrival order is the same as purchase order.
An older pending event should not overwrite a newer verified payment result. A repeated delivery instruction should not create a second entitlement with different terms. A refund update should be joined to the correct order and amount. These are recommended business controls; the exact event identifiers and signatures come from the implemented contract.
ACP describes merchant order creation and update webhooks that keep the buyer's view synchronized with the merchant. Their role differs from payment-provider events arriving at the merchant. Make the direction and responsibility explicit so operators do not mistake an outbound order notification for independent evidence that money arrived. [1]
Retry the correct boundary
Scroll the table to compare all columns.
| Situation | Safe next operation | Avoid |
|---|---|---|
| Completion response lost | Retrieve the existing session or order | Starting an unrelated purchase immediately |
| Payment event repeated | Verify and resolve the recorded event consistently | Applying the same financial transition twice |
| Delivery instruction repeated | Resolve delivery against the original order | Creating another customer charge |
| Old event arrives late | Compare with authoritative current state | Overwriting a newer completed result |
| Payment confirmed, no access | Recover delivery or open a controlled resolution | Telling the customer to buy again |
Recover paid but undelivered purchases
First confirm the existing order and financial outcome. Then inspect the delivery attempt and retry the recoverable step according to the product's rules. If the report service is unavailable, keep an honest pending state and a support case. Do not erase the order because the first entitlement request timed out.
The customer should receive a useful explanation: the payment is recorded, delivery is pending and the original order reference remains valid. Avoid promising a precise recovery time that your operation cannot support. Provide the actual support route and update the order when access is granted or another resolution is committed.
If delivery cannot be completed, apply the merchant's disclosed policy and the payment route's supported refund process. A refund request is not the same as a completed financial refund. Preserve the refund reference and outcome so the customer and finance operator can distinguish the decision from the movement of funds.
Let support join records without reading the whole conversation
A compact case record should identify the product and license, current order terms, authority reference, payment reference and fulfilment history. Add the reason the case requires attention. That is more useful than copying a long assistant transcript into a support ticket and asking an operator to reconstruct the purchase.
Control access to that record. Order identifiers can appear in customer messages and analytics systems, so they should not automatically grant sensitive access. Follow the actual account or possession model for the product, and keep paid content access distinct from general order visibility where appropriate.
Define who may change the state manually and what evidence they must record. A reviewer who grants a replacement entitlement should link it to the original order. An operator who refunds an order should preserve the financial reference. A later agent request must retrieve that controlled outcome rather than invent a manual approval from informal wording.
Connect digital offers to the existing order path
Agentify Commerce links digital offers, direct-to-merchant USDC/x402 payments and digital delivery, with separate test and live routes. It is an affiliated product relevant to a merchant selling the Cedar-style report. Evaluate the complete order and exception path rather than treating a wallet transaction alone as fulfilment.
For marketplaces or service arrangements, identify the precise deliverable and acceptance point as well. A digital file, an API result and a commissioned service can require different delivery evidence. This article does not infer escrow, universal refunds or other commercial features from a product name. Use documented scope before recommending a particular marketplace workflow.
Keep the buyer-facing receipt consistent with the merchant's actual order. If access is pending, say so. If a partial resolution was agreed, record the remaining obligation. The purpose of automation is a clearer operational result, not a more confident description of an uncertain state.
Test the joins between the records
Run a normal order, a lost completion response, a repeated payment event, an out-of-order update and a delivery timeout. Also test two orders competing for limited availability. Write the expected state of each record before the test and identify the service that supplies the evidence.
For the Cedar scenario, the acceptance result is one authorized purchase, one verified financial outcome and the correct report entitlement. A failed delivery should leave that purchase traceable and recoverable. The illustrative timeline in this guide is not a test result; your own configuration needs its own evidence.
Revisit the tests when you change the checkout adapter, provider integration or delivery service. A route can remain syntactically compatible while its operational behavior changes. Reliable order management preserves a coherent explanation of the customer's purchase across normal execution, retries and human support.