Skip to content
suqe
Developers

Build on the commerce layer.

The same catalog, stock and checkout behind every suqe storefront, exposed as a typed API. Ship a custom storefront, an in-store tool or an integration without rebuilding commerce.

  • Node SDK
  • Store-scoped
  • Integer cents
  • Idempotent writes
Quickstart

A cart quote in one request.

The SDK is scoped to one store from the moment you create it. From there, the catalog and checkout behave exactly as they do on a suqe storefront.

  1. 01Create a store and turn on online ordering.
  2. 02Install the Node SDK: npm i @suqe/sdk.
  3. 03Pass your store's address once; every call is scoped to it.

The store's address decides which catalog, stock and payment methods you see. Store ids chosen by the client are never trusted.

quickstart.tsTypeScript
import { Suqe } from "@suqe/sdk";

const suqe = new Suqe({ store: "yourstore.suqe.et" });

const methods = await suqe.checkout.paymentMethods();

const quote = await suqe.checkout.quote({
  items: [{ productId, qty: 2_000 }], // 2 units
  deliveryMethod: "delivery",
  deliveryZoneId,
});
What you can build

One catalog, many surfaces.

The API is the same one behind suqe's own storefront. Use it to meet your customers wherever they already are.

Custom storefronts

Use the same catalog, stock and checkout behind a design that is entirely yours.

In-store tools

Build a kiosk, a stock counter or a back-office view on top of live store data.

Integrations

Connect accounting, delivery or ERP without copying data between systems.

API surface

Small, typed and predictable.

The checkout namespace covers the whole storefront flow. Every call is a typed method on the SDK, from input to result.

checkout.paymentMethods

Enabled methods with the details a shopper needs to pay.

checkout.zones

Active delivery zones in the merchant's order.

checkout.quote

Price a cart with delivery, discounts and stock checks.

checkout.place

Create an order idempotently, with contact and address.

checkout.startChapa

Start a hosted Chapa checkout for an order.

checkout.submitReference

Record a Telebirr or CBE Birr reference for review.

checkout.track

Look up an order by number and phone.

Storefront flow
quoteplacestartChapatrack
Conventions

Numeric, idempotent, store-scoped.

The rules are few, and they exist so a retry, a slow connection or an offline sale can never quietly double-count.

Money in cents

ETB 2,520.00 is stored and returned as 252000. No floating point.

Quantities in thousandths

Two units is 2000, so split packs and weighed goods stay exact.

Client-made ids

UUIDv7 strings are created on the client, so a retry never needs a round trip.

Idempotent writes

Every write carries a mutationId. A replay returns the stored result instead of acting twice.

Store-scoped

The store's address decides which store a call belongs to. Store ids chosen by the client are never trusted.

Honest replays

Writes that waited past the replay window are flagged, not silently dropped, so delayed sales can be reconciled.

Start selling smarter today.

Start on the free plan with one store and two seats. Upgrade when you open more.