---
title: "Update Shipping Rate"
method: PUT
path: "/v1/shipping_rates/{id}"
tags: ["Shipping Rates"]
---

# Update Shipping Rate

`PUT /v1/shipping_rates/{id}`

Updates the specified shipping rate. You can update `active` and `metadata`; both are
overwritten with the values passed, and omitting `metadata` clears it. The shipping rate's
`display_name` and `amount` are immutable.

## Path parameters

- `id` string, required

## Request body

- ShippingRateBodyForUpdateShippingRateRequest — An envelope wrapping a single shipping rate object.
  - `shipping_rate` UpdateShippingRateRequest, required — Parameters for updating a shipping rate.
    - `metadata` object, nullable — Replaces the set of key-value pairs attached to the shipping rate. Omitting this clears any existing metadata.
    - `active` boolean, nullable — Whether the shipping rate can be applied to new checkout sessions. Set to `false` to archive it.

## Response `200`

An envelope wrapping a single shipping rate object.

- ShippingRateBodyForV1ShippingRate — An envelope wrapping a single shipping rate object.
  - `shipping_rate` V1ShippingRate, required — A ShippingRate represents a fixed shipping cost you can apply to a checkout session. Each shipping rate is denominated in USD.
    - `shipping_rate_id` string, required — Unique identifier for the shipping rate.
    - `active` boolean, required — Whether the shipping rate can be applied to new checkout sessions. Defaults to `true` on creation; set to `false` to archive it.
    - `display_name` string, required — The name shown to the customer at checkout (e.g., `Standard Shipping`).
    - `amount` integer, required — The shipping cost, in the smallest currency unit (e.g., `500` = $5.00 USD). Always in USD.
    - `metadata` object, nullable — Set of key-value pairs you can attach to the shipping rate for storing additional structured information. Omitted when no metadata is set.
    - `created_at` string, required — A timestamp encoded as an RFC 3339 / ISO 8601 string (e.g. `2026-06-15T14:30:00Z`).

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `409` — Conflict
- `422` — Validation Error
- `429` — Too Many Requests

---

[API](https://skmtc.dev/withflex/apis/flex-api.md) · [All operations](https://skmtc.dev/withflex/apis/flex-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/withflex/flex-api/revisions/b1560fc2f199/schema)
