BundlePreisauszeichnung via REST-API (DE und AT Preise)

Version:

1.2

Datum:

22.06.2016

Status:

Freigabe

1. Inhalt 2.

Einleitung............................................................................................................. 2

3.

Bundle-Zusammensetzung und Identifikation von Bundle-Teilprodukten ............ 3

4.

Ausweisung von Bundle-Preisen ......................................................................... 3

5.

Bundle-Preise in der REST-API .......................................................................... 4 5.1.

Preisdarstellung in der Trefferliste ................................................................. 4

5.2.

Preisdarstellung im Produkteintrag der REST-API ........................................ 6

5.2.1. Brutto-Gesamtpreis des Bundles (Composite Prices) ............................. 6 5.2.2. Beispiele für das prices composite – zweiteiliges Bundle ....................... 7 5.2.3. Beispiele für das prices composite – mehrteiliges Bundle ...................... 8 5.2.4. Informationen zu Teilprodukten des Bundles (Composite ContainedItems) .................................................................................................. 9 5.2.5. Beispiele für die Bundle Darstellung im containedItems composite ...... 10

Bundle-Preisauszeichnung via REST-API

Seite 1 / 11

2. Einleitung Das Bundesfinanzministerium (BMF) hat festgelegt, dass die Entgelte für Teilprodukte sogenannter Bundles ab dem 1. Januar 2016 getrennt ausgewiesen und besteuert werden müssen. Für ein Bundle-Produkt ist es dadurch nicht möglich, einen eindeutigen MwSt-Satz anzugeben, da sich der Steuersatz nach den enthaltenen Steuersätzen der Teilprodukte richtet. Diese Herangehensweise wird als MwSt-Splitting bezeichnet. Folglich muss bei einem Bundle mit MwStSplitting für jedes Teilprodukt der Teilpreis innerhalb des Bundles sowie der zugehörige MwSt-Satz dieses Teilproduktes angegeben werden. Ein Bundle-Produkt besitzt somit gemäß der neuen Gesetzgebung in Deutschland immer ausschließlich einen Brutto-Gesamtpreis ohne explizite MwSt-Angabe. In dieser Dokumentation ist die Bundle Preisauszeichnung für deutsche wie österreichische Preise für die REST-API beschrieben. Die Preisauszeichnung für österreichische Bundle Produkte orientiert sich an der zuerst umgesetzten Definition für deutsche Preise. Die Bundle Preisauszeichnung für österreichischen Preise ermöglicht eine gleichwertige technische Verarbeitung der Länderpreise für Deutschland und Österreich.

Bundle-Preisauszeichnung via REST-API

Seite 2 / 11

3. Bundle-Zusammensetzung und Identifikation von BundleTeilprodukten Ein Bundle besteht für den deutschen wie für den österreichischen Markt aus Teilprodukten, die entweder  

einzeln vertrieben werden oder nur als Bestandteil dieses Bundles erhältlich sind.

Teilprodukte, die einzeln vertrieben werden, sind anhand ihrer GTIN zu identifizieren. Teilprodukte, die nur als Bestandteil eines Bundles erhältlich sind, erhalten einen Pseudo-Identifier auf Basis der Bundle-GTIN, Bsp.: 9783131464712-1.

4. Ausweisung von Bundle-Preisen Abhängig vom Austauschformat können der Bundle-Preis und die zugehörigen Bundle-Teilpreise über verschiedenen Datensätzen verteilt abgelegt sein. Beispielsweise ist dies im prominentesten Austauschformat des Buchhandels der Fall: ONIX 2.1. Um ein Aggregieren mehrerer Produkte bei Verwendung der REST-API zu vermeiden, werden alle relevanten Informationen zum Bundle-Preis sowie allen Teilpreisen direkt im Bundle-Datensatz aufgeführt. Diese Informationen werden nur in den Produktdetails der APIs angezeigt, nicht jedoch in den Trefferlisten. Enthaltene Informationen je Land / Währung     

