หน้านี้ยังไม่ได้แปล แสดงเป็นภาษาอังกฤษ
API

A documented way in

A website, an aggregator or a delivery service works through a venue key. The key is valid for one venue only, is revoked instantly and gives no access to other venues’ data — this follows from how the system is built, not from a separate check.

Back office: website section — storefront with dish photos from the till menu

What the integration can do

📋

Menu and availability

The storefront receives categories, dishes, prices, modifiers and photos — already without suspended items, plus a flag telling whether the venue is accepting orders at all.

🧾

Order intake

An order is created in a single call and gets a number back. Repeating the same call never creates a second order.

✏️

Change and cancel

Until the venue accepts the order, the source can change its contents or cancel it.

🎟

Voucher validation

Vouchers are validated on the POSitive side, so the discount online and at the register never diverges.

💳

Payment notification

A payment taken on the storefront is mapped to the venue’s payment method, so the money lands on the right account.

↩️

Statuses back

Accepted, cooking, handed to courier, completed — notifications go back to the source, signed with a shared secret.

The specification is not published. Endpoint addresses, field definitions, error codes and request examples are handed over together with the key — to a venue, its developer or a partner. The reason is plain: a contract posted on a marketing site helps whoever is hunting for other people’s integrations more than it helps an integrator. Ask for it and you will have it the same day.

What the contract guarantees

🔁

Idempotency

Resubmitting with the same operation key never creates a second order. This covers double taps and dropped connections.

🔐

Signing and keys

One key per venue, revoked instantly. The secret is stored as a hash and cannot be recovered, not even by us. The key lives on the partner’s server, never in the guest’s browser.

🧾

Descriptive errors

The response names the line that failed and why, instead of a bare 400.

🛑

Current stop-list

The menu is served without items taken off sale: an item stopped at the register disappears from the website immediately.

↩️

Callback channel

Order status flows back to the source: accepted, cooking, handed to courier, completed.

🧪

Sandbox

A test venue with its own key: the integration can be built and verified without touching production data.

Need a key or the full contract?

We send the field-level description with examples, open a sandbox and answer integration questions.