SubItems gör det möjligt att sammanställa en huvudpost på ett kvitto av flera delar. Ett typiskt exempel är en meny som säljs som en enda post men som till exempel innehåller en hamburgare, pommes frites och en dryck. Huvudposten har ett totalpris, och SubItems registreras med sina egna priser, skattesatser och lagerinformation.
1. Teknisk struktur och nyckelfält
Huvudartikel
Huvudposten är ett Position objekt med Type: 0 (Artikel). För SubItems krävs följande fält:
| Egenskap | Typ | Beskrivning |
|---|---|---|
| UseSubItemVatCalculation | boolean | (Obligatoriskt) Måste ställas in på true för att skattevärdena ska härledas från SubItems. |
| VatIdentification | heltal | (Obligatoriskt) Måste vara 0 när UseSubItemVatCalculation är aktivt. |
| VatPercent | decimal | (Obligatoriskt) Måste vara 0 när UseSubItemVatCalculation är aktivt. |
| SubItems | Array<SUBITEM> | (Obligatoriskt) Innehåller SubItems med deras egna pris- och skatteuppgifter. |
Obs! NetValue, GrossValue och TaxValue för den överordnade artikeln måste vara lika med summan av SubItems.
SubItems
| Egenskap | Typ | Beskrivning |
|---|---|---|
| typ | string | (Obligatoriskt) Måste vara "SubItem" . |
| Antal | decimal | (Obligatoriskt) Antal av underposten. |
| VatIdentification | heltal | (Obligatoriskt) moms-ID för delposten. |
| VatPercent | decimaltal | (Obligatoriskt) Skattesats för underposten. |
| NetValue , TaxValue , GrossValue | decimal | (Obligatoriskt) Prisinformation per SubItem. GrossValue = NetValue + TaxValue . |
2. Exempel: Fullständig payload
Följande storeDocument förfrågan innehåller en överordnad artikel (”Testartikel 1 (Meny)”) med två SubItems:
{
"fiscalDocumentNumber": "2",
"fiscalDocumentStartTime": 1755507048,
"FiscalDocumentRevision": 1,
"ModelVersion": "1.4.0",
"UniqueClientId": "8ccedd62-9f72-4cda-b101-7e5e62fb37dc",
"AutomaticVatCalculation": 1,
"DocumentGuid": "08679cec-0df2-4ee0-a138-7ddf55ed2372",
"DocumentId": "08679cec-0df2-4ee0-a138-7ddf55ed2372",
"documentNumber": "08679cec-0df2-4ee0-a138-7ddf55ed2372",
"AllowedVatDeviation": 0.01,
"isTraining": true,
"CreateDate": "2025-08-18T08:52:37Z",
"BookDate": "2025-08-18T08:52:37Z",
"DocumentType": 0,
"positionCount": 2,
"User": {
"Id": "test",
"Caption": "test"
},
"Positions": [
{
"PositionNumber": 0,
"ItemCaption": "Testartikel 1 (Menü)",
"Type": 0,
"InHouse": false,
"Quantity": 1,
"ItemId": "Artikel1",
"VatIdentification": 0,
"VatPercent": 0,
"BusinessTransactionType": 0,
"BaseNetValue": 0.84,
"BaseGrossValue": 1,
"BaseTaxValue": 0.16,
"Discounts": [],
"NetValue": 0.84,
"GrossValue": 1,
"TaxValue": 0.16,
"useSubItemVatCalculation": true,
"subItems": [
{
"type": "SubItem",
"positionNumber": 1,
"ItemCaption": "Unterposition 1.1",
"ItemId": "SubArtikel1-1",
"Quantity": 1,
"VatIdentification": "1",
"VatPercent": 19,
"BusinessTransactionType": 0,
"NetValue": 0.50,
"GrossValue": 0.60,
"TaxValue": 0.10
},
{
"type": "SubItem",
"positionNumber": 2,
"ItemCaption": "Unterposition 1.2",
"ItemId": "SubArtikel1-2",
"Quantity": 1,
"VatIdentification": "1",
"VatPercent": 19,
"BusinessTransactionType": 0,
"NetValue": 0.34,
"GrossValue": 0.40,
"TaxValue": 0.06
}
]
},
{
"PositionNumber": 1,
"ItemCaption": "Testartikel 2",
"Type": 0,
"InHouse": false,
"Quantity": 1,
"ItemId": "Artikel2",
"VatIdentification": "1",
"VatPercent": 19,
"BusinessTransactionType": 0,
"BaseNetValue": 0.84,
"BaseGrossValue": 1,
"BaseTaxValue": 0.16,
"Discounts": [],
"NetValue": 0.84,
"GrossValue": 1,
"TaxValue": 0.16
}
],
"Payments": [
{
"Amount": 2,
"CurrencyIsoCode": "EUR",
"paymentType": "cash",
"caption": "Barzahlung",
"uniqueReadablePaymentIdentifier": "CASH/EUR",
"ExternalIdentifier": []
}
]
}
3. Kontrolllista
✓ Huvudposten innehåller "subItems".
✓ "useSubItemVatCalculation": true är inställt.
✓ VatIdentification och VatPercent av det överordnade objektet är 0.
✓ Varje SubItem har "type": "SubItem".
✓ SubItems har sina egna uppgifter om skatt och pris.
✓ Summan av SubItems stämmer överens med värdena för överordnat objekt.
Den här artikeln har översatts automatiskt.
Kommentarer
0 kommentarer
logga in för att lämna en kommentar.