Specyfikacja formatu XML faktury VAT

1. FakturyHS

1.1. Struktura

FakturyHS(xmlns)
-Faktura(Id_Dokumentu, Osoba_Sprzedawcy, Osoba_Nabywcy, Rodzaj_Rachunku, Data_Wystawienia, Data_Sprzedazy, Data_Sprzed_Bez_Dnia, Data_Rozliczenia, Osoba_Wystawiajacego, Miejsce_Wystawienia, Numer_Dokumentu, Numer_Dotyczy, Data_Dotyczy, Nr_Spedycyjny, Nr_Zlecenia, Nr_Kontraktu, Masa_Netto, Masa_Brutto, Do_zaplaty, Kwota_Do_Rozliczenia, Termin_Zaplaty, Sposob_Zaplaty, Waluta_Platnosci, Kurs_Platnosci, Waluta, Kurs, Inne_Informacje, Uwaga, Znaczniki, Srodek_Transportu, Warunki_Dostawy, Kod_War_Dost, Kraj_War_Dost, Data_Potw_Odb, Kod_Rodz_Transakcji, Data_Powst_Ob_Pod, Kod_Rodz_Transportu, Kod_Kraju_Handlu, Id_Dok_Kor, Waluta_Kor, Kurs_Kor, Data_Przekazania_Towaru, Kat_Obow_Pod, Metoda_Podliczania, Numer_Zwiazanego, Data_Zwiazanego)
--Sprzedawca(Nazwa, Skrot, Kod_Kraju, Miejscowosc, Kod, UlicaNumer, NIP, REGON, Numer_Konta, Nazwa_Banku, SWIFT, RodzKon, ProgIntrastat, Poczta)
--Nabywca(Nazwa, Skrot, Kod_Kraju, Miejscowosc, Kod, UlicaNumer, NIP, REGON, Numer_Konta, Nazwa_Banku, SWIFT, RodzKon, ProgIntrastat, Poczta)
--Firmy_Dodatkowe(Nazwa, Skrot, Kod_Kraju, Miejscowosc, Kod, UlicaNumer, NIP, REGON, Numer_Konta, Nazwa_Banku, SWIFT, RodzKon, ProgIntrastat, Poczta, Rola_Firmy_Dodatkowej)
--Pozycja(Identyfikator, Numer_Pozycji, Symbol, KWiU, Nazwa, NazwaObca, NazwaObcaWide, Jednostka, Ilosc, Jednostka_Uzup, Ilosc_Jedn_Uzup, Rodzaj_Opak, Liczba_Opak, Wartosc_Pozycji, Wartosc_Powierzona, Stawka_Podatku, Masa_Netto, Masa_Brutto, Kod_Towaru, Typ_Towaru, Kraj_Pochodzenia, Rabat, Flagi, Uwagi, Rodzaj_Pozycji, WartoscBanderol, Kwota_Akcyzy, Cena_Jednostkowa_Netto, ZaliczDoVATUE, Masa_Netto_Z_Opak)
---ListaKosztowDodatkowych(Kod, Opis, Wartosc, Waluta, Kurs, CzyDoVat, CzyDoStat, CzyDoAkcyzy, CzyDoNetto, WalutaFaktury, KursWalutyFaktury, DoVatNaIntrastat, DataKursuFaktury)
---Pola_Dodatkowe(NazwaPola, WartoscPola, TypPola, RozmiarPola, NazwaTypu, WartNull)
---OpisyObceTow
--Podsumowania(KwotaVAT, Do_ZaplatyPoKursie, KwotaAkcyzy, WartoscStatystyczna)
---PodsumowaniaWgStawek(WartoscNetto, WartoscNettoRabat, PodstawaPodatku, StawkaPodatku, KwotaPodatku, WartoscBrutto, OpisStawki, PodstawaPodatkuWF, KorektaPDS)
---PodsumowaniaWgStawekKorekta(WartoscNetto, WartoscNettoRabat, PodstawaPodatku, StawkaPodatku, KwotaPodatku, WartoscBrutto, OpisStawki, PodstawaPodatkuWF, KorektaPDS)
--Pola_Dodatkowe(NazwaPola, WartoscPola, TypPola, RozmiarPola, NazwaTypu, WartNull)

1.2. Zawartość informacyjna

/FakturyHS

xmlns string

pole określające przestrzeń nazw dla tego dokumentu

FakturyHS/Faktura

Jest to struktura akceptowana przez mechanizmy importujące dane programu IntrastatIB, MiniIntrastat i wbudowane w module faktur VAT programu
WINSAD

