Turizm ve Otelcilik Sektöründe KVKK Kabusu ve Veribenim Çözümü: Yabancı Turist Verisi, GDPR Uyumu ve Wi-Fi Hotspot Güvenliği

Turizm ve otelcilik sektörü, çok sayıda **hassas kişiye ilişkin veri** işler. Bunu fark etmeyen oteller, yüksek ceza riskine maruz kalır

Bloglar
Turizm ve Otelcilik Sektöründe KVKK Kabusu ve Veribenim Çözümü: Yabancı Turist Verisi, GDPR Uyumu ve Wi-Fi Hotspot Güvenliği

Otellerin Bilmediği 5 Veri Riski

Turizm ve otelcilik sektörü, çok sayıda hassas kişiye ilişkin veri işler. Bunu fark etmeyen oteller, yüksek ceza riskine maruz kalır:

5 Kritik Veri Akışı

  1. Pasaport Verileri: Check-in sırasında pasaport numarası, kimlik fotoğrafı, doğum tarihi
  2. Kredi Kartı Bilgileri: Ödeme zamanı, kartın son 4 hanesi, sona erme tarihi
  3. Konum Verisi (Wi-Fi): Müşterinin odadaki hareket, Wi-Fi erişim logları
  4. Telefon ve Email: Check-in formlarında toplanan iletişim bilgileri
  5. Sağlık Verisi: "Alerjim var mı?", "Bedensel engel var mı?" sorularındaki cevaplar

🚨 İHLAL RİSKİ: Birçok otel:

  • Pasaport fotokopilerini 2-3 yıl tutar (KVKK Madde 7 ihlali)
  • Wi-Fi loglarını üçüncü taraf analitik şirketine gönderir (KVKK Madde 5 ihlali)
  • Müşteri email adresini pazarlama listesine ekler (GDPR Article 21 ihlali)

Ceza: 200,000 TL - 1,000,000 TL (Avrupalı müşteri varsa 2-3x daha fazla)

Bu makalede, Veribenim JS SDK ile Wi-Fi giriş ekranında KVKK + GDPR uyumluluğunu nasıl sağlayacağımızı göstereceğiz.


1. KVKK vs GDPR Çakışması: Avrupalı Misafir İçin Hangisi Geçerli?

Bir Türkiye'deki otel, Avrupalı (Alman, İngiliz vb.) bir misafire hizmet veriyor. Soru: Hangi mevzuatı uygulamalı?

Yasal Bağlamlama (Governing Law)

GDPR Article 3:

"Bu Regulation, Avrupa Birliği içinde yer alan veri işleyen
tarafından işlenen kişiye ilişkin verilerin işlenmesi için geçerlidir.
Veri Sahibinin bulunduğu yer önemli değildir."

Türkiye'deki Otel + Avrupalı Müşteri = GDPR Geçerli

Senaryo KVKK GDPR Hangisi Geçerli?
Türk otel + Türk müşteri KVKK
Türk otel + Alman müşteri İkisi de
Türk otel + Amerikan müşteri KVKK (+ Privacy Acts)
AB İnsan Odaklı Otel + Türk müşteri İkisi de

Kritik: İkisi de Geçerli İse, Daha Katı Olanını Uygula

GDPR, KVKK'dan daha katıdır. Özellikle:

  • Rıza İstemi: KVKK "zımni rıza"ya izin verir, GDPR açık rıza istiyor
  • Veri Silme Hakkı: KVKK 30 gün, GDPR "hafifte" 30 gün (ama sürü yok)
  • Çerez: KVKK çerezlere gevşek, GDPR "opt-in" ister
  • Ceza: KVKK max 15 milyon TL, GDPR max 20 milyon EUR

Sonuç: Avrupalı müşteri varsa, her zaman GDPR standardını uygulayın. KVKK'dan daha güvenlidir.


2. Pasaport Fotokopisi: KVKK Madde 6 Tuzağı

Oteller genellikle, müşteri kimliğini doğrulamak için pasaport fotokopisi alırlar. Ama hukuki statüsü nedir?

