Inventory

Commit a reservation

Converts a hold into a sale on order completion. In one atomic transaction, for each held item, on_hand (physical stock) and reserved are decremented. The reservation moves to committed, and commit entries are written to the ledger.

The transaction is conditioned on the reservation still having a held status and not being past its expires_at, so a late commit can never land on an expired hold.

Requires the agentic:inventory scope.

post/inventory/reservations/{id}/commit

Request

Path parameters

idstring required

The reservation identifier.

Response

The reservation was committed (or is already committed).

idstring

The reservation identifier, in the rsv_{base32-encoded GUID} format.

state'held' | 'committed' | 'released' | 'expired'

The current state of the hold. A held reservation past its expires_at is reported as expired. Transitions out of held are terminal.

owner_typestring

Echo of the owning caller kind.

owner_referencestring

Echo of the owning session or checkout reference.

expires_atstring date-time

The server-authoritative time at which the hold expires.

created_onstring date-time

The date and time the reservation was created.

Example response

{
  "id": "rsv_tkoi5db4hryu5cei5vwoabr7we",
  "state": "held",
  "owner_type": "ucp_session",
  "owner_reference": "cs_8f42",
  "items": [
    {
      "variant_id": "var_123",
      "quantity": 2
    }
  ],
  "expires_at": "2026-07-14T08:47:00.0000000+00:00",
  "created_on": "2026-07-14T08:32:00.0000000+00:00",
  "_links": {
    "self": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "commit": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    },
    "release": {
      "href": "https://api.checkout.com/inventory/var_123",
      "actions": [
        "GET"
      ],
      "types": [
        "application/json"
      ]
    }
  }
}

Changes

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