Id_Dokumentu string [32]

Unikalny identyfikator dokumentu (generowany na bazie numeru GUID)

Osoba_Sprzedawcy string [30]

Imie i nazwisko osoby sprzedawcy podpisującego się na fakturze

Osoba_Nabywcy string [30]

Imie i nazwisko nabywcy podpisującego się na fakturze (lub oświadczenie)

Rodzaj_Rachunku Smallint

Pole przyjmuje natępujące wartości:
1 - Faktura VAT
11 - Faktura Eksportowa
12 - Faktura Importowa
13 - Dostawa
14 - Nabycie

Data_Wystawienia TDateTime

Data_Sprzedazy TDateTime

Data_Sprzed_Bez_Dnia Boolean

Dozwolone jest określenie daty sprzedazy z dokładnością jedynie do miesiąca.
Pole to ogranicza dokładność pola Data_Sprzedazy

Data_Rozliczenia TDateTime

Data kompletnego rozliczenia faktury (kiedy zapłacono fakturę)

Osoba_Wystawiajacego string [30]

Miejsce_Wystawienia string [20]

Numer_Dokumentu string [40]

Numer_Dotyczy string [40]

Numer dokumentu, którego dotyczy bieżący (np: numer faktury korygowanej)

Data_Dotyczy TDateTime

Nr_Spedycyjny string [100]

Nr_Zlecenia string [20]

Nr_Kontraktu string [6]

Masa_Netto Double

Masa_Brutto Double

Do_zaplaty Double

Kwota brutto na jaką opiewa faktura

Kwota_Do_Rozliczenia Double

Kwota jaka zastała do rozliczenia (gdy częściowo załacono należność wynikającą z faktury)

Termin_Zaplaty TDateTime

Sposob_Zaplaty string [30]

Metoda płatności

Waluta_Platnosci string [3]

Kurs_Platnosci Double

Waluta string [3]

Waluta faktury

Kurs Double

Kurs waluty faktury

Inne_Informacje string [100]

Uwaga TStringList

Znaczniki Integer

Na polu oparto flagi (m.in. Anulowana, Zablokowana, Drukowana, Korekta, Proforma)
(zgaszony lub zapalony odpowiedni bit w notacji binarnej).
Poniżej podano wartości szesnastkowe flag, natomiast w pliku XML znajduje się wartość pola znacznik będącą wynikiem zapalenia określonych bitów, przedstawiona w postaci dziesiętnej
(przykładowe wartości dla flagi "Wewnetrzna": hex = $00000080; Dec = 128; Bin = 10000000):

Anulowana = $00000001
Zablokowana = $00000002
Drukowana = $00000008
FakturaTowarowa = $00000020
Wewnetrzna = $00000080
Korekta = $00000100
KursZDatyWystDokZwiaz = $00000200
Proforma = $00000400
OdwrotneObciazenie = $00001000
NabywcaOsobaFiz = $00004000
SprzedawcaMalyPodatnik = $00010000
SpecyfIntra = $00200000
Numeracja_Reczna = $00400000
KorektaKursuSalda = $01000000


Przykład: Faktura korekta z numeracją ręczną: $00000100 OR $00400000 = $00400100, zatem wartość decymalna pola w pliku XML powinna wyglądać tak: Znaczniki="4194560"

Srodek_Transportu string [25]

Warunki_Dostawy string [47]

Kod_War_Dost string [3]

Kraj_War_Dost string [2]

Data_Potw_Odb TDateTime

Data potwierdzenia odbioru faktury (ważne dla faktury korekty)

Kod_Rodz_Transakcji string [2]

Data_Powst_Ob_Pod TDateTime

Data powstania obowiązku podatkowego

Kod_Rodz_Transportu string [2]

Kod_Kraju_Handlu string [2]

WDT - kod kraju przeznaczenia; WNT - kod kraju wysyłki

Id_Dok_Kor string

Pole wypełniane w fakturze korygującej.
Identyfikator faktury, która jest korygowana.

Waluta_Kor string

Pole wypełniane w fakturze korygującej.
Wypełniane gdy waluta korekty inna niż waluta faktury korygowanej


Kurs_Kor Double

Pole wypełniane w fakturze korygującej.
Wypełniane gdy kurs waluty korekty inny niż faktury korygowanej


Data_Przekazania_Towaru TDateTime

Decyduje o zaliczeniu do odpowiedniego okresu rozliczeniowego w intrastacie (jeśli nie podana do wykorzystywana do tego data
sprzedaży)

Kat_Obow_Pod Smallint

