What happened
The API could not retrieve a live exchange rate for the currency pair in your request. This returns HTTP 503 with error code RATE_UNAVAILABLE.
Common causes
- Rate provider timeout — the upstream provider took too long to respond
- Currency pair not configured — the requested pair is not set up for your account
- Polling lag — rate data has not been refreshed yet (brief window, resolves automatically)
- All providers down — every configured provider for this pair is unavailable
Recovery
This is a transient error in most cases. A simple retry with backoff resolves
it.
1. Retry with backoff
Wait 2-5 seconds and retry the request. Most rate provider issues resolve within seconds.
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:
If the pair is not supported, you will receive an UNSUPPORTED_PAIR error instead.
3. Contact support
If the error persists after multiple retries over 30+ seconds, contact support with:
- The
instance value from the error response
- The currency pair you are requesting
- The approximate time of the first failure
Prevention
- Check pair availability before quoting — call the requirements endpoint during onboarding to confirm supported pairs and recipient fields
- Implement retry logic — wrap order requests in a retry loop with exponential backoff (2s, 4s, 8s) and a maximum of 3-5 attempts
- Handle gracefully in your UI — show a “rates temporarily unavailable, please try again” message rather than a generic error