# Get exchange transfer quote

Requests a quote for an exchange transfer.

Endpoint: POST /exchange_transfers/quote
Version: 4.0.0
Security: Bearer

## Security:

  - `Bearer` (unknown)
    apiKey in header Authorization

## Request fields (application/json):

  - `sender_address` (string, required)
    RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: alias_usd_lon@rn.eur.uk.london

  - `receiver_address` (string, required)
    RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: conct_gbp_lon@rn.eur.uk.london

  - `amount` (number, required)
    Amount transferred, expressed in the curency of the account indicated by the `amount_type` value.
    Example: 100

  - `amount_type` (string, required)
    Amount type of the exchange transfer.To indicate that the `amount` is expressed in the currency of the account provided by the `sender_address` value, set to `SENDER_AMOUNT`. To indicate that the `amount` is expressed in the currency of the account provided by the `receiver_address` value, set to `RECEIVER_AMOUNT`.
    Enum: "SENDER_AMOUNT", "RECEIVER_AMOUNT"

## Response 200:

  - `200` (unknown)
    Successfully quoted exchange transfer.

## Response 200 fields (application/json):

  - `type` (string, required)
    Indicates the exchange transfer's quoted FX rate type.
    Enum: "FIRM", "INDICATIVE"

  - `sender_address` (string, required)
    RippleNet account name and address of the sender, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: alias_usd_lon@rn.eur.uk.london

  - `receiver_address` (string, required)
    RippleNet account name and address of the receiver, in the format `accountname@ripplenetaddress`. For example, `new_york@rn.us.ny.new_york`.
    Example: conct_gbp_lon@rn.eur.uk.london

  - `source_amount` (number, required)
    Sending amount of the exchange transfer.
    Example: 100

  - `destination_amount` (number, required)
    Receiving amount of the exchange transfer.
    Example: 89

  - `source_currency` (string, required)
    Sending currency of the exchange transfer.
    Example: USD

  - `destination_currency` (string, required)
    Receiving currency of the exchange transfer.
    Example: GBP

  - `fx_transfer_rate` (object, required)
    Describes an exchange rate used in an exchange transfer.

  - `fx_transfer_rate.rate` (number, required)
    Exchange rate used to make the exchange transfer.
    Example: 0.89

  - `fx_transfer_rate.base_currency` (string, required)
    Base currency for custom rate for the sending account.
    Example: USD

  - `fx_transfer_rate.counter_currency` (string, required)
    Counter currency for custom rate for the sending account.
    Example: GBP

  - `fx_transfer_rate.rate_type` (string, required)
    Rate type used to make the exchange transfer. Valid values are `BUY` or `SELL`.
    Example: BUY

## Response 400:

  - `400` (unknown)
    Bad request.

## Response 400 fields (application/json):

  - `type` (string)
    URL to the error documentation.
    Example: https://errors.ripplenet.ripple.com/error/json-processing-error

  - `title` (string)
    Summary of the returned problem.
    Example: Invalid Request Object

  - `detail` (string)
    Description of the returned problem.
    Example: The request parameter [account_id] is not in the correct format.

  - `status` (number)
    HTTP error code.
    Example: 400

  - `ripplenet_error_code` (string)
    RippleNet specific error code.
    Example: E0104

  - `finality` (string)
    Specifies if the request can be retried for a successful response.
    Example: PERMANENT

