Checkout

Set the merchandise subtotal range customers can take through checkout in each market.

Use Checkout settings to decide the smallest and largest merchandise subtotal accepted by a market. The comparison uses merchandise after product and order discounts. Shipping, tax, duties, cash-on-delivery charges, checkout fees, payment discounts, store credit, and other payment methods are excluded. Both the minimum and maximum are inclusive. Read requests require read_markets; changes require write_markets.

Endpoints#

Get checkout limits

GET read_markets

Read the live validation limits for checkout settings.

Use money_max when validating minimum and maximum merchandise subtotals. Amounts must be positive and exactly representable in the currency: for example, KRW allows no fractional digits, USD and IDR allow two, and KWD allows three. Trailing zeros are accepted. Display precision can differ from accepted amount precision. The response includes Checkout Fee limits because both settings areas share the Checkout tab.

Path parameters

Name Type Description
marketId required uuid

Market id.

Example: 9a1f2c3d-4e5f-6789-abcd-ef0123456789

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 400 STORE_API_INVALID_REQUEST_BODY

    marketId must be a valid UUID.

  • 404 MARKET_NOT_FOUND

    No market with this id exists in the store.

Get checkout settings

GET read_markets

Read a market's minimum and maximum checkout rules.

The enabled limits are compared with merchandise after product and order discounts. Shipping, tax, duties, cash-on-delivery charges, checkout fees, online-payment discounts, store credit, and other payment methods do not change this comparison. Minimum and maximum boundaries are inclusive.

Path parameters

Name Type Description
marketId required uuid

Market id.

Example: 9a1f2c3d-4e5f-6789-abcd-ef0123456789

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 400 STORE_API_INVALID_REQUEST_BODY

    marketId must be a valid UUID.

  • 404 CHECKOUT_SETTINGS_NOT_FOUND

    Checkout settings have not been created for this market.

  • 404 NOT_FOUND

    The market does not exist in this store.

Update checkout settings

PUT write_markets

Set the discounted merchandise subtotal range accepted by a market.

Send both toggles and their complete currency maps. An enabled limit requires a positive amount for every currency assigned to the market. Disabled limits ignore and clear their amount maps. When both limits are enabled, the maximum must be greater than the minimum in every currency. An unchanged request leaves timestamps untouched and publishes no event; a successful change publishes checkout_settings/update.

Path parameters

Name Type Description
marketId required uuid

Market id.

Example: 9a1f2c3d-4e5f-6789-abcd-ef0123456789

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Body parameters

Name Type Description
min_order_enabled required boolean

Whether checkout requires a minimum discounted merchandise subtotal.

Example: true
min_order_amounts required object

Inclusive minimum subtotal keyed by every assigned market currency. Send an empty object when the limit is disabled.

Example: {"EUR":"50.00","CHF":"45.00"}
max_order_enabled required boolean

Whether checkout enforces a maximum discounted merchandise subtotal.

Example: true
max_order_amounts required object

Inclusive maximum subtotal keyed by every assigned market currency. Send an empty object when the limit is disabled.

Example: {"EUR":"1000.00","CHF":"950.00"}

Errors

  • 400 STORE_API_INVALID_REQUEST_BODY

    marketId must be a valid UUID.

  • 400 STORE_API_INVALID_REQUEST_BODY

    The request body is not valid JSON.

  • 400 CHECKOUT_AMOUNT_CURRENCY_REQUIRED

    An enabled limit is missing an amount for one of the market's currencies.

  • 400 CHECKOUT_AMOUNT_CURRENCY_UNKNOWN

    An amount uses a currency that is not assigned to this market.

  • 400 CHECKOUT_AMOUNT_POSITIVE

    An enabled limit contains a zero or negative amount.

  • 400 CHECKOUT_AMOUNT_TOO_LARGE

    An amount exceeds money_max from the limits endpoint.

  • 400 CHECKOUT_AMOUNT_TOO_PRECISE

    An amount has more decimal places than its currency supports.

  • 400 CHECKOUT_ORDER_RANGE_INVALID

    A maximum is not greater than the corresponding minimum.

  • 404 NOT_FOUND

    The market does not exist in this store.

Webhook events#

Subscribe to checkout_settings/update when your app keeps a local copy of a market's checkout limits. The event contains the complete saved settings and currency amounts. Requests that make no effective change do not publish an event.

Checkout limits updated

EVENT checkout_settings/update App scope: read_markets Staff permission: markets:write

Subscribe to receive the current minimum and maximum merchandise subtotal rules after checkout limits change for a market.

Payload fields

Field Type Description
checkout_settings.id string Always present
checkout_settings.market_id string Selectable in the Payload builder
checkout_settings.min_order_enabled boolean Selectable in the Payload builder
checkout_settings.min_order_amounts object Selectable in the Payload builder
checkout_settings.max_order_enabled boolean Selectable in the Payload builder
checkout_settings.max_order_amounts object Selectable in the Payload builder
checkout_settings.created_at string Selectable in the Payload builder
checkout_settings.updated_at string Selectable in the Payload builder