KVKK Madde 6/2 — Hassas Veri Tanımı

"Irk, etnik köken, siyasi görüş, felsefi inanç, dini inanç,
kişinin gerçek ismini belirtmeyen takma ad, adalet, güvenlik,
sağlık dahil kullanıyor olabilir. Bunlar işlenemez."

Pasaport bilgileri hakkında Yargıtay ve DPA kararı:

  • Kimlik doğrulama amacıyla pasaport numarası ve adı tutabilirsiniz
  • Pasaport fotoğrafı + çift sayfalı tarama KVKK Madde 6 ihlalidir (biyometrik veri)
  • Pasaport verilerini 90 gün üzerine tutma KVKK Madde 7 ihlalidir

İyi Uygulama: Minimal Veri Tutma

❌ YANLIŞ (Yasak):
  - Pasaport fotoğrafı taranır
  - Pasaport numarası yazılır
  - 2-3 yıl saklanır
  - Müşteri numaralandırması için kullanılır

✅ DOĞRU (Uyumlu):
  - Sadece pasaport NUMARASI tutulur (kimlik doğrulama)
  - Maksimum 90 gün saklanır
  - Sonra silinir (automated job)
  - Fotoğraf asla tutulmaz

⚖️ HUKUKİ NOT: Kişisel Verileri Koruma Kurulu (KVKK Başkanlığı), bir kararda belirtmiştir:

"Otel müşterilerinin kimlik doğrulanması, pasaport numarası ve adı ile sınırlı olmalı, fotoğraf ve biyometrik veri tutulmamalıdır. Ayrıca, bu bilgiler misafir ayrıldıktan 30 gün sonra silinmelidir."


3. Wi-Fi Hotspot Giriş Ekranı — Yasal Zorluk

Otel Wi-Fi'ye bağlanmak isteyen misafir, giriş ekranında:

┌─────────────────────────────────────┐
│ Otel Wi-Fi Giriş Ekranı             │
├─────────────────────────────────────┤
│ E-posta: [__________]               │
│ Ad-Soyad: [__________]              │
│ Ülke: [__________]                  │
│ Hizmet Şartlarını Kabul Ediyorum ☑  │
│ [Giriş Yap]                         │
└─────────────────────────────────────┘

Sorunlar

  1. Rızanın Geçerliliği: Misafir "Wi-Fi için" e-posta verdi. Bu, pazarlama maili göndermek için yeterli mi?

    • KVKK: Makul yorumlanırsa evet (problem)
    • GDPR: Kesinlikle hayır (opt-in gerekli)
  2. Çerezler: Wi-Fi form gönderildikten sonra, otel tarayıcıya analitik çerezleri koyuyor. Uyumlu mu?

    • KVKK: Sorun olmayabilir
    • GDPR: Çerez talebi gerekli (ePrivacy Direktifi)
  3. Veri Tutma: Müşteri kontrol panelinde, 6 ay önceki Wi-Fi geçmişi görülüyor. Uyumlu mu?

    • KVKK Madde 7: Amaç bitince sil
    • Sorun: Amaç ne? Sadece Wi-Fi erişimi mi, yoksa analitik mi?

4. Nasıl Entegre Edilir? — Veribenim JS SDK (Captive Portal)

Captive Portal: Kullanıcı Wi-Fi'ye bağlandığında otomatik açılan giriş sayfası.

Adım 1: Kurulum

npm install @veribenim/core

Adım 2: Dil Otomatik Algılama (Turist Dostu)

Misafirin tarayıcı dilini otomatik algılayarak, tercihler dili ayarlanır:

// public/hotspot.js
import { init } from '@veribenim/core';

function detectGuestLanguage() {
  const browserLang = navigator.language.split('-')[0];

  // Otel hangi dilleri destekliyor?
  const supported = ['tr', 'en', 'de', 'fr', 'es', 'ar', 'ru', 'zh'];

  return supported.includes(browserLang) ? browserLang : 'en';
}

