Ana içeriğe geç
v26.3

TSE ve Maliye

01.01.2020 tarihinden bu yana Almanya'da kasa sistemleri için bir Teknik Güvenlik Donanımı (TSE) zorunludur (Kasa Güvenlik Yönetmeliği (KassenSichV), Vergi Kanunu (AO) § 146a). DiKAS, § 146a AO'ya ilişkin AEAO uyarınca kasayla ilgili tüm işlemleri sertifikalı bir TSE ile imzalar.

Vergi denetçileri için:TSE Uyumluluğu — Vergi denetçileri için dokümantasyon (ayrıntılı teknik açıklama)

Kullanıcılar için:Kullanım kılavuzundaki TSE talimatı (kurulum ve kullanım)

Vergi danışmanlığı değildir

Bu sayfadaki süreler, yükümlülükler ve vergilerle ilgili bilgiler yol göstericidir ve vergi danışmanlığının yerine geçmez. Yasal ayrıntıları mali müşaviriniz veya vergi dairenizle netleştirin.


TSE nedir?

TSE, her kasa işlemini dijital olarak imzalayan sertifikalı bir güvenlik modülüdür. Maliye bununla kasa verilerinin sonradan manipüle edilip edilmediğini kontrol edebilir.

DiKAS'ta TSE

DiKAS kasayla ilgili tüm işlemleri imzalar — yalnızca faturaları değil:

İşlem ProcessType Entity Açıklama
Fişler Kassenbeleg-V1 Receipt Her ödeme (Doğrudan satış, masa ödemesi)
İptaller Kassenbeleg-V1 Receipt Her fiş iptali
Siparişler Bestellung-V1 OpenBon Masa servisindeki her sipariş
Toplu siparişler Bestellung-V1 OpenBon Toplu siparişler (imza Lead-Bon üzerinde)
Vardiya açılışı SonstigerVorgang Exchange Her vardiya açılışı
Vardiya kapanışı SonstigerVorgang Exchange Her vardiya kapanışı
Gün sonu raporları SonstigerVorgang DayClose Her Z raporu
Giderler SonstigerVorgang Spending Her nakit çıkışı

Mimari

İmzalama akışı

Handler (z.B. ProcessDirectSaleCommand)
    → TseSigningHelper.SignReceiptAsync()
        → BackendConfig laden (TSE-fähig?)
        → ITseService.IsAvailable prüfen
        → ProcessData aufbauen
        → ClientId auflösen (CashRegisterId → BonIdServer → "1")
        → ITseService.SignReceiptAsync() [5s Timeout]
        → TSE-Felder auf Entity speichern
        → HandleOutageLogAsync() (Ausfallprotokoll)

Giderler (Spendings): SonstigerVorgang olarak imzalanır; işlem metni AccountMode'a göre belirlenir:

AccountMode TSE işlem türü
1 (Gider) AVSonstAusgabe
2 (Kasa→Banka) AVTransfer
3 (Banka→Kasa) AVSonstEinlage
4 (Havale) AVSonstAusgabe

Bileşenler

