> For the complete documentation index, see [llms.txt](https://docs.orda.network/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.orda.network/api-reference/api-reference/crypto-to-fiat.md).

# Crypto To Fiat

Operations for crypto to fiat conversions (off-ramp)

## Request off-ramp quote

> \
> Generate a quote for converting cryptocurrency to fiat currency.\
> \
> You can provide either an existing recipientId or create a new recipient \
> by providing kycInformation and fiatSettlementDetails.\
> \### Authentication\
> \
> All API requests to orda require HMAC signatures using your project's client ID and client secret. The signature is a HMAC-SHA256 hash of the request body, using your Client Secret as the key. For GET or endpoints with no request body, use the string \`"{}"\` (canonical empty object) for the signature.\
> \
> \#### Required Headers\
> \
> \| Header | Description |\
> \|--------|-------------|\
> \| \`x-client-id\` | Your project's client ID |\
> \| \`x-signature\` | HMAC-SHA256 signature derived from your client secret |\
> \| \`Content-Type\` | \`application/json\` for this request |\
> \
> \---\
> \
> \*\*Intent Specification:\*\*\
> The quote request uses an \`intent\` object to specify the amount calculation method:\
> \- \`usd\`: Calculate based on USD amount\
> \- \`fromAmount\`: Calculate based on source token amount  \
> \- \`toAmount\`: Calculate based on destination token amount\
> \
> \*\*Important Notes:\*\*\
> \- Provide EITHER \`recipientId\` OR both \`kycInformation\` and \`fiatSettlementDetails\` (not both options)\
> \- If a \`recipientId\` is provided, the system will use the recipient's pre-configured settlement details\
> \- If you provide \`kycInformation\` and \`fiatSettlementDetails\`, settlement details are provided inline\
> \- KYC information is required for compliance with financial regulations\
> \- Quotes have a limited validity period<br>

```json
{"openapi":"3.0.3","info":{"title":"Orda API","version":"1.1.0"},"tags":[{"name":"Crypto-to-fiat","description":"Operations for crypto to fiat conversions (off-ramp)"}],"servers":[{"url":"https://api.orda.network/v1","description":"Default API path"}],"security":[{"ClientId":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ClientId":{"type":"apiKey","in":"header","name":"x-client-id","description":"Your project client ID from orda dashboard"}},"parameters":{"ClientIdHeader":{"name":"x-client-id","in":"header","required":true,"description":"Your project client ID from orda dashboard","schema":{"type":"string","default":"prj_abc123def456ghi789"}},"SignatureHeader":{"name":"x-signature","in":"header","required":true,"description":"HMAC-SHA256 signature of canonical request body using your client secret","schema":{"type":"string","default":"a1b2c3d4e5f6789abc123def456ghi789abc123def456"}},"TimestampHeader":{"name":"x-timestamp","in":"header","required":false,"description":"Unix timestamp in milliseconds for replay protection (recommended)","schema":{"type":"string","default":"1704067200000"}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error type identifier"},"message":{"type":"string","description":"Human-readable error message"},"correlationId":{"type":"string","description":"Request correlation ID for debugging"}}}}},"paths":{"/offramp/quote":{"post":{"summary":"Request off-ramp quote","description":"\nGenerate a quote for converting cryptocurrency to fiat currency.\n\nYou can provide either an existing recipientId or create a new recipient \nby providing kycInformation and fiatSettlementDetails.\n### Authentication\n\nAll API requests to orda require HMAC signatures using your project's client ID and client secret. The signature is a HMAC-SHA256 hash of the request body, using your Client Secret as the key. For GET or endpoints with no request body, use the string `\"{}\"` (canonical empty object) for the signature.\n\n#### Required Headers\n\n| Header | Description |\n|--------|-------------|\n| `x-client-id` | Your project's client ID |\n| `x-signature` | HMAC-SHA256 signature derived from your client secret |\n| `Content-Type` | `application/json` for this request |\n\n---\n\n**Intent Specification:**\nThe quote request uses an `intent` object to specify the amount calculation method:\n- `usd`: Calculate based on USD amount\n- `fromAmount`: Calculate based on source token amount  \n- `toAmount`: Calculate based on destination token amount\n\n**Important Notes:**\n- Provide EITHER `recipientId` OR both `kycInformation` and `fiatSettlementDetails` (not both options)\n- If a `recipientId` is provided, the system will use the recipient's pre-configured settlement details\n- If you provide `kycInformation` and `fiatSettlementDetails`, settlement details are provided inline\n- KYC information is required for compliance with financial regulations\n- Quotes have a limited validity period\n","tags":["Crypto-to-fiat"],"parameters":[{"$ref":"#/components/parameters/ClientIdHeader"},{"$ref":"#/components/parameters/SignatureHeader"},{"$ref":"#/components/parameters/TimestampHeader"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["fromChain","fromToken","fromAddress","intent"],"properties":{"fromChain":{"type":"string","description":"Source blockchain chain ID"},"fromToken":{"type":"string","description":"Source token contract address"},"fromAddress":{"type":"string","description":"Source wallet address"},"intent":{"type":"object","required":["method","value"],"properties":{"method":{"type":"string","enum":["usd","fromAmount","toAmount"],"description":"Quote calculation method"},"value":{"type":"string","description":"Amount value for the specified method"}},"description":"The `intent` object specifies the amount calculation method:\n- `usd`: Calculate based on USD amount (e.g., `10` for $10)\n- `fromAmount`: Calculate based on the source token amount in its smallest unit\n- `toAmount`: Calculate based on the destination token amount in its smallest unit\n\n**Token Amount Formatting:**\nAmounts for `fromAmount` and `toAmount` must be provided in the token's smallest unit, based on its decimal precision.\n- **ETH (18 decimals):** 1 ETH = 1e18 units (e.g., 2.5 ETH is \"2500000000000000000\")\n- **USDC (6 decimals):** 1 USDC = 1e6 units (e.g., 1000 USDC is \"1000000000\")\n- **BTC (8 decimals):** 1 BTC = 1e8 units\n"},"recipientId":{"type":"string","description":"The ID of the recipient to send funds to (provide either this OR kycInformation+fiatSettlementDetails)"},"kycInformation":{"type":"object","description":"KYC information for inline settlement (required with fiatSettlementDetails if not using recipientId)","properties":{"taxId":{"type":"string","description":"Tax identification number of the recipient. For Brazil\n(`taxIdCountry: 'BRA'`), send the CPF as 11 unformatted digits or the\nCNPJ as 14 unformatted digits — no dots, dashes, or slashes.\nFormatted values such as `023.717.365-46` are rejected with a 400\nvalidation error. Non-Brazilian `taxId` values are accepted as-is.\n"},"taxIdCountry":{"type":"string","description":"ISO 3166-1 alpha-3 country code for the tax ID (e.g. `BRA` for Brazil)"},"name":{"type":"string","description":"Full name of the recipient"},"email":{"type":"string","description":"Email address of the recipient"}}},"fiatSettlementDetails":{"type":"object","description":"Bank account and fiat currency details for inline settlement (required with kycInformation if not using recipientId)","properties":{"toCurrency":{"type":"string","description":"Destination fiat currency code"},"bankAccount":{"type":"string","description":"Bank account number"},"bankBranch":{"type":"string","description":"Bank's identifier"},"bankAccountType":{"type":"string","description":"The current account type in target bank"},"iban":{"type":"string","description":"International bank account number"},"pixKey":{"type":"string","description":"PIX key for Brazilian recipients. Supported types:\n  - email (e.g. `user@example.com`)\n  - E.164 phone (e.g. `+5511999999999`)\n  - random UUID / EVP (e.g. `123e4567-e89b-12d3-a456-426614174000`)\n  - CPF (11 digits, unformatted — e.g. `12345678901`)\n  - CNPJ (14 digits, unformatted — e.g. `12345678000190`)\n\nCPF/CNPJ keys must be digits only. Formatted values such as\n`023.717.365-46` or `12.345.678/0001-90` are rejected with a 400\nvalidation error — strip punctuation client-side before sending.\n"},"cbuCvu":{"type":"string","description":"CBU/CVU for Argentina"}}}}}}}},"responses":{"200":{"description":"Off-ramp quote generated successfully","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"transactionId":{"type":"string","format":"uuid"},"quote":{"type":"object","properties":{"provider":{"type":"string"},"providerRequestId":{"type":"string"},"fromToken":{"type":"object","description":"Source token information (enhanced with chainId, decimals, and price)","properties":{"chainId":{"type":"integer","description":"Chain ID where this token is located"},"address":{"type":"string","description":"Token contract address"},"symbol":{"type":"string","description":"Token symbol"},"decimals":{"type":"integer","description":"Token decimals"},"price":{"type":"number","description":"Token price in USD"}}},"toCurrency":{"type":"string"},"fromAmount":{"type":"string"},"toAmount":{"type":"string"},"exchangeRate":{"type":"string"},"fromAddress":{"type":"string"},"estimatedDuration":{"type":"integer","description":"Estimated processing time in seconds"},"fees":{"type":"object","nullable":true,"description":"Fee breakdown for the conversion. Only present when fromToken is not BRZ\n(i.e., when a swap/bridge is required). Not included for direct BRZ transfers.\n","properties":{"bridge":{"type":"object","description":"Bridge/relayer fee details","properties":{"amount":{"type":"string","description":"Fee amount in smallest token units"},"token":{"type":"string","description":"Token symbol for the fee"}}},"gas":{"type":"object","description":"Gas fee details","properties":{"amount":{"type":"string","description":"Gas fee amount in smallest token units"},"token":{"type":"string","description":"Token symbol for the gas fee"}}},"integrator":{"type":"number","description":"Integrator fee"},"maxSlippage":{"type":"number","nullable":true,"description":"Maximum slippage tolerance as a decimal. Null if not applicable."}}}}},"approvalTxParams":{"type":"object","nullable":true,"description":"ERC-20 approval transaction parameters. Null for direct BRZ transfers that do not require an allowance.","properties":{"from":{"type":"string"},"to":{"type":"string"},"gas":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"},"nonce":{"type":"integer"}}},"transactionRequest":{"type":"object","properties":{"from":{"type":"string"},"to":{"type":"string"},"data":{"type":"string"},"value":{"type":"string"},"chainId":{"type":"integer"},"requestId":{"type":"string"},"maxFeePerGas":{"type":"string"},"maxPriorityFeePerGas":{"type":"string"}}}}}}}},"400":{"description":"Bad Request - Invalid parameters","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized - Invalid authentication","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found - Business not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get off-ramp status

> \## Authentication\
> \
> All API requests to orda require HMAC signatures using your project's client ID and client secret:\
> \
> \#### Required Headers\
> \
> \| Header | Description |\
> \|--------|-------------|\
> \| \`x-client-id\` | Your project's client ID |\
> \| \`x-signature\` | HMAC-SHA256 signature derived from your client secret |\
> \
> The signature is an HMAC-SHA256 hash of the request body, using your Client Secret as the key.\
> \
> \---\
> \
> Check the status of a crypto-to-fiat transaction.\
> \
> \*\*Status Values:\*\*\
> \- \`Processing\`: The crypto has been received and fiat conversion is in process\
> \- \`Completed\`: The fiat has been successfully sent to the recipient's bank account\
> \- \`Failed\`: The transaction failed\
> \- \`Refunded\`: The transaction was refunded<br>

```json
{"openapi":"3.0.3","info":{"title":"Orda API","version":"1.1.0"},"tags":[{"name":"Crypto-to-fiat","description":"Operations for crypto to fiat conversions (off-ramp)"}],"servers":[{"url":"https://api.orda.network/v1","description":"Default API path"}],"security":[{"ClientId":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ClientId":{"type":"apiKey","in":"header","name":"x-client-id","description":"Your project client ID from orda dashboard"}},"parameters":{"ClientIdHeader":{"name":"x-client-id","in":"header","required":true,"description":"Your project client ID from orda dashboard","schema":{"type":"string","default":"prj_abc123def456ghi789"}},"SignatureHeader":{"name":"x-signature","in":"header","required":true,"description":"HMAC-SHA256 signature of canonical request body using your client secret","schema":{"type":"string","default":"a1b2c3d4e5f6789abc123def456ghi789abc123def456"}},"TimestampHeader":{"name":"x-timestamp","in":"header","required":false,"description":"Unix timestamp in milliseconds for replay protection (recommended)","schema":{"type":"string","default":"1704067200000"}}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string","description":"Error type identifier"},"message":{"type":"string","description":"Human-readable error message"},"correlationId":{"type":"string","description":"Request correlation ID for debugging"}}}}},"paths":{"/offramp/status":{"get":{"summary":"Get off-ramp status","description":"## Authentication\n\nAll API requests to orda require HMAC signatures using your project's client ID and client secret:\n\n#### Required Headers\n\n| Header | Description |\n|--------|-------------|\n| `x-client-id` | Your project's client ID |\n| `x-signature` | HMAC-SHA256 signature derived from your client secret |\n\nThe signature is an HMAC-SHA256 hash of the request body, using your Client Secret as the key.\n\n---\n\nCheck the status of a crypto-to-fiat transaction.\n\n**Status Values:**\n- `Processing`: The crypto has been received and fiat conversion is in process\n- `Completed`: The fiat has been successfully sent to the recipient's bank account\n- `Failed`: The transaction failed\n- `Refunded`: The transaction was refunded\n","tags":["Crypto-to-fiat"],"parameters":[{"$ref":"#/components/parameters/ClientIdHeader"},{"$ref":"#/components/parameters/SignatureHeader"},{"$ref":"#/components/parameters/TimestampHeader"},{"name":"transactionId","in":"query","description":"UUID of the off-ramp transaction","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Transaction status retrieved successfully","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["Processing","Completed","Failed","Refunded"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"depositAddress":{"type":"string"},"depositAmount":{"type":"string"},"depositTxHash":{"type":"string"},"withdrawalAmount":{"type":"string"},"withdrawalDetails":{"type":"object","description":"Details of the fiat withdrawal"}}}}}},"400":{"description":"Bad Request - Invalid or missing transactionId","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Unauthorized - Missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Not Found - Transaction not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too Many Requests","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Internal Server Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