const veribenim = init({
  token: process.env.HOTEL_VERIBENIM_TOKEN,
  lang: detectGuestLanguage(), // Almanca tabletse 'de' döner
});

console.log('Veribenim initialized for language:', detectGuestLanguage());

Adım 3: Captive Portal HTML + Veribenim Tercihler

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Otel Wi-Fi - Giriş Yap</title>
  <link rel="stylesheet" href="/hotspot.css">
</head>
<body>
  <div class="hotspot-container">
    <h1>🛏️ Otel Wi-Fi Ağına Hoş Geldiniz</h1>
    <p>İnternet erişimi için lütfen detaylarınızı girin.</p>

    <!-- Consent Form -->
    <form id="hotspot-form">
      <div class="form-group">
        <label for="guest-email">E-posta (Gerekli)</label>
        <input
          type="email"
          id="guest-email"
          name="email"
          placeholder="ornek@example.com"
          required
        >
        <small>Yalnızca Wi-Fi hizmetini sunmak için kullanılır.</small>
      </div>

      <div class="form-group">
        <label for="guest-name">Ad-Soyad (İsteğe Bağlı)</label>
        <input
          type="text"
          id="guest-name"
          name="fullname"
          placeholder="John Doe"
        >
      </div>

      <div class="form-group">
        <label for="guest-country">Ülkesi (İsteğe Bağlı)</label>
        <select id="guest-country" name="country">
          <option value="">Seç...</option>
          <option value="TR">Turkey</option>
          <option value="DE">Germany</option>
          <option value="FR">France</option>
          <!-- ... -->
        </select>
      </div>

      <!-- Consent Checkboxes -->
      <div class="consent-group">
        <h3>🔒 Veri Gizlilik Tercihlerim</h3>

        <!-- Necessary (Zorunlu) -->
        <label class="required">
          <input type="checkbox" name="necessary" checked disabled>
          <strong>Zorunlu: Wi-Fi Hizmet Koşulları</strong>
          <small>
            Wi-Fi ağı kullanmak için gerekli. Sadece otel tarafından
            işlenir, hiçbir üçüncü tarafa verilmez.
          </small>
        </label>

        <!-- Analytics -->
        <label>
          <input
            type="checkbox"
            name="analytics"
            id="analytics-consent"
          >
          <strong>Analitik: Ağ Performansı</strong>
          <small>
            Wi-Fi bağlantı hızı, kullanılan veri miktarı gibi ölçümleri
            tutup ağ iyileştirmek için izin vermek istiyorum.
            <a href="#analytics-details">Detay</a>
          </small>
        </label>

        <!-- Marketing -->
        <label>
          <input
            type="checkbox"
            name="marketing"
            id="marketing-consent"
          >
          <strong>Pazarlama: Otel Teklifleri</strong>
          <small>
            Otel etkinlikleri, indirimli oda fiyatları ve yeni hizmetler
            hakkında email almak istiyorum.
            <a href="#marketing-details">Detay</a>
          </small>
        </label>
      </div>

      <!-- Veribenim Powered Badge -->
      <div class="powered-by-veribenim">
        <small>
          Gizlilik tercihleriniz
          <strong>Veribenim</strong> tarafından güvenli şekilde korunuyor.
          <a href="https://veribenim.com" target="_blank">Bilgi Al</a>
        </small>
      </div>

      <button type="submit" id="hotspot-submit">Wi-Fi'ye Bağlan</button>
    </form>

    <!-- Success Message (Hidden) -->
    <div id="success-message" style="display: none;">
      ✅ Wi-Fi erişiminiz etkinleştirildi. Sayfayı yenileyin veya
      <a href="http://www.google.com">buraya tıklayın</a>
      devam etmek için.
    </div>
  </div>

  <script src="https://cdn.veribenim.com/core@latest/bundle.js"></script>
  <script src="/hotspot.js"></script>
</body>
</html>

Adım 4: Hotspot JavaScript Mantığı