Brutto-Gesamtpreis des Bundles für jedes Teilprodukt Identifier (GTIN für einzeln erhältlich bzw. proprietärer Identifier für nicht einzeln erhältliche Produkte) aktuell gültiger Brutto-Preis, inkl. MwSt-Satz, Land und Währung Produktform

In der REST-API werden die Informationen zu Teilprodukten inkl. der Preisangabe innerhalb des Bundles in einem ContainedItem-Composite pro Teilprodukt und Land / Währung ausgewiesen. Dies gilt für zwei- und mehrteilige Bundles, um eine identische Verarbeitung der Teilpreise des Bundles zu ermöglichen.

Bundle-Preisauszeichnung via REST-API

Seite 3 / 11

5. Bundle-Preise in der REST-API 5.1. Preisdarstellung in der Trefferliste

Die Trefferliste der REST-API führt den Brutto-Gesamtpreis des Bundles auf. Für den MWST-Code wird bei Bundle Produkten der Code „6“ für den deutschen wie auch den österreichischen Preis verwendet. Der Schweizer Preis wie auch der Schweizer MWST Code bleibt unverändert.

Feld

productType priceEurD priceEurA

taxKeyEurD

taxKeyEurA

Bezeichnung / Inhalt Produkttyp:  duoBundle: zweiteiliges Bundle  multiBundle: mehrteiliges Bundle  weitere Werte siehe REST-API Spezifikation EUR-D Brutto (für Bundle: Brutto-Gesamtpreis der Bundle-Teilpreise) EUR-A Brutto (für Bundle: Brutto-Gesamtpreis der Bundle-Teilpreise) MwSt. • 0 = keine • 1 = reduzierter Satz • 2 = voller Satz • 6 = MwSt-Splitting (für Bundle Produkte) MwSt. • 0 = keine • 1 = reduzierter Satz • 2 = voller Satz • 6 = MwSt-Splitting (für Bundle Produkte)

JSON Rückgabe über die REST-API Trefferliste: { "content": [ { "id": "82f03e129e7a469a911eeb38ef1641d0", "version": 13, "identifier": "9783129258422", "isbn": "978-3-12-925842-2", "issn": null, "gtin": "9783129258422", "osbnr": null, "bestellnummer": null, "umbreitNummer": null, "cbzNummer": null, "edisNummer": null, "schulbuchBestellnummer": null, "title": "Titel", "subTitle": "Untertitel",

Bundle-Preisauszeichnung via REST-API

Seite 4 / 11

"publisher": "Verlagsname", "publisherMvbId": "1234567", "publicationDate": "04.2016", "edition": null, "availabilityStatePublisher": "20", "availabilityStateFeed": "01", "productType": "duoBundle", "priceEurD": 14.99, "priceEurA": 15.5, "priceCHF": 17.3, "unpricedItemCode": null, "fileFormat": null, "referencePriceDE": true, "createDate": "24.04.2013", "lastModifiedDate": "30.04.2016", "state": "active", "collections": null, "productFormId": "WW", "contributors": null, "priceAdditionEurD": null, "taxEurDInfo": null, "taxKeyEurD": "6", "priceCaEurD": null, "priceAdditionEurA": null, "taxEurAInfo": null, "taxKeyEurA": "6", "priceCaEurA": null, "priceAdditionChf": "UVP", "taxChfInfo": null, "taxKeyChf": "1", "priceCaChf": null, "themaSubjects": [ "YPZ" ], "themaQualifiers": null, "keyWords": [ "Mathematik" ], "onSaleDate": null, "language": "ger", "sigl": [ "C-BZ", "C-UAVA", "U" ], "aggregatorId": null, "coverUrl": null, "shortDescription": null, "mainDescription": null, "biographicalNote": null, "genreCode": null } ], "totalElements": 1, "totalPages": 1, "firstPage": true, "lastPage": true, "last": true, "sort": [ { "direction": "DESC", "property": "score", "ignoreCase": false, "ascending": false } ], "numberOfElements": 1, "first": true, "size": 200, "number": 0 }

