---
api: 'Business API'
---

# Get an indicative quote for a transfer

Get a non-binding estimate of fees, the exchange rate, and the expected delivery time for a potential [transfer](https://developer.revolut.com/docs/api/business#create-payment).
No money is moved and no resource is created.

The request mirrors the [`/pay` endpoint](https://developer.revolut.com/docs/api/business#create-payment) that is used to initiate a transfer, but it excludes irrelevant fields that do not affect pricing or delivery time, such as the request ID or reference.

If the counterparty has multiple payment methods available, for example, 2 accounts, or 1 account and 1 card, you **must specify the account or card** to which you want to transfer the money (`receiver.account_id` or `receiver.card_id` respectively).
Note that in a single request, you can specify either an account or a card, but not both.

:::note[Sandbox behaviour & Rate limiting]
- In Sandbox, this feature is only available for testing.
  While **incomplete** or **invalid requests** will return production-like error responses, **complete and valid requests** in Sandbox do not return real values and `estimated_arrival` will always return `instant`.
- Similarly to the `/pay` endpoint, this endpoint supports a load of 450 requests per minute.
:::

For more details, see the guides: **Check costs and delivery time before paying** section in [Bank transfers](https://developer.revolut.com/docs/guides/manage-accounts/transfers/bank-transfers#check-costs-and-delivery-time-before-paying) or [Card transfers](https://developer.revolut.com/docs/guides/manage-accounts/transfers/card-transfers#check-costs-and-delivery-time-before-paying).

## Endpoint

POST `/pay/indicative-quote`

## Request body

Request an indicative quote

### Attributes

- `account_id` (string)
    The ID of the account from which the transfer will be made.
- `receiver` (object)
    The details of the transfer recipient.
    
    If the counterparty has multiple payment methods available (e.g. 2 accounts, or 1 account and 1 card), you must specify the account (`account_id`) or card (`card_id`) to which you want to transfer the money.
  - `receiver.counterparty_id` (string)
      The ID of the receiving counterparty.
  - `receiver.account_id` (string, optional)
      The ID of the receiving counterparty's account. Used for bank transfers.
      
      If the counterparty has multiple payment methods available, use it to specify the account to which you want to send the money.
  - `receiver.card_id` (string, optional)
      The ID of the receiving counterparty's card.
      Used for card transfers.
      
      If the counterparty has multiple payment methods available, use it to specify the card to which you want to send the money.
- `amount` (number)
    The transfer amount in major units.
- `currency` (string)
    [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
- `charge_bearer` (enum, optional)
    The party to which any transaction fees are charged if the resulting transaction route has associated fees: 
    - `shared`: Also known as **SHA**. The transaction route fees are split between the sender and the recipient. 
      The sender pays the fees charged by their bank, while the recipient pays the fees charged by the receiving and any intermediary banks.
    - `debtor`: Also known as **OUR**. The sender pays all explicit transaction fees.
    Some transactions with fees might not be possible with the specified option, in which case error `3287` is returned.
    Possible enum values:

    - `shared`
    - `debtor`
- `transfer_reason_code` (string, optional)
    The reason code for the transaction. Transactions to certain countries and currencies might require you to provide a transfer reason. 
    You can check available reason codes with the [`GET /transfer-reasons` operation](https://developer.revolut.com/docs/api/business#get-transfer-reasons).
    
    If a transfer reason is not required for the given currency and country, this field is ignored.
- `exchange_reason_code` (string, optional)
    The reason code for the exchange.
    Depending on the country and the amount of funds to be exchanged, you might be required to provide an exchange reason. 
    You can check available reason codes with the [`GET /exchange-reasons` operation](https://developer.revolut.com/docs/api/business#get-exchange-reasons).
    
    If an exchange reason is not required, this field is ignored.

## Returns

### 200

The expected processing attributes for the potential transfer

#### Response attributes

- `amount` (object)
    Amount the recipient receives before fees are deducted, in major units.
  - `amount.amount` (number)
      Amount in major units.
  - `amount.currency` (string)
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
- `fee` (object)
    Total fee for the transfer (in source or target currency).
  - `fee.amount` (number)
      Fee amount in major units.
  - `fee.currency` (string)
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
  - `fee.breakdown` (object, optional)
      Breakdown of transfer and exchange fees.
      
      When the total `fee` is zero, this field is omitted from the response.
    - `fee.breakdown.transfer_fee` (object, optional)
        A specific fee component.
      - `fee.breakdown.transfer_fee.amount` (number)
          Fee amount in major units.
      - `fee.breakdown.transfer_fee.currency` (string)
          [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
    - `fee.breakdown.exchange_fee` (object, optional)
        A specific fee component.
      - `fee.breakdown.exchange_fee.amount` (number)
          Fee amount in major units.
      - `fee.breakdown.exchange_fee.currency` (string)
          [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
- `estimated_total` (object)
    Total amount of money which will be charged on the sender's account.
  - `estimated_total.amount` (number)
      Amount in major units.
  - `estimated_total.currency` (string)
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
- `estimated_exchange_rate` (string, optional)
    Exchange rate for the transfer.
    
    For same-currency transfers, this field is omitted from the response.
- `estimated_amount_after_exchange` (object, optional)
    Amount of the money converted to the sender's currency.
    
    For same-currency transfers, this field is omitted from the response.
  - `estimated_amount_after_exchange.amount` (number)
      Amount in major units.
  - `estimated_amount_after_exchange.currency` (string)
      [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) currency code in upper case.
- `estimated_arrival` (object, optional)
    Estimated time and speed of funds arrival in relation to the current date and time.
    Present if such information is available.
  - `estimated_arrival.date` (string)
      The estimated arrival date provided in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
  - `estimated_arrival.speed` (enum)
      The expected speed of the transfer.
      
      Possible values are:
      - **`instant`**: The funds are expected to reach the recipient **immediately** after the transfer is created.
      - **`in_seconds`**: The funds are expected to reach the recipient **within 5 minutes** after the transfer is created.
      - **`today`**: The funds are expected to reach the recipient by the end of the **same day** the transfer is created.
      - **`tomorrow`**: The funds are expected to reach the recipient by the end of the **day after** the transfer is created.
      - **`by_date`**: The funds are expected to reach the recipient by the end of the **day specified** in the `date` parameter.
      Possible enum values:

      - `instant`
      - `in_seconds`
      - `today`
      - `tomorrow`
      - `by_date`
- `warnings` (array of enum, optional)
    Potential warnings regarding the quote:
    
    - `volatile_fx_rate`: Returned when the specified FX rate is volatile.

## Error responses

| HTTP status code | Description |
| --- | --- |
| 400 | Bad request  For example: - the request is invalid (e.g. malformed body, validation failure) - both `account_id` and `card_id` are provided in `receiver` (only one of these values can be provided in a single request) - the specified `charge_bearer` is not supported - `exchange_reason_code` is required for such a transfer but was not provided in the request - the specified counterparty, account, or card was not found |