Pole określające kategorię obowiązku podatkowego. Pole to pozwala zautomatyzować proces wyznaczania daty obowiązku podatkowego.
Znaczenie wartości pola:
Puste lub inne niż wymienione - Obowiązek podatkowy powstaje w dniu wystawienia faktury
1 - Data powstania obowiązku podatkowego ustawiona ręcznie
2 - Obow. podatk. powst. w dniu otrzym. zapł, nie później niż 30 dnia od daty sprzed.
3 - Obow. podatk. powst. w dniu w którym mija termin zapłaty
4 - Obowiązek podatkowy powstaje w dniu otrzymania zapłaty

Metoda_Podliczania Smallint

metody podliczania faktury:
  mpLiczPlnSum = 0; //domyślna
  mpSumPlnLicz = 1;
  mpSumWFLiczPln = 2; //najdokładniejsza

Numer_Zwiazanego string

Numer dokumentu związanego, najczęściej numer faktury kontrachenta

Data_Zwiazanego TDateTime

Data dokumentu związanego, najczęściej data faktury kontrachenta

FakturyHS/Faktura/Sprzedawca

Struktura zawerająca dane podmiotów figurujących na fakturze.

Nazwa TStringList [124]

Skrot string [20]

Kod_Kraju string [2]

Miejscowosc string [40]

Kod string [9]

UlicaNumer string [40]

NIP string [17]

REGON string [20]

Numer_Konta string [34]

Nazwa_Banku string [58]

SWIFT string [11]

RodzKon string [1]

ProgIntrastat Byte

Poczta string [35]

FakturyHS/Faktura/Nabywca

Struktura zawerająca dane nabywcy figurującego na fakturze.

Nazwa TStringList [124]

Skrot string [20]

Kod_Kraju string [2]

Miejscowosc string [40]

Kod string [9]

UlicaNumer string [40]

NIP string [17]

REGON string [20]

Numer_Konta string [34]

Nazwa_Banku string [58]

SWIFT string [11]

RodzKon string [1]

ProgIntrastat Byte

Poczta string [35]

FakturyHS/Faktura/Firmy_Dodatkowe

Dane firmy trzeciej może to być odbiorca towaru bądź inna firma biorąca udział w transakcji (np: płatnik)
Charakter firmy określa pole: Rola_Firmy_Dodatkowej
(pole jeszcze nie obsługiwane)

Nazwa TStringList [124]

Skrot string [20]

Kod_Kraju string [2]

Miejscowosc string [40]

Kod string [9]

UlicaNumer string [40]

NIP string [17]

REGON string [20]

Numer_Konta string [34]

Nazwa_Banku string [58]

SWIFT string [11]

RodzKon string [1]

ProgIntrastat Byte

Poczta string [35]

Rola_Firmy_Dodatkowej Smallint

2 - odbiorca towaru (rfOdbiorca)

FakturyHS/Faktura/Pozycja

Lista pozycji faktury

Identyfikator string [20]

Numer_Pozycji Integer

Symbol string [32]

KWiU string [14]

Nazwa TStringList [104]

NazwaObca TStringList

NazwaObcaWide TWideStringList

Jednostka string [10]

Ilosc Double

Jednostka_Uzup string [10]

Ilosc_Jedn_Uzup Double

Rodzaj_Opak string

Liczba_Opak Integer

Wartosc_Pozycji Double

Wartosc_Powierzona Double

Stawka_Podatku Double

Stawka podatku może być ułamkiem gdy jest dodatnia brana jest wprost.
Wartości ujemne są wykorzystywane do kodowania stawek nietypowych.
Kody stawek:
Zwolnione = -2;
ZeroExport = -3;
TylkoBrutto = -4;
Nie opodatkowane = -5;

Masa_Netto Double

Masa_Brutto Double

Kod_Towaru string [9]

Typ_Towaru string [10]

Pole definiujące typ towaru - może być wykorzystane do automatyzacji procesu księgowania

Kraj_Pochodzenia string [2]

Rabat Double

Rabat procentowy liczony od wartości pozycji

Flagi Integer

Na polu oparto flagi (bity w zapisie binarnym):
Produkt preferencyjny = $0001;
DominujeCenaJedn = $0002;
Przemieszczenie = $0010; - ustawienie tej flagi w korekcie (tylko tam ma to sens) skutkuje pominięciem towaru podczas generowania deklaracji intrastat
Towar = $0040; - ustawienie tej flagi pozwala oznaczyć pozycję nie posiadającej kodu towaru jako towar (domyślnie pozycje bez kodu traktowane są jak usługi)

