# Execute exchange transfer Execute an exchange transfer to move funds from one of your accounts in one currency (USD, for example) to another one of your accounts in another currency (EUR, for example) at an exchange rate set by your peer who maintains both of your accounts on their ledger. An exchange transfer enables you to fund a foreign currency account from your domestic currency account in bulk. Before you make this request, you may want to use the Quote Exchange Transfer request to see a quote for the exchange transfer you want to make. Endpoint: POST /exchange_transfers/execute Version: 4.0.0 Security: Bearer ## 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 used for 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" - `end_to_end_id` (string) ID set by the sender that is persisted on all fiat node instances that participated in the transfer. Example: 378910 - `internal_id` (string) Internal ID that the sender can optionally specify. Only visible to the sender. Only the sending fiat node instance stores this ID. Example: 1987 - `user_info` (object) Provide one or more arbitrary key/value pairs. ## Response 200 fields (application/json): - `exchange_transfer_id` (string, required) Unique identifier of the exchange transfer. Example: "e3b20ba4-28ed-4752-990d-e67887bb331e" - `state` (string, required) State of the exchange transfer. Enum: "EXECUTED", "COMPLETED", "FAILED" - `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: "sf@rn.us.ca.san_francisco" - `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: "sf_gbp@rn.us.ca.san_francisco" - `source_amount` (number, required) Sending amount of the exchange transfer. Example: 1 - `destination_amount` (number, required) Receiving amount of the exchange transfer. Example: 355 - `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" - `end_to_end_id` (string, required) ID set by the sender that is persisted on all fiat node instances that participated in the transfer. - `internal_id` (string, required) Internal ID that the sender can optionally specify. Only visible to the sender. Only the sending fiat node instance stores this ID. - `user_info` (array, required) Custom information set by a RippleNet address involved in the exchange transfer. - `user_info.node_address` (string, required) RippleNet address of the fiat node instance that set the user information. Example: "rn.us.ny.new_york" - `user_info.state` (string, required) State of the exchange transfer set when the RippleNet address set the user information. Enum: "EXECUTED", "COMPLETED", "FAILED" - `user_info.json` (object, required) One or more arbitrary key/value pairs. - `user_info.created_at` (string) timestamp of when this user info was created ## 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"