Bundle-Preisauszeichnung via REST-API

Seite 5 / 11

5.2. Preisdarstellung im Produkteintrag der REST-API 5.2.1. Brutto-Gesamtpreis des Bundles (Composite Prices) Die Preisauszeichnung eines Bundles wird analog zu ONIX 2.1 für zweiteilige und mehrteilige Bundles unterschiedlicher Form sein. Für ein zweiteiliges Bundle werden im Price-Composite neben dem BruttoGesamtpreis des Bundles (value) auch die Preisinformationen zu den beiden enthaltenen Einzelprodukten aufgeführt. Unabhängig davon werden die aktuellen Preise der Teilprodukte, wie auch für mehrteilige Bundles, redundant in ContainedItem-Composites hinterlegt. Im mehrteiligen Bundle wird im Price-Composite lediglich der Brutto-Gesamtpreis des Bundles angegeben. Die einzelnen Teilpreise und MwSt-Sätze der Teilprodukte sind ausschließlich in den ContainedItem-Composites zu finden. Nachfolgend finden Sie eine Übersicht über relevante Elemente im PricesComposite. Feld prices

Bezeichnung / Inhalt Composite Prices in der JSON-Ausgabe der REST-API

type value country currency validFrom validUntil State

Preistyp Brutto-Gesamtpreis (für das Bundle) Land – (Differenzierung DE bzw. AT Bundle) Währung gültig ab gültig bis Preisstatus MwSt-Satz - Teilprodukt 1 (Onix Feld j157)  Achtung: dieser wird in Nicht-Bundle-Produkten taxRate für das Produkt selbst verwendet taxRatePercent MwSt-Satz in Prozent - Teilprodukt 1* (Onix Feld j154) taxableAmount Netto-Betrag – Teilprodukt 1* (Onix Feld j155) taxAmount Steuerbetrag – Teilprodukt 1* (Onix Feld j156) taxRate2 MwSt-Satz - Teilprodukt 2* (Onix Feld j157) taxRatePercent2 MwSt-Satz in Prozent - Teilprodukt 2* (Onix Feld j158) taxableAmount2 Netto-Betrag – Teilprodukt 2* (Onix Feld j159) taxAmount2 Steuerbetrag – Teilprodukt 2* (Onix Feld j160) fixedRetailPrice Unterliegt Ladenpreisbindung provisional Vorläufiger Preis referencePrice Teil der Preisreferenz * neu hinzugefügte Inhalte für Bundle Produkte

Bundle-Preisauszeichnung via REST-API

Seite 6 / 11

5.2.2. Beispiele für das prices composite – zweiteiliges Bundle Beispiel: zweiteiliges Bundle (DE und AT Bundle Preis) Das gezeigte Beispiel ist kein real existierendes Bundle Produkt. Die Preise wurden für eine einfache Berechnung auf Basis eines 10 € Teilprodukt-Nettopreises berechnet. "prices": [ { "id": "2a4caa415244411ba450be38fb4cd4dc", "type": "04", "country": "DE", "territory": null, "currency": "EUR", "validFrom": null, "validUntil": null, "state": "02", "taxRate": "R", "taxRatePercent": 7, "taxableAmount": 10, "taxAmount": 0.7, "taxRate2": "S", "taxRatePercent2": 19, "taxableAmount2": 10, "taxAmount2": 1.9, "value": 22.6, "typeQualifier": null, "typeDescription": null, "discountCodeText": null, "minimumQuantity": null, "sequence": 2, "priceTypeGroup": null, "fixedRetailPrice": true, "provisional": false, "referencePrice": true }, { "id": "fa0b6f27f6c64aadbc1ff3c2c1d0bce4", "type": "04", "country": "AT", "territory": null, "currency": "EUR", "validFrom": null, "validUntil": null, "state": "02", "taxRate": "R", "taxRatePercent": 10, "taxableAmount": 10, "taxAmount": 1, "taxRate2": ”S”, "taxRatePercent2": 20, "taxableAmount2": 10, "taxAmount2": 2, "value": 23, "typeQualifier": null, "typeDescription": null, "discountCodeText": null, "minimumQuantity": null, "sequence": 1, "priceTypeGroup": null, "fixedRetailPrice": true, "provisional": false, "referencePrice": false }, ]

