Fırsat POS Partner API

5. Adım 2 — İşletmeyi bağlamak

5.1 İşletmenin yaptıkları (bunu siz yapmıyorsunuz)

  1. İşletme sahibi Fırsat Patron uygulamasında POS bölümünü açar, bir bağlantı oluşturur ve listeden sizin POS'unuzu seçer. Bu bağlantının kodlarını yalnızca sizin POS'unuz claim edebilir.
  2. Sizin POS'unuzu kullanan şubeleri işaretler.
  3. "Eşleştirme kodu al" butonuna basar; K7QM-4XTB gibi 8 karakterlik bir kod ve 15 dakikalık geri sayım görür.
  4. Bu kodu sizin POS ayarlar ekranınıza yazar veya destek ekibinize okur.

5.2 Sizin yapacağınız: "Fırsat'ı bağla" ekranı

Etiketi "Fırsat eşleştirme kodu" olan bir metin alanı (örnek gösterim: ABCD-EFGH) ve "Fırsat'ı bağla" butonu. Butona basılınca şunu gönderin:

curl -X POST https://partner-api.firsat.dev/api/partner/pos/v1/connections/claim \
  -H 'Authorization: Bearer fpt_Xk3...' \
  -H 'Content-Type: application/json' \
  -H 'X-Firsat-Pos: adisyo/k7qm2x' \
  -d '{ "pairingCode": "K7QM-4XTB" }'

Kod hakkında:

  • ABCDEFGHJKMNPQRSTUVWXYZ23456789 harflerinden 8 karakterdir. Birbirine benzeyen karakterler (0/O, 1/I/L) kullanılmaz.
  • Büyük veya küçük harf fark etmez; boşluk ve tire yok sayılır. k7qm 4xtb, K7QM-4XTB ve K7QM4XTB aynı koddur.
  • Bir kez ve 15 dakika boyunca çalışır. İşletme "Eşleştirme kodu al"a iki kez bastıysa yalnızca en yeni kod geçerlidir.
  • Claim timeout'a düşerse ya da ağ hatası alırsa aynı claim'i aynı kodla tekrar gönderin: ilk claim'iniz gerçekleştiyse aynı cevabı tekrar alırsınız. Bu, kod hâlâ geçerliyken çalışır; yani işletmenin kodu almasından itibaren en fazla 15 dakika. Bir cevap aldıktan sonra kod kullanılmış olur.

Cevap:

{
  "connectionId": "0199a3c2-7f1e-7c3a-9d2b-5e8f0a1b2c3d",
  "venue": { "id": "0199a1b0-…", "name": "Kahve Durağı" },
  "branches": [
    { "id": "0199a1b1-…", "name": "Kadıköy Moda" },
    { "id": "0199a1b2-…", "name": "Kadıköy Bahariye" }
  ]
}

5.3 Neleri saklayacaksınız

SakladığınızNeredenNe için
connectionId, sizin sisteminizdeki işletme hesabına bağlıconnectionIdBu işletme adına yapılan her çağrıdaki X-Firsat-Connection header'ı
Her Fırsat şube id'si, sizin şube / cihaz kaydınıza bağlıbranches[].idHer önizlemedeki branchId
Marka adı (opsiyonel)venue.nameAyarlar ekranınızda "Fırsat'a bağlı: Kahve Durağı" göstermek

Şube eşleme: bizim şube listemiz ile sizinki ayrıdır. Claim'den sonra işletmeye bizim şube adlarımızı gösterin ve her birinin sizin hangi şubeniz olduğunu seçtirin; adlar açıksa kendiniz de eşleyebilirsiniz. Her kasa kendi Fırsat branchId'sini bilmelidir. Yanlış şube id'si kuponu yanlış lokasyonda kullanılmış gösterir ve işletmenin raporlarını bozar.

5.4 Claim hataları

CevapAnlamıNe gösterilmeli
400 VALIDATIONMetin yukarıdaki harflerden 8 karakter değil (yazım hatası)."Kod 8 karakter olmalı. Fırsat Patron'daki kodu kontrol edip tekrar girin."
404 POS_PAIRING_CODE_INVALIDKod bilinmiyor, süresi dolmuş (15 dakika geçmiş), zaten kullanılmış, işletme o bağlantıyı iptal etmiş ya da bağlantı başka bir POS için açılmış (hangisi olduğunu söylemeyiz)."Kod geçersiz veya süresi dolmuş. Fırsat Patron uygulamasından yeni kod alın."
429 RATE_LIMITEDÇok fazla claim denemesi (bölüm 10)."Çok fazla deneme yapıldı. Birkaç dakika sonra tekrar deneyin."

5.5 Bağlantıda sonradan olan değişiklikler

Şubeler değişebilir. İşletme yeni eşleştirme kodu gerekmeden bağlantıya şube ekleyebilir veya tek tek şube çıkarabilir. GET /branches her zaman güncel listeyi döner. POS'unuz her gün açılırken ve bir önizleme bir şube için 404 NOT_FOUND döndüğünde çağırın.

curl https://partner-api.firsat.dev/api/partner/pos/v1/branches \
  -H 'Authorization: Bearer fpt_Xk3...' \
  -H 'X-Firsat-Pos: adisyo/k7qm2x' \
  -H 'X-Firsat-Connection: 0199a3c2-...'
{ "items": [ { "id": "0199a1b1-…", "name": "Kadıköy Moda" } ] }

İşletme bağlantıyı iptal edebilir (revoke). Bundan sonra o bağlantı için yapılan her çağrı 403 POS_CONNECTION_REVOKED döner. "Fırsat bağlantısı kaldırıldı. Yeniden bağlamak için Fırsat Patron'dan yeni eşleştirme kodu alın." gösterin ve bu işletme için çağrı yapmayı bırakın. Yeniden bağlanmak için işletme yeni bir bağlantı oluşturup size yeni bir eşleştirme kodu verir; yeni bir connectionId alırsınız ve eskisinin yerine bunu saklarsınız.

Bu sayfada