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

# Operational notes

> Environments, clock skew, logging, and where to escalate.

## Environments

| Env        | API host                                                                     | Webview URL                                      |
| ---------- | ---------------------------------------------------------------------------- | ------------------------------------------------ |
| Local dev  | `http://localhost:4000` (API) + `http://localhost:5173` (CMS / consumer SPA) | `http://localhost:5173/consumer#token=<jwt>`     |
| Staging    | *(to be assigned)*                                                           | *(to be assigned)*                               |
| Production | *(to be assigned at launch)*                                                 | `https://<production-host>/consumer#token=<jwt>` |

In production the API and the consumer SPA share the same origin, so the
webview host equals the API host plus `/consumer`.

## Clock skew

The HMAC tolerance is **±5 minutes**. If your machine drifts (e.g. you missed
an NTP sync), you'll see `signature_expired` errors. Sync via NTP or set the
timestamp from a trusted clock source.

## Logging

We log every request with a `reqId`. If you hit an unexpected error, send
us the **reqId** from your client logs (it's also in our response if you
observe the `x-request-id` header) and we can pull the full trace.

## Where to ask

| Question                           | Who                                                 | Channel             |
| ---------------------------------- | --------------------------------------------------- | ------------------- |
| API behaviour, endpoint shape      | Refer first to the [API Reference](/api-reference). |                     |
| Suspected bug, unexpected 5xx      | Send us the reqId + timestamp + payload.            | Your account owner. |
| Onboarding, secrets, scope changes | Your account owner.                                 |                     |
| Webhook delivery issues            | Send us the `event.id` (we have logs for it).       | Your account owner. |

## Changelog

| Date       | Change                                                                                                                                                                                                                                                                                                                             |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 2026-06-04 | Wallet vouchers can carry an optional redemption window (`applicableFrom` / `applicableUntil`) — new `voucher_not_yet_applicable` and `voucher_no_longer_applicable` (422) errors. Outlet-without-coordinates redemptions now return `status: "SUCCESS"` with `flagReason: "outlet_not_geolocated"` (previously `FLAGGED`).        |
| 2026-05-19 | Renamed `subscriptions` → `favorites` end-to-end (`/me/favorites`, `favoritesOnly`, `not_a_favorite`, `FAVORITE_CREATED`). Added `global_cap_reached` error code and `commissionAmount` on the redemption payload. PIN narrowed to 4 digits. GPS radius reduced from 200m to **150m**. Webview URL is now `/consumer#token=<jwt>`. |
| 2026-05-12 | Initial release. Covers `/integrations/users`, `/me/*`, and the partner webhook contract.                                                                                                                                                                                                                                          |
