The API is URL-versioned: every endpoint lives under a version prefix
(/v1). Within a version, changes are additive and backward-compatible —
new endpoints, new optional fields, and new enum values may appear, so write clients to ignore unknown
fields. Any breaking change ships under a new version path (/v2, …); the
current version is never broken in place. Deprecations are announced here before a version is retired.
No fixed sunset dates are committed at this time.
API ကို URL ဖြင့် version ခွဲထားသည် — endpoint တိုင်းသည် version prefix (/v1) အောက်တွင်
ရှိသည်။ version တစ်ခုအတွင်း ပြောင်းလဲမှုများသည် ထပ်ဆင့်တိုး၍ နောက်ပြန် တွဲဖက်နိုင် သည် — endpoint အသစ်၊
optional field အသစ်၊ enum value အသစ်များ ပေါ်လာနိုင်သဖြင့် client များကို မသိသော field များ လျစ်လျူရှုအောင် ရေးပါ။
breaking ပြောင်းလဲမှု မှန်သမျှ version path အသစ် (/v2, …) အောက်တွင် ထွက်သည်။ လက်ရှိ version ကို
နေရာတွင် ဘယ်တော့မှ မချိုးဖျက်ပါ။ version တစ်ခု မရုပ်သိမ်းမီ deprecation များကို ဤနေရာတွင် ကြေညာသည်။ ယခုအချိန်တွင်
သတ်မှတ် sunset ရက်စွဲများ မချမှတ်ထားပါ။
/v1/mobile/loyalty/* (settings / balance / transactions / redeem) authenticated by a publishable key (X-Publishable-Key: pk_test_…) plus the signed-in customer's bearer token. The shop is derived server-side from the key — a client shop claim is never trusted. See the Consumer Mobile API reference.@beyondplusmm/[email protected] — a typed consumer client with the two-credential transport and consumer error ABI; the SDK quickstart now covers both planes.https://sandbox-api.doehpos.com/v1; the production consumer plane is not yet enabled.pnpm bootstrap, pnpm doctor, mock mode (build with no key), and five example brand packs.pnpm smoke:sandbox drives earn / balance / redeem / 409 / idempotent replay through the published SDK. Status: frozen (bug fixes, SDK parity, and Expo upgrades only).@beyondplusmm/[email protected] adds loyalty.redeem() — spend points with POST /v1/loyalty/members/{id}/redeem, idempotent so a retried redeem never double-spends. The loyalty surface (earn / redeem / getMember) now matches the contract.InsufficientPointsError (409, current balance on err.body.balance) and MemberNotFoundError (404).npm install @beyondplusmm/doehpos-sdk; see the SDK quickstart and Loyalty reference.npm install @beyondplusmm/doehpos-sdk, authenticate, and place your first order with a typed client.POST /v1/orders capability: submit a basket of { sku, qty } and receive a fully priced, server-resolved order. See the Orders reference.EDGE_BAD_BODY); the core owns pricing, tax, inventory and order truth, surfacing typed business errors (e.g. EmptyOrderError, UnknownSkuError).https://sandbox-api.doehpos.com/v1 with sk_test_… keys.API_KEY_ENV_MISMATCH).https://api.doehpos.com/v1.POSTs.