Delivery checkouts

Replace checkout details

Requires checkouts:write. Send all mutable checkout fields and expected_revision; omit external_reference and merchant_origin. Only open checkouts can be edited. The update gets a new quote and clears the selection. Refresh the widget after updating.

put/api/external/v1/checkouts/{token}

Request

  • Base URL: http://localhost
  • URL: http://localhost/api/external/v1/checkouts/{token}
  • Auth: HTTP bearer

Headers

Idempotency-Keystring required

Request body

origin_location_idstring required

Active shipping location ID from GET /locations. Must start with one of <code>loc_</code> Must not be greater than 64 characters.

currencystring required

Currency with two decimal places. Must match the configured shipping rates; no currency conversion is performed. Three-letter uppercase ISO 4217 currency code.

localestring required

Merchant-selected display locale. Two-letter language code, optionally followed by a region or script, such as sv, sv-SE, or zh-Hant. Must not be greater than 16 characters.

expected_revisioninteger required

Revision from the latest checkout response. A stale revision returns 409; read current state before retrying. Must be at least 1. Must not be greater than 2147483647.

Example request

{
  "origin_location_id": "loc_x7Kq9",
  "currency": "SEK",
  "locale": "sv",
  "cart": {
    "subtotal_minor": 69000,
    "discount_minor": 0,
    "weight_grams": 1200,
    "items": [
      {
        "reference": "line-1",
        "sku": "BAG-SAGE",
        "name": "Shoulder bag",
        "quantity": 1,
        "unit_price_minor": 69000,
        "requires_shipping": true,
        "weight_grams": 1200
      }
    ]
  },
  "recipient": {
    "first_name": "Alex",
    "last_name": "Andersson",
    "address1": "Drottninggatan 12",
    "postal_code": "11151",
    "city": "Stockholm",
    "country": "SE",
    "phone": "+46700000000",
    "email": "alex@example.com"
  },
  "expected_revision": 4
}

Response

Checkout updated with a new quote and revision. The selection is cleared.

Example response

{
  "data": {
    "checkout_token": "chk_AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp",
    "status": "open",
    "revision": 5,
    "currency": "SEK",
    "locale": "en",
    "ready": false,
    "expires_at": "2026-09-14T12:10:00+00:00",
    "quote": {
      "id": "quote_replaced",
      "expires_at": "2026-09-13T12:25:00+00:00",
      "options": [
        {
          "id": "option_replaced",
          "name": "Configured home delivery",
          "description": null,
          "amount_minor": 4900,
          "currency": "SEK",
          "delivery_type": "home",
          "preview": false,
          "carrier": {
            "name": "Configured carrier",
            "logo_url": null
          },
          "estimated_delivery": null,
          "badges": [],
          "service_points": [],
          "pickup_locations": []
        }
      ]
    },
    "selection": null,
    "lock": null,
    "order": null
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.