Bundle-Preisauszeichnung via REST-API

Seite 7 / 11

5.2.3. Beispiele für das prices composite – mehrteiliges Bundle

Beispiel: Darstellung mehrteiliges Bundle (DE und AT Preis) im prices composite "prices": [ { "id": "e9c95dc08f864d7ebe4a26bbfd5187ea", "type": "04", "country": "DE", "territory": null, "currency": "EUR", "validFrom": null, "validUntil": null, "state": "02", "taxRate": null, "taxRatePercent": null, "taxableAmount": null, "taxAmount": null, "taxRate2": null, "taxRatePercent2": null, "taxableAmount2": null, "taxAmount2": null, "value": 34.50, "typeQualifier": null, "typeDescription": null, "discountCodeText": null, "minimumQuantity": null, "sequence": 0, "priceTypeGroup": "MULTI_BUNDLE", "fixedRetailPrice": true, "provisional": false, "referencePrice": true }, { "id": "6a7138055bff4da987046ffb308ea96c", "type": "04", "country": "AT", "territory": null, "currency": "EUR", "validFrom": null, "validUntil": null, "state": "02", "taxRate": null, "taxRatePercent": null, "taxableAmount": null, "taxAmount": null, "taxRate2": null, "taxRatePercent2": null, "taxableAmount2": null, "taxAmount2": null, "value": 35, "typeQualifier": null, "typeDescription": null, "discountCodeText": null, "minimumQuantity": null, "sequence": 1, "priceTypeGroup": "MULTI_BUNDLE", "fixedRetailPrice": true, "provisional": false, "referencePrice": false }, ]

Bundle-Preisauszeichnung via REST-API

Seite 8 / 11

5.2.4. Informationen zu Teilprodukten des Bundles (Composite ContainedItems) In einem Bundle-Produkt findet sich die Information zu enthaltenen Teilprodukten in den ContainedItem-Composites. Neben den üblichen Feldern des ContainedItemComposites wird zusätzlich der Identifier des Teilproduktes sowie der Brutto-Preis des Teilproduktes im Bundle mit zugehörigem MwSt-Satz, Land und Währung angegeben. Die Unterscheidung zwischen deutschen und österreichischen Bundle Produktpreisen erfolgt hier nur über die Länderkennung im Feld „country“. Das heißt die Zusammengehörigkeit der Teilprodukte ist nur über die Länderkennung festzustellen. Detaillierte Informationen zu den Teilprodukten (sofern das ContainedItem einen Identifier vom Type GTIN-13 enthält) können über die bereits zur Verfügung stehenden Schnittstellen der REST-API im Produkt mit dieser GTIN selbst entnommen werden. Hierzu gehören z. B. zukünftige Preise des Teilproduktes innerhalb des Bundles. Feld

Bezeichnung / Inhalt

containedItem

Composite ContainedItems in der JSON-Ausgabe der REST-API Land* – (Differenzierung DE bzw. AT Bundle) (b251 – List 91) Währung*

country currency description numberOfPieces productContentType productIdentifierTypeN ame productFormDetail productIdentifierType

productIdentifierValue sequence taxableAmount taxAmount taxInfo taxRate

title

Onix Feld b014 Onix Feld b210 Onix Feld b385 – List 81 Onix Feld b233 Onix Feld b333 – List 78

Typ des ProduktIdentifiers* (Onix Feld b221 - List 5)  01 = Proprietär  03 = GTIN-13 Identifier (proprietär oder GTIN-13)* (b244) Vom VLB vergebene Sequenz für die Produktteile Onix Feld j155 Onix Feld j156

