Lezzet35
Giriş yap

Rehber · sözleşme v2.0 (27.10.2026) · OpenAPI 1.0.0

SiparişMatik entegrasyonu

Lezzet35’te SiparişMatik’e bağlanan iki ayrı sistem vardır. İkisi de aynı /api/v1 yollarını kullanır; farkı anahtar belirler: her anahtar bir akışa bağlıdır ve yalnız o akışın siparişlerini görür. Webhook, jeton ve sipariş listesi akış başına ayrıdır.

1. İki sistem

SistemakisLezzet35 kanalSipariş nereden gelirSiparişMatik tarafı
WhatsApp / markalı sitewhatsappMARKA_SITESI, XQRRestoranın kendi sitesi {alt}.lezzet35.com ve QR masa menüsü {kod}.xqr.com.trBugünkü Lezzet35 entegrasyonu (exe “WhatsApp Sipariş” olarak basar)
PazaryeripazaryeriWEBlezzet35.com pazaryeri (OTP girişli müşteri)Yeni entegrasyon türü: ayrı köprü, ayrı anahtar, ayrı fiş başlığı
  • Bir firma yalnız birinde ya da ikisinde birden olabilir; her sistem kendi anahtarıyla bağlanır. Çapraz erişim (pazaryeri anahtarıyla markalı site siparişi) 404 döner.
  • 27.10.2026 öncesi üretilmiş tüm anahtarlar whatsapp akışındadır; bugünkü exe değişiklik olmadan çalışmaya devam eder.
  • Firma düzeyi uçlar (menü, senkron, şube durumu, xQR, iptal nedenleri) her iki anahtarla çalışır. Sipariş gövdesinde akis alanı vardır.
  • Kasa kanalı (Beta Poss / CTR POS, /api/kasa) bu belgenin dışındadır.

2. Ortak kurallar

  • Taban adres https://lezzet35.com/api/v1/; yanıt zarfı { success: boolean, message?, … }; hata kodları 401 / 403 / 404 / 405 / 422 / 429 / 503 (ayrıntı: API belgesi).
  • Kimlik: Authorization: Bearer <anahtar> (firma, 120 istek/dk); havuz uçlarında X-Pool-Secret (30/dk/IP). Lezzet35 anahtarın yalnız sha256 özetini saklar.
  • Durum makinesi: ALINDI → ONAYLANDI → HAZIRLANIYOR → YOLDA → TESLIM_EDILDI; her aşamadan IPTAL. Geçersiz geçişte de success:true (exe yinelemesin), yanıtta reddedildi:true.
  • Ödeme: kasa odeme_turu + odendi okur; odeme_yontemi görünen ad / yemek kartı markası; nakitte para_ustu.
  • Çekme (GET /firma/siparisler, 10 sn) her iki sistemde yedek olarak kalır; webhook gelmese de sipariş kaybolmaz.

3. Webhook (Lezzet35 → SiparişMatik köprüsü, akış başına)

Yemeksepeti köprüsüyle aynı kalıp: Lezzet35 olayı köprüye POST eder, köprü kaydeder, exe kendi sunucusundan alır. Firma + akış başına köprü adresi ve gizli anahtar Lezzet35 admin panelinde tanımlanır; sır jeton otomasyonuyla köprüye iletilir.

olayNe zamanEk alan
siparis.olusturulduSipariş kaydedildiğinde (ALINDI)—
siparis.durumLezzet35 tarafında durum değişince (restoran paneli, admin, kasa, müşteri iptali). Köprünün kendi PUT yazımı yankılanmazdegisiklik { onceki_durum, yeni_durum, kaynak, aciklama }
siparis.iptalDurum IPTAL/REDDEDILDI olunca (siparis.durum’a ek)degisiklik + iptal_nedeni, iptal_metni
testAdmin “Webhook testi” düğmesisiparis: null
bash
{ "olay_id": "cmv…", "olay": "siparis.olusturuldu", "akis": "whatsapp", "zaman": "2026-10-27T15:48:04Z", "sira": 1,
  "firma": { "siparismatik_id": 756, "lezzet35_id": "cmv…" },
  "siparis": { "…": "GET /firma/siparisler/{id} yanıtındaki data nesnesiyle birebir aynı" },
  "degisiklik": null }
  • Kimlik ve imza (iki katman): Authorization: Bearer <JWT> — HS512, payload { service:"lezzet35", akis, siparismatik_id, olay_id, iat, exp } (5 dk), sır = firma+akışın webhook_gizli’si (Yemeksepeti BearerTokenControl mantığıyla doğrulanır). Ek olarak X-Lezzet35-Signature: sha256=<hex HMAC-SHA256(ham gövde, sır)>. Başlıklar: X-Lezzet35-Olay, X-Lezzet35-Akis, X-Lezzet35-Teslim (deneme no).
  • Teslim ve yeniden deneme: zaman aşımı 10 sn. 2xx teslim; 409 / 422 kalıcı ret (tekrar denenmez); 429, 5xx, ağ hatası → 1 dk, 2 dk, 5 dk, 15 dk, 30 dk, 1 sa, 2 sa, 4 sa, 8 sa, 8 sa (10 deneme ≈ 24 saat); sonra admin “yeniden gönder”. olay_id tekildir: aynı olay ikinci kez gelirse köprü 200 dönüp yok saymalı. sira sipariş başına artar.
  • Geri yön: onay / ret / teslim / iptal bugünkü gibi PUT /firma/siparisler/{id}/durum ile; iptalde iptal_nedeni + durum_aciklama. Köprünün kendi yazımı webhook olarak geri dönmez.

4. Jeton (anahtar) otomasyonu

  1. Lezzet35 admin’de anahtar üretilince (whatsapp ya da pazaryeri) SiparişMatik sunucusuna imzalı kayıt itilir: { siparismatik_id, akis, entegrasyontur: "Lezzet35" | "Lezzet35Pazaryeri", api_token, webhook_gizli, webhook_url, firma_adi, subeler[], iptal }; kimlik X-Pool-Secret + X-Lezzet35-Signature. Hata olursa 10 deneme.
  2. SiparişMatik sunucusu kaydı sip_tblfirmaentegrasyon’a yazar (entegrasyonguncelle = 'Y'); exe mevcut SiparişMatik_Entegrasyon çekimiyle alır — exe’de yeni kod gerekmez.
  3. Yedek yol: SiparişMatik sunucusu imzalı GET /pool?akis=… ile çeker. HAZIR penceresi exe çağrıları için kalır.
  4. Anahtar iptali aynı kayıtla (iptal: true); eski anahtar hemen 401.

5. İptal nedenleri

GET /api/v1/iptal-nedenleri (Bearer, her iki akış) → data:[{ kod, metin, aciklama_zorunlu }]. Liste Lezzet35 admin panelinden yönetilir; exe/köprü kodları gömmez. PUT …/durum gövdesinde durum: "IPTAL" + iptal_nedeni (+ isteğe bağlı durum_aciklama); bilinmeyen kod 422, DIGER açıklamasız 422. Neden metni müşterinin sipariş sayfasında görünür.

bash
PUT /api/v1/firma/siparisler/24048/durum
{ "durum": "IPTAL", "iptal_nedeni": "URUN_YOK", "durum_aciklama": "Kumru ekmeği bitti" }

6. Sistem rehberleri