Tesis Aylık Rapor API
Konaklama tesislerinin aylık rapor verilerini göndermek için entegrasyon dokümanı.
v6.0.0Genel Bilgi
Bu doküman yalnızca POST /tesis-aylik-rapor/ endpoint'ini kapsar.
İsteklerde tesisin aylık oda, yatak, açık gün ve ülke kırılımı bazlı metrikleri gönderilir.
api_version alanı v6.0.0 döner.
Entegrasyon tarafında bu değer izlenmeli ve beklenmeyen sürüm değişiklikleri için uyarı üretilmelidir.
v6.0.0 Yayın Notları
v6.0.0 ile Gelen Değişiklikler (ÖNEMLİ — Payload yapısı güncellendi)
-
Aylık Ortalama Fiyatın Tesis Düzeyinde Alınması:
Aylık ortalama oda fiyatı artık ülke (milliyet) kırılımı bazında değil, tesis-ay düzeyinde
tek değer olarak alınmaktadır. Bu kapsamda istek gövdesinin kök (root) seviyesine
aylik_ortalama_fiyatalanı eklenmiştir;datadizisi öğelerinde fiyat alanı artık yer almamaktadır. Fiyat, önceki sürümlerde olduğu gibi kahvaltı, KDV ve diğer vergiler hariç net EURO (€) cinsinden iletilmelidir. Farklı para birimlerinden çevrim yapılması gerektiğinde, ilgili ayın son iş gününe ait T.C. Merkez Bankası (TCMB) döviz satış kuru baz alınmalıdır. -
Geriye Dönük Uyumluluk:
dataöğeleri içinde fiyat alanı gönderilmesi durumunda istek reddedilmez; bu alan dikkate alınmaz (yok sayılır). Geçerli fiyat bilgisi yalnızca kök seviyedekiaylik_ortalama_fiyatalanından okunur. Entegrasyonunuzu en kısa sürede yeni yapıya geçirmenizi rica ederiz. -
Versiyon Güncellemesi:
API sürümü
v6.0.0olarak yayınlanmıştır. Tüm yanıtlardakiapi_versionalanı bu değeri döner; versiyon kontrol mekanizmanızı güncelleyiniz.
v5.0.1 Yayın Notları
v5.0.1 ile Gelen Değişiklikler
-
UUID Sürüm Kısıtlamasının Kaldırılması:
idalanı için yalnızca UUID v4 kabul eden katı doğrulama gevşetildi. Artık RFC 4122 ile uyumlu tüm UUID sürümleri (v1, v3, v4, v5, v7 vb.) kabul edilmektedir. Mevcut v4 tabanlı entegrasyonlar herhangi bir değişiklik yapmadan çalışmaya devam edecektir; bu yalnızca geriye dönük uyumlu bir doğrulama iyileştirmesidir.
v5 ile Gelen Değişiklikler
-
Anonim Veri Akışı ve Tesis Kimliği (ID) Kullanımı:
Yeni versiyon ile anonim bir yapıya geçiş yaptık. Artık API bağlantılarında
"tesis belge numarası" veya "vergi numarası" gibi tesisi doğrudan tanımlayıcı
özel veriler kullanılmayacaktır. Bunun yerine, veri akışını PMS sağlayıcılarının
her tesis için kendi içlerinde üretecekleri tekil
iddeğeri üzerinden sağlamayı hedefliyoruz. Bu alanın geçerli bir UUID v4 formatında iletilmesi yeterli olacaktır. Farklı sağlayıcıların ürettiğiiddeğerlerinin kendi aralarında çakışması sistemimiz açısından herhangi bir sorun teşkil etmemektedir. -
Kapasite Bilgilerinin Eklenmesi:
Tesisleri tamamen anonim olarak (sadece PMS
id'si ile) takip edeceğimiz için, sistemin doluluk oranlarını ve kapasite analizlerini doğru hesaplayabilmesi adınaoda_sayisiveyatak_sayisiparametrelerine ihtiyaç duyuyoruz. Veri bütünlüğü için bu alanların eksiksiz iletilmesini bekliyoruz. -
Lokasyon Kodları:
il_koduveilce_kodualanlarının, başındaki sıfırların kaybolmaması adına metin (string) formatında gönderilmesini bekliyoruz. Bu kodları İçişleri Bakanlığı (NVİ - MERNİS) veya TÜİK standartlarına uygun şekilde iletebilirsiniz. Listede bulunmayan veya tespiti yapılamayan ilçeler için9999(Diğer) kodunu kullanabilirsiniz. Detaylı bilgi dokümanımızın Lokasyon Kodu Notu bölümünde yer almaktadır. -
Açık Gün Sayısı Belirtimi:
tesisin_aylik_acik_oldugu_gun_sayisialanı için; tesis ilgili ayda tamamen kapalıysa0değerinin iletilmesini bekliyoruz. Tesis açık durumdaysa,1ile o ayın toplam takvim günü arasında uygun olan değeri belirtebilirsiniz. Eğer açık gün sayısı sisteminiz üzerinden net olarak hesaplanamıyorsa, doğrudan ilgili ayın toplam gün sayısını (örneğin28,30,31) gönderebilirsiniz. -
Fiili Konaklama Verisi:
datadizisi içinde gönderilen tüm metrikler (misafir, geceleme, satılan oda-gece vb.) ileriye dönük veya iptal edilmiş rezervasyon sayılarını kapsamamalıdır. Yalnızca ilgili ayda fiilen gerçekleşmiş, check-in yapılmış ve konaklaması tamamlanmış satışlar iletilmelidir. -
Fiyatlandırma ve Kur Bilgisi:
aylik_ortalama_fiyatalanının; kahvaltı, KDV ve diğer vergiler hariç tutularak net EURO (€) cinsinden hesaplanıp iletilmesini bekliyoruz. Farklı para birimlerinden EURO'ya çevrim yapmanız gerektiğinde, ilgili ayın son iş gününe ait T.C. Merkez Bankası (TCMB) döviz satış kurunun baz alınması beklenmektedir. -
Versiyon Kontrolü:
Tüm yanıtlarda
api_versionalanıv5.0.1döner. Kontrol mekanizmanızı bu değere göre güncelleyiniz.
Sürüm (Versiyon) Yönetimi ve Entegrasyonu
TGA Tesis Entegrasyon Servisi sürekli geliştirilen dinamik bir yapıdır. Bu nedenle API
yanıtlarına statik bir api_version alanı eklenmiştir.
Tüm Otel Yönetim Sistemleri (PMS / CMS) firmalarının ve entegratörlerin kendi sistemlerinde
otomatik bir versiyon kontrol mekanizması (Alert / Uyarı Sistemi) kurmasını tavsiye ederiz.
Yanıttaki api_version (ör. v6.0.0), sizde kayıtlı sürümden farklıysa
IT/geliştirici ekibinize otomatik uyarı üretilmeli ve API dokümantasyonu kontrol edilerek
gerekli güncellemeler yapılmalıdır.
Ortamlar
| Ortam | Base URL |
|---|---|
| Test | https://test-tesis-entegrasyon.tga.gov.tr |
| Canlı | https://tesis-entegrasyon.tga.gov.tr |
Kimlik Doğrulama
Her istekte size verilen API anahtarı X-API-Key başlığı ile gönderilmelidir.
API anahtarı payload içinde gönderilmez.
X-API-Key: YOUR_API_KEY
Endpoint
Başlıklar
| Başlık | Değer | Zorunlu |
|---|---|---|
Content-Type |
application/json |
Evet |
X-API-Key |
Size verilen API anahtarı | Evet |
İstek Gövdesi
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"rapor_tarihi": "2025-10",
"il_kodu": "34",
"ilce_kodu": "1103",
"oda_sayisi": 100,
"yatak_sayisi": 100,
"tesisin_aylik_acik_oldugu_gun_sayisi": 30,
"aylik_ortalama_fiyat": 100,
"data": [
{
"iso_kodu": "TUR",
"haftaici_toplam_giris_yapan_misafir": 200,
"haftasonu_toplam_giris_yapan_misafir": 200,
"haftaici_toplam_geceleme": 200,
"haftasonu_toplam_geceleme": 200,
"haftaici_toplam_satilan_oda_gece": 200,
"haftasonu_toplam_satilan_oda_gece": 200
}
]
}
Alanlar
| Alan | Tip | Zorunlu | Açıklama |
|---|---|---|---|
id |
string (UUID) | Evet | Tesisin sağlayıcı sistemindeki benzersiz kimliği. RFC 4122 ile uyumlu geçerli bir UUID olmalıdır (tüm sürümler kabul edilir). |
rapor_tarihi |
string | Evet | Rapor ayı. Format YYYY-MM olmalıdır (ör. 2025-10). |
il_kodu |
string | Evet | İl plaka kodu. Sıfırla başlayanlar korunmalıdır (ör. "01", "34"). |
ilce_kodu |
string | Evet | İlçe NVİ (MERNİS) / TÜİK kodu. 1-4 karakterli string. Listede bulunmayan ilçeler için "9999" |
oda_sayisi |
integer | Evet | Bakanlık belgesinde belirtilen toplam oda sayısı. |
yatak_sayisi |
integer | Evet | Bakanlık belgesinde belirtilen toplam yatak sayısı. |
tesisin_aylik_acik_oldugu_gun_sayisi |
integer | Evet | Tesisin ay içinde fiilen açık olduğu gün sayısı. Tamamen kapalıysa 0 gönderilir (data boş olmalıdır). Gün sayısı hesaplanamıyorsa ilgili ayın takvim gün sayısı (28, 30, 31 vb.) gönderilmelidir. |
aylik_ortalama_fiyat |
number | Koşullu |
Tesis-ay düzeyinde aylık ortalama oda fiyatı (EUR). Kahvaltı, KDV ve diğer vergiler hariç
net EURO (€) cinsinden iletilmelidir; farklı para birimlerinden çevrimde ilgili ayın son
iş günü TCMB döviz satış kuru baz alınmalıdır. ≥ 0.
tesisin_aylik_acik_oldugu_gun_sayisi > 0 ise zorunludur; tesis kapalıysa
(0) gönderilmez.
|
data |
array | Evet | Ülke (iso_kodu) bazlı aylık metrik kırılımları. Tesis o ay tamamen kapalıysa boş dizi [] gönderilmelidir. |
data Öğesi Alanları
| Alan | Tip | Açıklama |
|---|---|---|
iso_kodu |
string | ISO 3166-1 alpha-3 ülke kodu. Ayrıca XKX (Kosova), CTR (KKTC) ve OTHER kabul edilir. |
haftaici_toplam_giris_yapan_misafir |
integer | Hafta içi (Pzt–Cum) tesise fiilen giriş (check-in) yapan misafir sayısı. ≥ 0. |
haftasonu_toplam_giris_yapan_misafir |
integer | Hafta sonu (Cmt–Paz) tesise fiilen giriş (check-in) yapan misafir sayısı. ≥ 0. |
haftaici_toplam_geceleme |
integer | Hafta içi fiilen gerçekleşen toplam geceleme (kişi × gece). ≥ 0. |
haftasonu_toplam_geceleme |
integer | Hafta sonu fiilen gerçekleşen toplam geceleme (kişi × gece). ≥ 0. |
haftaici_toplam_satilan_oda_gece |
integer | Hafta içi fiilen satılıp kullanılmış oda-gece sayısı. ≥ 0. (Oda geceleme) |
haftasonu_toplam_satilan_oda_gece |
integer | Hafta sonu fiilen satılıp kullanılmış oda-gece sayısı. ≥ 0. (Oda geceleme) |
Doğrulama Kuralları
1. Tesis Kimliği
id RFC 4122 ile uyumlu geçerli bir UUID olmalıdır (v1, v3, v4, v5, v7 vb. tüm sürümler kabul edilir). Özel metin formatları kabul edilmez.
2. Rapor Ayı
rapor_tarihi YYYY-MM formatında olmalıdır. Ay değeri 01 ile 12 arasında olmalıdır.
3. İl ve İlçe Kodu
il_kodu ve ilce_kodu yalnızca rakamlardan oluşmalıdır.
İlçe kodu, gönderilen il koduna bağlı geçerli bir resmi ilçe kodu olmalıdır.
Listede bulunmayan veya tespit edilemeyen ilçeler için 9999 kodu
kullanılabilir.
4. Açık Gün Sayısı ve data
tesisin_aylik_acik_oldugu_gun_sayisi = 0ise tesis kapalı kabul edilir vedataboş olmalıdır.- Değer
1veya daha büyüksedataboş olamaz. - Değer,
rapor_tarihiayının takvim gün sayısını aşamaz.
5. Aylık Ortalama Fiyat
aylik_ortalama_fiyat, istek gövdesinin kök seviyesinde iletilir; ülke kırılımı bazında değildir.tesisin_aylik_acik_oldugu_gun_sayisi > 0ise zorunludur ve negatif olamaz.- Tesis kapalıysa (
tesisin_aylik_acik_oldugu_gun_sayisi = 0) bu alan gönderilmez. dataöğelerinde eski sürümlerde kullanılan fiyat alanları gönderilirse yok sayılır; geçerli değer yalnızca kök seviyedekiaylik_ortalama_fiyatalanından okunur.
6. Sayısal Alanlar
Tüm adet, geceleme, oda-gece ve fiyat alanları negatif olamaz.
Başarılı Yanıt
200 İstek kabul edildiğinde aşağıdaki formatta yanıt döner.
{
"api_version": "v6.0.0",
"status": "success",
"message": "Veriler başarıyla alındı",
"data": {
"request_id": "2cb35dfc-859d-46cd-8655-22320b0cb340",
"errors": []
}
}
request_id, gönderimin takibi için kullanılabilir.
Hata Yanıtları
401 API Anahtarı Eksik
{
"api_version": "v6.0.0",
"status": "error",
"message": "API anahtarı eksik. Lütfen X-API-Key başlığını sağlayın.",
"data": {
"request_id": null,
"errors": []
}
}
403 API Anahtarı Geçersiz veya Pasif
{
"api_version": "v6.0.0",
"status": "error",
"message": "API erişimi iptal edilmiş. Lütfen destekle iletişime geçin.",
"data": {
"request_id": null,
"errors": []
}
}
422 Doğrulama Hatası
{
"api_version": "v6.0.0",
"status": "error",
"message": "Geçersiz il veya ilçe kodu",
"data": {
"request_id": null,
"errors": [
{
"alan": "ilce_kodu",
"tip": "il_ilce_uyumsuz",
"mesaj": "ilce_kodu '8888', il_kodu '34' için geçerli bir ilçe kodu değildir (il–ilçe eşleşmesi uyuşmuyor). Tespit edilemeyen ilçeler için '9999' kodunu kullanabilirsiniz."
}
]
}
}
Olası doğrulama hata tiplerinden bazıları:
uuid_parsing:idgeçerli bir UUID değildir.string_pattern_mismatch:rapor_tarihiformatı hatalıdır.il_kodu_gecersizveyail_ilce_uyumsuz: il / ilçe bilgisi hatalıdır.iso_kodu_gecersiz: ülke kodu geçersizdir.
Örnek İstekler
Açık Tesis
curl -X POST "https://tesis-entegrasyon.tga.gov.tr/tesis-aylik-rapor/" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"id": "550e8400-e29b-41d4-a716-446655440000",
"rapor_tarihi": "2025-10",
"il_kodu": "34",
"ilce_kodu": "1103",
"oda_sayisi": 100,
"yatak_sayisi": 100,
"tesisin_aylik_acik_oldugu_gun_sayisi": 30,
"aylik_ortalama_fiyat": 100,
"data": [
{
"iso_kodu": "TUR",
"haftaici_toplam_giris_yapan_misafir": 200,
"haftasonu_toplam_giris_yapan_misafir": 200,
"haftaici_toplam_geceleme": 200,
"haftasonu_toplam_geceleme": 200,
"haftaici_toplam_satilan_oda_gece": 200,
"haftasonu_toplam_satilan_oda_gece": 200
}
]
}'
Kapalı Tesis
curl -X POST "https://tesis-entegrasyon.tga.gov.tr/tesis-aylik-rapor/" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"id": "550e8400-e29b-41d4-a716-446655440000",
"rapor_tarihi": "2025-11",
"il_kodu": "07",
"ilce_kodu": "1126",
"oda_sayisi": 80,
"yatak_sayisi": 160,
"tesisin_aylik_acik_oldugu_gun_sayisi": 0,
"data": []
}'
Açık Gün Sayısı Bilinmiyorsa
Kesin açık gün sayısı bilinmiyorsa, rapor ayının toplam gün sayısı gönderilir.
Aşağıdaki örnekte 2025-02 ayı 28 gündür.
curl -X POST "https://tesis-entegrasyon.tga.gov.tr/tesis-aylik-rapor/" \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_API_KEY" \
-d '{
"id": "550e8400-e29b-41d4-a716-446655440000",
"rapor_tarihi": "2025-02",
"il_kodu": "34",
"ilce_kodu": "1103",
"oda_sayisi": 50,
"yatak_sayisi": 120,
"tesisin_aylik_acik_oldugu_gun_sayisi": 28,
"aylik_ortalama_fiyat": 100,
"data": [
{
"iso_kodu": "TUR",
"haftaici_toplam_giris_yapan_misafir": 100,
"haftasonu_toplam_giris_yapan_misafir": 80,
"haftaici_toplam_geceleme": 90,
"haftasonu_toplam_geceleme": 70,
"haftaici_toplam_satilan_oda_gece": 50,
"haftasonu_toplam_satilan_oda_gece": 40
}
]
}'
Kabul edilen ülke kodları (iso_kodu)
iso_kodu alanında ISO 3166-1 alpha-3 formatında (büyük harf) resmi üç harfli kodlar kullanılır.
Kod listesi aşağıda verilmiştir. Buna ek olarak şu değerler de kabul edilir:
XKX (Kosova), CTR (Kuzey Kıbrıs Türk Cumhuriyeti) ve tüm diğer ülkeleri tek satırda toplamak için
OTHER.
| Alpha-3 | Ülke / bölge adı |
|---|
Lokasyon Kodu Notu
il_kodu ve ilce_kodu değerleri İçişleri Bakanlığı (NVİ - MERNİS)
/ TÜİK standartlarına uygun resmi kodlar olarak gönderilmelidir. Kodlar string formatındadır;
bu nedenle başında sıfır olan değerler varsa sıfırları korunmalıdır.
Güncel il ve ilçe kodları listesine buradan ulaşabilirsiniz: