> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agentcard.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# order.failed

> A confirm ended without a placed order.

A confirm ended without a placed order. `code` is the gate's reason (`vault_approval_required`, `byoc_approval_required`, `sandbox_mode`, `per_txn_max_exceeded`, …) or the merchant's (`items_unavailable`, `pos_cart_validation`, `address_changed`). An approval pause carries `approval_url` and `retryable: true`: show the link, then send the same confirm again.

```json theme={null}
{
  "id": "evt_9f8e7d6c5b4a",
  "type": "order.failed",
  "created": 1757264400,
  "livemode": false,
  "data": {
    "order_id": null,
    "merchant": "retail",
    "merchant_name": "Amazon",
    "conversation_id": "cmsq18x2m00a1",
    "user_id": "usr_8f3k2m",
    "code": "vault_approval_required",
    "message": "This purchase needs the cardholder's approval.",
    "retryable": true,
    "approval_url": "https://vault.agentcard.sh/authorize?id=cauth_…",
    "approval_id": null,
    "approval_expires_at": null,
    "total_cents": 2306,
    "payment_source": {
      "source": "vault",
      "brand": "visa",
      "last4": "4832"
    },
    "items": null,
    "charge_status": "none"
  }
}
```
