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

# RATE_UNAVAILABLE_AFTER_HOURS

> The market for the requested fiat currency is closed and no prior open-market rate is available to freeze

## What happened

Your order touches a fiat currency whose market is currently closed -- a weekend, a market holiday, or simply outside trading hours. While the market is closed, the API can only quote against the last rate captured while it was open. In this case there is no such open-market rate on record to freeze, so no quote can be produced. This returns HTTP 503 with error code `RATE_UNAVAILABLE_AFTER_HOURS`.

```json theme={null}
{
  "type": "RATE_UNAVAILABLE_AFTER_HOURS",
  "title": "Rate Unavailable (After Hours)",
  "status": 503,
  "detail": "The market for USD/MXN is currently closed and no prior open-market rate is available to freeze.",
  "resolution": "Retry once the market reopens. If the error persists during open hours, the rate provider for this currency pair may be experiencing an outage.",
  "docs": "/errors#rate-unavailable-after-hours",
  "instance": "/v2/orders",
  "correlationId": "corr_xyz789",
  "timestamp": "2026-01-17T22:30:00.000Z"
}
```

## Common causes

* **Weekend or holiday** -- the market for this currency is closed and reopens on the next business day
* **Outside trading hours** -- the request arrived after the market closed for the day
* **No open-market rate on record** -- the pair has never been quoted during open hours, so there is no last-good rate to freeze and serve while closed

## Recovery

<Warning>
  This is a time-of-day error, not a provider outage. The quote will succeed
  again once the market reopens.
</Warning>

**1. Retry once the market reopens**

Wait until the currency's market is open again -- the next business day for a
weekend or holiday, or the next trading session for after-hours -- and retry the
request.

```bash theme={null}
curl -X POST https://api.conduit.financial/v2/orders \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "source": { "type": "wallet", "id": "wlt_...", "asset": { "code": "USDC", "chain": "ethereum" } },
    "destination": { "type": "virtual_account", "id": "vac_..." },
    "autoPayout": {
      "rail": "fedwire",
      "purpose": "payment_for_goods_or_services",
      "documents": ["doc_..."],
      "recipient": {
        "rail": "us",
        "type": "individual",
        "firstName": "Jane",
        "lastName": "Doe",
        "dateOfBirth": "1990-01-15",
        "countryOfCitizenship": "USA",
        "accountNumber": "1234567890",
        "routingNumber": "021000021",
        "accountType": "checking"
      }
    },
    "lockSide": "source",
    "amount": "1000.00"
  }'
```

`autoPayout.purpose` is required. Every purpose except `intercompany` and, by default, `prefunding` (documentation
policy can still require documents on a `prefunding` payout above a configured
amount) also requires at least one previously-uploaded supporting document: upload it first
with `POST /v2/documents` (purpose `transaction_support`) and pass its `doc_...`
id in `autoPayout.documents`, otherwise the order is rejected before it is
created. Use `"purpose": "intercompany"` with a recipient already on the
customer's whitelist to skip the document.

**2. Check pair and recipient requirements**

Verify that the source and destination asset pair is supported, and fetch the
recipient fields required for the destination shape:

```bash theme={null}
curl -X GET 'https://api.conduit.financial/v2/orders/requirements?sourceCode=USDC&sourceChain=ethereum&destinationCode=USD&destinationCountry=USA&paymentRail=fedwire&recipientType=individual' \
  -H "x-api-key: YOUR_API_KEY"
```

If the pair is not supported, you will receive an `UNSUPPORTED_PAIR` error instead.

**3. Contact support**

If the error persists during open market hours, contact support with:

* The `instance` value from the error response
* The currency pair you are requesting
* The approximate time of the failure

## Prevention

* **Quote during market hours** -- schedule order placement for when the destination currency's market is open
* **Handle gracefully in your UI** -- show a "rates unavailable until the market reopens, please try again later" message rather than a generic error
* **Implement retry logic** -- queue the request and retry once the market reopens rather than failing the operation outright

## Related endpoints

* [POST /v2/orders](/api-reference/orders/create-an-order) -- create an order
* [GET /v2/orders/requirements](/api-reference/orders/list-required-recipient-fields) -- check pair availability and required fields
