> 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/developers/sdk/on-ramp-quote.md).

# On Ramp Quote

Convert fiat currency to cryptocurrency (e.g., BRL to BRZ via PIX).

**Note:** we currently only support BRL → BRZ on ramps at the moment.

## Request a Quote

You can request a quote using an existing recipient ID or by passing the settlement details directly in the payload.

{% tabs %}
{% tab title="Using Recipient ID" %}
{% code title="TypeScript" %}

```typescript
const quote = await orda.onRamp.requestQuote({
  fromCurrency: 'BRL',
  intent: {
    method: 'fromAmount',
    value: '100.00'
  },
  taxId: '11144477735',
  taxIdCountry: 'BRA',
  recipientId: 'recipient-id'
});

console.log('PIX Key:', quote.depositInstructions.pixKey);
console.log('Transaction ID:', quote.transactionId);
```

{% endcode %}
{% endtab %}

{% tab title="Using Inline Settlement" %}
{% code title="TypeScript" %}

```typescript
const quote = await orda.onRamp.requestQuote({
  fromCurrency: 'BRL',
  intent: {
    method: 'usd',
    value: '100'
  },
  taxId: '11144477735',
  taxIdCountry: 'BRA',
  settlementDetails: {
    toChain: '8453',
    toToken: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',
    toAddress: '0xRecipientAddress'
  }
});
```

{% endcode %}
{% endtab %}
{% endtabs %}

**Note:** `taxId` and `taxIdCountry` are required on every on-ramp quote. `taxId` is the fiat payer's Brazilian tax ID (CPF with 11 digits or CNPJ with 14 digits, digits only with no punctuation) and `taxIdCountry` is the ISO 3166-1 alpha-3 country code in uppercase (for example, "BRA").

## Deposit Instructions

The quote response includes PIX deposit details and a QR code formatted in Base64.

{% code title="Response (JSON)" %}

```json
{
  "transactionId": "tx-id",
  "depositInstructions": {
    "pixKey": "pix@orda.network",
    "pixKeyType": "EMAIL",
    "amount": "100.00",
    "currency": "BRL"
  }
}
```

{% endcode %}

## Get Status

{% code title="TypeScript" %}

```typescript
const status = await orda.onRamp.getStatus(quote.transactionId);
console.log(status.status);  // 'AwaitingDeposit', 'Processing', 'Completed', etc.
```

{% endcode %}

## Wait for Completion

{% code title="TypeScript" %}

```typescript
await orda.onRamp.waitForCompletion(quote.transactionId, {
  intervalMs: 15000,
  timeoutMs: 3600000,
  onStatusUpdate: (status) => console.log('Status:', status)
});
```

{% endcode %}

## Terminal Statuses

<details>

<summary>Possible terminal statuses</summary>

* Completed - Crypto received
* Failed - Transfer failed
* Cancelled - Transfer cancelled
* Refunded - Fiat returned

</details>