Uwagi string [50]

Rodzaj_Pozycji Smallint

Na fakturze korygującej powinna pojawić się pozycja oryginalna i zmieniona - pole to rozróżnia te pozycje.
Jeśli pole ma wartość 0 lub go brak to program uznaję pozycję za aktualnie obowiązującą, pozycja posiadająca w tym polu wartość 1 uznawana jest za pozycję korygowaną.

WartoscBanderol Double

Kwota_Akcyzy Double

Cena_Jednostkowa_Netto Double

Pole przechowuje informavje o cenie jednostkowej netto pozycji fakturowej, aby informacja ta była respektowana przez program należy pozostawić pole Wartość pozycji puste
lub ustawić bit: $2 pola Flagi wtedy rartość wyznaczana na podstawie ceny jednostkowej i ilości

ZaliczDoVATUE Boolean

pole pozwala wskazać czy wartość danej pozycja ma zostać wliczona do deklaracji VAT-UE

Masa_Netto_Z_Opak Double

FakturyHS/Faktura/Pozycja/ListaKosztowDodatkowych

Elementy kalkulacyjne wpływające na VAT, wartść statystyczną i akcyzę

Kod string [6]

pole przewidziane do identyfikacji kosztów

Opis string [35]

Opis kosztu np: Transport krajowy

Wartosc Double

wartość kosztu w walucie

Waluta string [3]

waluta kosztu (jesli nie okreslona to domyślnie PLN)

Kurs Double

Kurs waluty kosztu

CzyDoVat Smallint

0 - koszt neutralny w stosunku do podstawy VAT
1- Koszt dodawany do podstawy VAT
2 -Koszt odejmowany od podstawy VAT

CzyDoStat Smallint

0 - koszt neutralny w stosunku do wartosci statystycznej
1- Koszt dodawany do wartosci statystycznej
2 -Koszt odejmowany od wartosci statystycznej

CzyDoAkcyzy Smallint

0 - koszt neutralny w stosunku do podstawy akcyzy
1- Koszt dodawany do podstawy akcyzy
2 -Koszt odejmowany od podstawy akcyzy

CzyDoNetto Smallint

koszt wpływalący na wartość netto towaru z uwzględnienionym rabatem

WalutaFaktury Boolean

W sytuacji gdy pole to będzie ustawione na True kurs i waluta będzie brana z faktury.
Gdy pole ustawione na False przyjmowana waluta i kurs określona w koszcie bądź jeśli są nie określone przyjmowana będzie
waluta domyślna czyli PLN.

KursWalutyFaktury Double

DoVatNaIntrastat Boolean

DataKursuFaktury TDate

FakturyHS/Faktura/Pozycja/Pola_Dodatkowe

NazwaPola string

WartoscPola string

TypPola Byte

RozmiarPola Smallint

NazwaTypu string

WartNull Boolean

FakturyHS/Faktura/Pozycja/OpisyObceTow

FakturyHS/Faktura/Podsumowania

Węzeł przeznaczony do eksportowania informacji podsumowujących dotyczących faktury
Węzeł ten nie jest importowany przez program

KwotaVAT Double

Do_ZaplatyPoKursie Double

wartość waktury w PLN

KwotaAkcyzy Double

WartoscStatystyczna Double

FakturyHS/Faktura/Podsumowania/PodsumowaniaWgStawek

Lista zawierająca podsumowania wybranych wartości pogrupowane według stawek podatku vat (kwoty wyrażone są w PLN)

WartoscNetto Double

WartoscNettoRabat Double

PodstawaPodatku Double



StawkaPodatku Double

KwotaPodatku Double

WartoscBrutto Double

OpisStawki string

PodstawaPodatkuWF Double

Podstawa podatku w walucie faktury

KorektaPDS Boolean

FakturyHS/Faktura/Podsumowania/PodsumowaniaWgStawekKorekta

WartoscNetto Double

WartoscNettoRabat Double

PodstawaPodatku Double

StawkaPodatku Double

KwotaPodatku Double

WartoscBrutto Double

OpisStawki string

PodstawaPodatkuWF Double

KorektaPDS Boolean

FakturyHS/Faktura/Pola_Dodatkowe

Lista pozwalająca wprowadzić pola, których program nie obsługuje. Pola te będą dostępne z poziomu edycji faktury.
Dane te są najczęście wykorzystywane przez dodatkowe moduły i inne programy.

NazwaPola string

WartoscPola string

TypPola Byte

RozmiarPola Smallint

NazwaTypu string

WartNull Boolean