R2 Developers
R2 Connect API

POS integration

How to sync catalog and consumption between R2 and a point of sale system.

A point of sale needs two things from R2: what is sold and at what list price, and what has been consumed. The scopes are read:items and read:orders.

Pull the catalog#

The catalog changes slowly: syncing once a day or when the business tells you is enough. Filter by product_type to keep only what your system handles.

javascript
const catalog = await readAll("items");

// A restaurant POS normally ignores rooms
const sellable = catalog.filter(
  (i) => i.status === "active" && i.product_type !== "room"
);

Read consumption#

Restaurant tickets arrive as orders of type command, and room service as room_service. Every line carries the item, the quantity and the price actually charged.

bash
curl -H "Authorization: Bearer TU_LLAVE" \
  "https://api.r2-os.com/api/connect/v1/orders?type=command&created_from=2026-07-16&limit=50"

Guest charges to their folio

When a guest consumes at the restaurant and charges it to their room, the consumption appears as an extra line inside the lodging reservation, not as a separate order. If your POS needs to see those charges, also request read:reservations and walk the lines array.

Writing back#

Version 1 of this API is read-only: your system cannot create orders or charges in R2 yet. Writing is on the roadmap; write to us if your integration needs it, so we can prioritize it with real cases.