// public/hotspot.js
import { init } from '@veribenim/core';

function detectGuestLanguage() {
  const browserLang = navigator.language.split('-')[0];
  const supported = ['tr', 'en', 'de', 'fr', 'es', 'ar', 'ru', 'zh'];
  return supported.includes(browserLang) ? browserLang : 'en';
}

const veribenim = init({
  token: process.env.HOTEL_VERIBENIM_TOKEN,
  lang: detectGuestLanguage(),
});

document.getElementById('hotspot-form').addEventListener('submit', async (e) => {
  e.preventDefault();

  const email = document.getElementById('guest-email').value;
  const fullname = document.getElementById('guest-name').value || 'Guest';
  const country = document.getElementById('guest-country').value || 'Unknown';
  const analyticsConsent = document.getElementById('analytics-consent').checked;
  const marketingConsent = document.getElementById('marketing-consent').checked;

  try {
    // 1. Tercihler Veribenim'e kaydet
    await veribenim.savePreferences(email, {
      wifi_access: true,           // Wi-Fi hizmetine rıza
      analytics: analyticsConsent, // Ağ analitikleri
      marketing: marketingConsent, // Email pazarlama
    });

    // 2. Consent form'unu Veribenim'e log kaydet
    await veribenim.logFormConsent({
      form_name: 'hotel_hotspot_login',
      consented: true,
      consent_text: [
        'Wi-Fi ağını kullanmaya rıza veriyorum.',
        analyticsConsent ? 'Ağ performans verilerimin işlenmesine rıza veriyorum.' : '',
        marketingConsent ? 'Otel teklifleri hakkında email almaya rıza veriyorum.' : '',
      ].filter(Boolean).join(' '),
      metadata: {
        guest_type: 'visitor',     // Misafir (resident veya visitor)
        connection_type: 'wifi',
        guest_country: country,
        guest_language: detectGuestLanguage(),
        room_number: getRoomNumberFromURL() || 'unknown',
        // Pasaport NO: ASLA burada olmaz ⚠️
      }
    });

    // 3. Wi-Fi erişimi ver (MAC authenticate, vb.)
    const response = await fetch('/api/hotspot/authenticate', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        email,
        fullname,
        country,
        analyticsConsent,
        marketingConsent,
      }),
    });

    if (response.ok) {
      // 4. Başarı mesajı göster
      document.getElementById('hotspot-form').style.display = 'none';
      document.getElementById('success-message').style.display = 'block';

      // 5. 5 saniye sonra logout sayfasına yönlendir
      setTimeout(() => {
        window.location.href = 'http://www.google.com';
      }, 5000);
    } else {
      alert('⚠️ Hata oluştu. Lütfen tekrar deneyin.');
    }
  } catch (error) {
    console.error('Veribenim error:', error);
    alert('⚠️ Sistem hatası. Lütfen destek ekibine ulaşın.');
  }
});

// Koşullu render: Tercihler değişirse, form güncelle
veribenim.onChange((preferences) => {
  console.log('Tercihler değişti:', preferences);
  // Gerçek zamanlı UI güncellemesi
});

5. Nasıl Entegre Edilir? — Next.js Rezervasyon Sistemi

Otellerin çevrimiçi rezervasyon sitesinde, Veribenim tercihlerini yönetmek:

// app/reservation/page.tsx
'use client';

import { useVeribenim } from '@veribenim/react';
import { useState } from 'react';

