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 tamamen TSE uyumludur ve §146a AO'ya ilişkin AEAO uyarınca kasayla ilgili tüm işlemleri 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)


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 → Finans → TSE ekranı, TSE durumunu ve dışa aktarmaları (TSE-TAR, DSFinV-K, GDPdU) gösterir. Orada tam olarak iki ayar bulunur: „TSE aktif" anahtarı ve isteğe bağlı „TSE sunucusu" alanı. Bir „TSE türü" açılır menüsü yoktur — hangi TSE'nin kullanılacağı sunucu yapılandırmasından belirlenir. DiKAS başlangıçta şu sırayla kontrol eder: Bulut TSE'si (fiskaly) → TSE sunucusu (Verbund) → yerel Swissbit-TSE.

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 → Finans → TSE → „TSE aktif"i etkinleştirin

Başlatma sırasında DiKAS, PIN'leri/PUK'ları kendisi belirler (cihaz başına rastgele) ve kasayı istemci olarak kaydeder. Kasa kimliği lisanstan gelir — manuel bir seri numarası alanı yoktur.

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/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