Rezervasyonlar
Rezervasyon al
Sitenizin aldığı rezervasyonu mekana gönderin. Mekanın rezervasyon listesine düşer; hemen onaylanıp onaylanmayacağı mekanın ayarına bağlıdır.
/public/v1/venues/{venueId}/reservationsUyarı: Deneme ortamı yoktur. Gerçek bir anahtarla alınan rezervasyon, gerçek bir mekanın listesinde gerçek bir rezervasyondur ve çalışanlarına bildirilir. Geliştirirken yönettiğiniz bir mekanı kullanın ve oluşturduğunuz rezervasyonları iptal edin.
Sitenizin aldığı rezervasyonu gönderin. Yanıt, GET /reservations/{reservationId} adresini gösteren bir Location başlığıyla 201 Created olur. Rezervasyon diğer bütün rezervasyonların düştüğü yere düşer: mekanın kasadaki ve çalışan uygulamasındaki rezervasyon listesine, misafirin kendi yaptığı bir rezervasyonla aynı bildirimle. Ayrıntılar: Rezervasyon almak.
Saati müsaitlik çağrısından alın. startsAt UTC bir andır; müsait saatler yanıtındaki bir saatin startsAt değerini gönderin. guests 1 ile 20 arasındadır; misafirin adı en fazla 100, telefonu en fazla 30, not en fazla 250 karakterdir.
Onay mekanın ayarıdır. Rezervasyonları alındığı anda onaylayan bir mekanda yanıt Confirmed olur; diğerlerinde mekandan biri kabul ya da reddedene kadar Pending kalır. Mekanın saatine kadar yanıtlamadığı istek System tarafından iptal edilir. Hangisini bekleyeceğinizi müsaitlik yanıtındaki confirmsAutomatically söyler.
Misafire siz haber verirsiniz. Cibusy, API üzerinden alınan bir rezervasyon için misafire SMS göndermez: rezervasyonu siteniz aldı ve misafir haberi sitenizden bekler. Misafire yanıttaki pageUrl adresini ya da code değerini verin; mekan misafiri kapıda bununla karşılar.
İki kez göndermek güvenlidir ve Idempotency-Key gerekmez. Bir misafir aynı anda iki masada oturamaz; bu yüzden aynı telefon numarası için, aynı mekanda, aynı an için gönderilen ikinci istek, ilki hala geçerliyken aynı rezervasyondur. İlk çağrının aldığı rezervasyonu mekandaki güncel haliyle 200 OK olarak alırsınız ve mekana ikinci kez bildirilmez. İstek zaman aşımına uğrarsa değiştirmeden yeniden gönderin. Tekrar, mekanın kurallarına yeniden bakılmadan yanıtlanır, çünkü rezervasyon zaten vardır.
Saatin alınıp alınamayacağına mekanın rezervasyon kuralları karar verir; bunlar mekanın kendi rezervasyon sayfasının misafire uyguladığı kurallardır: mekan rezervasyon alıyor olmalı (RESERVATIONS_DISABLED), en fazla 20 kişi (TOO_MANY_GUESTS), gelecekte bir saat (INVALID_RESERVATION_DATE), en az 30 dakika sonrası (RESERVATION_TOO_SOON), en çok 60 gün sonrası (RESERVATION_TOO_FAR) ve mekanın misafir aldığı bir saat (RESERVATION_TIME_UNAVAILABLE). Müsaitlik yanıtından alınan bir saat hepsinden geçer. Mekanın ayrıca etkin bir aboneliği olmalıdır (PUBLIC_API_RESERVATIONS_UNAVAILABLE). Bir hata isteğin bir kısmını adlandırıyorsa validationErrors hangisi olduğunu yoluyla söyler (customer.phone).
Parametreler
venueIdstring · uuidYol parametresizorunluMekan; GET /venues listesindeki kimliklerden biri.
Accept-LanguagestringBaşlıkHata yanıtlarındaki userMessage metninin dili: tr (varsayılan), en, de, fr, it, es, ar ya da ru. Başlıktaki ilk dil belirler, bölgesi olmadan (en-US, en okunur) ve q ağırlıklarına bakılmadan; Cibusy'nin sunmadığı bir dil Türkçe yanıtlanır. Menünün dilini seçmez; o, menü çağrısındaki lang parametresidir.
İstek gövdesi
Mekanın sitesinin alıp gönderdiği rezervasyon. Alınıp alınamayacağına mekanın kendi rezervasyon kuralları karar verir; kabul edilecek saatleri GET /venues/{venueId}/reservation-availability listeler.
startsAtstring · date-timenull olabilirMasanın ne zaman için olduğu, UTC bir an olarak. Müsaitlik yanıtındaki bir saatin startsAt değerinden alın. Zorunlu.
guestsintegernull olabilirKaç kişi geleceği: 1 ile 20 arası. Daha kalabalık bir grup mekanı arayarak yer ayırtır. Zorunlu.
customerobjectnull olabilirMasanın kimin için olduğu. Zorunlu.
Misafir bilgisi alanları
namestringnull olabilirMisafirin adı, en fazla 100 karakter. Zorunlu.
phonestringnull olabilirMisafirin telefon numarası, uluslararası biçimde ya da yerelde yazıldığı gibi (+905321112233, 0532 111 22 33). En fazla 30 karakter. Zorunlu: mekan misafire bununla ulaşır ve tekrarlanan bir isteği ikinci bir rezervasyondan ayıran da budur.
notestringnull olabilirMekan için not, en fazla 250 karakter.
Yanıtlar
Tekrar: aynı telefon, mekan ve saat için zaten alınmış rezervasyon, mekandaki güncel haliyle.
Rezervasyon alındı. Location rezervasyonu gösterir; status onaylandığını (Confirmed) ya da mekanın yanıtını beklediğini (Pending) söyler.
LocationRezervasyonun okunabileceği yer: /public/v1/reservations/{reservationId}.
PUBLIC_API_RESERVATION_INVALID, TOO_MANY_GUESTS ya da INVALID_RESERVATION_DATE.
X-Api-Key başlığı yok (PUBLIC_API_KEY_MISSING) ya da anahtar geçersiz veya iptal edilmiş (PUBLIC_API_KEY_INVALID).
PUBLIC_API_SCOPE_MISSING: anahtar "Rezervasyon alabilir" izniyle oluşturulmamış.
Mekan yok ya da bu anahtar ona ulaşamıyor (PUBLIC_API_VENUE_NOT_FOUND).
PUBLIC_API_RESERVATIONS_UNAVAILABLE, RESERVATIONS_DISABLED, RESERVATION_TOO_SOON, RESERVATION_TOO_FAR ya da RESERVATION_TIME_UNAVAILABLE.
Anahtarın siparişler, rezervasyonlar ve testler için dakikada yaklaşık 30 isteklik bütçesi doldu; Retry-After kadar saniye bekleyin.
Retry-AfterBeklenecek saniye. Bir sonraki dakikalık pencere bu süre içinde açılır.
Başarılı yanıtın data alanı
API üzerinden alınmış bir rezervasyon, mekanda şu an olduğu haliyle. GET /reservations/{reservationId} yanıtının ve webhook'un reservation.updated olayının taşıdığı gövdenin aynısı.
idstring · uuidRezervasyonun kimliği. GET /reservations/{reservationId} ile kullanın.
venueIdstring · uuidMasanın ayırtıldığı mekan.
statusstringRezervasyonun geldiği aşama; her okumada yeniden hesaplanır, bu yüzden liste, tek rezervasyon ve webhook olayı aynı rezervasyon için farklı şeyler söyleyemez.
Pending- Mekan henüz yanıtlamadı. Rezervasyonları alındığı anda onaylayan bir mekanda görülmez.
Confirmed- Mekan kabul etti ya da rezervasyonları alındığı anda onaylıyor. Masa bekleniyor.
Declined- Mekan isteği reddetti.
Cancelled- İptal edildi. Kimin iptal ettiğini `cancelledBy` söyler.
Seated- Misafir geldi ve kapıda karşılandı.
Completed- Ziyaret bitti.
NoShow- Mekan kabul etti ama kimse gelmedi.
startsAtstring · date-timeMasanın ne zaman için olduğu, UTC bir an olarak.
guestsintegerKaç kişi geleceği.
customerobjectMasanın kimin için olduğu, mekanda kayıtlı haliyle.
Rezervasyon sahibi alanları
namestringnull olabilirMisafirin adı.
phonestringnull olabilirMisafirin telefon numarası, uluslararası biçimde.
notestringnull olabilirRezervasyonun yapıldığı not. Not yoksa null.
codestringnull olabilirMekanın misafiri kapıda karşılarken kullandığı kod: misafirin söyleyebileceği ya da pageUrl sayfasındaki QR olarak gösterebileceği sekiz karakter. Kodu elinde tutan rezervasyonu görebilir ve iptal edebilir; yalnız misafire verin.
pageUrlstringnull olabilirRezervasyonun cibusy.com'daki kendi sayfası: rezervasyonu ve onaylandıktan sonra mekanın kapıda okuttuğu QR'ı gösterir. Bağlantısını verin ya da misafire gönderin. Herkese açık adresi olmayan mekanda null.
canCancelbooleanRezervasyonun API üzerinden hala iptal edilip edilemeyeceği: geçerli, misafir kapıda karşılanmamış ve saati gelmemiş.
checkedInAtstring · date-timenull olabilirMisafirin kapıda karşılandığı an (UTC). O zamana kadar null.
cancelledAtstring · date-timenull olabilirRezervasyonun iptal edildiği an (UTC). status değeri Cancelled değilse null.
cancelledBystringnull olabilirKimin iptal ettiği. status değeri Cancelled değilse null.
Customer- Misafir: bu API üzerinden, rezervasyonun kendi sayfasından ya da Cibusy uygulamasından.
Venue- Mekan.
System- Cibusy: mekan isteği, rezervasyonun saatine kadar yanıtlamadı.
cancellationReasonstringnull olabilirİptal nedeni olarak söylenen, söyleyenin kendi sözleriyle. status değeri Cancelled değilse null.
createdAtstring · date-timeRezervasyonun yapıldığı an (UTC).