---
title: "Compute an HTML Mode checkout summary"
method: POST
path: "/v3/pages/{page_unique_id}/checkout/summary"
tags: ["HTML Mode Pages"]
---

# Compute an HTML Mode checkout summary

`POST /v3/pages/{page_unique_id}/checkout/summary`

Page-scoped public endpoint used by `Scalev.checkout.estimateSummary(payload)`. It accepts HTML Mode `items`, `destination`, `payment_method`, and `shipping_option`, recomputes shipping, and applies store-configured extra fees for display.

## Request body

- PagePublicCheckoutSummaryRequest — HTML Mode checkout summary payload. Pass the option returned by `shippingOptions` as `shipping_option` when the checkout contains physical items.
  - `items` PagePublicCheckoutItem[]
    - `type` 'product' | 'bundle', required
    - `variant_unique_id` string — Required when `type` is `product`.
    - `bundle_price_option_unique_id` string — Required when `type` is `bundle`.
    - `quantity` integer, required
  - `destination` PagePublicCheckoutDestination — Buyer destination submitted by an HTML Mode page.
    - `address` string, nullable
    - `subdistrict_id` union — Destination subdistrict ID.
      - integer
      - string
    - `postal_code` string, nullable
  - `payment_method` string
  - `shipping_option` StorefrontShippingOption
    - `courier_service_id` integer, required
    - `courier_code` string, required
    - `service_code` string, required
    - `name` string, required
    - `cost` union, required
      - string, nullable
      - number
    - `etd` string, nullable, required — Estimated delivery time returned by the courier integration.
    - `is_cod` boolean, required
    - `warehouse_unique_id` string, required
    - `courier_aggregator_code` string, nullable, required
    - `logo_url` string, uri, nullable

## Response `200`

HTML Mode checkout summary

- StorefrontCheckoutSummaryResponse
  - `product_price` union, required
    - string, nullable
    - number
  - `shipping_cost` union, required
    - string, nullable
    - number
  - `other_income` union, required
    - string, nullable
    - number
  - `other_income_name` string, nullable, required
  - `gross_revenue` union, required
    - string, nullable
    - number

## Other responses

- `400` — Bad Request
- `404` — Not Found

---

[API](https://skmtc.net/scalev/apis/nexus-commerce-api.md) · [All operations](https://skmtc.net/scalev/apis/nexus-commerce-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/scalev/nexus-commerce-api/revisions/4354959d76dc/schema)