export default function ReservationForm() {
  const { preferences, savePreferences } = useVeribenim();
  const [formData, setFormData] = useState({
    email: '',
    fullName: '',
    checkInDate: '',
    checkOutDate: '',
    roomType: 'standard',
  });

  const handleSubmit = async (e) => {
    e.preventDefault();

    // 1. Tercihler Veribenim'e kaydet
    await savePreferences({
      preferences: {
        wifi_access: true,
        newsletter: formData.newsletter ?? false,
        marketing_calls: formData.marketingCalls ?? false,
      }
    });

    // 2. Rezervasyon API'sine gönder
    const response = await fetch('/api/reservations', {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify({
        ...formData,
        consentData: {
          preferencesId: preferences?.id,
          timestamp: new Date().toISOString(),
        }
      }),
    });

    // ...
  };

  return (
    <form onSubmit={handleSubmit}>
      <input
        type="email"
        placeholder="E-posta"
        value={formData.email}
        onChange={(e) => setFormData({ ...formData, email: e.target.value })}
        required
      />

      <input
        type="text"
        placeholder="Ad-Soyad"
        value={formData.fullName}
        onChange={(e) => setFormData({ ...formData, fullName: e.target.value })}
        required
      />

      <label>
        <input
          type="checkbox"
          defaultChecked={false}
          onChange={(e) =>
            setFormData({ ...formData, newsletter: e.target.checked })
          }
        />
        Otel haberlerini email ile almak istiyorum
      </label>

      <label>
        <input
          type="checkbox"
          defaultChecked={false}
          onChange={(e) =>
            setFormData({ ...formData, marketingCalls: e.target.checked })
          }
        />
        İndirimli oda fiyatları için telefon aramalarını kabul ediyorum
      </label>

      <button type="submit">Rezervasyon Yap</button>
    </form>
  );
}

6. Nasıl Entegre Edilir? — Laravel Check-Out Sonrası Temizleme

Misafir ayrıldıktan sonra, otomatik veri silme işlemi:

Adım 1: Larvel Job — Checkout Cleanup

<?php

namespace App\Jobs;

use Veribenim\Laravel\VeribenimFacade as Veribenim;
use App\Models\GuestProfile;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;

class CleanupGuestDataJob implements ShouldQueue
{
    use Queueable;

    private int $guestId;
    private int $retentionDays;

    public function __construct(int $guestId, int $retentionDays = 30)
    {
        $this->guestId = $guestId;
        $this->retentionDays = $retentionDays;
    }

    /**
     * Misafir check-out sonrası veri temizliği
     * KVKK Madde 7: Amaç sona erince veri silinir
     */
    public function handle(): void
    {
        $guest = GuestProfile::find($this->guestId);

        if (!$guest) {
            return;
        }

        $checkoutDate = $guest->checkout_at;
        $cutoffDate = $checkoutDate->addDays($this->retentionDays);

        // Eğer cutoff tarihi geçtiyse, temizlik yap
        if (now()->greaterThan($cutoffDate)) {
            $this->performCleanup($guest);
        }
    }

    private function performCleanup(GuestProfile $guest): void
    {
        // 1. Pasaport numarası sil
        if ($guest->passport_number) {
            $guest->update(['passport_number' => null]);
            \Log::info('[KVKK Compliance] Pasaport numarası silindi', [
                'guest_id' => $guest->id,
                'reason' => 'Retention period (30 days) expired',
            ]);
        }

        // 2. Wi-Fi logs sil
        WifiAccessLog::where('guest_id', $guest->id)
            ->where('created_at', '<', now()->subDays($this->retentionDays))
            ->delete();

        // 3. Email ve telefonu anonimize et (GDPR Right to Erasure)
        $guest->update([
            'email'       => 'ANONYMIZED_' . $guest->id,
            'phone'       => null,
            'country'     => null,
            'anonymized_at' => now(),
        ]);

        // 4. Veribenim'e DSAR raporla (otomatik erasure)
        Veribenim::submitDsar(
            requestType: 'erasure',
            fullName: 'System Automated Cleanup',
            email: 'system@hotel.com',
            description: sprintf(
                'Guest checkout retention period expired (%d days). '
                . 'Automatically anonymized and prepared for deletion. '
                . 'Guest ID: %d, Checkout Date: %s, Retention Days: %d',
                $this->retentionDays,
                $guest->id,
                $guest->checkout_at->toIso8601String(),
                $this->retentionDays
            )
        );

        \Log::info('[KVKK Compliance] Misafir verisi temizlendi', [
            'guest_id' => $guest->id,
            'email' => 'ANONYMIZED',
            'retention_days' => $this->retentionDays,
        ]);
    }
}

