{
  "openapi": "3.0.0",
  "info": {
    "title": "Receipts API",
    "version": "3.0.0",
    "description": "Interface for the partner to get receipts information"
  },
  "servers": [
    {
      "url": "https://api.otto.market",
      "description": "Live Server"
    }
  ],
  "paths": {
    "/v3/receipts/{receiptNumber}.pdf": {
      "get": {
        "tags": [
          "Receipts V3"
        ],
        "summary": "Get the PDF document of a specific receipt",
        "description": "Get PDF document by 'receiptNumber'",
        "operationId": "getReceiptPdfUsingGET_3",
        "parameters": [
          {
            "name": "receiptNumber",
            "in": "path",
            "description": "ReceiptNumber",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "R-DE-123456789-2020-1507"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the receipt PDF",
            "content": {
              "application/pdf": {}
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden Access"
          },
          "404": {
            "description": "Receipt PDF Not Found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "receipts"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507.pdf \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507.pdf \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/receipts/{receiptNumber}": {
      "get": {
        "tags": [
          "Receipts V3"
        ],
        "summary": "Get the JSON object of a specific receipt",
        "description": "Get JSON object by the 'receiptNumber'",
        "operationId": "getReceiptUsingGET_5",
        "parameters": [
          {
            "name": "receiptNumber",
            "in": "path",
            "description": "ReceiptNumber",
            "required": true,
            "schema": {
              "type": "string"
            },
            "example": "R-DE-123456789-2020-1507"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved the receipt",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Receipt"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Receipt Not Found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "receipts"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507 \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET https://api.otto.market/v3/receipts/R-DE-123456789-2020-1507 \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    },
    "/v3/receipts": {
      "get": {
        "tags": [
          "Receipts V3"
        ],
        "summary": "Get receipts as list of JSON objects",
        "description": "Retrieve receips sorted by creation date, latest ones first. The number of receipts is limited to 128 results; cursor based pagination is supported.",
        "operationId": "getReceiptsUsingGET_5",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Page size to limit the number of receipts returned in the response",
            "required": false,
            "schema": {
              "minimum": 1,
              "type": "integer",
              "format": "int32",
              "default": 128
            },
            "example": 128
          },
          {
            "name": "page",
            "in": "query",
            "description": "Page number to fetch. This parameter is required to fetch data for specific page number.\n</br>This field is deprecated, please use 'next' parameter",
            "required": false,
            "deprecated": true,
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            },
            "example": 1
          },
          {
            "name": "receiptTypes",
            "in": "query",
            "description": "\nSearch for receipts filtered by multiple receipt types.\n\n</br>PURCHASE - A purchase receipt (also known as an invoice) records the prices charged to the customer at the time of sale.\nThe receipt contains information per order, partner and shipment. It is generated when items are shipped to the customer, so there may be more than one receipt per order.\nShipping costs are charged only once per partner and per order, and are billed with first purchase receipt of this partner order.\nSurcharges imposed by payment provider on the customer for using special payment conditions are not included in the OTTO Market receipts.\n\n</br>REFUND - We distinguish between different types of reimbursement documents. A refund receipt documents a credit note issued to a customer for a refund.\nThis document is currently created when returns are accepted.  In very rare cases, refund receipts may also be created during the cancellation process to reimburse shipping costs for full returns.\n Previous partial refunds will be taken into account.\n\n</br> PARTIAL_REFUND -  We distinguish different types of reimbursement documents. A partial refund receipt documents a credit note issued to a customer without return.\n As a partner, you might offer a customer a partial refund if there is a legitimate complaint to avoid a return.\n\n</br>If no receiptType is provided, receipts  of all existing receiptTypes will be returned.\n\n<b>Please for your own interest, hand over all receipt types you are interested in using the list parameter receiptTypes, so that OTTO Market could add new receipt types without side effects for your own processes.\nUsing this option you can decide by your own when to incorporate new receipt types in your own processes.\n\n\nPlease do not use the possibility of calls without specifying the receiptTypes anymore.</b>",
            "required": false,
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "PURCHASE",
                  "REFUND",
                  "PARTIAL_REFUND"
                ]
              }
            },
            "example": "PURCHASE,REFUND"
          },
          {
            "name": "from",
            "in": "query",
            "description": "Only receipts with creation date newer or equal than the date specified (yyy-mm-dd in UTC) will be returned.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2022-08-01"
          },
          {
            "name": "to",
            "in": "query",
            "description": "Only receipts with creation date older or equal than the date specified (yyy-mm-dd in UTC) will be returned.",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "example": "2022-08-31"
          },
          {
            "name": "salesOrderId",
            "in": "query",
            "description": "Search for receipts filtered by sales order Id",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "f23eb274-a8a2-4721-a7bc-0d9aa1b11940"
          },
          {
            "name": "next",
            "in": "query",
            "description": "Cursor for paging requests. If a next cursor is provided, the only other request parameter being considered is 'limit'\n\nNote: Only the cursor string is required - not the whole link",
            "required": false,
            "schema": {
              "type": "string"
            },
            "example": "eyJjcmVhdGlvbkRhdGUiOjE2ODU2OTE1NjUuMTk4MDAwMDAwLCJyZWNlaXB0TnVtYmVyIjoiRS1ERS0xMTg0NzU2OTAtMjAyMy0zNTgxMyJ9"
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully retrieved list of receipts",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReceiptsList"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized Access"
          },
          "403": {
            "description": "Forbidden Access"
          },
          "404": {
            "description": "Receipts Not Found"
          }
        },
        "security": [
          {
            "bearerAuth": [
              "receipts"
            ]
          }
        ],
        "x-codeSamples": [
          {
            "lang": "Shell + Curl",
            "source": "curl --request GET \\\n  --url 'https://api.otto.market/v3/receipts?limit=128&page=1&receiptTypes=PURCHASE%2CREFUND&from=2022-08-01&to=2022-08-31&salesOrderId=f23eb274-a8a2-4721-a7bc-0d9aa1b11940&next=eyJjcmVhdGlvbkRhdGUiOjE2ODU2OTE1NjUuMTk4MDAwMDAwLCJyZWNlaXB0TnVtYmVyIjoiRS1ERS0xMTg0NzU2OTAtMjAyMy0zNTgxMyJ9' \\\n  --header 'Authorization: Bearer REPLACE_BEARER_TOKEN'"
          },
          {
            "lang": "Shell + Httpie",
            "source": "http GET 'https://api.otto.market/v3/receipts?limit=128&page=1&receiptTypes=PURCHASE%2CREFUND&from=2022-08-01&to=2022-08-31&salesOrderId=f23eb274-a8a2-4721-a7bc-0d9aa1b11940&next=eyJjcmVhdGlvbkRhdGUiOjE2ODU2OTE1NjUuMTk4MDAwMDAwLCJyZWNlaXB0TnVtYmVyIjoiRS1ERS0xMTg0NzU2OTAtMjAyMy0zNTgxMyJ9' \\\n  Authorization:'Bearer REPLACE_BEARER_TOKEN'"
          }
        ]
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "bearerFormat": "JWT",
        "scheme": "bearer"
      }
    },
    "schemas": {
      "Address": {
        "title": "Address",
        "required": [
          "city",
          "countryCode",
          "firstName",
          "lastName",
          "street",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "First name of person or name of a pick point",
            "example": "Iris"
          },
          "lastName": {
            "type": "string",
            "description": "Last name of a person or a pick point id",
            "example": "Muster"
          },
          "street": {
            "type": "string",
            "description": "Street of address.</br>For sales orders were  placed before 23rd Sep. 2021 street and house number are both parts of this field",
            "example": "Washingtonallee"
          },
          "houseNumber": {
            "type": "string",
            "description": "House number of  address</br>Available for sales orders placed after 23rd Sep. 2021. For older sales orders the house number is part of the field street and this field is not shown at all",
            "example": "42"
          },
          "addition": {
            "type": "string",
            "description": "Additional information of the address</br>Can be used to provide additional information of address",
            "example": "Hinterhof, 1. Stock"
          },
          "zipCode": {
            "type": "string",
            "description": "Zip code of address",
            "example": "22885"
          },
          "city": {
            "type": "string",
            "description": "City of address",
            "example": "Bremerhaven"
          },
          "countryCode": {
            "type": "string",
            "description": "Country of address represented as country code (ISO 3166-1 alpha-3)",
            "example": "DEU"
          }
        },
        "description": "There are different definitions of Address objects in Receipt structure:\n* **invoiceAddress** -  Address of the customer to be billed\n* **deliveryAddress** - Address of the recipient entered by the customer when placing the order. Recipient can be a person or a pickup point.</br>Only available on receipts of receiptType PURCHASE."
      },
      "AddressInformation": {
        "title": "AddressInformation",
        "required": [
          "countryCode",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "zipCode": {
            "type": "string",
            "description": "Zip code of shipFromAddress",
            "example": "60437"
          },
          "countryCode": {
            "type": "string",
            "description": "Country of shipFromAddress represented as country code (ISO 3166-1 alpha-3)",
            "example": "DEU"
          }
        },
        "description": "Place of departure from shipment notification send to OTTO market for items. </br> ATTENTION: If data in shipment notification is not unique per item, it is taken by default."
      },
      "Benefit": {
        "title": "Benefit",
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Discount code applied to the order to get a reduction. Available when reduction is of type PARTNER_DISCOUNT\n"
          },
          "description": {
            "type": "string",
            "description": "Additional info often printed on the pdf for a PriceModification object (on German receipts always in German)If PriceModification object is of type:\n\n* **PARTNER_DISCOUNT**- discount name, provided with sales order event as part of positionGroupPrice- <br>(What we print on the pdf )- e.g. \"1 € Rabatt\"\n"
          }
        },
        "description": "Additional information about the applied customer benefit.\n"
      },
      "Customer": {
        "title": "Customer",
        "required": [
          "invoiceAddress"
        ],
        "type": "object",
        "properties": {
          "invoiceAddress": {
            "$ref": "#/components/schemas/Address"
          }
        },
        "description": "Customer details"
      },
      "DeliveryCost": {
        "title": "DeliveryCost",
        "required": [
          "deliveryCostType",
          "positionSum",
          "priceModifications",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 5
          },
          "deliveryCostType": {
            "type": "string",
            "description": "Type of delivery costs for the shipment of physical goods. </br>\nPossible values:\n* **DELIVERY_FEE_STANDARD** - basic shipping costs\n* **DELIVERY_FEE_FREIGHT_SURCHARGE** - additional freight surcharge for bulky goods\n",
            "example": "DELIVERY_FEE_STANDARD",
            "enum": [
              "DELIVERY_FEE_STANDARD",
              "DELIVERY_FEE_FREIGHT_SURCHARGE"
            ]
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "positionSum": {
            "$ref": "#/components/schemas/Price"
          },
          "priceModifications": {
            "type": "array",
            "description": "List of additional fees and reductions represented as price modifications.\n</br>If there are no price modifications, an empty list is displayed",
            "items": {
              "$ref": "#/components/schemas/PriceModification"
            }
          }
        },
        "description": "List of billed logistic costs, if exists for this receipt.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty"
      },
      "DeliveryCostPartialRefundPosition": {
        "title": "DeliveryCostPartialRefundPosition",
        "type": "object",
        "description": "This information is currently not available, will be an empty array."
      },
      "Details": {
        "title": "Details",
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string",
            "description": "Additional info often printed on the pdf for a PriceModification object (on German receipts always in German)</br>\nIf PriceModification object is of type:\n* **PARTNER_DISCOUNT** - discount name, provided with sales order event as part of positionGroupPrice: (What we print on the pdf ): e.g.  \"1 € Rabatt\"\n* **DEFECT_COMPENSATION** - ( German translation of defect compensation)  \"**Mängelausgleich**\"\n* **REFUND_COMPLAINT_ITEM** - hard coded \"Preisnachlass Reklamation Artikel\"\n* **REFUND_PAYPAL_DISPUTE** - hard coded “Preisnachlass PayPal Disput“\n* **REFUND_ESCALATION** - hard coded “Preisnachlass Escalation“\n* **REFUND_CREDIT_CARD_DISPUTE** - hard coded \"Preisnachlass CREDIT_CARD Disput\"\n",
            "example": "1 € Rabatt"
          },
          "id": {
            "type": "string",
            "description": "Discount code applied to the order to get a reduction. Available when reduction is of type PARTNER_DISCOUNT",
            "example": "82ffff8f-8709-4060-bcd3-ebdabbbc6514"
          },
          "linkedReceiptNumber": {
            "type": "string",
            "description": "Allows to link an earlier purchase or (partial)refund receipt by human-readable identifier.\n</br>If PriceModification object is of type:\n* **DEFECT_COMPENSATION**: In case of previous (partial) refunds this field contains the human-readable identifier of the partial refund with which the previous refund was made",
            "example": "E-DE-123456789-2020-7"
          },
          "linkedReceiptCreationDate": {
            "type": "string",
            "description": "Allows to show creation date of linked earlier purchase or (partial)refund receipt.\n</br>If PriceModification object is of type:\n* **DEFECT_COMPENSATION**: In case of previous (partial) refunds this field contains the creation date of linked receipt with which the previous refund was made. (ISO-8601 format)",
            "format": "date-time",
            "example": "2022-06-30T14:35:00.221Z"
          },
          "type": {
            "type": "string",
            "description": "The specific types of discounts provided for Marketplace. This field is only applicable when the priceModificationType for the item is PARTNER_DISCOUNT\n</br>Possible values:\n* **PARTNER_DISCOUNT** - a Partner Discount provided because of a booked service \"Rabattaktion\" by the partner\n* **PLATFORM_DISCOUNT** - a Discount for a platform frame provided because of a booked service \"Marktplatz Rabattaktion\" by the partner\n",
            "example": "PARTNER_DISCOUNT",
            "enum": [
              "PARTNER_DISCOUNT",
              "PLATFORM_DISCOUNT"
            ]
          },
          "reason": {
            "type": "string",
            "description": "Detailed reason of priceModifications of priceModificationType REFUND_GOODWILL_ITEM.\n\nPossible values:\n* **GOODWILL_ITEM_FOR_FREE** - Refund item price as goodwill\n* **GOODWILL_ITEM_RETURN_REJECTED** - Price reduction after return rejection as goodwill\n* **GOODWILL_ITEM_DISCOUNT_EXPIRED** - Price reduction after using old discount code as goodwill\n* **GOODWILL_OTHER** - Individual price reduction as goodwill\n",
            "example": "GOODWILL_ITEM_REFUND_REJECTED",
            "enum": [
              "GOODWILL_ITEM_FOR_FREE",
              "GOODWILL_ITEM_RETURN_REJECTED",
              "GOODWILL_ITEM_DISCOUNT_EXPIRED",
              "GOODWILL_OTHER"
            ]
          },
          "linkedPositionItemId": {
            "type": "string",
            "description": "Allows to show the unique identifier (salesOrder)PositionItem of an earlier (partial)refund receipt of items.</br>\nA (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n\nIt will be present in refund receipts for those _“priceModificationType” which are applicable after purchase receipts are generated_.",
            "example": "d76533b7-9c98-4be5-97a2-c54ba1929b33"
          }
        },
        "description": "Additional information of increase or decrease of the line item described by this PriceModification object"
      },
      "ItemPartialRefundPosition": {
        "title": "ItemPartialRefundPosition",
        "required": [
          "articleNumber",
          "partialRefundAmount",
          "positionItemIds",
          "productTitle"
        ],
        "type": "object",
        "properties": {
          "partialRefundDetails": {
            "$ref": "#/components/schemas/PartialRefundDetails"
          },
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 3
          },
          "sku": {
            "type": "string",
            "description": "Stock keeping unit of  item. Unique item identifier on partner side",
            "example": "123e4567-e89b-12d3-a456-426652340000"
          },
          "articleNumber": {
            "type": "string",
            "description": "Unique Identifier of item the customer knows from order process",
            "example": "S081B05AP2"
          },
          "productTitle": {
            "type": "string",
            "description": "Product description of item the customer knows from the order process",
            "example": "Bobux »Baby Halbschuhe DIMENSION II für Mädchen« Schnürschuh"
          },
          "variationAttributes": {
            "type": "string",
            "description": "Additional attributes for unique description of  item, if different variants of the item are possible. (String of comma seperated dimensions)\n\nATTENTION: In previous version, the information exists as dimensions",
            "example": "Weiß, 19"
          },
          "positionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered",
            "example": [
              "476bb1ac-a227-4710-8ee4-f297a38a309c"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered",
              "example": "[\"476bb1ac-a227-4710-8ee4-f297a38a309c\"]"
            }
          },
          "partialRefundAmount": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "description": "List of billed partial refunds of items.\n</br>This list is only used in context of receiptType PARTIAL_REFUND.\n</br>If there are no entries the lists is displayed as empty"
      },
      "ItemPosition": {
        "title": "ItemPosition",
        "required": [
          "articleNumber",
          "positionItemIds",
          "positionSum",
          "priceModifications",
          "productTitle",
          "quantity",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 1
          },
          "sku": {
            "type": "string",
            "description": "Stock keeping unit of item. Unique item identifier on partner side.\n</br>This information is not reliably provided for older receipts",
            "example": "123e4567-e89b-12d3-a456-426652340000"
          },
          "expectedPerformancePeriod": {
            "type": "string",
            "description": "Vague performance date. As the exact date is not known when generating the receipt, this information gives an indication when the item will be shipped",
            "example": "Nach Zahlung wird die Lieferung vorbereitet."
          },
          "articleNumber": {
            "type": "string",
            "description": "Unique Identifier of item the customer knows from order process.\n\nATTENTION: Different from the previous version, the field also contains the promotion. In last version the promotion was provided separately",
            "example": "S081B05AP2"
          },
          "productTitle": {
            "type": "string",
            "description": "Product description of item the customer knows from the order process",
            "example": "Bobux »Baby Halbschuhe DIMENSION II für Mädchen« Schnürschuh"
          },
          "variationAttributes": {
            "type": "string",
            "description": "Additional attributes for unique description of an item, if different variants of the item are possible. (String of comma seperated dimensions)\n\nATTENTION: In previous version the information was called dimensions",
            "example": "Weiß, 19"
          },
          "positionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of ordered items.\nA (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n</br>If quantity of the specific LineItem object is bigger than one the list contains more than one entry",
            "example": [
              "476bb1ac-a227-4710-8ee4-f297a38a309c",
              "34gfb1ac-4f45-4710-4ef4-t555a38a309g"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of ordered items.\nA (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n</br>If quantity of the specific LineItem object is bigger than one the list contains more than one entry",
              "example": "[\"476bb1ac-a227-4710-8ee4-f297a38a309c\",\"34gfb1ac-4f45-4710-4ef4-t555a38a309g\"]"
            }
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity",
            "format": "int32",
            "example": 2
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "priceToPayPerPositionItems": {
            "type": "array",
            "description": "Price of each unit of the item i.e., price of each positionItemId.</br>It will be available only for PURCHASE receipt",
            "items": {
              "$ref": "#/components/schemas/PriceToPayPerPositionItem"
            }
          },
          "positionSum": {
            "$ref": "#/components/schemas/Price"
          },
          "priceModifications": {
            "type": "array",
            "description": "List of additional fees and reductions represented as price modifications.\n</br>Currently we only know reductions.\n</br>If there are no entries the list is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/PriceModification"
            }
          }
        },
        "description": "List of billed items, if exists.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty"
      },
      "LineItems": {
        "title": "LineItems",
        "required": [
          "deliveryCosts",
          "deliveryFeePartialRefundPositions",
          "itemPartialRefundPositions",
          "itemPositions",
          "servicePartialRefundPositions",
          "servicePositions"
        ],
        "type": "object",
        "properties": {
          "itemPositions": {
            "type": "array",
            "description": "List of billed items, if exists.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/ItemPosition"
            }
          },
          "itemPartialRefundPositions": {
            "type": "array",
            "description": "List of billed partial refunds of items.\n</br>This list is only used in context of receiptType PARTIAL_REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/ItemPartialRefundPosition"
            }
          },
          "servicePositions": {
            "type": "array",
            "description": "List of billed B2C services, if exists for this receipt.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/ServicePosition"
            }
          },
          "servicePartialRefundPositions": {
            "type": "array",
            "description": "List of billed partial refunds of services.",
            "items": {
              "$ref": "#/components/schemas/ServicePartialRefundPosition"
            }
          },
          "deliveryCosts": {
            "type": "array",
            "description": "List of billed logistic costs, if exists for this receipt.\n</br>This list is only used in context of receiptType PURCHASE or REFUND.\n</br>If there are no entries the lists is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/DeliveryCost"
            }
          },
          "deliveryFeePartialRefundPositions": {
            "type": "array",
            "description": "This information is currently not available, will be an empty array.",
            "items": {
              "$ref": "#/components/schemas/DeliveryCostPartialRefundPosition"
            }
          }
        },
        "description": "Line items for which settlement is made.\n\nATTENTION:\n* In previous version this name was used for  itemPositions only. Now there is a substructure that cares about all billing object of a receipt\n* The object is currently define by mistake as required, we will change it in future as it’s possible that we introduce new receiptTypes without lineItems. For current receiptTypes PURCHASE, PARTIAL_REFUND and REFUND lineItems will always exists."
      },
      "LinkedItemDetails": {
        "title": "LinkedItemDetails",
        "required": [
          "articleNumber",
          "productTitle",
          "serviceRelations"
        ],
        "type": "object",
        "properties": {
          "itemReceiptNumber": {
            "type": "string",
            "description": "Human-readable identifier refers to the receipt the linked item was billed. </br>\nDisplayed only if item is billed with another receipt. </br>\nIn case of receiptType\n* **PURCHASE** - **receiptNumber of purchase receipt**.</br>\nIf this field is not present, you will find information in receipt.receiptNumber\n* **REFUND** - **receiptNumber of purchase receipt**. </br>\nIf this field is not present ,you will find information in receipt.linkedReceiptNumber\n",
            "example": "R-DE-123456789-2020-715"
          },
          "itemPartnerName": {
            "type": "string",
            "description": "Name of the partner who sold the linked item.\n</br>Displayed only if the partner is different from partner of the receipt",
            "example": "Tonio Mertez e.K."
          },
          "sku": {
            "type": "string",
            "description": "Stock keeping unit of the linked item. Unique item identifier on partner side\n</br>This information is not reliably provided for older receipts.\n",
            "example": "123e4567-e89b-12d3-a456-426652340000"
          },
          "articleNumber": {
            "type": "string",
            "description": "Unique Identifier of linked item the customer knows from order process.\n\nATTENTION: Different from the previous version, the field also contains the promotion. In last version the promotion was provided separately",
            "example": "S081B05AP2"
          },
          "productTitle": {
            "type": "string",
            "description": "Product description of linked item the customer knows from the order process",
            "example": "Bobux »Baby Halbschuhe DIMENSION II für Mädchen« Schnürschuh"
          },
          "serviceRelations": {
            "type": "array",
            "description": "List of ServiceRelation objects.\n</br>Contains entries if services were sold  together with items otherwise list is empty",
            "items": {
              "$ref": "#/components/schemas/ServiceRelation"
            }
          }
        },
        "description": "Additional information to an item directly related to the service.\n</br>Object exists only if the service was sold together with an item"
      },
      "PartialRefundDetails": {
        "title": "PartialRefundDetails",
        "type": "object",
        "properties": {
          "benefit": {
            "$ref": "#/components/schemas/Benefit"
          }
        },
        "description": "Additional information about the granted partial refund to this item.\n"
      },
      "Partner": {
        "title": "Partner",
        "required": [
          "city",
          "countryCode",
          "partnerName",
          "representedBy",
          "street",
          "vatId",
          "zipCode"
        ],
        "type": "object",
        "properties": {
          "partnerName": {
            "type": "string",
            "description": "Name of the selling partner/company.\n\nATTENTION: In previous version the information was called name",
            "example": "Funky Staff GmbH & Co. KG"
          },
          "street": {
            "type": "string",
            "description": "Street and house number of company address",
            "example": "Berner Straße 109"
          },
          "zipCode": {
            "type": "string",
            "description": "Zip code of company address",
            "example": "60437"
          },
          "city": {
            "type": "string",
            "description": "City of company address",
            "example": "Hamburg"
          },
          "countryCode": {
            "type": "string",
            "description": "Country of company address represented as country code (ISO 3166-1 alpha-3)",
            "example": "DEU"
          },
          "vatId": {
            "type": "string",
            "description": "Value added tax identification number of partner",
            "example": "DE215947224"
          },
          "representedBy": {
            "type": "string",
            "description": "The partner's representative(s).\n\nATTENTION: In previous version the information was called legalRepresentatives",
            "example": "Monika Sievers, Paul Ackermann"
          },
          "registerCourt": {
            "type": "string",
            "description": "Court where the company is registered.</br> Information exists if it's maintained in partner core data.\n\nATTENTION: In previous version the information was called districtCourt",
            "example": "Amtsgericht Hamburg"
          },
          "commercialRegisterNumber": {
            "type": "string",
            "description": "Commercial register number. Unique in context of register court.</br> Information exists if it's maintained in partner core data.\n\nATTENTION: In previous version the information was called registerNumber",
            "example": "HRB 5433221"
          },
          "headOfSupervisoryBoard": {
            "type": "string",
            "description": "The partner's head of supervisory board.</br> Information exists if it's maintained in partner core data",
            "example": "Hugo Steiner"
          },
          "shopName": {
            "type": "string",
            "description": "Alias name of partner.</br> Information exists if it's maintained in partner core data",
            "example": "Fun-Shop"
          },
          "weeeRegistrationNumber": {
            "type": "string",
            "description": "WEEE registration number of partner.</br> Information exists if it's maintained in partner core data"
          }
        },
        "description": "Partner for whom the receipt is created"
      },
      "Payment": {
        "title": "Payment",
        "required": [
          "paymentMethod",
          "paymentProvider"
        ],
        "type": "object",
        "properties": {
          "paymentProvider": {
            "type": "string",
            "description": "Payment Provider chosen for the order. </br>\nPossible values:\n* **PLAZA** -  Ratepay\n* **OTTOPAYMENTS** - OTTO Payments\n",
            "example": "OTTOPAYMENTS",
            "enum": [
              "PLAZA",
              "OTTOPAYMENTS"
            ]
          },
          "paymentMethod": {
            "type": "string",
            "description": "Payment method chosen by the customer to pay for this order.\n\nPossible values:\n* **INVOICE_SINGLE / INVOICE_INSTALLMENT** - payment on invoice (with or without installments)\n* **DIRECT_DEBIT / DIRECT_DEBIT_INSTALLMENTS** - payment by direct debit (with or without installments)\n* **PREPAYMENT** - payment by prepayment\n* **PAYPAL** - payment by PayPal\n* **CREDIT_CARD** - payment by credit or debit card  (only applicable for paymentProvider = OTTOPAYMENTS)\n* **CREDIT_CARD_ONLINE** - payment by credit card  (only applicable for old paymentProvider = PLAZA)",
            "example": "CREDIT_CARD_ONLINE",
            "enum": [
              "CREDIT_CARD_ONLINE",
              "INVOICE_SINGLE",
              "INVOICE_INSTALLMENTS",
              "DIRECT_DEBIT_INSTALLMENTS",
              "PREPAYMENT",
              "PAYPAL",
              "DIRECT_DEBIT",
              "CREDIT_CARD"
            ]
          },
          "installmentCount": {
            "type": "integer",
            "description": "For payment methods with installments, this attribute indicates how many installments the customer has chosen when placing the order.\n</br>Only available on receipts of receiptType PURCHASE.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 3
          },
          "paymentBreak": {
            "type": "boolean",
            "description": "The field indicates whether customer has chosen paymentBreak <ul><li>Set to <b>true</b>, if customer has chose paymentBreak</li><li>Set to <b>false</b>, if customer hasn’t chosen paymentBreak</li></ul>"
          }
        },
        "description": "Payment details"
      },
      "Price": {
        "title": "Price",
        "required": [
          "gross",
          "taxRate",
          "taxType"
        ],
        "type": "object",
        "properties": {
          "taxType": {
            "type": "string",
            "description": "The fields indicates what kind of tax the price object includes.</br>\nCurrently prices of the following taxTypes are possible.\n* **VAT** - vat rate\n* **INSURANCE** - insurance tax\n",
            "example": "VAT",
            "enum": [
              "VAT",
              "INSURANCE"
            ]
          },
          "taxRate": {
            "type": "string",
            "description": "Applied tax rate, if there is any.</br>\nCurrently the entry can only be a decimal number.\n",
            "example": "19.0"
          },
          "gross": {
            "description": "Calculated gross value",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 209.82
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "net": {
            "description": "Calculated net value </br>\nThis information is not reliably provided for older receipts.This information is not reliably provided for older receipts for all Price objects.. In the beginning we only provides this value for receipt.totals. \n</br>In receipts generated after the 01-01-2023 data should always be set in all Price objects.\n",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 174.85
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "tax": {
            "description": "  Calculated tax value </br>\n  This information is not reliably provided for older receipts.This information is not reliably provided for older receipts for all Price objects.. In the beginning we only provides this value for receipt.totals. \n  </br>In receipts generated after the 01-01-2023 data should always be set in all Price objects.\n",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 34.97
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          }
        },
        "description": "Costs of an object\nThere are different definitions of Price objects in Receipt structure:\n  * **unitPrice** - Original price for quantity a line item object\n  * **positionSum** - Price for quantity x unitPrice of a line item object minus reductions of all sub priceModification objects, if exist\n  * **partialRefundAmount** - Granted reduction by the partner on line item object\n  * **priceModificationAmount** - Total reduction for the super ordinated line item object. If the line item object has a quantity, this is already been taken into account in this amount.\n  * **priceToPay** - Price for quantity one minus all instant reductions like partner discount ... when selling (excl. earlier partial refunds).</br>Only available on receipts of receiptType PURCHASE.\n"
      },
      "PriceModification": {
        "title": "PriceModification",
        "required": [
          "details",
          "priceModificationAmount",
          "priceModificationType"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>On the pdf documents increases and decreases do not necessarily have to be shown on the same line. If there is a discrepancy, it is visible by different line numbers of this object and the parent line item object\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 1
          },
          "priceModificationType": {
            "type": "string",
            "description": "This type describes the special increases or decreases in detail and how to deal with it.\n\nThe following priceModificationTypes are possible:\n* **PARTNER_DISCOUNT** - Partner-financed immediate discount granted to the customer at the time of purchase.</br>Reduction of parent object item position on PURCHASE and REFUND receipt\n* **DEFECT_COMPENSATION** / **REFUND_COMPLAINT_ITEM** - Partial refund already refunded by a partial refund receipt to compensate a defect.</br>Reduction of parent object item position on REFUND receipt\n* **REFUND_PAYPAL_DISPUTE** - Partial or full amount of item price was refunded due to a dispute in Paypal payment.</br>Reduction of parent object item or service position on REFUND receipt\n* **REFUND_ESCALATION** - Refund already refunded by a partial refund receipt due to an escalation.</br>Reduction of parent object item position on REFUND receipt\n* **REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION** - A partial refund already refunded after service could not fulfilled completely.</br>Reduction of parent object item and service position on REFUND receipt\n* **REFUND_CREDIT_CARD_DISPUTE** - Refund already refunded by a partial refund receipt due to dispute in CREDIT_CARD payment. Reduction of parent object item or service position on REFUND receipt\n",
            "example": "PARTNER_DISCOUNT",
            "enum": [
              "PARTNER_DISCOUNT",
              "DEFECT_COMPENSATION",
              "REFUND_COMPLAINT_ITEM",
              "REFUND_PAYPAL_DISPUTE",
              "REFUND_ESCALATION",
              "REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION",
              "REFUND_CREDIT_CARD_DISPUTE"
            ]
          },
          "details": {
            "$ref": "#/components/schemas/Details"
          },
          "priceModificationAmount": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "description": "List of additional fees and reductions represented as price modifications.\n</br>If there are no price modifications, an empty list is displayed"
      },
      "PriceToPayPerPositionItem": {
        "title": "PriceToPayPerPositionItem",
        "required": [
          "positionItemIds",
          "priceToPay"
        ],
        "type": "object",
        "properties": {
          "positionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n",
            "example": [
              "476bb1ac-a227-4710-8ee4-f297a38a309c",
              "34gfb1ac-4f45-4710-4ef4-t555a38a309g"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of ordered items.\n</br>A (salesOrder)PositionItem is the smallest unit of an item that can be ordered.\n",
              "example": "[\"476bb1ac-a227-4710-8ee4-f297a38a309c\",\"34gfb1ac-4f45-4710-4ef4-t555a38a309g\"]"
            }
          },
          "priceToPay": {
            "$ref": "#/components/schemas/Price"
          }
        },
        "description": "Price of each unit of the item i.e., price of each positionItemId.</br>It will be available only for PURCHASE receipt"
      },
      "Receipt": {
        "title": "Receipt",
        "required": [
          "amountDue",
          "creationDate",
          "customer",
          "isRealReceipt",
          "isDeemedSupplierModel",
          "lineItems",
          "orderDate",
          "orderNumber",
          "partner",
          "payment",
          "receiptNumber",
          "receiptType",
          "salesOrderId",
          "totals"
        ],
        "type": "object",
        "properties": {
          "receiptType": {
            "type": "string",
            "description": "Categorisation that classifies the receipts according to the main characteristics\n\nATTENTION: In previous version the information was called type\n",
            "example": "REFUND",
            "enum": [
              "PURCHASE",
              "REFUND",
              "PARTIAL_REFUND"
            ]
          },
          "isRealReceipt": {
            "type": "boolean",
            "description": "   Counterpart to the sentence \"Dies ist kein Beleg/keine Rechnung im Sinne des Umsatzsteuergesetzes und berechtigt nicht zum Vorsteuerabzug.\" on pdf document.\n   * Is set to **true** by default. Sentence is not printed.\n   * Is set to **false** for technical receipts or if partner has to report VAT via the OSS procedure. The Sentence is printed.\n",
            "example": true
          },
          "isDeemedSupplierModel": {
            "type": "boolean",
            "description": "   Counterpart to the sentence \"Die Umsatzsteuer wird von der OTTO GmbH & Co. KGaA abgeführt.\" on PDF document.\n   * Is set to **true** if this receipt is subject to the deemed supplier regime; OTTO Market is liable for VAT. The sentence is printed.\n   * Is set to **false** if this receipt is not subject to the deemed supplier regime; the partner is liable for VAT.\n",
            "example": true
          },
          "receiptNumber": {
            "type": "string",
            "description": "Human readable identifier of a receipt known by customer. </br> Guaranteed to be unique per partner",
            "example": "E-DE-123456789-2020-7"
          },
          "creationDate": {
            "type": "string",
            "description": "Date when receipt is created by system (UTC in ISO-8601 format)",
            "format": "date-time"
          },
          "fulfillmentDate": {
            "type": "string",
            "description": "Date when service fulfilled.",
            "format": "date-time"
          },
          "salesOrderId": {
            "type": "string",
            "description": "Technical identifier of corresponding sales order",
            "example": "80ec6483-4d53-44d8-9ba7-e846ab24da38"
          },
          "orderNumber": {
            "type": "string",
            "description": "Order number of corresponding sales order",
            "example": "1224567"
          },
          "orderDate": {
            "type": "string",
            "description": "Order date of corresponding sales order (UTC in ISO-8601 format)",
            "format": "date-time"
          },
          "shipmentDate": {
            "type": "string",
            "description": "Date when physical items of this receipt were handed over to the carrier to be delivered to the customer (UTC in ISO-8601 format).</br>Only available on receipts of receiptType PURCHASE.",
            "format": "date-time"
          },
          "shipment": {
            "$ref": "#/components/schemas/Shipment"
          },
          "linkedReceiptNumber": {
            "type": "string",
            "description": "Human-readable identifier of linked receipt.</br> In case of receiptType PARTIAL_REFUND or REFUND it is the receiptINumber of purchase receipt.\n\nATTENTION: In previous version the information was called originalReceiptNumber",
            "example": "R-DE-123456789-2020-1507"
          },
          "linkedCreationDate": {
            "type": "string",
            "description": "Creation date of linked receipt (UTC in ISO-8601 format).</br>Only available if there is a linked receipt.\n\nATTENTION: In previous version the information was called originalCreatedDate",
            "format": "date-time"
          },
          "payment": {
            "$ref": "#/components/schemas/Payment"
          },
          "partner": {
            "$ref": "#/components/schemas/Partner"
          },
          "customer": {
            "$ref": "#/components/schemas/Customer"
          },
          "deliveryAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "lineItems": {
            "$ref": "#/components/schemas/LineItems"
          },
          "totals": {
            "type": "array",
            "description": "Total amounts of receipt per tax type and tax rate",
            "items": {
              "$ref": "#/components/schemas/Price"
            }
          },
          "refundType": {
            "type": "string",
            "description": "   Field describes the business case of a refund in more detail.\n   <br/>Only available on receipts of receiptType REFUND and not reliable provided on older partial refund receipts.\n\n  The following refundTypes are possible:\n  * **RETURN** - Refund due to a return of an item\n  * **CANCELLATION** - Refund of delivery fees due to a cancellation\n  * **SERVICE_FULL_REFUND_CANCELLED_BY_SDU** - Refund for service only, following service partner (SDU) cancellation\n  * **SERVICE_FULL_REFUND_CANCELLED_BY_CUSTOMER**- Refund for service only, following customer cancellation\n  * **SERVICE_FULL_REFUND_PRODUCT_RETURNED** - Refund for service only, following product return\n  * **DELIVERY_FEE_REFUND_AFTER_FULL_REFUND** - Refund of delivery fees following a full refund\n",
            "enum": [
              "RETURN",
              "CANCELLATION",
              "SERVICE_FULL_REFUND_CANCELLED_BY_SDU",
              "SERVICE_FULL_REFUND_CANCELLED_BY_CUSTOMER",
              "SERVICE_FULL_REFUND_PRODUCT_RETURNED",
              "DELIVERY_FEE_REFUND_AFTER_FULL_REFUND"
            ]
          },
          "partialRefundType": {
            "type": "string",
            "description": "Business case of partial refund chosen by partner. Has an impact on the business flow and the PDF.\n                                                                                             </br>Only available on receipts of receiptType PARTIAL_REFUND and not reliable provides on older partial refunds receipts.\n\nPossible values:\n* **REFUND_COMPLAINT_ITEM** - Refund because of justified customer complaint on item\n* **REFUND_PAYPAL_DISPUTE** - Partial or full amount of item price was refunded due to a dispute in Paypal payment\n* **REFUND_ESCALATION** - Partial amount of item price was refunded due to an escalation\n* **REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION** - Lowering of service price after service was not fulfilled completely\n* **REFUND_CREDIT_CARD_DISPUTE** - Partial or full amount of item price was refunded due to a dispute in CREDIT_CARD payment\n",
            "example": "REFUND_COMPLAINT_ITEM",
            "enum": [
              "REFUND_COMPLAINT_ITEM",
              "REFUND_PAYPAL_DISPUTE",
              "REFUND_ESCALATION",
              "REFUND_PARTIAL_AMOUNT_AFTER_SERVICE_CANCELLATION",
              "REFUND_CREDIT_CARD_DISPUTE"
            ]
          },
          "amountDue": {
            "description": "The amountDue documents the gross amount a customer still has to pay or will be refunded respectively owes less (the latter decision depends on the chosen payment method) with this receipt.\n</br>As in case of receiptType PURCHASE and a prepaid payment method we know for sure that the customer has already paid in advance, so the amount is 0 € otherwise the content is identically with totalsGrossAmount",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 209.82
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "totalsGrossAmount": {
            "description": "Gross amounts of totals summed up over all prices. Only available on receipts of receiptType PURCHASE",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n",
                    "example": 209.82
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          },
          "totalsReductions": {
            "type": "array",
            "description": "Reduction amounts on total value of receipts (currently it includes voucher reduction)",
            "items": {
              "$ref": "#/components/schemas/TotalsReduction"
            }
          }
        },
        "description": "Collection of all details of a receipt"
      },
      "ServicePartialRefundPosition": {
        "title": "ServicePartialRefundPosition",
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32"
          },
          "serviceType": {
            "type": "string",
            "description": "Categorization that classifies services according to their main characteristics. Services of the same type are often treated in the same way.\nCurrently, the processing of the following types are possible:\n* **DISPOSAL** - Free take away of old technical devices required by law\n* **INSURANCE** - Product insurance\n* **WARRANTY_EXTERNAL** - Long term warranty sold by partners != OTTO",
            "enum": [
              "DISPOSAL",
              "INSURANCE",
              "WARRANTY_EXTERNAL"
            ]
          },
          "serviceName": {
            "type": "string",
            "description": "Service name of a special specification of a service type that the customer has seen in the ordering process."
          },
          "servicePositionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of services. A servicePositionItem is the smallest unit of a service that can be ordered. If quantity of this object is bigger than one the list contains more than one entry.",
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of services. A servicePositionItem is the smallest unit of a service that can be ordered. If quantity of this object is bigger than one the list contains more than one entry."
            }
          },
          "partialRefundAmount": {
            "$ref": "#/components/schemas/Price"
          },
          "insurancePeriod": {
            "type": "integer",
            "description": "Services of serviceType WARRANTY or INSURANCE could be offered with different durations. This field will show the duration as month.",
            "format": "int32"
          }
        },
        "description": "List of billed partial refunds of services."
      },
      "ServicePosition": {
        "title": "ServicePosition",
        "required": [
          "positionSum",
          "priceModifications",
          "quantity",
          "serviceName",
          "servicePositionItemIds",
          "unitPrice"
        ],
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "description": "Number of line item in which the information is printed on the pdf document of the receipt.\n</br>This information is not reliably provided for older receipts",
            "format": "int32",
            "example": 3
          },
          "serviceType": {
            "type": "string",
            "description": "Categorization that classifies services according to their main characteristics. Services of the same type are often treated in the same way.\nCurrently, the processing of the following types are possible:\n* **DISPOSAL** - Free take away of old technical devices required by law\n* **INSURANCE** - Product insurance\n* **WARRANTY_EXTERNAL** - Long term warranty sold by partners != OTTO\n",
            "example": "DISPOSAL",
            "enum": [
              "DISPOSAL",
              "INSURANCE",
              "WARRANTY_EXTERNAL"
            ]
          },
          "expectedPerformancePeriod": {
            "type": "string",
            "description": "Vague performance date. </br>As the exact date is not known when generating the receipt, this information gives an indication when the service is expected to be fulfilled"
          },
          "serviceName": {
            "type": "string",
            "description": "Service name  the customer knows from the order process",
            "example": "48 Monate Langzeitgarantie Personal Care"
          },
          "servicePositionItemIds": {
            "type": "array",
            "description": "List of unique identifiers of specific instances of services.\n</br>A servicePositionItem is the smallest unit of a service that can be ordered.\n</br>If quantity of this object is bigger than one, the list contains more than one entry",
            "example": [
              "476bb1ac-a2277-4710-8ee4-f297a38a309c",
              "476bb1ac-a227-4710-8ee4-f297a38a309b"
            ],
            "items": {
              "type": "string",
              "description": "List of unique identifiers of specific instances of services.\n</br>A servicePositionItem is the smallest unit of a service that can be ordered.\n</br>If quantity of this object is bigger than one, the list contains more than one entry",
              "example": "[\"476bb1ac-a2277-4710-8ee4-f297a38a309c\",\"476bb1ac-a227-4710-8ee4-f297a38a309b\"]"
            }
          },
          "linkedItemDetails": {
            "$ref": "#/components/schemas/LinkedItemDetails"
          },
          "quantity": {
            "type": "integer",
            "description": "Quantity",
            "format": "int32",
            "example": 2
          },
          "unitPrice": {
            "$ref": "#/components/schemas/Price"
          },
          "positionSum": {
            "$ref": "#/components/schemas/Price"
          },
          "priceModifications": {
            "type": "array",
            "description": "List of additional fees and reductions represented as price modifications.\n</br>Currently we only know reductions.\n</br>If there are no entries the list is displayed as empty",
            "items": {
              "$ref": "#/components/schemas/PriceModification"
            }
          },
          "insurancePeriod": {
            "type": "integer",
            "description": "Services of serviceType WARRANTY or INSURANCE could be offered with different durations. This field will show the duration as month.",
            "format": "int32"
          }
        },
        "description": "List of billed B2C services and insurances."
      },
      "ServiceRelation": {
        "title": "ServiceRelation",
        "required": [
          "positionItemId",
          "servicePositionItemId"
        ],
        "type": "object",
        "properties": {
          "servicePositionItemId": {
            "type": "string",
            "description": "Unique identifier of a specific instance of a service.  ServicePositionItem is the smallest unit of service that can be ordered",
            "example": "476bb1ac-a2277-4710-8ee4-f297a38a309c"
          },
          "positionItemId": {
            "type": "string",
            "description": "Unique identifier of a specific instance of an ordered item (salesOrder)PositionItem is the smallest unit of an item that can be ordered",
            "example": "476bb1ac-a2277-4710-8ee4-f297a38a309b"
          }
        },
        "description": "A ServiceRelation object describes the relationship between a specific instance of a servicePositionItem object and a specific instance of a (salesOrder)PositionItem object"
      },
      "Shipment": {
        "title": "Shipment",
        "required": [
          "shipFromAddress"
        ],
        "type": "object",
        "properties": {
          "shipFromAddress": {
            "$ref": "#/components/schemas/AddressInformation"
          }
        },
        "description": "Shipment details. </br> Only provided on receipts of receiptType PURCHASE containing items. </br> This information is not reliably provided for receipts before 01.03.2024."
      },
      "TotalsReduction": {
        "title": "TotalsReduction",
        "required": [
          "gross",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of reductions applied on total value of receipts.\n\nPossible types:\n* **VOUCHER** - voucher used to pay the receipt\n",
            "example": "VOUCHER",
            "enum": [
              "VOUCHER"
            ]
          },
          "details": {
            "$ref": "#/components/schemas/TotalsReductionDetails"
          },
          "gross": {
            "description": "Gross value of reductions. This will lower the amountDue",
            "allOf": [
              {
                "title": "MonetaryAmount",
                "required": [
                  "amount",
                  "currency"
                ],
                "type": "object",
                "properties": {
                  "amount": {
                    "type": "number",
                    "description": "Value of the monetary amount expressed in currency.</br>\nThe number format expects a decimal point, like 10.99. Numbers without a decimal point are taken as a unit of the given currency,\nE.g. 10.05 EUR = 10 Euro and 5 Cent\n"
                  },
                  "currency": {
                    "type": "string",
                    "description": "Currency of monetary amount (ISO-4217)",
                    "example": "EUR"
                  }
                }
              }
            ]
          }
        },
        "description": "Reduction amounts on total value of receipts (currently it includes voucher reduction)"
      },
      "TotalsReductionDetails": {
        "title": "TotalsReductionDetails",
        "type": "object",
        "properties": {
          "voucherCode": {
            "type": "string",
            "description": "The code of voucher associated with the receipt (contains only last 4 digits of code)",
            "example": "****EFGH"
          }
        },
        "description": "Additional information of reductions"
      },
      "Link": {
        "title": "Link",
        "type": "object",
        "properties": {
          "href": {
            "type": "string",
            "description": "The url of the link",
            "example": "/v3/receipts?limit=128&page=2"
          },
          "rel": {
            "type": "string",
            "description": "The relation type of the link. See also https://www.iana.org/assignments/link-relations/link-relations.xhtml. The relation type 'next' is used for paging. The relation type 'self' refers to the url of the resource",
            "example": "next,self,describedby"
          }
        },
        "description": "A link to various resources. a Link can have different meanings and targets. The type of relation is specified with the property 'rel'. "
      },
      "ReceiptsList": {
        "title": "ReceiptsList",
        "type": "object",
        "properties": {
          "resources": {
            "type": "array",
            "description": "The list of queried resources. In this case partner receipts.",
            "items": {
              "$ref": "#/components/schemas/Receipt"
            }
          },
          "links": {
            "type": "array",
            "description": "Links related to the list. E.g. the link to the successive list used during paging.",
            "items": {
              "$ref": "#/components/schemas/Link"
            }
          }
        }
      }
    },
    "examples": {},
    "headers": {},
    "parameters": {},
    "requestBodies": {},
    "responses": {}
  },
  "tags": [
    {
      "name": "Receipts V3",
      "description": ""
    }
  ]
}