# Dekretacja XML a KSEF

W celu zapewnienia pełnej zgodności z wymogami Krajowego Systemu e-Faktur, mechanizm dekretacji XML w systemie Falcon5 został rozszerzony o kluczowe identyfikatory KSeF oraz system oznaczeń statusu dokumentów. Umożliwia to zewnętrznym systemom finansowo-księgowym automatyczne wiązanie dekretów z fakturami w portalu ministerialnym oraz precyzyjną identyfikację dokumentów wystawionych poza systemem.

## 1. Nowe pola w strukturze XML

Poniższe znaczniki są dodawane do pliku dekretacji **wyłącznie w przypadku aktywnego modułu KSeF**:

<div class="horizontal-scroll-wrapper" id="bkmrk-nazwa-taga-xml-pole-"><div class="table-block-component"><div _ngcontent-ng-c2310012560="" class="table-block has-export-button is-at-scroll-start is-at-scroll-end"><div _ngcontent-ng-c2310012560="" class="table-content not-end-of-paragraph" data-hveid="0" data-ved="0CAAQ3ecQahgKEwjFoOug8YGTAxUAAAAAHQAAAAAQjQI" decode-data-ved="1" jslog="275421;track:impression,attention" not-end-of-paragraph=""><table data-path-to-node="6" style="width: 100.123464%;"><thead><tr><td style="width: 17.803637%;"><span data-path-to-node="6,0,0,0">Nazwa Taga XML</span></td><td style="width: 20.777546%;"><span data-path-to-node="6,0,1,0">Pole w ERP (oFak)</span></td><td style="width: 61.317003%;"><span data-path-to-node="6,0,2,0">Opis</span></td></tr></thead><tbody><tr><td style="width: 17.803637%;"><span data-path-to-node="6,1,0,0">**KsefId**</span></td><td style="width: 20.777546%;"><span data-path-to-node="6,1,1,0">`ksefid`</span></td><td style="width: 61.317003%;"><span data-path-to-node="6,1,2,0">Pełny numer identyfikacyjny nadany przez KSeF.</span></td></tr><tr><td style="width: 17.803637%;"><span data-path-to-node="6,2,0,0">**KsefAcquisitionDate**</span></td><td style="width: 20.777546%;"><span data-path-to-node="6,2,1,0">`ksef_create_dt`</span></td><td style="width: 61.317003%;"><span data-path-to-node="6,2,2,0">Data przyjęcia dokumentu przez system KSeF (YYYY-MM-DD). W przypadku PZ oraz innych dokumentów, które nie posiadają `ksef_create_dt`, datę pobiera się z numeru `ksefid`.</span></td></tr><tr><td style="width: 17.803637%;"><span data-path-to-node="6,3,0,0">**KsefStatus**</span></td><td style="width: 20.777546%;"><span data-path-to-node="6,3,1,0">`ksefstatus`</span></td><td style="width: 61.317003%;"><span data-path-to-node="6,3,2,0">Kod statusu dokumentu w systemie (np. 1-Wysłany, 2-Przyjęty).</span></td></tr><tr><td style="width: 17.803637%;"><span data-path-to-node="6,4,0,0">**KsefOffline**</span></td><td style="width: 20.777546%;"><span data-path-to-node="6,4,1,0">`is_ksef_offline`</span></td><td style="width: 61.317003%;"><span data-path-to-node="6,4,2,0">Wartość logiczna: **1** (dokument wystawiony w trybie offline) lub 0 (online).</span></td></tr></tbody></table>

</div><div _ngcontent-ng-c2310012560="" class="table-footer hide-from-message-actions" hide-from-message-actions=""><button class="mdc-button mat-mdc-button-base export-sheets-button-container mat-mdc-button mat-unthemed ng-star-inserted"><span class="mdc-button__label"><span class="export-sheets-button">Eksportuj do Arkuszy</span></span></button><button aria-label="Skopiuj tabelę" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button mat-unthemed ng-star-inserted" data-test-id="copy-table-button"></button></div></div></div></div>## 2. Oznaczenia dokumentów (BFK, DI)

W pliku dekretacji system stosuje następującą logikę oznaczeń, aby system księgowy mógł poprawnie zinterpretować pochodzenie dokumentu:

