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

# estimate_payment

> Preview a complete direct, swap, or explicit two-step payment route.

**Authentication:** `quote:read`, `intent:create`\
**Mutates state:** May create quote intents; does not create a payment

```json theme={null}
{
  "source": {
    "asset": { "type": "fiat", "symbol": "PHP" },
    "amount": "23729.64"
  },
  "destination": {
    "asset": { "type": "fiat", "symbol": "VND" },
    "amount": "10000000",
    "country": "VN"
  },
  "amount_mode": "exact_destination",
  "routing_preference": "lowest_total_cost",
  "route": {
    "intermediate_asset": {
      "type": "crypto",
      "ticker": "USDC",
      "chain": "worldchain"
    }
  }
}
```

Supports direct on/off-ramp, same-chain swap, fiat-to-fiat, and
token-to-fiat routes. Estimates are recipient-free. A two-step estimate
requires an explicit intermediate asset selected from live pairs.

The result is ephemeral: it has no estimate ID, creates no payment or
executable calldata, and may contain expiring quote references. For fiat
destinations, `recipient_requirements` defines the supported instruments and
required recipient fields. Collect the final recipient only after the user
chooses one of those instruments.

Reuse an `estimate_ready` result while its economic inputs are unchanged and
`expires_at` has not passed. Pass its `hops` unchanged to `create_payment` or a
plan-bound payment. Re-estimate only after expiry, a material input change,
`QUOTE_EXPIRED`, or `PRICE_MISMATCH`, and reconfirm changed terms.
