# Update rate Updates an existing exchange rate. With this call, you can change value_type from RATE to MARGIN (and vice versa), change the actual rate value of the specified value type, or both. Example - Updating an existing margin applied to the live FX rate: A USD-GBP live FX rate of 0.80 is provided by a third-party rate provider and you currently reduce that rate by 20 BPS. You now want to change it and reduce it by 10 BPS instead. To do so, set "rate": "10" in the request. Once the change is applied, the final FX rate is calculated as 0.80*(1-(10/10000))=0.7992 during the Get quotes call, and then applied during quote creation. Endpoint: PUT /config/rates/{rate_id} Version: 4.0.0 Security: Bearer ## Path parameters: - `rate_id` (string, required) Provide the rate_id of the exchange rate you want to update. ## Request fields (application/json): - `expiration_offset` (integer, required) Set to the amount of time in milliseconds that the rate is valid for after the rate's created_date value. Set to 0 to indicate that the rate does not expire. The value returned in the response object for this field is null. Refer to the expires_at value in the response object to verify your expiration offset timing. Example: 95000 - `order_type` (string, required) Set to the order type for the exchange rate. Enum: "buy", "sell" - `rate` (number, required) This value of this field represents either rate or margin based on what you specify in the value_type field. If you specify value_type=rate, set the value of this field to the exchange rate for a base and counter currency. The rate can use up to 6 decimal places. If you specify value_type=margin, set the value of this field depending on the unit of margin you specified in the margin_type field. Example: 0.89 - `base_currency` (string, required) Set to the base currency of the exchange rate. Example: "USD" - `counter_currency` (string, required) Set to the counter currency of the exchange rate. Example: "GBP" - `ledger` (object) Use the ledger request object to create an exchange rate that applies to exchanges between a specific source ledger and destination ledger. - `ledger.source_ledger` (string, required) Set to the source ledger associated with the exchange rate. Example: "rn.eur.uk.london" - `ledger.destination_ledger` (string, required) Set to the destination ledger associated with the exchange rate. Example: "rn.eur.uk.london" - `account` (object) Use the account request object to create an exchange rate that applies to exchanges between a specific source ledger account and destination ledger account. - `account.source_ledger_account` (string, required) Set to the account on the source ledger associated with the rate. Example: "alias_usd_lon" - `account.destination_ledger_account` (string, required) Set to the account on the destination ledger associated with the rate. Example: "conct_gbp_lon" - `lower_limit` (number) To create a slab-based exchange rate, provide the lower limit of the slab. You must also provide an upper_limit value. - `upper_limit` (number) To create a slab-based exchange rate, provide the upper limit of the slab. You must also provide a lower_limit value. Example: 1000 - `payout_method` (string) The payout method for the rate. Example: "LOCAL_RAILS" - `value_type` (string) Specify whether you want to use a live exchange rate (MARGIN) or an exchange rate manually configured by Ripple (RATE). If you set this value to MARGIN, you must also provide margin_type. Enum: "MARGIN", "RATE" - `margin_type` (string) Specify the unit of margin to be applied (BPS) in addition to the rate provided by Ripple. Specify this field only if you set value_type = MARGIN. Enum: "BPS" ## Response 200 fields (application/json): - `rate_id` (string, required) Unique identifier of the exchange rate. Example: "328b3e50-7983-46d5-94a0-ef004d78db1d" - `expiration_offset` (integer, required) (DEPRECATED) This property is deprecated. Refer to expires_at to determine rate expiration. Amount of time in milliseconds that the rate is valid for after the rate's created_date value. For example, if the expiration_offset value is 100000 milliseconds, the rate expires 100000 milliseconds after this created_date value. If set to 0, the rate does not expire. Example: 95000 - `order_type` (string, required) Order type for the exchange rate. Enum: "buy", "sell" - `rate_scale` (integer, required) Number of decimal places to which the exchange rate is calculated. For example, if the rate_scale value is set to 9 and the rate value is set to 1.25, the scaled value of the rate is 1.250000000. Example: 9 - `rate` (number, required) Exchange rate for the specified base and counter currency. Example: 0.89 - `base_currency` (string, required) Base currency of the exchange rate. Example: "USD" - `counter_currency` (string, required) Counter currency of the exchange rate. Example: "GBP" - `source_currency` (string, required) If order_type is set to buy, this is set to the base currency. If order_type is set to sell, this is set to the counter currency. Example: "USD" - `destination_currency` (string, required) If order_type is set to buy, this is set to the counter currency. If order_type is set to sell, this is set to the base currency. Example: "GBP" - `source_ledger` (string, required) Source ledger associated with the exchange rate. Example: "rn.eur.uk.london" - `destination_ledger` (string, required) Destination ledger associated with the exchange rate. Example: "rn.eur.uk.london" - `source_ledger_account` (string, required) Account on the source ledger associated with rate. Example: "alias_usd_lon" - `destination_ledger_account` (string, required) Account on the destination ledger associated with rate. Example: "conct_gbp_lon" - `created_date` (string, required) Date and time at which the exchange rate was created, as an ISO-8601 timestamp in UTC. Fiat determines a rate's expiration date and time based on this value and expiration_offset value. For example, if the expiration_offset value is 100000 milliseconds, the rate expires 100000 milliseconds after this created_date value. - `expires_at` (string) The time in which this rate expires in system local timezone - `lower_limit` (number, required) For a slab-based exchange rate, indicates the lower limit of the slab. - `upper_limit` (number, required) For a slab-based exchange rate, indicates the upper limit of the slab. Example: 1000 - `payout_method` (string) The payout method for the rate. Example: "LOCAL_RAILS" - `value_type` (string, required) Indicates whether the rate is a live exchange rate (MARGIN) or an exchange rate manually configured by Ripple (RATE). If this value is MARGIN, then margin_type will show a value. Enum: "MARGIN", "RATE" - `margin_type` (string, required) Indicates the unit of margin applied in addition to the rate provided by Ripple. This field has a value only if value_type = MARGIN. If value_type is RATE, this field is null. Enum: "BPS" ## 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"