- **BFK (Bez Faktury KSeF):** Oznaczenie nadawane dokumentom zatwierdzonym, które mają status KSeF równy 0 (dokumenty wystawione poza systemem KSeF).
    
    <div data-ogsc="black" data-olk-copy-source="MessageBody">Przykład:</div><div data-ogsc="black">&lt;KsefStatus&gt;0&lt;/KsefStatus&gt;</div><div data-ogsc="black">&lt;KsefOffline&gt;0&lt;/KsefOffline&gt;</div><div data-ogsc="black">**&lt;KsefBFK&gt;1&lt;/KsefBFK&gt;**</div>
- **DI (Dokument Inny):** Oznaczenie dla dokumentów zatwierdzonych ze statusem KSeF &gt; 0, ale nieposiadających jeszcze nadanego numeru `KsefId` (np. dokumenty w trybie offline lub oczekujące na przetworzenie przez bramkę MF).
- **Brak oznaczenia OFF:** Ze względu na brak automatycznej detekcji awarii ogólnokrajowej, system nie nadaje znacznika OFF, lecz stosuje procedurę opisaną w punkcie 4.

## 3. Zachowanie systemu w różnych trybach

- **Tryb Online:** Wszystkie powyższe pola są uzupełnione danymi z serwera MF.
- **Tryb Offline:** Pole `KsefId` oraz `KsefAcquisitionDate` pozostaną puste do momentu pomyślnej wysyłki i przetworzenia dokumentu przez KSeF. Dokumenty te otrzymają oznaczenie **DI**.
- **Aktualizacja danych:** Jeśli faktura zostanie wydekretowana w trybie offline, a następnie wysłana i zarejestrowana w KSeF, ponowna dekretacja **zaktualizuje** plik o dane KSeF.
- **Ważna informacja księgowa:** W przypadku zmiany statusu faktury z Offline na Online (nadanie KSeF ID), zaleca się weryfikację spójności danych w systemie księgowym, jeśli pierwotny dekret został już zaimportowany przed wysyłką faktury do KSeF.
- **Zaliczki:** Oznaczenia i pola KSeF są pomijane dla dokumentów zaliczkowych w dekretacji XML.

## 4. Komunikaty i kontrola operatora

Podczas generowania dekretacji XML, system weryfikuje status dokumentów. Jeżeli w wybranym zakresie znajdują się faktury wymagające wysyłki do KSeF, które nie posiadają jeszcze numeru identyfikacyjnego (status DI), pojawi się komunikat:

> **"W RAPORCIE ZNAJDĄ SIĘ DOKUMENTY NIEWYSŁANE DO KSEF"**

Operator ma do wyboru dwie opcje:

1. **Przerwij:** Pozwala wycofać się z generowania raportu, aby najpierw dokończyć proces wysyłki dokumentów do KSeF i uzyskać brakujące numery ID.
2. **Wygeneruj:** Pozwala na wygenerowanie raportu z dokumentami bez numerów ID (zostaną one oznaczone jako DI).

## 5. Przykład sekcji XML

<div _ngcontent-ng-c395260473="" class="code-block ng-tns-c395260473-74 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation" data-hveid="0" data-ved="0CAAQhtANahgKEwjFoOug8YGTAxUAAAAAHQAAAAAQkAI" decode-data-ved="1" id="bkmrk-xml" jslog="223238;track:impression,attention;BardVeMetadataKey:[["r_ede0e365817b99c7","c_fc2913d861f561a4",null,"rc_6b914fa2ed268cc9",null,null,"pl",null,1,null,null,1,0]]"><div _ngcontent-ng-c395260473="" class="code-block-decoration header-formatted gds-title-s ng-tns-c395260473-74 ng-star-inserted"><span class="ng-tns-c395260473-74">XML</span><div _ngcontent-ng-c395260473="" class="buttons ng-tns-c395260473-74 ng-star-inserted"><button aria-label="Kopiuj kod" class="mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c395260473-74 mat-unthemed ng-star-inserted"></button>  
</div></div><div _ngcontent-ng-c395260473="" class="formatted-code-block-internal-container ng-tns-c395260473-74"><div _ngcontent-ng-c395260473="" class="animated-opacity ng-tns-c395260473-74">  
</div></div></div>```
<Document>
    ...
    <KsefId>7393609427-20260113-0100C0371B65-00</KsefId>
    <KsefAcquisitionDate>2026-01-13</KsefAcquisitionDate>
    <KsefStatus>2</KsefStatus>
    <KsefOffline>0</KsefOffline>
    ...
</Document>
```