Hand off to the store's checkout to pay
complete_checkoutCreates a short-lived tracked payment handoff for a checkout at a store and returns its link. Use this when the checkout is ready to pay. The checkout can be finished in either of two ways: the person taps the link in their own browser, or you open it and complete the store's own checkout. human_tap.budget_ceiling_minor is the highest total, shipping and tax included, that RoboTrunk checked the store's total against, and RoboTrunk refuses the handoff with BUDGET_EXCEEDED when the store's total is above it. human_tap.affiliate.disclosure is present when an affiliate link applies. RoboTrunk never takes the payment or sees the card. The link goes through RoboTrunk straight to the store's own checkout, with no approval page, and can be opened again within its 30 minutes, each time landing on the same store checkout; a HEAD request or a request with a Purpose header gets an empty 204 and goes nowhere. Not for claiming an order was placed. Outputs: human_tap.url and the envelope. If the status is requires_escalation or the answer carries store_checkout_step, the store needs a step finished on its own checkout page: the link opens that page, and the step is finished there before paying, by the person or by you. With click_and_collect_on_store_page, keep this checkout's link to collect: the choice is on that page; send the person there, not to the store's website separately. Error recovery: buyer_identity_contact_method_required means send buyer.email from the person with update_checkout, then call this again; HANDOFF_NOT_AVAILABLE means the store has not supplied a handoff yet, so call get_checkout and try again later; CHECKOUT_NOT_FOUND, continuation_not_found or RUN_AUTH_REQUIRED means the handle cannot be used, so send checkout_id exactly as an earlier answer returned it and, if you did, call create_checkout again; HANDOFF_SESSION_INVALID means the link cannot be used, so call complete_checkout again for a new one; BUDGET_EXCEEDED means the store's total is now over the ceiling, so tell the person the new total and raise budget_ceiling_minor with update_checkout only on their new approval; IDEMPOTENCY_CONFLICT means use a new key only for a different request; any other error, including tool_layer_failure: retry once, then call submit_feedback. Next: read the result with get_checkout once the payment is made at the store; watch_recalls then watches the products for a recall. Full guide: get_tool_guide or /agent/tools.json#complete_checkout Example call: {"checkout_id":"ucp_transcend-dev-lab_abc123"}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| checkout_id | Yes | The UCP checkout id returned by an earlier checkout tool. | |
| idempotency_key | No | A printable ASCII key for safe retries, or null to generate one. | |
| shopping_session_id | No | Optional server-issued shopping session correlation ID. It is not purchase authority. |