Bileşen Açıklama
TseSigningHelper Tüm TSE imzalamaları için merkezi statik sınıf
ITseService TSE erişimi için arayüz (IsAvailable, Sign, Export)
TseServiceRouter Aktif TSE'ye yönlendirme: önce fiskaly bulut TSE'si, sonra ağ TSE'si, ardından yerel Swissbit donanımı tercih edilir
FiskalyTseService fiskaly bulut TSE'si (SIGN DE) — internet üzerinden imzalar, USB cihazı gerekmez
SwissbitTseService Yerel Swissbit USB-TSE
TseProxyService Ağ TSE'si: TSE ana bilgisayarı (Host) olarak görev yapan başka bir DiKAS kasası üzerinden imzalar (BonIdServer)
TseInitializationService TSE ilk başlatma
ITseDataHolder İmzalanan tüm varlıklarda 9 TSE alanı içeren arayüz
TseOutageLog Arıza protokolü varlığı
TseConfig TSE yapılandırması (PublicKey, Serial, SigAlg, PIN'ler)

ProcessData formatları

Aşağıdaki karakter dizileri TSE'ye iletilir ve TSE tarafından imzalanır. Ayrıntılı, denetçi odaklı açıklama için bkz. TSE Uyumluluğu dokümantasyonu, Bölüm 4.

Kassenbeleg-V1 — beş brüt tutardan oluşan sabit bir vergi bölümü (%19 / %7 / %10,7 / %5,5 / %0), ardından <Tutar>:<Bar|Unbar> biçiminde ödeme bölümü (önce nakit ödemeler):

Beleg^<19%>_<7%>_<10,7%>_<5,5%>_<0%>^<Zahlungen>
Beispiel: Beleg^47.60_12.40_0.00_0.00_0.00^60.00:Bar

Bestellung-V1 — her sipariş kalemi için bir satır; tanım tırnak içinde yer alır, fiyat brüt birim fiyattır:

<Menge>;"<Bezeichnung>";<Brutto-Einzelpreis>
Beispiel:
2;"Cola";3.50
1;"Pizza Salami";11.50

SonstigerVorgang — işlem kısaltması ve veriler, ^ ile ayrılmış:

<Vorgang>^<Daten>
Beispiel: AVKassenschnitt^Tagesabschluss^1523.90

DiKAS bunun için altı işlem kısaltması kullanır: AVSichOpen (vardiya açılışı), AVSichClose (vardiya kapanışı), AVKassenschnitt (gün sonu raporu), AVSonstAusgabe (gider/nakit çıkışı), AVSonstEinlage (nakit girişi) ve AVTransfer (para transferi). Bir iptal, SonstigerVorgang değildir — negatif tutarlara sahip bir Kassenbeleg-V1'dir.

QR kod formatı (DSFinV-K Ek I)

V0;{KassenSerial};{ProcessType};{ProcessData};{TransNr};{SignZähler};{Start};{Ende};{SigAlg};{LogFormat};{Signatur};{PublicKey}

Kurulum

Yönetici → Ayarlar → TSE ekranı durumu ve dışa aktarımları gösterir. Yerel donanım TSE'si tek bir „TSE'yi şimdi etkinleştir" işlemiyle devreye alınır. DiKAS yeni, bilinen bir DiKAS TSE'sini ve başka bir sistemden devralınan TSE'yi otomatik olarak ayırt eder.

Bulut TSE'si (fiskaly)

USB cihazı gerekmez — imzalama, internet üzerinden sertifikalı fiskaly bulutu (SIGN DE) ile gerçekleşir. Erişim bilgileri (API-Key, API-Secret, TSS-ID, Client-ID) sunucu yapılandırmasında bulunur (appsettings içinde Tse:* ya da ortam değişkenleri), Test veya Live ortamı seçilebilir. Cloud-TSE'si etkinleştirilmiş DiKAS Cloud paketlerinde bu zaten önceden yapılandırılmıştır — başka bir işlem gerekmez.

Bir bulut TSE'si yapılandırıldığında, otomatik olarak önceliklidir.

Donanım TSE'si (Swissbit)

Kasa bilgisayarında veya cihazda (Appliance) USB bellek:

  1. Swissbit TSE'yi takın
  2. TSE'nin yerel yolunu (bağlama noktasını) sunucu yapılandırmasında belirtin
  3. Yönetici → Ayarlar → TSE„TSE'yi şimdi etkinleştir" düğmesine tıklayın

Yapılandırılmış ancak bilinmeyen bir TSE'de DiKAS oturum açmayı denemeden durur. Önceki sistemin değiştirilmiş erişim bilgilerini kaydetmek tam olarak bir deneme başlatır. Başarılı devirden sonra DiKAS, TSE'yi DiKAS erişim bilgilerine geçirir ve kasayı istemci olarak kaydeder.

TSE ağı / Verbund (birden fazla kasa, tek TSE)

Birden fazla kasası olan ve tek bir TSE'yi paylaşan işletmeler için: Bir kasa TSE ana bilgisayarı (Host) olur, diğerleri yerel ağ üzerinden bu kasa aracılığıyla imzalar.

  1. Yönetici → Ayarlar → Finans → TSE
  2. „TSE sunucusu" alanına, TSE ana bilgisayarı (Host) olarak görev yapan kasanın adresini girin (örn. https://kasse1.local)
  3. „TSE aktif"i etkinleştirin

Arızada otomatik devre dışı bırakma

TSE başlatma işlemi başlangıçta birden fazla kez başarısız olursa, TSE otomatik olarak devre dışı kalır ve kasa üst bilgisinde „TSE devre dışı" ifadesi görünür. Kullanıcılar için ayrıntılar: Günlük kasa kullanımında TSE.

API Uç Noktaları

Yöntem Uç Nokta Açıklama
GET /api/v1/tse/info TSE durum bilgileri (kapasite, sertifika, imzalar)
GET /api/v1/tse/config TSE yapılandırmasını oku
PUT /api/v1/tse/config TSE yapılandırmasını güncelle
POST /api/v1/tse/activate Yerel TSE'yi atomik olarak algıla, kur ve başarıdan sonra etkinleştir
POST /api/v1/tse/initialize TSE'yi başlat
GET /api/v1/tse/export/tar TSE günlük verilerini TAR olarak dışa aktar (isteğe bağlı ?startDate=&endDate=)

Fiş üzerindeki TSE verileri

Her fiş, TSE verilerini içerir:

══════════════════════════════════
  BON Nr. 20260313-0042
──────────────────────────────────
  ...Artikel...
──────────────────────────────────
  TSE-Information:
  Signatur:   a8f3c2d1e5...
  Trans.-Nr:  12345
  Sign.-Zäh:  67890
  Start:      2026-03-13T18:30:00
  Ende:       2026-03-13T18:30:01
  Seriennr:   ABCDEF1234567890

  [QR-Code]
══════════════════════════════════

QR kodu, tüm TSE verilerini DSFinV-K formatında (Ek I) içerir ve maliye tarafından taranabilir.

DSFinV-K Dışa Aktarma

Kasa denetimi için DiKAS, verileri DSFinV-K (mali idarenin standart dijital arayüzü) formatında dışa aktarır:

  1. Yönetici → Ayarlar → Dışa aktar → DSFinV-K
  2. Dönem seçin
  3. „Dışa aktarma oluştur"
  4. Zorunlu tüm CSV dosyalarını içeren ZIP dosyası

GDPdU Dışa Aktarma

Dijital işletme denetimi için:

  1. Yönetici → Ayarlar → Dışa aktar → GDPdU
  2. Dönem seçin
  3. „Dışa aktarma oluştur"
  4. GDPdU uyumlu dışa aktarma dosyası

TSE arızası

TSE arızalandığında (arıza, ağ sorunu):

  1. DiKAS arızayı otomatik olarak kaydeder (TseOutageLog ile StartTime, Reason, AffectedTransactions)
  2. Ödeme alma engellenmez — işletme devam eder
  3. İlgili belge üzerindeki TseError alanı ayarlanır
  4. Yeniden kullanılabilir olduğunda, açık arıza kayıtları kapatılır (EndTime ayarlanır)
  5. Arıza protokolleri maliye için saklanır

Önemli: TSE arızasında, arızayı belgelemek ve zamanında gidermekle yükümlüsünüz. DiKAS belgelemeyi otomatik olarak yapar.

Kalite Güvencesi

TSE imzalama işlemi, otomatikleştirilmiş testlerle güvence altına alınmıştır. Diğerlerinin yanı sıra şunlar kontrol edilir:

  • Kassenbeleg-V1 için ProcessData formatları (tek/birden fazla vergi oranı, sıfır belge) ve Bestellung-V1
  • QR kod oluşturma (V0 formatı)
  • İmzalama akışı (TSE etkin, devre dışı, kullanılamaz)
  • Tutar biçimlendirmesi ve bir TSE arızası durumundaki davranış

TSE ile İlgili Sık Sorulan Sorular

Bir TSE'ye sahip olmak zorunda mıyım? Evet, 01.01.2020 tarihinden bu yana Almanya'da zorunludur.

DiKAS hangi TSE'yi destekler? Swissbit donanım TSE'sini (USB, yerinde), fiskaly bulut TSE'sini (SIGN DE, internet üzerinden) ve ağdaki TSE Verbund'unu (birden fazla kasa bir TSE'yi paylaşır) destekler.

Bir TSE ne kadar maliyetlidir? Bu, seçilen çözüme bağlıdır: Donanım TSE'si tek seferlik bir satın almadır, bulut TSE'si ise düzenli olarak faturalandırılır. Güncel koşulları DiKAS'tan öğrenebilirsiniz.

Maliye verilerimi denetleyebilir mi? Evet, DSFinV-K, GDPdU ve TSE-TAR dışa aktarma üzerinden. DiKAS buna hazırdır.

Bir TSE arızası kasayı engeller mi? Hayır. DiKAS arızayı kaydeder ve çalışmaya devam eder. Arıza zamanında giderilmelidir.


İleri Okuma Belgeleri

Vergi denetçileri için TSE Uyumluluğu — İşletme denetimi için ayrıntılı teknik dokümantasyon → Kullanıcılar için TSE talimatı — Kurulum ve kullanım → Maliyeye kasa bildirimi — Kasayı Mein ELSTER (vergi dairesinin çevrimiçi portalı) üzerinden bildirme (§ 146a Abs. 4 AO) → Eklenti geliştirme — Kendi modüllerinizi oluşturma