> ## Documentation Index
> Fetch the complete documentation index at: https://docs.komerza.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Conventions

> IDs, dates, enums, money, store scoping and paging

These hold across every endpoint. Knowing them up front saves a lot of trial and error.

## Base URL

```
https://api.komerza.com
```

There is **no `/api` prefix**. Paths start straight at the resource:

```bash theme={null}
https://api.komerza.com/stores/{storeId}/orders   # correct
https://api.komerza.com/api/stores/{storeId}/orders   # 404
```

## Store scoping

Nearly every path begins `/stores/{storeId}/…`, because almost everything belongs to a store rather than to your account. `GET /user` returns your account with its stores, and each store's `id` is the `{storeId}` used everywhere else.

An account can hold several stores, so treat the store ID as a required piece of configuration in your integration, not something to hardcode once and forget.

## IDs

UUIDs, in the standard hyphenated form:

```
550e8400-e29b-41d4-a716-446655440000
```

Stores, products, variants, orders, customers and coupons all use them. They're opaque - don't parse or generate them.

## Dates

ISO 8601, in UTC:

```
2026-01-15T10:30:00Z
```

Filters accept either a full timestamp or just the date, e.g. `dateFrom>=2026-01-15`.

## Enums

Sent and returned as **integers**, not names. A product's visibility is `0`, not `"Public"`.

```json theme={null}
{ "privacy": 0, "stockCalculationMode": 2 }
```

<Card title="Enums & Constants" icon={<span className="kicon kicon-list" />} href="/api-reference/enums">
  Every enum value the API accepts and returns.
</Card>

Order status and payment gateway are the exceptions - both are strings, documented on [Order Status](/api-reference/payment-status) and [Payment Methods](/api-reference/payment-methods).

## Money

Decimal values in the store's own currency, with `currencyCode` on the store telling you which. There's no minor-unit convention to decode: `29.99` means 29.99.

Amounts a buyer paid can differ from the order total on split payments, and crypto orders carry the amount actually received - check both rather than assuming.

## Paging

| Parameter  | Default | Notes                                                |
| ---------- | ------- | ---------------------------------------------------- |
| `page`     | `1`     | 1-indexed                                            |
| `pageSize` | `20`    | Maximum 100; larger values are clamped, not rejected |

List endpoints also take `filters` and `sorts`.

<Card title="Filtering & Sorting" icon={<span className="kicon kicon-sliders" />} href="/api-reference/filtering">
  Operators, combining conditions, sorting and paging.
</Card>

## Fair use

Requests are rate limited. On a `429`, back off and retry with increasing delays, and cache anything that doesn't change often.

If you're polling for order updates, use [webhooks](/guides/webhooks) instead. They're signed, logged and retried, and they'll reach you sooner than any poll interval you'd be comfortable running.