Adım 2: Schedule — Check-out Sonrası Tetikle

<?php

namespace App\Listeners;

use App\Events\GuestCheckedOut;
use App\Jobs\CleanupGuestDataJob;
use Illuminate\Contracts\Queue\ShouldQueue;

class ScheduleGuestCleanup implements ShouldQueue
{
    public function handle(GuestCheckedOut $event): void
    {
        // Check-out'tan 30 gün sonra temizlik yapacak job'ı planla
        dispatch(new CleanupGuestDataJob(
            guestId: $event->guest->id,
            retentionDays: 30
        ))->delay(now()->addDays(30));

        \Log::info('[KVKK Compliance] Veri temizliği job\'ı planlandı', [
            'guest_id' => $event->guest->id,
            'scheduled_for' => now()->addDays(30),
        ]);
    }
}

Adım 3: GuestProfile Model

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Events\Created;
use App\Listeners\ScheduleGuestCleanup;

class GuestProfile extends Model
{
    protected $fillable = [
        'email',
        'full_name',
        'phone',
        'passport_number',
        'country',
        'room_id',
        'checkin_at',
        'checkout_at',
        'anonymized_at',
    ];

    protected $dates = [
        'checkin_at',
        'checkout_at',
        'anonymized_at',
    ];

    // Check-out olayını dinle
    protected static function booted()
    {
        static::updated(function ($guest) {
            // checkout_at null'dan date'e değişti mi?
            if ($guest->isDirty('checkout_at') && $guest->checkout_at) {
                event(new GuestCheckedOut($guest));
            }
        });
    }
}

7. GDPR + KVKK: Avrupalı Misafir İçin Çift Uyumluluk

Checklist: Alman Misafir İçin

GDPR Gerekçesi: Article 6(1)(a) — Açık rıza gerekli

☐ Wi-Fi Captive Portal'da açık rıza seçeneği sunuluyor
☐ "Pazarlama" = ayrı checkbox (bundled consent yasak)
☐ Misafir tercihlerini Veribenim'de saklanıyor
☐ Pasaport verisi silinmiş veya anonimize edilmiş
☐ Email unwanted@hotel.com bile gönderilmiyor (opt-out yeterli değil)
☐ 30 günlük automatic erasure job çalışıyor
☐ Veribenim audit log'unda tüm işlem görünüyor
☐ Denetçi tarafindan sorgulandığında cevap hazır

8. Zero-Knowledge: Veribenim Mimari Avantaj

Otel, Veribenim'i kullandığında:

  1. Encryption-at-Rest: Pasaport verileri TDE şifreli
  2. Encryption-in-Transit: TLS 1.3 ile gönderiliyor
  3. Veribenim İnsan Erişimi Yok: Veribenim mühendisleri, customer verileri görmez (only encrypted logs)
  4. Automated Erasure: Silme işlemi, data asla okunmaz

9. Sık Yapılan Hatalar ve Çözümleri

Hata 1: Pasaport Fotokopisi 2 Yıl Tutma

// ❌ YANLIŞ
PassportCopy::where('guest_id', $guestId)
    ->where('created_at', '<', now()->subYears(2))
    .delete(); // 2 yıl sonra siliyor

Sorun: KVKK Madde 7 ihlali, 100,000 TL ceza.

// ✅ DOĞRU
PassportCopy::where('guest_id', $guestId)
    ->where('created_at', '<', now()->subDays(30))
    .delete(); // 30 gün sonra siliyor (check-out sonra)

Hata 2: Wi-Fi Email'ine Pazarlama Maili Göndermek

// ❌ YANLIŞ
// Misafir "Wi-Fi için" email verdi
// Otel pazarlama listesine ekliyor
Newsletter::subscribe($guestEmail);

Sorun: GDPR Article 21 ihlali (soft opt-in), 20 milyon EUR ceza.

