korrektur P_18

This commit is contained in:
Ralph Soika 2026-05-13 16:23:13 +02:00
parent a272c8bdb4
commit 5491c04da4
11 changed files with 381 additions and 157 deletions

View file

@ -286,6 +286,8 @@ public class KSeFInvoiceLineBuilder {
Map<TaxCode, NetVatPair> aggregates,
BigDecimal grossTotal) {
Element elementAdnotacje = model.findOrCreateChildNode(elementFa, EInvoiceNS.KSEF, "Adnotacje");
for (Map.Entry<TaxCode, NetVatPair> entry : aggregates.entrySet()) {
TaxCode taxCode = entry.getKey();
NetVatPair pair = entry.getValue();
@ -303,6 +305,12 @@ public class KSeFInvoiceLineBuilder {
vatElement.setTextContent(format(pair.vat));
logger.info("│ ├── set " + vatField + " = " + format(pair.vat));
}
// Set P_18
Element p18Element = model.findOrCreateChildNode(elementAdnotacje, EInvoiceNS.KSEF, "P_18");
p18Element.setTextContent(taxCode.getP18Value());
logger.info("│ ├── set P_18 = " + taxCode.getP18Value());
}
// P_15 - gross total of the entire invoice (always present)

View file

@ -41,61 +41,63 @@ public enum TaxCode {
/**
* Domestic 0% rate, services in Polish seaports (Art. 83 sec. 1 no. 9 UStG-PL).
*/
CARGO_0("0", "0 KR", "P_13_6_1", null),
CARGO_0("0", "0 KR", "P_13_6_1", null, "2"),
/**
* Domestic 0% rate, forwarding services for export of goods (Art. 83 sec. 1 no.
* 19 UStG-PL).
*/
CARGO_0E("0%E", "0 KR", "P_13_6_1", null),
CARGO_0E("0%E", "0 KR", "P_13_6_1", null, "2"),
/**
* Domestic 0% rate, shipping agency services (Art. 83 sec. 1 no. 17 UStG-PL).
*/
CARGO_01("01", "0 KR", "P_13_6_1", null),
CARGO_01("01", "0 KR", "P_13_6_1", null, "2"),
/**
* Domestic 0% rate, other maritime transport services (Art. 83 sec. 1 no. 17 or
* 20 UStG-PL).
*/
CARGO_0MR("0MR", "0 KR", "P_13_6_1", null),
CARGO_0MR("0MR", "0 KR", "P_13_6_1", null, "2"),
/** Standard tax rate 23% (Art. 41 sec. 1 / Art. 146ef UStG-PL). */
CARGO_23("23", "23", "P_13_1", "P_14_1"),
CARGO_23("23", "23", "P_13_1", "P_14_1", "2"),
/** First reduced tax rate 8% (Art. 41 sec. 2 UStG-PL). */
CARGO_8("8", "8", "P_13_2", "P_14_2"),
CARGO_8("8", "8", "P_13_2", "P_14_2", "2"),
/**
* Not subject to Polish VAT, B2B service to an EU taxable person
* (Art. 28b + Art. 100 sec. 1 no. 4 UStG-PL).
* Reportable in the EU recapitulative statement (VAT-UE / ZM).
*/
CARGO_NP("NP", "np II", "P_13_9", null),
CARGO_NP("NP", "np II", "P_13_9", null, "1"),
/**
* Not subject to Polish VAT, customer outside the EU or transit
* (Art. 28b UStG-PL, excluding Art. 100 sec. 1 no. 4).
* NOT reportable in VAT-UE.
*/
CARGO_NPT("NPT", "np I", "P_13_8", null),
CARGO_NPT("NPT", "np I", "P_13_8", null, "1"),
/**
* Art. 83 ust. 1 pkt 23 ustawy o VAT usługi transportu międzynarodowego (z
* definicją z ust. 3)
*/
CARGO_023("023", "0 KR", "P_13_6_1", null);
CARGO_023("023", "0 KR", "P_13_6_1", null, "2");
private final String cargosoftCode;
private final String p12Value;
private final String netSummaryField;
private final String vatSummaryField;
private final String p18Value;
TaxCode(String cargosoftCode, String p12Value, String netSummaryField, String vatSummaryField) {
TaxCode(String cargosoftCode, String p12Value, String netSummaryField, String vatSummaryField, String p18value) {
this.cargosoftCode = cargosoftCode;
this.p12Value = p12Value;
this.netSummaryField = netSummaryField;
this.vatSummaryField = vatSummaryField;
this.p18Value = p18value;
}
/**
@ -129,6 +131,10 @@ public enum TaxCode {
return vatSummaryField;
}
public String getP18Value() {
return p18Value;
}
/**
* @return {@code true} if this code carries a non-zero VAT amount
* (i.e. a VAT summary field exists); {@code false} otherwise

View file

@ -145,6 +145,124 @@ public class KSeFAdapterTest {
writeOutputToResources(xmlTemplate, "invoice-simple.xml");
}
/**
* Simple PLN invoice with one tax rate (23%).
* Expected: P_13_1, P_14_1, P_15.
*/
@Test
@DisplayName("Test NPT Invoice (PLN, NPT)")
public void testNPTInvoice() throws Exception {
logger.info("==> Test: Simple Invoice");
ItemCollection workitem = new ItemCollection();
workitem.setItemValue("invoice.number", "FV/2025/001");
workitem.setItemValue("invoice.date", LocalDate.of(2025, 2, 10));
workitem.setItemValue("invoice.duedate", LocalDate.of(2025, 3, 10));
workitem.setItemValue("invoice.currency", "PLN");
workitem.setItemValue("invoice.total.net", 10000.00);
workitem.setItemValue("invoice.total.tax", 23.0);
workitem.setItemValue("invoice.total", 12300.00);
workitem.setItemValue("invoice.correction", "false");
workitem.setItemValue("invoice.CorrectionInvoiceNumber", "");
workitem.setItemValue("partner.id", "BP-001");
workitem.setItemValue("partner.vat", "PL1234567890");
workitem.setItemValue("invoice.performancedate", new Date());
// Prepare child items (invoice line items)
List<Object> childItems = new ArrayList<>();
ItemCollection lineItem1 = new ItemCollection();
lineItem1.setItemValue("numpos", "1");
lineItem1.setItemValue("datev.text", "Transport Berlin - Warsaw");
lineItem1.setItemValue("billingtext", "Transport Berlin - Warsaw");
lineItem1.setItemValue("datev.umsatz", 6000.00);
lineItem1.setItemValue("datev.vatrate", 0.0);
lineItem1.setItemValue("cargosoft.vat.code", "NPT");
childItems.add(lineItem1.getAllItems());
ItemCollection lineItem2 = new ItemCollection();
lineItem2.setItemValue("numpos", "2");
lineItem2.setItemValue("datev.text", "Customs handling");
lineItem2.setItemValue("billingtext", "Customs handling");
lineItem2.setItemValue("datev.umsatz", 4000.00);
lineItem2.setItemValue("datev.vatrate", 0.0);
lineItem2.setItemValue("cargosoft.vat.code", "NPT");
childItems.add(lineItem2.getAllItems());
workitem.setItemValue("_childitems", childItems);
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
.thenReturn(businessPartner);
FileData xmlTemplate = loadTemplateFromResources(TEMPLATE_FILE);
adapter.updateEInvoice(xmlTemplate, workitem);
assertNotNull(xmlTemplate.getContent(), "XML content should not be null after update");
assertTrue(xmlTemplate.getContent().length > 0, "XML content should not be empty");
writeOutputToResources(xmlTemplate, "invoice-npt.xml");
}
/**
* Simple PLN invoice with one tax rate (23%).
* Expected: P_13_1, P_14_1, P_15.
*/
@Test
@DisplayName("Test NPT Invoice (PLN, NPT)")
public void testNPInvoice() throws Exception {
logger.info("==> Test: Simple Invoice");
ItemCollection workitem = new ItemCollection();
workitem.setItemValue("invoice.number", "FV/2025/001");
workitem.setItemValue("invoice.date", LocalDate.of(2025, 2, 10));
workitem.setItemValue("invoice.duedate", LocalDate.of(2025, 3, 10));
workitem.setItemValue("invoice.currency", "PLN");
workitem.setItemValue("invoice.total.net", 10000.00);
workitem.setItemValue("invoice.total.tax", 23.0);
workitem.setItemValue("invoice.total", 12300.00);
workitem.setItemValue("invoice.correction", "false");
workitem.setItemValue("invoice.CorrectionInvoiceNumber", "");
workitem.setItemValue("partner.id", "BP-001");
workitem.setItemValue("partner.vat", "PL1234567890");
workitem.setItemValue("invoice.performancedate", new Date());
// Prepare child items (invoice line items)
List<Object> childItems = new ArrayList<>();
ItemCollection lineItem1 = new ItemCollection();
lineItem1.setItemValue("numpos", "1");
lineItem1.setItemValue("datev.text", "Transport Berlin - Warsaw");
lineItem1.setItemValue("billingtext", "Transport Berlin - Warsaw");
lineItem1.setItemValue("datev.umsatz", 6000.00);
lineItem1.setItemValue("datev.vatrate", 0.0);
lineItem1.setItemValue("cargosoft.vat.code", "NP");
childItems.add(lineItem1.getAllItems());
ItemCollection lineItem2 = new ItemCollection();
lineItem2.setItemValue("numpos", "2");
lineItem2.setItemValue("datev.text", "Customs handling");
lineItem2.setItemValue("billingtext", "Customs handling");
lineItem2.setItemValue("datev.umsatz", 4000.00);
lineItem2.setItemValue("datev.vatrate", 0.0);
lineItem2.setItemValue("cargosoft.vat.code", "NP");
childItems.add(lineItem2.getAllItems());
workitem.setItemValue("_childitems", childItems);
when(businessPartnerService.getBusinessPartnerByID("BP-001"))
.thenReturn(businessPartner);
FileData xmlTemplate = loadTemplateFromResources(TEMPLATE_FILE);
adapter.updateEInvoice(xmlTemplate, workitem);
assertNotNull(xmlTemplate.getContent(), "XML content should not be null after update");
assertTrue(xmlTemplate.getContent().length > 0, "XML content should not be empty");
writeOutputToResources(xmlTemplate, "invoice-np.xml");
}
/**
* Correction invoice (KOR) in EUR with 23% tax rate.
* Expected: KOR header data, P_13_1, P_14_1, P_14_1W, KursWalutyZ.

View file

@ -92,7 +92,7 @@
Means we change the value from 2 to 1
-->
<P_18>1</P_18>
<P_18>2</P_18>
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
<P_18A>2</P_18A>

View file

@ -6,10 +6,9 @@
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-04-28T18:50:52.375962Z</DataWytworzeniaFa>
<DataWytworzeniaFa>2026-05-13T15:43:22.241612Z</DataWytworzeniaFa>
<SystemInfo>Imixs eInvoice</SystemInfo>
</Naglowek>
<!-- Seller (Your Polish Company - Pre-filled) -->
<Podmiot1>
<PrefiksPodatnika>PL</PrefiksPodatnika>
<DaneIdentyfikacyjne>
@ -24,12 +23,8 @@
<Email>MBudas@alexander-logistics.com</Email>
</DaneKontaktowe>
</Podmiot1>
<!-- Buyer (Customer - Empty, to be filled) -->
<Podmiot2>
<DaneIdentyfikacyjne>
<!-- NIP falls eine PL Ust Vorliegt
ansonsten NrID - geht immer -->
<!-- <Nazwa>#Customer Name#</Nazwa> -->
<NrID>DE310968950</NrID>
<Nazwa>Muster GmbH</Nazwa>
</DaneIdentyfikacyjne>
@ -38,64 +33,36 @@
<AdresL1>Museumstr. 2-6</AdresL1>
<AdresL2>28195 Bremen</AdresL2>
</Adres>
<!---
Contact information from buyer can be left
<DaneKontaktowe>
<Email></Email>
<Telefon></Telefon>
</DaneKontaktowe>
-->
<NrKlienta>D-18804</NrKlienta>
<JST>2</JST>
<!-- fixed -->
<GV>2</GV>
<!-- fixed -->
</Podmiot2>
<!-- Invoice Data -->
<Fa>
<KodWaluty>EUR</KodWaluty>
<P_1>2025-02-10</P_1>
<!-- Invoice Date -->
<P_1M>Szczecin</P_1M>
<P_2>FV/2025/7470</P_2>
<!-- Invoice Number -->
<P_6>2026-04-28</P_6>
<!-- Due Date -->
<!-- ============================================================
VAT summary fields - filled by KSeFInvoiceLineBuilder.
Empty placeholders ensure correct XSD sequence. Unused
placeholders are removed by the builder before serialization.
============================================================ -->
<P_6>2026-05-13</P_6>
<P_13_9>4620.00</P_13_9>
<P_15>4620.00</P_15>
<KursWalutyZ>4.3</KursWalutyZ>
<KursWalutyZ>0.2326</KursWalutyZ>
<Adnotacje>
<!-- 1 yes - 2 no -->
<P_16>2</P_16>
<!-- Keine Selbstfakturierung -->
<P_17>2</P_17>
<!-- Kein Reverse Charge -->
<P_18>2</P_18>
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
<P_18>1</P_18>
<P_18A>2</P_18A>
<!-- Keine Steuerbefreiung -->
<Zwolnienie>
<P_19N>1</P_19N>
</Zwolnienie>
<!-- Keine neuen Verkehrsmittel -->
<NoweSrodkiTransportu>
<P_22N>1</P_22N>
</NoweSrodkiTransportu>
<!-- Kein vereinfachtes Verfahren nach Art. 135 -->
<P_23>2</P_23>
<!-- Keine Margenregelung -->
<PMarzy>
<P_PMarzyN>1</P_PMarzyN>
</PMarzy>
</Adnotacje>
<!-- Invoice Type (VAT) -->
<RodzajFaktury>VAT</RodzajFaktury>
<!-- Invoice Positions: FaWiersz -->
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>International transport service Germany - Poland</P_7>
@ -108,21 +75,10 @@
<P_12>np II</P_12>
</FaWiersz>
<Platnosc>
<!-- Setzen der Zahlungsart (immer 6)
* 1 Barzahlung
* 2 Karte
* 3 Gutschein
* 4 Scheck
* 5 Kredit
* 6 Überweisung
* 7 Mobilzahlung
-->
<TerminPlatnosci>
<Termin>2025-03-10</Termin>
</TerminPlatnosci>
<FormaPlatnosci>6</FormaPlatnosci>
<!-- BANKEN-->
<RachunekBankowy>
<NrRB>PL79116022020000000654306674</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>

View file

@ -6,10 +6,9 @@
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-04-28T18:47:03.533669Z</DataWytworzeniaFa>
<DataWytworzeniaFa>2026-05-13T16:16:33.813835Z</DataWytworzeniaFa>
<SystemInfo>Imixs eInvoice</SystemInfo>
</Naglowek>
<!-- Seller (Your Polish Company - Pre-filled) -->
<Podmiot1>
<PrefiksPodatnika>PL</PrefiksPodatnika>
<DaneIdentyfikacyjne>
@ -24,12 +23,8 @@
<Email>MBudas@alexander-logistics.com</Email>
</DaneKontaktowe>
</Podmiot1>
<!-- Buyer (Customer - Empty, to be filled) -->
<Podmiot2>
<DaneIdentyfikacyjne>
<!-- NIP falls eine PL Ust Vorliegt
ansonsten NrID - geht immer -->
<!-- <Nazwa>#Customer Name#</Nazwa> -->
<NIP>1234567890</NIP>
<Nazwa>Test Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
@ -38,65 +33,37 @@
<AdresL1>ul. Testowa 1</AdresL1>
<AdresL2>00-001 Warszawa</AdresL2>
</Adres>
<!---
Contact information from buyer can be left
<DaneKontaktowe>
<Email></Email>
<Telefon></Telefon>
</DaneKontaktowe>
-->
<NrKlienta>D-12345</NrKlienta>
<JST>2</JST>
<!-- fixed -->
<GV>2</GV>
<!-- fixed -->
</Podmiot2>
<!-- Invoice Data -->
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2025-02-10</P_1>
<!-- Invoice Date -->
<P_1M>Szczecin</P_1M>
<P_2>FV/2025/7471</P_2>
<!-- Invoice Number -->
<P_6>2026-04-28</P_6>
<!-- Due Date -->
<!-- ============================================================
VAT summary fields - filled by KSeFInvoiceLineBuilder.
Empty placeholders ensure correct XSD sequence. Unused
placeholders are removed by the builder before serialization.
============================================================ -->
<P_6>2026-05-13</P_6>
<P_13_1>3960.00</P_13_1>
<P_14_1>910.80</P_14_1>
<P_13_6_1>14040.00</P_13_6_1>
<P_15>18910.80</P_15>
<Adnotacje>
<!-- 1 yes - 2 no -->
<P_16>2</P_16>
<!-- Keine Selbstfakturierung -->
<P_17>2</P_17>
<!-- Kein Reverse Charge -->
<P_18>2</P_18>
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
<P_18A>2</P_18A>
<!-- Keine Steuerbefreiung -->
<Zwolnienie>
<P_19N>1</P_19N>
</Zwolnienie>
<!-- Keine neuen Verkehrsmittel -->
<NoweSrodkiTransportu>
<P_22N>1</P_22N>
</NoweSrodkiTransportu>
<!-- Kein vereinfachtes Verfahren nach Art. 135 -->
<P_23>2</P_23>
<!-- Keine Margenregelung -->
<PMarzy>
<P_PMarzyN>1</P_PMarzyN>
</PMarzy>
</Adnotacje>
<!-- Invoice Type (VAT) -->
<RodzajFaktury>VAT</RodzajFaktury>
<!-- Invoice Positions: FaWiersz -->
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Forwarding service for export shipment</P_7>
@ -120,21 +87,10 @@
<P_12>23</P_12>
</FaWiersz>
<Platnosc>
<!-- Setzen der Zahlungsart (immer 6)
* 1 Barzahlung
* 2 Karte
* 3 Gutschein
* 4 Scheck
* 5 Kredit
* 6 Überweisung
* 7 Mobilzahlung
-->
<TerminPlatnosci>
<Termin>2025-03-10</Termin>
</TerminPlatnosci>
<FormaPlatnosci>6</FormaPlatnosci>
<!-- BANKEN-->
<RachunekBankowy>
<NrRB>PL79116022020000000654306674</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/"
xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-05-13T16:21:25.551812Z</DataWytworzeniaFa>
<SystemInfo>Imixs eInvoice</SystemInfo>
</Naglowek>
<Podmiot1>
<PrefiksPodatnika>PL</PrefiksPodatnika>
<DaneIdentyfikacyjne>
<NIP>9552521552</NIP>
<Nazwa>ALEXANDER GLOBAL LOGISTICS POLAND sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<Adres>
<KodKraju>PL</KodKraju>
<AdresL1>ul. Gdańska 36, 70-660 Szczecin</AdresL1>
</Adres>
<DaneKontaktowe>
<Email>MBudas@alexander-logistics.com</Email>
</DaneKontaktowe>
</Podmiot1>
<Podmiot2>
<DaneIdentyfikacyjne>
<NIP>1234567890</NIP>
<Nazwa>Test Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<Adres>
<KodKraju>PL</KodKraju>
<AdresL1>ul. Testowa 1</AdresL1>
<AdresL2>00-001 Warszawa</AdresL2>
</Adres>
<NrKlienta>D-12345</NrKlienta>
<JST>2</JST>
<GV>2</GV>
</Podmiot2>
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2025-02-10</P_1>
<P_1M>Szczecin</P_1M>
<P_2>FV/2025/001</P_2>
<P_6>2026-05-13</P_6>
<P_13_9>10000.00</P_13_9>
<P_15>10000.00</P_15>
<Adnotacje>
<P_16>2</P_16>
<P_17>2</P_17>
<P_18>1</P_18>
<P_18A>2</P_18A>
<Zwolnienie>
<P_19N>1</P_19N>
</Zwolnienie>
<NoweSrodkiTransportu>
<P_22N>1</P_22N>
</NoweSrodkiTransportu>
<P_23>2</P_23>
<PMarzy>
<P_PMarzyN>1</P_PMarzyN>
</PMarzy>
</Adnotacje>
<RodzajFaktury>VAT</RodzajFaktury>
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Transport Berlin - Warsaw</P_7>
<P_8A>szt.</P_8A>
<P_8B>1.00</P_8B>
<P_9A>6000.00</P_9A>
<P_11>6000.00</P_11>
<P_11A>6000.00</P_11A>
<P_11Vat>0.00</P_11Vat>
<P_12>np II</P_12>
</FaWiersz>
<FaWiersz>
<NrWierszaFa>2</NrWierszaFa>
<P_7>Customs handling</P_7>
<P_8A>szt.</P_8A>
<P_8B>1.00</P_8B>
<P_9A>4000.00</P_9A>
<P_11>4000.00</P_11>
<P_11A>4000.00</P_11A>
<P_11Vat>0.00</P_11Vat>
<P_12>np II</P_12>
</FaWiersz>
<Platnosc>
<TerminPlatnosci>
<Termin>2025-03-10</Termin>
</TerminPlatnosci>
<FormaPlatnosci>6</FormaPlatnosci>
<RachunekBankowy>
<NrRB>PL79116022020000000654306674</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>
<NazwaBanku>Bank Millennium S.A.</NazwaBanku>
<OpisRachunku>Konto PLN</OpisRachunku>
</RachunekBankowy>
<RachunekBankowy>
<NrRB>PL16116022020000000654910469</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>
<NazwaBanku>Bank Millennium S.A.</NazwaBanku>
<OpisRachunku>Konto EUR</OpisRachunku>
</RachunekBankowy>
<RachunekBankowy>
<NrRB>PL72116022020000000654911595</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>
<NazwaBanku>Bank Millennium S.A.</NazwaBanku>
<OpisRachunku>Konto USD</OpisRachunku>
</RachunekBankowy>
</Platnosc>
</Fa>
</Faktura>

View file

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<Faktura xmlns="http://crd.gov.pl/wzor/2025/06/25/13775/"
xmlns:etd="http://crd.gov.pl/xml/schematy/dziedzinowe/mf/2022/01/05/eD/DefinicjeTypy/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-05-13T16:19:55.031750Z</DataWytworzeniaFa>
<SystemInfo>Imixs eInvoice</SystemInfo>
</Naglowek>
<Podmiot1>
<PrefiksPodatnika>PL</PrefiksPodatnika>
<DaneIdentyfikacyjne>
<NIP>9552521552</NIP>
<Nazwa>ALEXANDER GLOBAL LOGISTICS POLAND sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<Adres>
<KodKraju>PL</KodKraju>
<AdresL1>ul. Gdańska 36, 70-660 Szczecin</AdresL1>
</Adres>
<DaneKontaktowe>
<Email>MBudas@alexander-logistics.com</Email>
</DaneKontaktowe>
</Podmiot1>
<Podmiot2>
<DaneIdentyfikacyjne>
<NIP>1234567890</NIP>
<Nazwa>Test Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
<Adres>
<KodKraju>PL</KodKraju>
<AdresL1>ul. Testowa 1</AdresL1>
<AdresL2>00-001 Warszawa</AdresL2>
</Adres>
<NrKlienta>D-12345</NrKlienta>
<JST>2</JST>
<GV>2</GV>
</Podmiot2>
<Fa>
<KodWaluty>PLN</KodWaluty>
<P_1>2025-02-10</P_1>
<P_1M>Szczecin</P_1M>
<P_2>FV/2025/001</P_2>
<P_6>2026-05-13</P_6>
<P_13_8>10000.00</P_13_8>
<P_15>10000.00</P_15>
<Adnotacje>
<P_16>2</P_16>
<P_17>2</P_17>
<P_18>1</P_18>
<P_18A>2</P_18A>
<Zwolnienie>
<P_19N>1</P_19N>
</Zwolnienie>
<NoweSrodkiTransportu>
<P_22N>1</P_22N>
</NoweSrodkiTransportu>
<P_23>2</P_23>
<PMarzy>
<P_PMarzyN>1</P_PMarzyN>
</PMarzy>
</Adnotacje>
<RodzajFaktury>VAT</RodzajFaktury>
<FaWiersz>
<NrWierszaFa>1</NrWierszaFa>
<P_7>Transport Berlin - Warsaw</P_7>
<P_8A>szt.</P_8A>
<P_8B>1.00</P_8B>
<P_9A>6000.00</P_9A>
<P_11>6000.00</P_11>
<P_11A>6000.00</P_11A>
<P_11Vat>0.00</P_11Vat>
<P_12>np I</P_12>
</FaWiersz>
<FaWiersz>
<NrWierszaFa>2</NrWierszaFa>
<P_7>Customs handling</P_7>
<P_8A>szt.</P_8A>
<P_8B>1.00</P_8B>
<P_9A>4000.00</P_9A>
<P_11>4000.00</P_11>
<P_11A>4000.00</P_11A>
<P_11Vat>0.00</P_11Vat>
<P_12>np I</P_12>
</FaWiersz>
<Platnosc>
<TerminPlatnosci>
<Termin>2025-03-10</Termin>
</TerminPlatnosci>
<FormaPlatnosci>6</FormaPlatnosci>
<RachunekBankowy>
<NrRB>PL79116022020000000654306674</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>
<NazwaBanku>Bank Millennium S.A.</NazwaBanku>
<OpisRachunku>Konto PLN</OpisRachunku>
</RachunekBankowy>
<RachunekBankowy>
<NrRB>PL16116022020000000654910469</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>
<NazwaBanku>Bank Millennium S.A.</NazwaBanku>
<OpisRachunku>Konto EUR</OpisRachunku>
</RachunekBankowy>
<RachunekBankowy>
<NrRB>PL72116022020000000654911595</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>
<NazwaBanku>Bank Millennium S.A.</NazwaBanku>
<OpisRachunku>Konto USD</OpisRachunku>
</RachunekBankowy>
</Platnosc>
</Fa>
</Faktura>

View file

@ -6,7 +6,7 @@
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-04-28T19:34:07.576916Z</DataWytworzeniaFa>
<DataWytworzeniaFa>2026-05-13T16:14:40.127715Z</DataWytworzeniaFa>
<SystemInfo>Imixs eInvoice</SystemInfo>
</Naglowek>
<Podmiot1>
@ -42,7 +42,7 @@
<P_1>2025-02-10</P_1>
<P_1M>Szczecin</P_1M>
<P_2>FV/2025/001</P_2>
<P_6>2026-04-28</P_6>
<P_6>2026-05-13</P_6>
<P_13_1>10000.00</P_13_1>
<P_14_1>2300.00</P_14_1>
<P_15>12300.00</P_15>

View file

@ -6,10 +6,9 @@
<Naglowek>
<KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
<WariantFormularza>3</WariantFormularza>
<DataWytworzeniaFa>2026-04-28T18:46:09.787442Z</DataWytworzeniaFa>
<DataWytworzeniaFa>2026-05-13T15:41:50.791480Z</DataWytworzeniaFa>
<SystemInfo>Imixs eInvoice</SystemInfo>
</Naglowek>
<!-- Seller (Your Polish Company - Pre-filled) -->
<Podmiot1>
<PrefiksPodatnika>PL</PrefiksPodatnika>
<DaneIdentyfikacyjne>
@ -24,12 +23,8 @@
<Email>MBudas@alexander-logistics.com</Email>
</DaneKontaktowe>
</Podmiot1>
<!-- Buyer (Customer - Empty, to be filled) -->
<Podmiot2>
<DaneIdentyfikacyjne>
<!-- NIP falls eine PL Ust Vorliegt
ansonsten NrID - geht immer -->
<!-- <Nazwa>#Customer Name#</Nazwa> -->
<NIP>1234567890</NIP>
<Nazwa>Test Sp. z o.o.</Nazwa>
</DaneIdentyfikacyjne>
@ -38,66 +33,38 @@
<AdresL1>ul. Testowa 1</AdresL1>
<AdresL2>00-001 Warszawa</AdresL2>
</Adres>
<!---
Contact information from buyer can be left
<DaneKontaktowe>
<Email></Email>
<Telefon></Telefon>
</DaneKontaktowe>
-->
<NrKlienta>D-12345</NrKlienta>
<JST>2</JST>
<!-- fixed -->
<GV>2</GV>
<!-- fixed -->
</Podmiot2>
<!-- Invoice Data -->
<Fa>
<KodWaluty>EUR</KodWaluty>
<P_1>2025-02-10</P_1>
<!-- Invoice Date -->
<P_1M>Szczecin</P_1M>
<P_2>FV/2025/001</P_2>
<!-- Invoice Number -->
<P_6>2026-04-28</P_6>
<!-- Due Date -->
<!-- ============================================================
VAT summary fields - filled by KSeFInvoiceLineBuilder.
Empty placeholders ensure correct XSD sequence. Unused
placeholders are removed by the builder before serialization.
============================================================ -->
<P_6>2026-05-13</P_6>
<P_13_1>-900.00</P_13_1>
<P_14_1>-207.00</P_14_1>
<P_14_1W>-890.10</P_14_1W>
<P_14_1W>-48.15</P_14_1W>
<P_15>-1107.00</P_15>
<KursWalutyZ>4.3</KursWalutyZ>
<KursWalutyZ>0.2326</KursWalutyZ>
<Adnotacje>
<!-- 1 yes - 2 no -->
<P_16>2</P_16>
<!-- Keine Selbstfakturierung -->
<P_17>2</P_17>
<!-- Kein Reverse Charge -->
<P_18>2</P_18>
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
<P_18>1</P_18>
<P_18A>2</P_18A>
<!-- Keine Steuerbefreiung -->
<Zwolnienie>
<P_19N>1</P_19N>
</Zwolnienie>
<!-- Keine neuen Verkehrsmittel -->
<NoweSrodkiTransportu>
<P_22N>1</P_22N>
</NoweSrodkiTransportu>
<!-- Kein vereinfachtes Verfahren nach Art. 135 -->
<P_23>2</P_23>
<!-- Keine Margenregelung -->
<PMarzy>
<P_PMarzyN>1</P_PMarzyN>
</PMarzy>
</Adnotacje>
<!-- Invoice Type (VAT) -->
<RodzajFaktury>KOR</RodzajFaktury>
<!-- Invoice Positions: FaWiersz -->
<DaneFaKorygowanej>
<DataWystFaKorygowanej>2025-02-10</DataWystFaKorygowanej>
<NrFaKorygowanej>6551</NrFaKorygowanej>
@ -115,21 +82,10 @@
<P_12>23</P_12>
</FaWiersz>
<Platnosc>
<!-- Setzen der Zahlungsart (immer 6)
* 1 Barzahlung
* 2 Karte
* 3 Gutschein
* 4 Scheck
* 5 Kredit
* 6 Überweisung
* 7 Mobilzahlung
-->
<TerminPlatnosci>
<Termin>2025-03-10</Termin>
</TerminPlatnosci>
<FormaPlatnosci>6</FormaPlatnosci>
<!-- BANKEN-->
<RachunekBankowy>
<NrRB>PL79116022020000000654306674</NrRB>
<SWIFT>BIGBPLPWXXX</SWIFT>

View file

@ -92,7 +92,7 @@
Means we change the value from 2 to 1
-->
<P_18>1</P_18>
<P_18>2</P_18>
<!-- Kein Split Payment (Rechnung unter 15.000 PLN/EUR) -->
<P_18A>2</P_18A>