Delivery checkouts

Complete a checkout

Requires both checkouts:write and orders:write. Save the accepted order and exact completion request in your database before calling, so your backend can retry after a failure. Completion uses the locked delivery and price; it does not capture payment or create a shipment or label. Matching retries return the same order and its current fulfillment_order_references. Investigate conflicts, expired confirmation deadlines, or missing orders before retrying; do not change the reference or release the lock to bypass an error.

post/api/external/v1/checkouts/{token}/complete

Request

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

Headers

Idempotency-Keystring required

Request body

lock_idstring required

ID of the lock used when accepting the order, not a quote ID. Must not be greater than 128 characters.

Example request

{
  "lock_id": "lock_example",
  "order": {
    "external_reference": "order-1042",
    "name": "#1042",
    "placed_at": "2026-09-13T12:05:00Z",
    "currency": "SEK",
    "total_amount_minor": 73900,
    "tax_amount_minor": 14780,
    "shipping_amount_minor": 4900,
    "accounting": {
      "shipping_tax_rate_basis_points": 2500,
      "line_items": [
        []
      ]
    },
    "financial_status": "AUTHORIZED"
  }
}

Response

Completed checkout and associated order. Matching retries return the same order, even after checkout details expire.

Example response

{
  "data": {
    "checkout_token": "chk_AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPp",
    "status": "completed",
    "revision": 4,
    "currency": "SEK",
    "locale": "en",
    "ready": false,
    "expires_at": "2026-09-14T12:00:00+00:00",
    "quote": null,
    "selection": null,
    "lock": {
      "id": "lock_example",
      "expires_at": "2026-10-13T12:05:00+00:00",
      "shipping_amount_minor": 4900,
      "currency": "SEK"
    },
    "order": {
      "id": "ord_example",
      "external_reference": "order-1042",
      "fulfillment_order_references": [
        "FULFILLMENT-1042"
      ]
    }
  }
}

Changes

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