VLB interner Wert MwSt.* (Onix Feld j153)  Z = keine  R = reduzierter Satz  S = voller Satz Titel des Teilproduktes

Bundle-Preisauszeichnung via REST-API

Seite 9 / 11

Feld

Bezeichnung / Inhalt

Produktform (Onix Feld b012 – List 7) aktuell gültiger Brutto-Preis des Teilproduktes innerhalb des Bundles* * neu hinzugefügte Inhalte für Bundle-Produkte type value

Das ContainedItem-Component sieht für zwei- wie auch für mehrteilige Bundles wie folgt aus: 5.2.5. Beispiele für die Bundle Darstellung im containedItems composite Beispiel: Darstellung für Bundle (DE Preis und AT Preis) im containedItems composite. Das gezeigte Beispiel ist kein real existierendes Bundle Produkt. Die Preise wurden für eine einfache Berechnung auf Basis eines 10 € Nettopreises erstellt. "containedItems": [ { "id": "5f0b38de641948778fa8a5a7b68f7d65", "type": "BC", "productFormDetail": null, "numberOfPieces": null, "productContentType": null, "productIdentifierType": "03", "productIdentifierTypeName": null, "productIdentifierValue": "9783765728327", "description": null, "sequence": 0, "country": "DE", "currency": "EUR", "value": 10.7, "taxRate": "R", "taxableAmount": 10, "taxAmount": 0.7, "title": "Titel 1", "taxInfo": null }, { "id": "060f435a93b4493eab12156a518d0cfa", "type": "DG", "productFormDetail": null, "numberOfPieces": null, "productContentType": null, "productIdentifierType": "03", "productIdentifierTypeName": null, "productIdentifierValue": "9783765732362", "description": null, "sequence": 2, "country": "DE", "currency": "EUR", "value": 11.9, "taxRate": "S", "taxableAmount": 10, "taxAmount": 1.9, "title": "Titel 3", "taxInfo": null }, { "id": "9b56d2a145a5407faf24de74452ef858", "type": "DG", "productFormDetail": null, "numberOfPieces": null, "productContentType": null, "productIdentifierType": "03",

Bundle-Preisauszeichnung via REST-API

Seite 10 / 11

"productIdentifierTypeName": null, "productIdentifierValue": "9783765732904", "description": null, "sequence": 1, "country": "DE", "currency": "EUR", "value": 11.9, "taxRate": "S", "taxableAmount": 10, "taxAmount": 1.9, "title": "Titel 2", "taxInfo": null } { "id": "5f0b38de641948778fa8a5a7b68f7d65", "type": "BC", "productFormDetail": null, "numberOfPieces": null, "productContentType": null, "productIdentifierType": "03", "productIdentifierTypeName": null, "productIdentifierValue": "9783765728327", "description": null, "sequence": 0, "country": "AT", "currency": "EUR", "value": 11, "taxRate": "R", "taxableAmount": 10, "taxAmount": 1, "title": "Titel 1", "taxInfo": null }, { "id": "060f435a93b4493eab12156a518d0cfa", "type": "DG", "productFormDetail": null, "numberOfPieces": null, "productContentType": null, "productIdentifierType": "03", "productIdentifierTypeName": null, "productIdentifierValue": "9783765732362", "description": null, "sequence": 2, "country": "AT", "currency": "EUR", "value": 12, "taxRate": "S", "taxableAmount": 10, "taxAmount": 2, "title": "Titel 3", "taxInfo": null }, { "id": "9b56d2a145a5407faf24de74452ef858", "type": "DG", "productFormDetail": null, "numberOfPieces": null, "productContentType": null, "productIdentifierType": "03", "productIdentifierTypeName": null, "productIdentifierValue": "9783765732904", "description": null, "sequence": 1, "country": "AT", "currency": "EUR", "value": 12, "taxRate": "S", "taxableAmount": 10, "taxAmount": 2, "title": "Titel 2", "taxInfo": null } ]

Bundle-Preisauszeichnung via REST-API

Seite 11 / 11