Przykłady faktury (DocumentReference + profil FK oraz model kanoniczny Invoice)
Przykłady faktury zgodne z Profilem Faktura (KSeF, art. 106e) oraz modelem kanonicznym Invoice i InvoicePosition. Prezentowane są dwie reprezentacje:
- DocumentReference + profil FK — faktura jako zasób DocumentReference z
type=invoice, pozycjami wposition[](DocumentPosition zvalue[]) i atrybutami podsumowania; uczestnicy jako referencje do PartyRole, dane stron w Party. Konwencja mapowania — API nie udostępnia faktur w tej postaci. - Model kanoniczny Invoice — dedykowany zasób Invoice z pozycjami InvoicePosition w
lines[](seller, buyer, totalNet, totalVat, totalGross — zgodnie zInvoice.schema.json). Tę postać zwracaGET /v1/invoices.
Konwencje wspólne (placeholdery urn:oid:2.999.*, referencje przez identifier, URL-e słowników): Konwencje przykładów. Na tej stronie: urn:oid:2.999.1 — przestrzeń dokumentów (DocumentReference.Id), urn:oid:2.999.2 — faktury (Invoice.Id), urn:oid:2.999.3 — zamówienia (PurchaseOrder.Id), urn:oid:2.999.4 — produkty (ProductDefinition.Id), urn:oid:2.999.5 — rachunki bankowe (BankAccount.Id). Realne przestrzenie mają postać urn:oid:1.2.616.1.113769.4.<instalacja>.<klucz>.
Spójność z modelem: Attribute = code (CodeableConcept) + value[] (ValueItem z opcjonalnym type i jednym wariantem value*). DocumentPosition ma pola positionNo, code, value[], status, attachment[] — wszystkie wartości wiersza (opis, ilość, kwoty, stawka VAT, produkt) są elementami value[]. Numer KSeF to identifier z type = ksef-number i system = https://ksef.podatki.gov.pl. Stawki VAT ze słownika vat-rate: 23, 8, 5, 0, zw, np. Role stron ze słownika party-role: supplier (wystawca), customer (nabywca), payer (płatnik). Kody, których nie ma w opublikowanych słownikach (rodzaj pozycji, typ elementu ilości / ceny / akcyzy, sposób zapłaty), nadaje wdrożenie — w przykładach zapisano je jako text.
1. Faktura jako DocumentReference (profil FK)
Faktura wystawiona przez sprzedawcę na nabywcę: dwie pozycje towarowe (VAT 23%), w tym jedna z akcyzą, linia podsumowania VAT oraz atrybuty sum na poziomie dokumentu. Uczestnicy: participant = referencje do PartyRole (supplier, customer) w contained, aby przykład był samodzielny.
Pola profilu FK (saleDate, dueDate, paymentMethod, paymentAccount, splitPayment) i sumy dokumentu przekazywane są przez attribute[] w systemie finance/document-attribute-type.
{
"resourceType": "DocumentReference",
"id": "doc-invoice-fk-001",
"meta": { "lastModified": "2025-02-20T12:00:00Z" },
"identifier": [
{ "system": "urn:oid:2.999.1", "value": "FV/2025/0567" },
{ "system": "https://ksef.podatki.gov.pl", "value": "1234567890-20250220-ABC123456789-01" }
],
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-type", "code": "invoice", "display": "Faktura" }] },
"issueDate": "2025-02-20",
"attribute": [
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "sale-date" }] }, "value": [{ "valueString": "2025-02-20" }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "due-date" }] }, "value": [{ "valueString": "2025-03-06" }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "payment-method" }] }, "value": [{ "valueCodeableConcept": { "text": "przelew" } }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "split-payment" }] }, "value": [{ "valueBoolean": false }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "ksef-acquisition-date" }] }, "value": [{ "valueString": "2025-02-20T11:45:00Z" }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "net-amount" }] }, "value": [{ "valueMoney": { "value": 6000, "currency": "PLN" } }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "vat-amount" }] }, "value": [{ "valueMoney": { "value": 1380, "currency": "PLN" } }] },
{ "code": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/document-attribute-type", "code": "gross-amount" }] }, "value": [{ "valueMoney": { "value": 7430, "currency": "PLN" } }] }
],
"participant": [
{ "type": "PartyRole", "reference": "#partyRole-seller", "display": "Sprzedawca Sp. z o.o." },
{ "type": "PartyRole", "reference": "#partyRole-buyer", "display": "Kupujący ABC Sp. z o.o." }
],
"position": [
{
"positionNo": 1,
"code": { "text": "Wiersz faktury" },
"value": [
{ "valueString": "Usługa konsultingowa – miesiąc luty 2025" },
{ "type": { "text": "Ilość" }, "valueQuantity": { "value": 1, "unit": "szt" } },
{ "type": { "text": "Cena jednostkowa netto" }, "valueMoney": { "value": 5000, "currency": "PLN" } },
{ "type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/value-item-type", "code": "net-amount" }] }, "valueMoney": { "value": 5000, "currency": "PLN" } },
{ "type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/value-item-type", "code": "vat-amount" }] }, "valueMoney": { "value": 1150, "currency": "PLN" } },
{ "type": { "text": "Stawka VAT" }, "valueCodeableConcept": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] } },
{ "type": { "text": "Produkt" }, "valueReference": { "type": "ProductDefinition", "identifier": { "system": "urn:oid:2.999.4", "value": "svc-consult-01" }, "display": "Konsulting" } }
]
},
{
"positionNo": 2,
"code": { "text": "Wiersz faktury" },
"value": [
{ "valueString": "Wyroby akcyzowe – przykładowa kategoria" },
{ "type": { "text": "Ilość" }, "valueQuantity": { "value": 10, "unit": "szt" } },
{ "type": { "text": "Cena jednostkowa netto" }, "valueMoney": { "value": 100, "currency": "PLN" } },
{ "type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/value-item-type", "code": "net-amount" }] }, "valueMoney": { "value": 1000, "currency": "PLN" } },
{ "type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/value-item-type", "code": "vat-amount" }] }, "valueMoney": { "value": 230, "currency": "PLN" } },
{ "type": { "text": "Kwota akcyzy" }, "valueMoney": { "value": 50, "currency": "PLN" } },
{ "type": { "text": "Stawka VAT" }, "valueCodeableConcept": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] } },
{ "type": { "text": "Produkt" }, "valueReference": { "type": "ProductDefinition", "identifier": { "system": "urn:oid:2.999.4", "value": "excise-01" }, "display": "Wyrób akcyzowy" } }
]
},
{
"positionNo": 3,
"code": { "text": "Podsumowanie VAT" },
"value": [
{ "type": { "text": "Stawka VAT" }, "valueCodeableConcept": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] } },
{ "type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/value-item-type", "code": "net-amount" }] }, "valueMoney": { "value": 6000, "currency": "PLN" } },
{ "type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/finance/value-item-type", "code": "vat-amount" }] }, "valueMoney": { "value": 1380, "currency": "PLN" } }
]
}
],
"contained": [
{
"resourceType": "Party",
"id": "party-seller",
"identifier": [{ "system": "https://gov.pl/nip", "value": "1234567890" }],
"name": { "text": "Sprzedawca Sp. z o.o." }
},
{
"resourceType": "PartyRole",
"id": "partyRole-seller",
"party": { "type": "Party", "reference": "#party-seller" },
"role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "supplier", "display": "Wystawca" }] }
},
{
"resourceType": "Party",
"id": "party-buyer",
"identifier": [{ "system": "https://gov.pl/nip", "value": "9876543210" }],
"name": { "text": "Kupujący ABC Sp. z o.o." }
},
{
"resourceType": "PartyRole",
"id": "partyRole-buyer",
"party": { "type": "Party", "reference": "#party-buyer" },
"role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "customer", "display": "Nabywca" }] }
}
]
}
Uwagi:
- participant wskazuje na zasoby w contained (
#partyRole-seller,#partyRole-buyer); w PartyRole pole party wskazuje na Party (wystawca/nabywca) z NIP. - Numer KSeF jest w identifier z
system=https://ksef.podatki.gov.pl. - Wiersz 2 zawiera kwotę akcyzy jako element
value[]; suma akcyzy jest wliczona w kwotę brutto dokumentu. - Sumy: netto 6000, VAT 1380, brutto 7430 PLN (w tym akcyza 50).
2. Faktura w modelu kanonicznym (Invoice + InvoicePosition)
Ten sam przypadek biznesowy w postaci zasobu Invoice z zagnieżdżonymi lines[] (InvoicePosition). Pola nagłówka: seller, buyer, totalNet, totalVat, totalExcise, totalGross, currency, terminy i płatność. Pozycje z jawnymi polami: positionNo, description, quantity, unitPriceNet, netAmount, vatRate, vatAmount; w pozycji 2 dodatkowo exciseAmount. Podsumowanie VAT per stawka w taxLine[].
{
"resourceType": "Invoice",
"id": "inv-2025-0567",
"meta": { "lastModified": "2025-02-20T12:00:00Z" },
"identifier": [
{ "system": "urn:oid:2.999.2", "value": "FV/2025/0567" },
{ "system": "https://ksef.podatki.gov.pl", "value": "1234567890-20250220-ABC123456789-01" }
],
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/invoice-type", "code": "invoice", "display": "Faktura" }] },
"issueDate": "2025-02-20",
"saleDate": "2025-02-20",
"dueDate": "2025-03-06",
"seller": { "type": "PartyRole", "reference": "#partyRole-seller", "display": "Sprzedawca Sp. z o.o." },
"buyer": { "type": "PartyRole", "reference": "#partyRole-buyer", "display": "Kupujący ABC Sp. z o.o." },
"totalNet": { "value": 6000, "currency": "PLN" },
"totalVat": { "value": 1380, "currency": "PLN" },
"totalExcise": { "value": 50, "currency": "PLN" },
"totalGross": { "value": 7430, "currency": "PLN" },
"currency": "PLN",
"paymentMethod": { "text": "przelew" },
"paymentAccount": { "type": "BankAccount", "identifier": { "system": "urn:oid:2.999.5", "value": "12345678901234567890123456" }, "display": "12 3456 7890 1234 5678 9012 3456" },
"splitPayment": false,
"ksefAcquisitionDate": "2025-02-20T11:45:00Z",
"lines": [
{
"positionNo": 1,
"description": "Usługa konsultingowa – miesiąc luty 2025",
"quantity": { "value": 1, "unit": "szt" },
"unitPriceNet": { "value": 5000, "currency": "PLN" },
"netAmount": { "value": 5000, "currency": "PLN" },
"vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] },
"vatAmount": { "value": 1150, "currency": "PLN" },
"productReference": { "type": "ProductDefinition", "identifier": { "system": "urn:oid:2.999.4", "value": "svc-consult-01" }, "display": "Konsulting" }
},
{
"positionNo": 2,
"description": "Wyroby akcyzowe – przykładowa kategoria",
"quantity": { "value": 10, "unit": "szt" },
"unitPriceNet": { "value": 100, "currency": "PLN" },
"netAmount": { "value": 1000, "currency": "PLN" },
"vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] },
"vatAmount": { "value": 230, "currency": "PLN" },
"exciseAmount": { "value": 50, "currency": "PLN" },
"productReference": { "type": "ProductDefinition", "identifier": { "system": "urn:oid:2.999.4", "value": "excise-01" }, "display": "Wyrób akcyzowy" }
}
],
"taxLine": [
{
"vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] },
"netAmount": { "value": 6000, "currency": "PLN" },
"vatAmount": { "value": 1380, "currency": "PLN" },
"grossAmount": { "value": 7380, "currency": "PLN" }
}
],
"contained": [
{
"resourceType": "Party",
"id": "party-seller",
"identifier": [{ "system": "https://gov.pl/nip", "value": "1234567890" }],
"name": { "text": "Sprzedawca Sp. z o.o." }
},
{
"resourceType": "PartyRole",
"id": "partyRole-seller",
"party": { "type": "Party", "reference": "#party-seller" },
"role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "supplier", "display": "Wystawca" }] }
},
{
"resourceType": "Party",
"id": "party-buyer",
"identifier": [{ "system": "https://gov.pl/nip", "value": "9876543210" }],
"name": { "text": "Kupujący ABC Sp. z o.o." }
},
{
"resourceType": "PartyRole",
"id": "partyRole-buyer",
"party": { "type": "Party", "reference": "#party-buyer" },
"role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "customer", "display": "Nabywca" }] }
}
]
}
Uwagi:
- seller i buyer to referencje do PartyRole (w przykładzie w contained); dane firm w Party.
- totalExcise na nagłówku odpowiada sumie kwot akcyzy z pozycji; totalGross = totalNet + totalVat + totalExcise (6000 + 1380 + 50 = 7430).
taxLine[].grossAmountto netto + VAT dla stawki (bez akcyzy). - W odczycie z systemu magazynowego (
GET /v1/invoices)sellernie jest wypełniany, alines[]powstają z powiązań kosztowych z PZ (costLink[]) — zob. Invoice — model kanoniczny, §4.
3. Przykład: faktura KSeF (XML) dopasowana do Invoice
Poniżej faktura z pliku KSeF (FA(3)) — 7671004218-20260222-644401C00054-A6.xml — zmapowana na model kanoniczny Invoice. Źródło: struktura FA z http://crd.gov.pl/wzor/2025/06/25/13775/.
3.1 Mapowanie pól KSeF → Invoice
| Element KSeF (XML) | Wartość w pliku | Invoice (kanoniczny) |
|---|---|---|
| Naglowek/DataWytworzeniaFa | 2026-02-22T14:14:40Z | ksefAcquisitionDate |
| Podmiot1: NIP, Nazwa, Adres | 7671004218, TERG S.A., Za Dworcem 1D 77-400 Złotów | seller → PartyRole (supplier); Party: identifier NIP, name |
| Podmiot2: NIP, Nazwa, Adres | 9542685559, KAMSOFT SPÓŁKA AKCYJNA, ul. 1 Maja 133 40-235 Katowice | buyer → PartyRole (customer); Party jak wyżej |
| Fa/P_2 (numer faktury) | FS-783004/26/MEPL1/02 | identifier (invoice-number) |
| Fa/P_6 (data wystawienia) | 2026-02-22 | issueDate |
| Fa/P_1 (data sprzedaży) | 2026-02-22 | saleDate |
| Fa/KodWaluty | PLN | currency |
| Fa/P_13_1 (netto 23%) | 812.20 | totalNet; taxLine[0].netAmount |
| Fa/P_14_1 (VAT 23%) | 186.80 | totalVat; taxLine[0].vatAmount |
| Fa/P_15 (należność ogółem) | 999.00 | totalGross |
| FaWiersz: NrWierszaFa, P_7, P_8A, P_8B, P_9B, P_12 | 1, „Klawiatura APPLE…", szt, 1, 812.20 netto, 23% | lines[0]: positionNo, description, quantity, unitPriceNet, netAmount, vatRate, vatAmount |
| Platnosc/FormaPlatnosci, DataZaplaty | 6 (przelew), 2026-02-20 | paymentMethod; data zapłaty w attribute (kod nadaje wdrożenie) |
| WarunkiTransakcji/NrZamowienia | 02469444552 | basedOn (referencja do zamówienia przez identifier) |
| (identyfikator KSeF z nazwy pliku) | 7671004218-20260222-644401C00054-A6 | identifier (ksef-number, system https://ksef.podatki.gov.pl) |
Wartości netto/VAT: P_13_1 = 812,20 PLN (suma netto), P_14_1 = 186,80 PLN (VAT), P_15 = 999,00 PLN (brutto). Jedna pozycja: 1 szt × 812,20 = 812,20 netto, VAT 23% = 186,80.
3.2 Faktura jako Invoice (model kanoniczny)
{
"resourceType": "Invoice",
"id": "inv-ksef-7671004218-20260222",
"meta": { "lastModified": "2026-02-22T14:14:40Z" },
"identifier": [
{ "system": "urn:oid:2.999.2", "value": "FS-783004/26/MEPL1/02" },
{ "system": "https://ksef.podatki.gov.pl", "value": "7671004218-20260222-644401C00054-A6" }
],
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/invoice-type", "code": "invoice", "display": "Faktura" }] },
"issueDate": "2026-02-22",
"saleDate": "2026-02-22",
"seller": { "type": "PartyRole", "reference": "#partyRole-seller", "display": "TERG S.A." },
"buyer": { "type": "PartyRole", "reference": "#partyRole-buyer", "display": "KAMSOFT SPÓŁKA AKCYJNA" },
"totalNet": { "value": 812.20, "currency": "PLN" },
"totalVat": { "value": 186.80, "currency": "PLN" },
"totalGross": { "value": 999.00, "currency": "PLN" },
"currency": "PLN",
"paymentMethod": { "text": "przelew" },
"ksefAcquisitionDate": "2026-02-22T14:14:40Z",
"lines": [
{
"positionNo": 1,
"description": "Klawiatura APPLE Magic Keyboard z Touch ID",
"quantity": { "value": 1, "unit": "szt" },
"unitPriceNet": { "value": 812.20, "currency": "PLN" },
"netAmount": { "value": 812.20, "currency": "PLN" },
"vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] },
"vatAmount": { "value": 186.80, "currency": "PLN" }
}
],
"taxLine": [
{
"vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23", "display": "23%" }] },
"netAmount": { "value": 812.20, "currency": "PLN" },
"vatAmount": { "value": 186.80, "currency": "PLN" },
"grossAmount": { "value": 999.00, "currency": "PLN" }
}
],
"basedOn": [
{ "type": "PurchaseOrder", "identifier": { "system": "urn:oid:2.999.3", "value": "02469444552" } }
],
"contained": [
{
"resourceType": "Party",
"id": "party-seller",
"identifier": [{ "system": "https://gov.pl/nip", "value": "7671004218" }],
"name": { "text": "TERG S.A." }
},
{
"resourceType": "PartyRole",
"id": "partyRole-seller",
"party": { "type": "Party", "reference": "#party-seller" },
"role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "supplier", "display": "Wystawca" }] }
},
{
"resourceType": "Party",
"id": "party-buyer",
"identifier": [{ "system": "https://gov.pl/nip", "value": "9542685559" }],
"name": { "text": "KAMSOFT SPÓŁKA AKCYJNA" }
},
{
"resourceType": "PartyRole",
"id": "partyRole-buyer",
"party": { "type": "Party", "reference": "#party-buyer" },
"role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "customer", "display": "Nabywca" }] }
}
]
}
Uwagi do przykładu KSeF:
- Numer KSeF z nazwy pliku (
7671004218-20260222-644401C00054-A6) umieszczono w identifier zsystem=https://ksef.podatki.gov.pl. - P_13_1 / P_14_1 / P_15 z Fa: suma netto 812,20 PLN, VAT 186,80 PLN, należność ogółem 999,00 PLN — jedna pozycja (1 szt, cena jedn. netto 812,20, VAT 23%).
- Indeks towaru (2044591) z FaWiersz: InvoicePosition nie ma pola
attribute— indeks można przenieść wInvoice.attribute(elementvalue[]wiążący numer wiersza z wartością; kod atrybutu nadaje wdrożenie) albo wproductReference, gdy produkt jest w katalogu. - Platnosc: FormaPlatnosci 6 (przelew) —
paymentMethod; kod sposobu zapłaty nadaje wdrożenie (słownikwarehouse/payment-method). - NrZamowienia 02469444552 — basedOn z referencją do zamówienia przez
identifier.
4. Przykład: druga faktura KSeF (ORLEN → KAMSOFT) — Invoice
Faktura z pliku 7740001454-20260217-85570C8000C8-4C.xml (ORLEN S.A. → KAMSOFT SPÓŁKA AKCYJNA): 8 wierszy (paliwa, płyny, usługi, opłaty autostradowe), w tym 3 pozycje z KwotaAkcyzy (GAZ, EFECTA DIESEL, EFECTA 95). Na poziomie dokumentu: P_13_1 (netto) 14 456,32 PLN, P_14_1 (VAT) 3 324,96 PLN, P_15 (brutto) 17 781,28 PLN; suma akcyzy z wierszy: 169,36 + 733,18 + 2 991,64 = 3 894,18 PLN. Dodatkowe elementy: MPP (mechanizm podzielonej płatności), rachunek bankowy, termin płatności, zamówienie.
4.1 Mapowanie wybranych pól KSeF → Invoice
| Element KSeF | Wartość | Invoice |
|---|---|---|
| Podmiot1 | NIP 7740001454, ORLEN S.A., Płock ul. Chemików 7 | seller → PartyRole (supplier), contained Party |
| Podmiot2 | NIP 9542685559, KAMSOFT SPÓŁKA AKCYJNA, Katowice 1 Maja 133 | buyer → PartyRole (customer), contained Party |
| P_2 | 0491371089 | identifier (invoice-number) |
| P_6 / P_1 | 2026-02-15 / 2026-02-17 | issueDate, saleDate |
| P_13_1, P_14_1, P_15 | 14456.32, 3324.96, 17781.28 | totalNet, totalVat, totalGross |
| KwotaAkcyzy (wiersze 1, 7, 8) | 169.36, 733.18, 2991.64 | lines[].exciseAmount |
| Suma akcyzy | 3894.18 | totalExcise |
| Platnosc: Termin, Forma 6, NrRB | 2026-03-08, 6, PL74… | dueDate, paymentMethod, paymentAccount |
| RachunekBankowy | PL74124069606666000007114375 | paymentAccount (Reference BankAccount) |
| DodatkowyOpis MPP | „Mechanizm podzielonej płatności" | splitPayment = true |
| NrZamowienia | DZF00/02066/001/2005 | basedOn |
| Id. KSeF (z pliku) | 7740001454-20260217-85570C8000C8-4C | identifier (ksef-number) |
4.2 Faktura ORLEN jako Invoice — skrót pozycji
Nagłówek i dwie z ośmiu pozycji: jedna z akcyzą, jedna bez.
{
"resourceType": "Invoice",
"id": "inv-ksef-7740001454-20260217",
"identifier": [
{ "system": "urn:oid:2.999.2", "value": "0491371089" },
{ "system": "https://ksef.podatki.gov.pl", "value": "7740001454-20260217-85570C8000C8-4C" }
],
"type": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/warehouse/invoice-type", "code": "invoice" }] },
"issueDate": "2026-02-15",
"saleDate": "2026-02-17",
"dueDate": "2026-03-08",
"seller": { "type": "PartyRole", "reference": "#partyRole-seller", "display": "ORLEN S.A." },
"buyer": { "type": "PartyRole", "reference": "#partyRole-buyer", "display": "KAMSOFT SPÓŁKA AKCYJNA" },
"totalNet": { "value": 14456.32, "currency": "PLN" },
"totalVat": { "value": 3324.96, "currency": "PLN" },
"totalExcise": { "value": 3894.18, "currency": "PLN" },
"totalGross": { "value": 17781.28, "currency": "PLN" },
"currency": "PLN",
"paymentMethod": { "text": "przelew" },
"paymentAccount": { "type": "BankAccount", "identifier": { "system": "urn:oid:2.999.5", "value": "PL74124069606666000007114375" }, "display": "PL74124069606666000007114375" },
"splitPayment": true,
"ksefAcquisitionDate": "2026-02-17T18:56:27+01:00",
"basedOn": [
{ "type": "PurchaseOrder", "identifier": { "system": "urn:oid:2.999.3", "value": "DZF00/02066/001/2005" } }
],
"lines": [
{ "positionNo": 1, "description": "GAZ - OSOBOWE", "quantity": { "value": 457.46, "unit": "L" }, "netAmount": { "value": 1024.24, "currency": "PLN" }, "vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23" }] }, "vatAmount": { "value": 235.57, "currency": "PLN" }, "exciseAmount": { "value": 169.36, "currency": "PLN" } },
{ "positionNo": 2, "description": "PŁYNY EKSPLOATACYJNE", "quantity": { "value": 20, "unit": "SZT" }, "netAmount": { "value": 625.85, "currency": "PLN" }, "vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23" }] }, "vatAmount": { "value": 143.95, "currency": "PLN" } }
],
"taxLine": [
{
"vatRate": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/vat-rate", "code": "23" }] },
"netAmount": { "value": 14456.32, "currency": "PLN" },
"vatAmount": { "value": 3324.96, "currency": "PLN" },
"grossAmount": { "value": 17781.28, "currency": "PLN" }
}
],
"contained": [
{ "resourceType": "Party", "id": "party-seller", "identifier": [{ "system": "https://gov.pl/nip", "value": "7740001454" }], "name": { "text": "ORLEN S.A." } },
{ "resourceType": "PartyRole", "id": "partyRole-seller", "party": { "type": "Party", "reference": "#party-seller" }, "role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "supplier" }] } },
{ "resourceType": "Party", "id": "party-buyer", "identifier": [{ "system": "https://gov.pl/nip", "value": "9542685559" }], "name": { "text": "KAMSOFT SPÓŁKA AKCYJNA" } },
{ "resourceType": "PartyRole", "id": "partyRole-buyer", "party": { "type": "Party", "reference": "#party-buyer" }, "role": { "coding": [{ "system": "https://api-erp.kamsoft.pl/vs/party-role", "code": "customer" }] } }
]
}
Pozostałe 6 pozycji (3–8) dodaje się analogicznie; wiersze 7 i 8 zawierają exciseAmount (733,18 i 2 991,64 PLN). Kody GTU i indeksy towarów z KSeF nie mają pola na InvoicePosition — przenosi się je w Invoice.attribute według konwencji wdrożenia. Załącznik KSeF (tabele szczegółowe paliw) mapuje się na Invoice.attachment[] (Attachment: url lub data, contentType, title).
5. Odniesienia
- Profil Faktura (KSeF, art. 106e) — mapowanie DocumentReference na wymagania prawne i KSeF
- Model kanoniczny Invoice i InvoicePosition — struktura zasobu Invoice, pozycji i operacja
GET /v1/invoices - DocumentReference, DocumentPosition — rdzeń dokumentu i pozycji
- Party, PartyRole — strony faktury (wystawca, nabywca)
- Systemy kodów — party-role, vat-rate, finance/document-attribute-type, finance/value-item-type