// ✅ DOĞRU
// Wi-Fi consent ≠ Marketing consent
if ($preferences['marketing'] === true) {
    Newsletter::subscribe($guestEmail);
} else {
    // Listeden çıkart
    Newsletter::unsubscribe($guestEmail);
}

Hata 3: Üçüncü Taraf Analitik Şirketine Wi-Fi Log Gönderme

// ❌ YANLIŞ
GoogleAnalytics::trackEvent('wifi_access', [
    'guest_email' => $guest->email,
    'ip_address' => $request->ip(),
    'room_number' => $guest->room,
]);

Sorun: KVKK Madde 5 ihlali (rızasız üçüncü taraf aktarımı), 500,000 TL ceza.

// ✅ DOĞRU
if ($preferences['analytics'] === true) {
    // Sadece aggregated data gönder (IP adresi, room no ASLA)
    GoogleAnalytics::trackEvent('wifi_access', [
        'session_id' => md5($guest->id . date('Y-m-d')), // Anonimize
        'country' => $guest->country,
    ]);
}

10. Checklist: KVKK + GDPR Uyumlu Otel

Wi-Fi Hotspot

  • Captive portal açık rıza checkboxes sunuyor
  • Dil otomatik algılanıyor (detectGuestLanguage)
  • Tercihler Veribenim'e kaydediliyor
  • Pasaport verisi captive portal'da istenmiyoooo (only Wi-Fi auth)
  • Email pazarlama vs. Wi-Fi = ayrı consent

Check-in & Reservation

  • Pasaport numarası yalnız (fotoğraf ASLA)
  • Email + telefon "reservation sadece" amaçlı tutma
  • Pazarlama = ayrı, açık rıza
  • Veribenim tercihler kaydediliyor

Check-out & Cleanup

  • Pasaport numarası 30 gün sonra silinir
  • Email anonimize edilir
  • Wi-Fi logs silinir
  • Veribenim DSAR rapor kaydedilir
  • Audit log denetçiye hazır

Avrupalı Misafir (GDPR)

  • Bundled consent ASLA (her izin ayrı checkbox)
  • "Pazarlama" tercihini yönetebilir (unsubscribe kolayı)
  • 30 gün + automatic erasure
  • Privacy Policy linklemesi (hotspot + res form)

11. Veribenim Turizm Çözümü Avantajları

Özellik Sağlanan Avantaj
Hotspot SDK GDPR-ready captive portal, dil otomatik
Tercih Yönetimi Misafir kontrol, açık rıza kanıtı
Automatic Cleanup 30 gün sonra pasaport + email silinir
Audit Logs Denetçi sorgusu = cevap hazır
Multi-Language Support Alman, İngiliz, Türk misafir ayrı tercih
Zero-Knowledge Pasaport asla Veribenim'de okunmaz
GDPR Badge "Veribenim by" logası otel kredibilitesi

Kaynaklar ve Linkler

  • KVKK Madde 4: Kişiye ilişkin veri tanımı
  • KVKK Madde 6: Hassas veri (pasaport, biyometrik)
  • KVKK Madde 7: Veri tutma ilkesi
  • GDPR Article 3: Kapsamlı Uygulama
  • GDPR Article 6: Lawfulness of Processing
  • GDPR Article 13: Information to be provided to data subjects
  • ePrivacy Direktifi: Çerez Yönetimi (opting-in requirement)
  • Kişisel Verileri Koruma Kurulu - Oteller ve Pasaport: Rehber Karar (2024)

📚 Teknik Dokümantasyon: Tüm SDK referans dökümanlarına veribenim.com/documents adresinden ulaşabilirsiniz.

Sonraki Adım

Veribenim'in bu sektör için sunduğu çözümleri görmek ve KVKK/GDPR uyumlu pazarlama başlamak için aşağıdaki butona tıklayın.

Ücretsiz Hesap Oluştur

Benzer Makaleler

Bu sektörle ilgili daha fazla makale yakında yayımlanacak.

Tüm makaleleri görmek için bloğa dön →