W niniejszym artykule wyjaśniono, w jaki sposób pola w portugalskim formacie SAF-T są mapowane na model obiektowy dokumentu (RetailForce DOM).
Opisana poniżej struktura danych XML jest zgodna ze strukturą określoną w rozporządzeniu nr 302/2016 oraz późniejszych publikacjach.
Jeśli pola są obowiązkowe w formacie SAF-T (PT), są one również obowiązkowe w RetailForce DOM.
Następujące tabele nie są obecnie generowane przez RetailForce
- Tabela kodów kont (GeneralLedgerAccounts),
- Tabela dostawców,
- Zapisy księgowe (GeneralLedgerEntries),
Header
Informacje zawarte w headerze pliku SAF-T pochodzą głównie z danych podstawowych w konfiguracji.
| Nazwa pola SAF-T (PT) | RetailForce DOM | Zlecenie | Uwagi | Format | Przykład | |
| <AuditFileVersion> | - | tak |
Aktualna wersja schematu XML Wartość jest zdefiniowana (na stałe) w wersji release RetailForce |
Tekst 10 | 1.04_01 | |
| <CompanyID> | Numer identyfikacyjny przedsiębiorstwa | tak | Numer rejestracji handlowej przedsiębiorstwa | Tekst 50 | 513076549 | |
| <Numer rejestracji podatkowej> | Numer podatkowy przedsiębiorstwa | tak | Portugalski numer NIF (bez spacji ani prefiksu kraju) | Int 9 | 513076549 | |
| <Podstawa rozliczeń podatkowo-księgowych> | - | tak |
Ustawienie warunkowe w konfiguracji:
|
Tekst 1 | R | |
| <Nazwa firmy> | NazwaFirm | tak | Nazwa firmy podatnika | Tekst 100 | XYZ Retail | |
| <Nazwa firmy> | b.d. | brak | Nazwa handlowa podatnika | Tekst 60 | Najlepszy sklep | |
| <Adres firmy> | Adres firmy | tak | Adres podatnika | - | ||
| <Numer budynku> | - | nie | Tekst 10 | 85 | ||
| <Nazwa ulicy> | AdresFirmowy.Ulica | nie | Tekst 200 | R. de Belém | ||
| <Szczegóły adresu> |
AdresFirmowy.Ulica + CompanyAddress.StreetNumber |
tak |
Musi zawierać
jeśli dotyczy |
Tekst 210 | R. de Belém, 100 | |
| <Miasto> | AdresFirmowy.Miasto | tak | Tekst 50 | Póvoa de Santa Catarina | ||
| <KOD pocztowy> | Adres firmy.PostalCode | tak | Tekst 8 | 3140-584 | ||
| <Region> | b.d. | nie | Tekst 50 | |||
| <Kraj> | Stała wartość „PT” | tak | Tekst 2 | PT | ||
| <Rok obrotowy> | Miesiąc rozpoczęcia roku obrotowego | tak | obliczany na podstawie miesiąca rozpoczęcia roku obrotowego | Int 4 | 2026 | |
| <Data początkowa> | fromDate | tak |
Data rozpoczęcia okresu, którego dotyczy plik (StartDate) Eksport „fromDate” |
Data | 01.02.2026 | |
| <EndDate> | UntilDate | tak |
Data zakończenia okresu, którego dotyczy plik (EndDate) Eksport „UntilDate” |
Data | 28.02.2026 | |
| <CurrencyCode> | CashRegister.CurrencyIsoCode | tak | Wskaż walutę domyślną – „EUR” | Tekst 3 | EUR | |
| <DATECREATED> | Aktualna data utworzenia eksportu | tak | Data utworzenia pliku SAF-T (PT) | Data | 2026-10-08 | |
| <Podmiot podatkowy> | StoreNumber | tak | Należy podać placówkę, której dotyczy sporządzony plik | Tekst 20 | Siedziba | |
| <Numer identyfikacyjny podatkowy przedsiębiorstwa produkującego produkt> | tak | Numer identyfikacyjny podatnika (NIF) producenta oprogramowania | Tekst 20 | 503140600 | ||
| <Numer certyfikatu oprogramowania> | tak | Numer certyfikatu nadany podmiotowi produkującemu oprogramowanie zgodnie z rozporządzeniem nr 363/2010 z dnia 23 czerwca. | Int | 9999 | ||
| <ProductID> | CashRegister.Software.Brand+'/'+CashRegister.Software.SoftwareCompany | tak |
Nazwa aplikacji generującej plik SAF-T (PT). Nazwa handlowa oprogramowania oraz nazwa producenta w formacie „Nazwa aplikacji/Nazwa producenta oprogramowania”. |
Tekst 255 | SuperPOS/ABC Software | |
| <Wersja produktu> | CashRegister.Software.Version | tak | Należy podać wersję aplikacji, która wygenerowała plik. | Tekst 30 | 1.11.2 | |
| <Komentarz nagłówka> | nie dotyczy | brak | ||||
| <Telefon> | nie dotyczy | brak | ||||
| <Faks> | brak danych | brak | ||||
| <E-mail> | brak danych | brak | ||||
| <Strona internetowa> | brak | brak | ||||
Pliki główne
Pliki główne zawierają rzeczywiste dane z faktur.
Tabela klientów
Tabela klientów jest generowana na podstawie danych zawartych w dokumentach (fakturach, pokwitowaniach itp.).
| Nazwa pola SAF-T (PT) | RetailForce DOM | Zlecenie | Uwagi | Format | |
| <CustomerID> |
Jeśli Partner.IsBusiness: true
Jeśli Partner.IsBusiness: false
|
tak |
Unikalny identyfikator klienta (CustomerID) Na liście klientów nie może znajdować się więcej niż jeden wpis o tym samym identyfikatorze CustomerID. W przypadku konsumentów końcowych należy utworzyć klienta ogólnego z oznaczeniem „Konsument końcowy” („Consumidor final”). |
Tekst 30 | |
| <AccountID> |
Ponieważ nie przedstawiono danych księgowych (księga główna), należy użyć wartości „Nieznane” „Desconhecido” |
tak |
Kod konta (AccountID) Należy wskazać bieżące konto klienta w planie kont, o ile zostało ono zdefiniowane. W przeciwnym razie należy wpisać oznaczenie „Nieznane” („Desconhecido”). |
Tekst 30 | |
| <CustomerTaxID> |
Jeśli IsBusiness: true:
Jeśli IsBusiness: false:
|
tak |
Numer identyfikacji podatkowej klienta (CustomerTaxID) Należy podać ten numer bez przedrostka kraju. Klient ogólny, odpowiadający określonej kategorii „konsument końcowy” („Consumidor final”), musi być zidentyfikowany za pomocą numeru identyfikacji podatkowej „999999990”. |
Tekst 30 | |
| <CompanyName> |
Jeśli IsBusiness: true:
Jeśli IsBusiness: false:
|
tak |
Nazwa firmy (CompanyName) Ogólnego klienta należy określić jako „Konsument końcowy” („Consumidor final”). |
Tekst 100 | |
| <Kontakt> | nie | Imię i nazwisko osoby kontaktowej w firmie (Contact) | Tekst 50 | ||
| <BILLINGADDRESS> | tak |
Adres rozliczeniowy (BillingAddress) Odpowiada adresowi siedziby głównej lub stałego zakładu na terytorium kraju. |
Nie dotyczy | ||
| <BuildingNumber> | nie | Numer budynku (BuildingNumber) | Tekst 20 | ||
| <Nazwa ulicy> | Partner.Ulica | brak | Nazwa ulicy (StreetName) | Tekst 200 | |
| <AddressDetail> |
Partner.Ulica + Partner.StreetNumber W przypadku, gdy IsBusiness: false i nie podano adresu, stosuje się wartość „Desconhecido” |
tak |
Szczegółowy adres (AddressDetail) Należy podać nazwę ulicy, numer bloku oraz, w stosownych przypadkach, numer piętra. W poniższych sytuacjach należy wpisać oznaczenie „Nieznane” („Desconhecido”):
|
Tekst 210 | |
| <Miasto> |
Partner.Miasto Używa się terminu „Desconhecido”, jeśli IsBusiness: false i nie podano adresu |
tak |
Lokalizacja (miasto) W poniższych sytuacjach należy wpisać oznaczenie „Nieznane” („Desconhecido”):
|
Tekst 50 | |
| <KOD pocztowy> |
PostalCode W przypadku, gdy IsBusiness: false i nie podano adresu, stosuje się wartość „Desconhecido” |
tak |
Kod pocztowy (PostalCode) W poniższych sytuacjach należy wpisać oznaczenie „Nieznany” („Desconhecido”):
|
Tekst 20 | |
| <Region> |
Jeżeli podano:
|
nr | Okręg | Tekst 50 | |
| <Kraj> |
Partner.CountryCode przekonwertowany na format ISO 3166 ALPHA-2 W przypadku gdy IsBusiness: false i nie podano adresu, stosuje się wartość „Desconhecido” |
tak |
Jeśli jest znany, należy go wypełnić zgodnie z normą ISO 3166 – 1-alpha-2. W poniższych sytuacjach należy wpisać oznaczenie „Nieznane” („Desconhecido”):
|
Tekst 12 | |
| <ShipToAddress> | podawane, jeśli partner.addressType: [2] = DeliveryAddress jest wskazane | nie |
Adres wysyłki (ShipToAddress) Jeśli wymagane jest więcej niż jedno odwołanie, strukturę tę można wygenerować tyle razy, ile jest to konieczne. |
Nie dotyczy | |
| <BuildingNumber> | nie dotyczy | brak | Numer budynku (BuildingNumber) | Tekst 10 | |
| <Nazwa ulicy> | ulica | nr | Nazwa ulicy (StreetName) | Tekst 200 | |
| <AddressDetail> |
ulica + streetNumber |
tak |
Szczegółowy adres (AddressDetail) Należy podać nazwę ulicy, numer bloku oraz, w stosownych przypadkach, numer piętra. W poniższych sytuacjach należy wpisać oznaczenie „Nieznane” („Desconhecido”):
|
Tekst 210 | |
| <Miasto> | miasto | tak |
Lokalizacja (miasto) W poniższych sytuacjach należy wpisać oznaczenie „Nieznane” („Desconhecido”):
|
Tekst 50 | |
| <KOD pocztowy> | PostalCode | tak |
Kod pocztowy (PostalCode) W poniższych sytuacjach należy wpisać w tym polu oznaczenie „Nieznany” („Desconhecido”):
|
Tekst 20 | |
| <Region> | społeczność | nr | Okręg | Tekst 50 | |
| <Kraj> | CountryCode przekonwertowany na format ISO 3166 ALPHA-2 | tak |
Jeżeli jest znany, należy go wpisać zgodnie z normą ISO 3166 – 1-alpha-2. W poniższych sytuacjach należy wpisać oznaczenie „Nieznane” („Desconhecido”):
|
Tekst 12 | |
| <Telefon> | nie dotyczy | brak | numer telefonu | Tekst 20 | |
| <Faks> | b.d. | brak | faks | Tekst 20 | |
| <E-mail> | b.d. | brak | Firmowy adres e-mail | Tekst 254 | |
| <Strona internetowa> | brak | nie | Adres strony internetowej firmy | Tekst 60 | |
| <Wskaźnik samodzielnego fakturowania> | Funkcja samofakturowania nie jest obsługiwana w RetailForce, należy zawsze podawać wartość „0”. | tak |
Wskaźnik samofakturowania (SelfBillingIndicator) Wskaźnik potwierdzający istnienie umowy o samofakturowaniu pomiędzy klientem a dostawcą. Należy wpisać „1”, jeśli umowa istnieje, oraz „0” (zero), jeśli umowy nie ma. |
Int | |
Tabela produktów/usług
| Nazwa pola SAF-T (PT) | RetailForce DOM | Obowiązkowe | Uwagi | Format | |
| <ProductType> |
positions.ItemType W przypadku podatku dodatkowego:
W przypadku depozytów:
Mapowanie:
Obecnie obsługiwane są opłaty za wysyłkę |
tak |
Wskaźnik produktu lub usługi (ProductType) Należy wpisać: „P” – produkty; „S” – Usługi; „O” – inne (np. koszty wysyłki, otrzymane zaliczki lub zbycie aktywów); „E” – Podatki od konsumpcji specjalnej – (np. IABA, ISP, IT); „I” – podatki, opłaty i opłaty parafiskalne – z wyjątkiem podatku Vat i podatku dochodowego (IS), które należy uwzględnić w tabeli 2.5 – Tabela podatkowa (TaxTable), oraz podatków od konsumpcji specjalnej, które należy wpisać, używając kodu „E”. |
Tekst 1 | |
| <ProductCode> | positions.ItemId | tak |
Identyfikator produktu lub usługi (ProductCode) Unikalny kod produktu na liście produktów. |
Tekst 60 | |
| <ProductGroup> | positions.ItemGroupCaption | nr | Rodzina produktów lub usług (ProductGroup) | Tekst 50 | |
| <ProductDescription> | ItemCaption | tak |
Opis produktu lub usługi (ProductDescription) Opis ten musi odpowiadać powszechnie stosowanej nazwie dostarczanych towarów lub świadczonych usług, z podaniem elementów niezbędnych do ustalenia obowiązującej stawki podatkowej. |
Tekst 200 | |
| <ProductNumberCode> |
pozycje.GTIN, jeśli podano w przeciwnym razie positions.ItemId |
tak |
Kod produktu (ProductNumberCode) Należy podać kod EAN (Barcode) produktu. W przypadku jego braku należy wpisać wartość z pola 2.4.2. – Identyfikator produktu lub usługi (ProductCode). |
Tekst 60 | |
| <CustomsDetails> | nie | Szczegóły celne | nie dotyczy | ||
| <CNCode> | nie dotyczy | nie |
Kod Nomenklatury Scalonej (CNCode) Należy wpisać kod z nomenklatury towarowej Unii Europejskiej. Jeśli wymagane jest więcej niż jedno odniesienie, pole to można powielić tyle razy, ile jest to konieczne. |
Tekst 8 | |
| <Numer ONZ> | nie dotyczy | nie dotyczy |
Numer UN (UNNumber) Proszę wpisać numer UN dla towarów niebezpiecznych. Jeśli wymagane jest podanie więcej niż jednego numeru, pole to można wypełnić tyle razy, ile jest to konieczne. |
Tekst 4 | |
Tabela podatkowa
| Nazwa pola SAF-T (PT) | RetailForce DOM | Obowiązek | Uwagi | Format | Przykład | |
| <TaxTableEntry> | tak | Wpis w tabeli podatkowej (TaxTableEntry) | Nie dotyczy | |||
| <TaxType> | Obecnie obsługiwany jest wyłącznie typ „IVA” dla podatku od wartości dodanej. | tak |
Kod rodzaju podatku (TaxType) W tym polu należy wskazać rodzaj podatku. Należy wpisać: „IVA” – podatek od wartości dodanej; „IS” – opłata skarbowa; „NS” – niepodlegające podatkowi Vat ani opłacie skarbowej. |
Tekst 3 | ||
| <TaxCountryRegion> |
pochodzący z FiscalRegions (sklepu)
Mapowanie:
|
tak |
Kraj lub region podatkowy (TaxCountryRegion) Należy wypełnić zgodnie z normą ISO 3166-1: alpha-2. W przypadku regionów autonomicznych Madery i Azorów należy wpisać: „PT-AC” – obszar podatkowy Regionu Autonomicznego Azorów; oraz „PT-MA” – obszar podatkowy Regionu Autonomicznego Madery. |
Tekst 5 | ||
| <TaxCode> |
VatIdentification W Portugalii obowiązują następujące stawki Vat: Portugalia: Stawka podstawowa: 23% Stawka obniżona: 6% Stawka pośrednia: 13% Azory: Stawka podstawowa: 16% Stawka obniżona: 4% Stawka pośrednia: 9% Madera: Stawka podstawowa: 22% Stawka obniżona: 4% (obowiązuje od: 01.10.2024 r.) Stawka pośrednia: 12% |
tak |
Kod podatkowy (TaxCode) W przypadku pola 2.5.1.1 – Kod rodzaju podatku (TaxType) = Vat należy wpisać:
W przypadku pola 2.5.1.1 – Kod rodzaju podatku (TaxType) = IS należy wpisać:
W przypadku braku obowiązku podatkowego należy wpisać „NS”. Na paragonach wystawionych bez wyszczególnienia podatku należy wpisać „NA”. |
Tekst 10 | ||
| <Opis> |
wygenerowany na podstawie VatIdentification
Opłata skarbowa nie jest obecnie obsługiwana |
tak | Opis podatku (Opis) | Tekst 255 | ||
| <Data wygaśnięcia podatku> | nie |
Data wygaśnięcia (TaxExpirationDate) Ostatni dzień, w którym stawka podatkowa ma zastosowanie zgodnie z przepisami, w przypadku jej zmiany w trakcie okresu rozliczeniowego. |
Data | |||
| <TaxPercentage> | Positions.VatPercent | tak |
Procentowa stawka podatkowa (TaxPercentage) Pole to należy wypełnić, jeśli dotyczy ono stawki procentowej podatku. W przypadku zwolnienia lub braku obowiązku podatkowego należy wpisać w tym polu wartość „0” (zero). |
Liczba dziesiętna | ||
| <TaxAmount> | Typ podatku (TaxType) nie jest obsługiwany | tak |
Kwota podatku (TaxAmount) Pole to należy wypełnić, jeśli chodzi o stałą kwotę opłaty skarbowej. |
Pieniężne | ||
Dokumenty handlowe (SourceDocuments)
Ta sekcja zawiera rzeczywiste dokumenty przesłane przez system nadrzędny.
Dokumenty handlowe dla klientów (SalesInvoices)
Ta sekcja zawiera następujące dokumentType:
- 0 / [0] = Potwierdzenie odbioru
- 1 / [1] = Faktura
| Nazwa pola SAF-T (PT) | RetailForce DOM | Upoważnienie | Uwagi | Format | ||||
| <SalesInvoices> |
DocumentType:
|
Dokumenty handlowe dla klientów (SalesInvoices) | Nie dotyczy | |||||
| <Liczba wpisów> | Liczba dokumentów handlowych zawartych w bieżącym pliku SAF-T export. | tak | Liczba pozycji dokumentów handlowych (NumberOfEntries) | Int | ||||
| <TotalDebit> | Suma wartości netto pozycji transakcji zwrotnych zawartych w pliku SAF-T export | tak | Łączna kwota obciążeń (TotalDebit) | Pieniężne | ||||
| <TotalCredit> | Suma NetValue wszystkich pozycji transakcji sprzedaży zawartych w pliku SAF-T export | tak | Łączna kwota kredytów (TotalCredit) | Pieniężne | ||||
| <Invoice> | Dokument sprzedaży (Invoice) | Nie dotyczy | ||||||
| <InvoiceNo> | fiscalResponse.AdditionalFields.InvoiceNo | tak |
Unikalny identyfikator dokumentu sprzedaży (InvoiceNo) Identyfikator ten składa się z następujących elementów w kolejności: wewnętrzny kod typu dokumentu nadany przez aplikację, spacja, identyfikator serii dokumentu, ukośnik (/) oraz numer porządkowy tego dokumentu w ramach danej serii. Nie mogą istnieć żadne rekordy o tym samym identyfikatorze. Ten sam wewnętrzny kod typu dokumentu nie może być używany w różnych typach dokumentów. |
Tekst 60 | ||||
| <ATCUD> |
fiscalResponse.AdditionalFields.AtCud WYŁĄCZNIE w przypadku SAF-T export: System nadrzędny przesyła ATCUD w polu fiscalisationAdditionalFields.AtCudPortugal |
tak |
Unikalny kod dokumentu (ATCUD) Pole to musi zawierać unikalny kod dokumentu. Do czasu wprowadzenia odpowiednich przepisów pole to należy wypełnić wartością „0” (zero). Kod ATCUD jest obowiązkowy od 2023 r. |
Tekst 100 | ||||
| <DocumentStatus> | tak | Status dokumentu (DocumentStatus) | Nie dotyczy | |||||
| <InvoiceStatus> |
„N” dla wszystkich transakcji (sprzedaż i zwroty), z wyjątkiem unieważnień (anulacji) „A”, jeśli
„S” – nieobsługiwane „R” – nieobsługiwane „F” – nie jest używane w RF |
tak |
Aktualny status dokumentu (InvoiceStatus) Należy wpisać:
|
Tekst 1 | ||||
| <InvoiceStatusDate> | BookDate | tak |
Data i godzina aktualnego statusu dokumentu (InvoiceStatusDate) Data ostatniego zarejestrowania statusu dokumentu z dokładnością do sekundy. Typ daty i godziny: „RRRR-MM-DDThh:mm:ss”. |
DateTime | ||||
| <Powód> | nie |
Powód zmiany statusu (Reason) Należy podać powód zmiany statusu dokumentu. |
Tekst 50 | |||||
| <SourceID> | user.ID | tak |
Kod użytkownika (SourceID) Użytkownik odpowiedzialny za aktualny status dokumentu. |
Tekst 30 | ||||
| <SourceBilling> | obsługiwana jest wyłącznie litera „P” | tak |
Pochodzenie dokumentu (SourceBilling) Należy wpisać:
|
Tekst 1 | ||||
| <Hash> |
fiscalResponse.signature WYŁĄCZNIE w przypadku SAF-T export: System źródłowy przesyła wartość skrótu w polu FiscalAdditionalFields.HashPortugal |
tak |
Klucz dokumentu (skrót) Podpis zgodny z rozporządzeniem nr 363/2010 z dnia 23 czerwca. Pole to należy wypełnić wartością „0” (zero), jeśli certyfikacja nie jest obowiązkowa. |
Tekst 172 | ||||
| <HashControl> |
fiscalResponse.AdditionalFields.HashControlValue WYŁĄCZNIE w przypadku SAF-T export: System nadrzędny przesyła wartość HashControl w polu FiscalAdditionalFields.HashControlPortugal |
tak |
Klucz kontrolny (HashControl) Wersja klucza prywatnego użytego do utworzenia podpisu w polu 4.1.4.4. – Klucz dokumentu (Hash). Pole to należy wypełnić wartością „0” (zero), jeśli dokument został wygenerowany przez program nieposiadający certyfikatu. |
Tekst 70 | ||||
| <Okres> |
Obliczany na podstawie miesiąca rozpoczęcia roku podatkowego jeżeli wartość wynosi np. 3 (= marzec), a eksport dotyczy kwietnia, wartość pola <Okres> wynosi „2”. |
tak |
Okres rozliczeniowy (Okres) Należy wskazać miesiąc okresu podatkowego w zakresie od „1” do „12”, licząc od daty jego rozpoczęcia. |
Int | ||||
| <InvoiceDate> | BookDate | tak |
Data dokumentu sprzedaży (InvoiceDate) Data wystawienia dokumentu sprzedaży. |
Data | ||||
| <InvoiceType> |
Mapowanie: FT: „DocumentType”: 1 / „[1] = Faktura FS: „DocumentType”: 0 / „[0] = Pokwitowanie FR: documentType: 0 / „[0] = Potwierdzenie odbioru, jeśli ustawiono Document.Partner (zawiera dane). ND: nieobsługiwane NC: „DocumentType”: 0 / „[0] = Potwierdzenie odbioru” LUB „DocumentType”: 1 / „[1] = Faktura”, jeśli:
VD, TV, TD, AA, DA – przestarzałe Sektor ubezpieczeniowy (RP, RE, CS, LD, RA) nie jest obsługiwany |
tak |
Typ dokumentu (InvoiceType) Należy wpisać:
W przypadku sektora ubezpieczeniowego, o ile nie zostało to uwzględnione w tabeli 4.3. – Dokumenty służące do kontroli towarów lub usług (dokumenty robocze), można również wpisać:
(a) W odniesieniu do danych do dnia 31 grudnia 2012 r. |
Tekst 2 | ||||
| <SpecialRegimes> | tak | Systemy specjalne (SpecialRegimes) | nie dotyczy | |||||
| <SelfBillingIndicator> | zawsze ustawiony na „0” | tak |
Wskaźnik samofakturacji (SelfBillingIndicator) Należy wpisać „1”, jeśli ma zastosowanie samofakturowanie, a „0” (zero), jeśli nie. |
Int | ||||
| <CashVATSchemeIndicator> |
Ustawienie w konfiguracji
|
tak |
Wskaźnik systemu Vat opartego na płatnościach gotówkowych (CashVATSchemeIndicator) Wskaźnik stosowania systemu Vat opartego na zasadzie kasowej. Należy wpisać „1”, jeśli podmiot stosuje ten system, a „0” (zero), jeśli nie. |
Int | ||||
| <ThirdPartiesBillingIndicator> | Fakturowanie przez stronę trzecią nie jest obsługiwane. W związku z tym należy zawsze wpisać „0” | tak |
Wskaźnik fakturowania wystawionego w imieniu i na rzecz osób trzecich (ThirdPartiesBillingIndicator) Należy wpisać wartość „1”, jeśli dotyczy to faktur wystawionych w imieniu i na rzecz osób trzecich, a w przeciwnym razie wartość „0” (zero). |
Int | ||||
| <SourceID> | user.ID | tak |
Kod użytkownika (SourceID) Użytkownik, który utworzył dokument. |
Tekst 30 | ||||
| <EACCode> | nie |
Kod CAE (EACCode) Należy podać kod CAE dla czynności związanej z wystawieniem niniejszego dokumentu. |
Tekst 5 | |||||
| <SYSTEMENTRYDATE> | BookDate | tak |
Data rejestracji dokumentu (SystemEntryDate) Data wprowadzenia zapisu z dokładnością do sekundy, w momencie złożenia podpisu. Format daty i godziny: „RRRR-MM-DDThh:mm:ss”. |
DateTime | ||||
| <TRANSACTIONID> | nie dotyczy (rozwiązanie niezintegrowane) | tak |
Identyfikator transakcji (TransactionID) Pole to należy wypełnić w przypadku zintegrowanego systemu księgowości i fakturowania, mimo że typ pliku (TaxAccountingBasis) nie powinien zawierać tabel dotyczących księgowości. Należy podać unikalny klucz z tabeli 3. Operacje księgowe (GeneralLedgerEntries) transakcji, w ramach której zaksięgowano niniejszy dokument, zgodnie z zasadą określoną w tej tabeli dla pola 3.4.3.1 – Unikalny klucz operacji księgowej (transactionId). |
Tekst 70 | ||||
| <CustomerID> | partner.id | tak |
Identyfikator klienta (CustomerID) Klucz unikalny dla tabeli 2.2. – Tabela klientów (Customer), zgodny z zasadą określoną w tej tabeli dla pola 2.2.1. – Unikalny identyfikator klienta (CustomerID). |
Tekst 30 | ||||
| <ShipTo> | jeżeli pole „deliveryAddress” jest ustawione na „partner” | nie |
Miejsce rozładunku (ShipTo) Informacje dotyczące miejsca i daty rozładunku, w którym sprzedane towary są udostępniane klientowi lub osobie przez niego wskazanej w przypadku transakcji trójstronnych. |
Nie dotyczy | ||||
| <DeliveryID> | nie |
Identyfikator dostawy (DeliveryID) W przypadku transakcji trójstronnych należy podać miejsce dostawy oraz numer Vat odbiorcy. |
Tekst 255 | |||||
| <DeliveryDate> | nie |
Data dostawy (DeliveryDate) W sektorze ubezpieczeniowym w polu tym należy podać datę zakończenia okresu ochrony ubezpieczeniowej. |
Data | |||||
| <WarehouseID> | nie | Identyfikator magazynu docelowego (WarehouseID) | Tekst 50 | |||||
| <LocationID> | nie | Lokalizacja towarów w magazynie docelowym (LocationID) | Tekst 30 | |||||
| <Address> | nie | Adres | Nie dotyczy | |||||
| <Numer budynku> | brak | Numer budynku (BuildingNumber) | Tekst 10 | |||||
| <Nazwa ulicy> | partner.street | nr | Nazwa ulicy (StreetName) | Tekst 200 | ||||
| <AddressDetail> |
partner.ulica + partner.streetNumber |
tak | Należy podać nazwę ulicy, numer domowy oraz, w stosownych przypadkach, numer piętra. | Tekst 210 | ||||
| <Miasto> | partner.city | tak | Miasto | Tekst 50 | ||||
| <KOD pocztowy> | partner.PostalCode | tak | Kod pocztowy | Tekst 20 | ||||
| <Region> | nie | Okręg | Tekst 50 | |||||
| <Kraj> |
partner.CountryCode przekonwertowany na format ISO 3166 ALPHA-2 |
tak | Należy wypełnić zgodnie z normą ISO 3166 – 1-alpha-2. | Tekst 2 | ||||
| <ShipFrom> | adres sklepu (z konfiguracji) | tak |
Miejsce załadunku (ShipFrom) Informacje dotyczące miejsca i daty załadunku, w którym rozpoczyna się wysyłka towarów sprzedanych klientowi. |
Nie dotyczy | ||||
| <DeliveryID> | nie |
Identyfikator dostawy (DeliveryID) Należy podać numer rejestracyjny pojazdu transportowego lub wykorzystanego środka transportu, np. kurier ekspresowy itp. |
Tekst 255 | |||||
| <DeliveryDate> | nie |
Data odbioru (DeliveryDate) W sektorze ubezpieczeniowym w tym polu należy wpisać datę rozpoczęcia okresu ochrony ubezpieczeniowej. |
Data | |||||
| <WarehouseID> | nie | Identyfikator magazynu wysyłkowego (WarehouseID) | Tekst 50 | |||||
| <LocationID> | nie | Lokalizacja towarów w magazynie wysyłkowym (LocationID) | Tekst 30 | |||||
| <Address> | nie | Adres | Nie dotyczy | |||||
| <Numer budynku> | nie | Numer budynku (BuildingNumber) | Tekst 10 | |||||
| <Nazwa ulicy> | storeAddress.street (z konfiguracji) | nie | Nazwa ulicy (StreetName) | Tekst 200 | ||||
| <AddressDetail> |
storeAddress.street + storeAddress.streetNumber (z konfiguracji) |
tak | Powinien zawierać nazwę ulicy, numer domu oraz, w stosownych przypadkach, numer piętra. | Tekst 210 | ||||
| <Miasto> | storeAddress.city (z konfiguracji) | tak | Miasto | Tekst 50 | ||||
| <KOD pocztowy> | storeAddress.PostalCode (z sekcji „Konfiguracja”) | tak | Kod pocztowy | Tekst 20 | ||||
| <Region> | nie | Okręg | Tekst 50 | |||||
| <Kraj> | storeAddress.country przekonwertowano na format ISO 3166 ALPHA-2 (z konfiguracji) | tak | Należy wypełnić zgodnie z normą ISO 3166 – 1-alpha-2. | Tekst 2 | ||||
| <MovementEndTime> | nie dotyczy | nie |
Data i godzina zakończenia transportu (MovementEndTime) Typ daty i godziny: „RRRR-MM-DDThh:mm:ss”, gdzie „ss” może wynosić „00” w przypadku braku konkretnych informacji. |
DateTime | ||||
| <MovementStartTime> | nie dotyczy | tak |
Data i godzina rozpoczęcia przewozu (MovementStartTime) Typ daty i godziny: „RRRR-MM-DDThh:mm:ss”, gdzie „ss” może wynosić „00” w przypadku braku konkretnych informacji. Pole to należy wypełnić, jeżeli dokument pełni również funkcję dokumentu przewozowego zgodnie z przepisami dotyczącymi obrotu towarowego, zatwierdzonymi dekretem z mocą ustawy nr 147/2003 z dnia 11 lipca. |
DateTime | ||||
| <Wiersz> | tak | nie dotyczy | ||||||
| <Numer pozycji> | positions.PositionNumber + 1 | tak |
Numer wiersza (LineNumber) Wiersze powinny zostać wyeksportowane w tej samej kolejności, w jakiej występują w oryginalnym dokumencie. |
Int | ||||
| <OrderReferences> | nie dotyczy | nie |
Odniesienie do dokumentu źródłowego (OrderReferences) Jeśli wymagane jest więcej niż jedno odniesienie, strukturę tę można wygenerować tyle razy, ile jest to konieczne. |
nie dotyczy | ||||
| <OriginatingON> | nie dotyczy | brak |
Numer dokumentu źródłowego (OriginatingON) Należy podać rodzaj, serię oraz numer dokumentu stanowiącego podstawę wystawienia niniejszego dokumentu. Jeżeli dokument jest zawarty w formacie SAF-T (PT), należy zastosować strukturę numeracji pola źródłowego. |
Tekst 60 | ||||
| <OrderDate> | nie dotyczy | brak | Data dokumentu źródłowego (OrderDate) | Data | ||||
| <ProductCode> | positions.ItemId | tak |
Identyfikator produktu lub usługi (ProductCode) Klucz do rekordu w tabeli 2.4. – Tabela produktów/usług (Product), w polu 2.4.2. – Identyfikator produktu lub usługi (ProductCode). |
Tekst 60 | ||||
| <ProductDescription> | positions.itemCaption | tak |
Opis produktu lub usługi (ProductDescription) Opis pozycji faktury, powiązany z tabelą 2.4. – Tabela produktów/usług (Product), w polu 2.4.4. – Opis produktu lub usługi (ProductDescription). |
Tekst 200 | ||||
| <Ilość> | pozycje.Ilość | tak | Ilość | Liczba dziesiętna | ||||
| <Jednostka miary> |
Pozycje.JednostkaIlości.isoCode Użyj kodów ISO/UCUM |
tak | Jednostka miary (UnitOfMeasure) | Tekst 20 | ||||
| <UnitPrice> | obliczona na podstawie: BaseNetValue / ilość | tak |
Cena jednostkowa (UnitPrice) Cena jednostkowa pomniejszona o rabaty na pozycje i rabaty header, bez podatków. Należy wpisać wartość „0,00”, jeśli należy wypełnić pole 4.1.4.19.8. – Wartość jednostkowa podlegająca opodatkowaniu (TaxBase). |
Wartość pieniężna | ||||
| <TaxBase> |
Stosowana wyłącznie w przypadku pozycji bezpłatnych, jeżeli GrossValue: 0 oraz BaseGrossValue > 0 |
tak |
Wartość podlegająca opodatkowaniu na jednostkę (TaxBase) Jednostkowa wartość podlegająca opodatkowaniu, która nie wchodzi w skład sumy brutto dokumentu bez podatków (NetTotal). Wartość ta służy jako podstawa do obliczenia podatków dla danej pozycji. Znak (debetowy lub kredytowy), z jakim tak obliczony podatek wpływa na kwotę podatku do zapłaty (TaxPayable), wynika z obecności w pozycji kwoty debetowej (DebitAmount) lub kwoty kredytowej (CreditAmount). |
Pieniężna | ||||
| <TaxPointDate> |
for documentType: 0 / „[0] = Paragon
for documentType": 1 / "[1] = faktura
|
tak |
Data wysyłki towarów lub świadczenia usług (TaxPointDate) Data wysyłki towarów lub świadczenia usług. Należy wpisać datę powiązanego dokumentu dostawy, o ile taki istnieje. W przypadku występowania więcej niż jednego dokumentu dostawy należy podać datę najstarszego z nich. |
Data | ||||
| <Odniesienia> |
Odniesienia do faktur (Odniesienia) Odniesienia do faktur w dokumentach korygujących. Jeśli wymagane jest więcej niż jedno odniesienie, strukturę tę można wygenerować tyle razy, ile jest to konieczne. |
Nie dotyczy | ||||||
| <Odniesienie> | documentReference.fiscalDocumentNumber | nie | Odniesienie do faktury lub faktury uproszczonej poprzez jej unikalny identyfikator w systemach, w których taki identyfikator istnieje. Należy stosować strukturę numeracji pola źródłowego. | Tekst 60 | ||||
| <Powód> | documentReference.returnReasonText | nie | Należy podać powód wystawienia. | Tekst 50 | ||||
| <Opis> | positions.itemCaption | tak | Opis pozycji dokumentu. | Tekst 200 | ||||
| <Numer seryjny produktu> | nie | Numer seryjny produktu (ProductSerialNumber) | nie dotyczy | |||||
| <SerialNumber> | positions.ItemSerialNumber | tak |
Numer seryjny Należy podać numer seryjny produktu wymienionego w dokumencie. Np.: VIN, IMEI, ISSN, ISAN. Jeśli wymagane jest więcej niż jedno odniesienie, pole to można wygenerować tyle razy, ile jest to konieczne. |
Tekst 100 | ||||
| <DebitAmount> | pozycje.NetValueValue odpowiedniej pozycji zwrotu | tak |
Kwota obciążenia (DebitAmount) Kwota pozycji, bez podatku, dokumentów, które mają zostać zaksięgowane na koncie sprzedaży. Kwota ta jest odejmowana od rabatów na pozycjach i w headerze. |
Pieniężna | ||||
| <CreditAmount> | pozycje.NetValueValue odpowiedniej pozycji sprzedaży | tak |
Kwota kredytowa Kwota pozycji, bez podatku, dokumentów, które mają zostać zaksięgowane jako przypis na koncie sprzedaży. Kwota ta jest odejmowana od rabatów w wierszach i headerach. |
Pieniężna | ||||
| <Podatek> | tak | Stawka podatku | Nie dotyczy | |||||
| <Rodzaj podatku> | zawsze wskazywany jest „IVA” | tak |
Kod rodzaju podatku (TaxType) W tym polu należy podać rodzaj podatku. Należy wpisać:
|
Tekst 3 | ||||
| <TaxCountryRegion> |
pochodzący z FiscalRegions (sklepu)
Mapowanie:
|
tak |
Kraj lub region podatkowy (TaxCountryRegion) Należy wypełnić zgodnie z normą ISO 3166-1-alpha-2. W przypadku regionów autonomicznych Madery i Azorów należy wpisać:
|
Tekst 5 | ||||
| <TaxCode> |
VatIdentification W Portugalii obowiązują następujące stawki Vat: Portugalia: Stawka podstawowa: 23% Stawka obniżona: 6% Stawka pośrednia: 13% Azory: Stawka podstawowa: 16% Stawka obniżona: 4% Stawka pośrednia: 9% Madera: Stawka podstawowa: 22% Stawka obniżona: 4% (obowiązuje od: 01.10.2024 r.) Stawka pośrednia: 12% |
tak |
Kod podatkowy (TaxCode) Kod podatkowy w tabeli podatkowej. W przypadku pola 4.1.4.19.15.1. – Kod rodzaju podatku (TaxType) = Vat należy wpisać:
W przypadku pola 4.1.4.19.15.1 – Kod rodzaju podatku (TaxType) = IS należy wpisać:
W przypadku braku obowiązku podatkowego należy wpisać „NS”. |
Tekst 10 | ||||
| <TaxPercentage> | Pozycje.VatPercent | tak |
Stawka podatku (TaxPercentage) Pole to należy wypełnić, jeśli dotyczy ono stawki podatku. Stawka podatku odpowiada podatkowi mającemu zastosowanie do pola 4.1.4.19.13. – Kwota obciążenia (DebitAmount) lub pola 4.1.4.19.14. – Kwota uznania (CreditAmount). W przypadku zwolnienia lub braku obowiązku podatkowego należy wpisać w tym polu wartość „0” (zero). |
Liczba dziesiętna | ||||
| <TaxAmount> | Typ podatku nie jest obsługiwany | tak |
Kwota podatku (TaxAmount) Pole to należy wypełnić, jeśli chodzi o stałą kwotę opłaty skarbowej wyrażoną w jednostkach. Kwota ta, pomnożona przez ilość (Quantity), stanowi część podatku należnego (TaxPayable). |
Pieniężna | ||||
| <TaxExemptionReason> |
Kody przyczyn zwolnienia M01–M99 fiscalResponse.printingFields |
tak |
Powód zwolnienia podatkowego (TaxExemptionReason) Pole to należy wypełnić, gdy wartości w polach 4.1.4.19.15.4 – Stawka podatkowa (TaxPercentage) lub 4.1.4.19.15.5 – Kwota podatku (TaxAmount) są równe zeru. Należy podać odniesienie do odpowiedniego przepisu prawnego. Pole to należy również wypełnić w przypadkach braku obowiązku podatkowego w odniesieniu do podatków wymienionych w tabeli 2.5. – Tabela podatkowa (TaxTable). |
Tekst 60 | ||||
| <TaxExemptionCode> | Zob. kody przyczyn zwolnienia M01–M99 | tak |
Kod przyczyny zwolnienia podatkowego (TaxExemptionCode) Należy wpisać kod przyczyny zwolnienia lub braku naliczenia podatku, który można znaleźć w Podręczniku integracji oprogramowania – Przekazywanie faktur do AT. Pole to należy wypełnić, gdy wartości w polach 4.1.4.19.15.4 – Stawka podatku (TaxPercentage) lub 4.1.4.19.15.5 – Kwota podatku (TaxAmount) są równe zero. Pole to należy również wypełnić w przypadkach braku obowiązku podatkowego w odniesieniu do podatków wymienionych w tabeli 2.5. – Tabela podatków (TaxTable). |
Tekst 3 | ||||
| <SettlementAmount> | nie |
Kwota rozliczeniowa pozycji (SettlementAmount) Musi uwzględniać wszystkie przyznane rabaty (część rabatów ogólnych dla tej pozycji oraz rabaty specyficzne dla tej samej pozycji), które mają wpływ na wartość pola 4.1.4.20.3. – Suma dokumentu wraz z podatkami (GrossTotal). |
Pieniężny | |||||
| <Informacje celne> | nie | Informacje celne (CustomsInformation) | Nie dotyczy | |||||
| <ARCNo> | nie |
Administracyjny kod referencyjny (ARCNo) Należy wpisać kod nadany po walidacji elektronicznego dokumentu administracyjnego e-DA. Jeśli wymaganych jest więcej niż jeden numer referencyjny, pole to można wypełnić tyle razy, ile jest to konieczne. |
Tekst 21 | |||||
| <IECAmount> | nr |
Kwota podatku akcyzowego dla danej pozycji (IECAmount) Kwota podatku akcyzowego uwzględniona w podstawie opodatkowania dla pozycji dokumentu, o ile nie została ona wyszczególniona w oddzielnej pozycji w dokumencie, przy czym „Wskaźnik produktu lub usługi (ProductType)” = E. |
Pieniężny | |||||
| <DocumentTotals> | tak | Sumy dokumentu (DocumentTotals) | nie dotyczy | |||||
| <TaxPayable> | suma wartości podatkowych pozycji | tak | Kwota podatku do zapłaty (TaxPayable) | Wartość pieniężna | ||||
| <NetTotal> | suma NetValue pozycji | tak |
Łączna kwota dokumentu bez podatków (NetTotal) W polu tym nie należy uwzględniać kwot związanych z podatkami wymienionymi w tabeli 2.5. – Tabela podatków (TaxTable). |
Pieniężne | ||||
| <GrossTotal> | suma wartości GrossValue pozycji | tak |
Całkowita kwota dokumentu wraz z podatkami (GrossTotal) W polu tym nie należy uwzględniać żadnych podatków potrącanych u źródła zawartych w strukturze 4.1.4.21. – Podatek potrącany u źródła (WithholdingTax) |
Waluta | ||||
| <Waluta> | tylko jeśli payments.CurrencyIsoCode != EUR | nie | Nie powinno być generowane, jeśli dokument jest wystawiony w euro. | Nie dotyczy | ||||
| <CurrencyCode> | payments.currencyIsoCode | tak |
Kod waluty (CurrencyCode) W przypadku waluty obcej należy wypełnić to pole zgodnie z normą ISO 4217. |
Tekst 3 | ||||
| <CurrencyAmount> | payments.ForeignAmount | tak |
Łączna kwota w walucie obcej (CurrencyAmount) Wartość pola 4.1.4.20. 3. – Suma dokumentu wraz z podatkami (GrossTotal) w pierwotnej walucie dokumentu. |
Pieniężne | ||||
| <ExchangeRate> | payments.ForeignAmountExchangeRate | tak |
Kurs wymiany (ExchangeRate) Należy podać kurs wymiany stosowany do przeliczenia na EUR. |
Liczba dziesiętna | ||||
| <Rozliczenie> | nie |
Umowy lub metody płatności. Jeśli wymagane jest więcej niż jedno odniesienie, strukturę tę można wygenerować tyle razy, ile jest to konieczne. |
Nie dotyczy | |||||
| <SettlementDiscount> | nie |
Przyszłe umowy dotyczące rabatów (SettlementDiscount) Należy wpisać umowy dotyczące dyskontu, które będą miały zastosowanie w przyszłości do wartości bieżącej. |
Tekst 30 | |||||
| <Kwota rozliczenia> | nie |
Kwota rozliczenia (SettlementAmount) Oznacza uzgodnioną kwotę przyszłego rabatu, która nie ma wpływu na wartość bieżącą dokumentu wskazaną w polu 4.1.4.20.3. — Suma dokumentu wraz z podatkami (GrossTotal). |
Wartość pieniężna | |||||
| <SettlementDate> | nie |
Uzgodniona data rozliczenia (SettlementDate) Należy podać uzgodnioną datę płatności z uwzględnieniem rabatu |
Dane | |||||
| <PAYMENTTERMS> | nie |
Warunki płatności Należy podać uzgodnione warunki lub termin płatności. |
Tekst 100 | |||||
| <Płatność> | nie |
W przypadku płatności mieszanych kwoty należy podać w podziale na rodzaj środka płatniczego oraz datę płatności. Jeśli wymaganych jest więcej niż jeden numer referencyjny, strukturę tę można powielać tyle razy, ile jest to konieczne. |
Nie dotyczy | |||||
| <Mechanizm płatności> |
payments.PaymentType Mapowanie:
|
brak |
Środki płatnicze (PaymentMechanism) Należy wpisać:
|
Tekst 2 | ||||
| <PAYMENTAMOUNT> | payments.amount | nie |
Kwota płatności (PaymentAmount) Należy podać kwotę dla każdej metody płatności. |
Wartość pieniężna | ||||
| <PAYMENTDATE> | nie | Data płatności (PaymentDate) | Data | |||||
| <WithholdingTax> | nie |
Podatek u źródła W przypadku konieczności podania więcej niż jednego odniesienia strukturę tę można wygenerować tyle razy, ile jest to konieczne. |
Nie dotyczy | |||||
| <WithholdingTaxType> | nie |
Kod typu podatku u źródła (WithholdingTaxType) W tym polu należy wskazać rodzaj podatku potrącanego, wpisując:
|
Tekst 3 | |||||
| <WithholdingTaxDescription> | brak |
Powód pobrania podatku u źródła (WithholdingTaxDescription) Należy wskazać obowiązujący przepis prawny. Jeżeli kod rodzaju podatku (WithholdingTaxType) = IS, należy wprowadzić odpowiedni kod podatku. |
Tekst 60 | |||||
| <WithholdingTaxAmount> | nie |
Kwota podatku potrącanego u źródła (WithholdingTaxAmount) Należy podać kwotę podatku potrąconego. |
Pieniężna | |||||
Inne dokumenty
Oprócz „dokumentów handlowych dla konsumentów (SalesInvoices)” format SAF-T zawiera również inne dokumenty:
- Dokumenty dotyczące przepływu towarów (MovementOfGoods)
- Dokumenty dotyczące kontroli towarów lub świadczenia usług (WorkingDocuments)
- Wystawione dokumenty potwierdzające otrzymanie płatności (Payments)
Mapowanie tych sekcji odpowiada sekcji „Dokumenty handlowe dla klientów (SalesInvoices)” i obejmuje dane z dokumentType wymienionych w artykule „Mapowanie typów dokumentów SAF-T (PT)”
Ten artykuł został przetłumaczony automatycznie.
Komentarze
Komentarze: 0
Zaloguj się, aby dodać komentarz.