RestomarktRestomarkt

Geliştirici API

Ürün, stok ve siparişlerinizi kendi sisteminizden yönetin — ücretsiz REST API ve MCP desteğiyle.

Restoran uçları

Bu uçlar restoran hesabıyla oluşturulan anahtarlarla çalışır.

Siparişler

POST /api/v1/ordersorders:write

Tek bir tedarikçiye yeni sipariş oluşturur. Tüm ürünler aynı tedarikçiye ait olmalı. Sunucuda doğrulanır: tedarikçi onaylı mı, ödeme yöntemi kabul ediliyor mu, ürünler aktif mi, stok/min. sipariş yeterli mi. Hatalıysa 400 + açıklama döner. Idempotency-Key başlığı desteklenir: ağ hatasında aynı anahtarla tekrar denediğinizde yeni sipariş açılmaz, mevcut sipariş 200 ile döner.

İstek gövdesi

{
  "supplier_id": "uuid",            // zorunlu
  "payment_method": "cari",         // zorunlu: "cari" | "online"
  "delivery_address": "İzmit merkez",  // opsiyonel
  "note": "sabah teslim",           // opsiyonel
  "items": [                         // zorunlu, en az 1
    { "product_id": "uuid", "qty": 3 }
  ]
}

Yanıt

{ "order_id": "uuid" }   // HTTP 201

Örnek

curl -X POST https://restomarkt.com/api/v1/orders \
  -H "Authorization: Bearer rmk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "supplier_id": "SUPPLIER_ID",
    "payment_method": "cari",
    "items": [ { "product_id": "PRODUCT_ID", "qty": 3 } ]
  }'

GET /api/v1/ordersorders:read

Verdiğiniz siparişler (yeniden eskiye). Filtreler: ?status=, ?from=YYYY-MM-DD, ?to=YYYY-MM-DD, ?limit (varsayılan 50, en çok 200), ?offset.

Yanıt

{
  "orders": [
    { "id": "uuid", "status": "confirmed", "payment_method": "cari", "payment_status": "unpaid",
      "subtotal": 1740, "kdv_total": 174, "discount_total": 0, "commission_total": 69.6,
      "total": 1914, "created_at": "2026-06-10T08:30:00Z" }
  ],
  "meta": { "limit": 50, "offset": 0, "total": 23 }
}

Örnek

curl https://restomarkt.com/api/v1/orders \
  -H "Authorization: Bearer rmk_live_..."

GET /api/v1/orders/:idorders:read

Verdiğiniz tek siparişin durumu ve kalemleri (tedarikçideki ile aynı şema).

Yanıt

{ "order": {
  "id": "uuid", "status": "shipped", "payment_method": "cari", "payment_status": "unpaid",
  "subtotal": 1740, "commission_total": 69.6, "total": 1740,
  "delivery_address": "...", "note": "...", "created_at": "...",
  "order_items": [
    { "product_name": "Klasik San Sebastian", "unit": "adet", "qty": 1, "unit_price": 1160, "line_total": 1160 }
  ]
} }

Stok bildirimi (POS / Restomenüm)

POST /api/v1/stockstock:write

POS/entegrasyon malzeme stoklarını bildirir. Kalem başına iki mod: stock (mutlak seviye — POS malzeme stoğu tutuyorsa) veya delta (göreli değişim — POS yalnız satışı biliyorsa, örn. satışta -2). Tam olarak biri zorunlu; delta sonucu 0'ın altına inmez. Malzemeler restoran panelinde Restomarkt ürünlerine eşlenir; mod 'otomatik' ise eşiğin ÜSTÜNDEN ALTINA geçen eşlenmiş malzemeler için cari sipariş otomatik oluşturulur (aynı kalem için 6 saat bekleme süresi vardır).

İstek gövdesi

{ "items": [
  { "ingredient": "Pizza Hamuru", "stock": 4 },   // mutlak seviye
  { "ingredient": "Mozzarella",   "delta": -2 }   // göreli değişim (satış düşümü)
] }

Yanıt

{ "updated": 2, "created_orders": ["uuid"] }

Örnek

curl -X POST https://restomarkt.com/api/v1/stock \
  -H "Authorization: Bearer rmk_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"ingredient":"Pizza Hamuru","stock":4},{"ingredient":"Mozzarella","delta":-2}]}'

GET /api/v1/stockstock:read

Stok kalemlerini ve eşleme durumunu listeler — entegrasyonunuz hangi malzemelerin ürünle eşlenmediğini görüp kullanıcıyı panele yönlendirebilir. Filtre: ?mapped=true|false. Sayfalama: ?limit (varsayılan 50, en çok 200), ?offset. meta.unmapped filtreden bağımsız toplam eşlenmemiş sayısıdır.

Yanıt

{
  "items": [
    { "ingredient": "Pizza Hamuru", "ingredient_key": "pizza hamuru", "stock": 4,
      "threshold": 5, "reorder_qty": 10, "mapped": true, "product_id": "uuid",
      "last_synced_at": "2026-07-13T09:15:00Z" }
  ],
  "meta": { "limit": 50, "offset": 0, "total": 12, "unmapped": 3 }
}

Örnek

curl "https://restomarkt.com/api/v1/stock?mapped=false" \
  -H "Authorization: Bearer rmk_live_xxx"

Sipariş durumunu tedarikçi günceller; restoran anahtarı siparişi yalnızca okur. Stok uçları için anahtarınızda stock:write / stock:read yetkileri olmalı. Uçtan uca POS akışı (eşleme, otomatik sipariş, webhook ile teslim onayı) için POS Entegrasyon Rehberine bakın.