# Preview a conversion

Source: https://business-api-docs.youhodler.com/docs/api/reference/conversions/conversions-preview

Returns a non-binding account-led conversion preview for display. `economics` names source gross amount, fee summary, source principal amount, indicative rate, and target amount explicitly; `binding` is always false. The preview does not reserve funds, lock a rate, or create an executable quote. Creating/executing a conversion may recompute fees and rate before ledger posting.

## Request

**Request URL — POST**
```http
POST /conversions/preview
```

**Request Body — application/json**
```json
{
  "account_ref": "client-accounts/b8e2f1a0-4c3d-4e5f-9a1b-2c3d4e5f6a7b",
  "from_amount": {
    "currency": "USDC",
    "value": "250.00"
  },
  "to_currency": "BTC"
}
```

## Responses

**200 Operation succeeded**

Operation succeeded.

```json
{
  "binding": false,
  "calculated_at": "2026-05-01T10:00:00Z",
  "economics": {
    "binding": false,
    "fee_summary": {
      "components": [
        {
          "amount": {
            "currency": "USDC",
            "value": "1.00"
          },
          "kind": "network_fee"
        }
      ],
      "total": {
        "currency": "USDC",
        "value": "1.00"
      }
    },
    "indicative_rate": "65526.31",
    "source_gross_amount": {
      "currency": "USDC",
      "value": "250.00"
    },
    "source_principal_amount": {
      "currency": "USDC",
      "value": "249.00"
    },
    "target_amount": {
      "currency": "BTC",
      "value": "0.00380000"
    }
  },
  "expires_at": null,
  "fee_summary": {
    "components": [
      {
        "type": "network_fee",
        "amount": {
          "amount": "1.00",
          "currency": "USDC"
        },
        "payee_ref": null
      }
    ],
    "total": {
      "amount": "1.00",
      "currency": "USDC"
    }
  },
  "from_amount": {
    "currency": "USDC",
    "value": "250.00"
  },
  "indicative_price": {
    "computed_at": "2026-05-01T10:00:00Z",
    "expires_at": null,
    "price": "65526.31",
    "price_type": "indicative",
    "provider_hint": null
  },
  "principal_amount": {
    "currency": "USDC",
    "value": "249.00"
  },
  "to_amount": {
    "currency": "BTC",
    "value": "0.00380000"
  }
}
```

**400 Invalid request payload**

Invalid request payload, query, or parameter shape.

```json
{
  "code": "invalid_request",
  "details": {
    "reason": "fee_total_exceeds_source"
  },
  "message": "Invalid request."
}
```

**401 Caller is not authenticated or the bearer token is invalid**

Caller is not authenticated or the bearer token is invalid.

```json
{
  "code": "unauthorized",
  "message": "Authentication required."
}
```

**403 Caller lacks the required capability or permitted scope**

Caller lacks the required capability or permitted scope.

```json
{
  "code": "forbidden_capability_scope",
  "details": {
    "reason": "missing_capability"
  },
  "message": "Insufficient capability for this operation."
}
```

**409 State conflict — the request cannot be applied to the current resource state**

State conflict — the request cannot be applied to the current resource state.

```json
{
  "code": "state_conflict",
  "details": {
    "reason": "state_conflict"
  },
  "message": "The request cannot be applied to the current resource state."
}
```

**422 Operation is not admissible — it violates a business rule**

Operation is not admissible — it violates a business rule, policy constraint, or lifecycle precondition specific to this resource.

```json
{
  "code": "not_admissible",
  "details": {
    "reason": "not_admissible"
  },
  "message": "The operation is not admissible in the current state."
}
```

**429 Request rate limit exceeded**

Request rate limit exceeded. Retry after the delay indicated in the `details.retry_after_ms` field.

```json
{
  "code": "rate_limited",
  "details": {
    "retry_after_ms": 5000
  },
  "message": "Too many requests."
}
```

**502 Upstream service returned an unexpected error**

Upstream service returned an unexpected error.

```json
{
  "code": "upstream_error",
  "message": "An upstream service returned an unexpected error."
}
```

**503 Service is temporarily unavailable**

Service is temporarily unavailable; retry with backoff.

```json
{
  "code": "temporarily_unavailable",
  "details": {
    "reason": "fee_unavailable"
  },
  "message": "Service is temporarily unavailable."
}
```

**Related endpoints:**

- `POST` [Create conversion](/docs/api/reference/conversions/conversions-create) — Commit the conversion after previewing
- `GET` [Get indicative price](/docs/api/reference/prices/prices-indicative) — Compare with indicative prices
