# PUT orders in bulk

Saves orders in bulk. If an orderId was already used by this contract this order and all it's order-items will
be overwritten.
- the
`version`
 of the request body must be "3"
- requests must not contain duplicated
`orderId`
- the number of orders in one request must not exceed 10,000
- each order must have at least one item
- the
`orders.items.itemId`
 fields should correspond to a
`customerProductId`
 of a product definition inside

the contract

Endpoint: PUT /api/v3/vendor/contracts/{contractId}/orders
Version: 0.2.3234
Security: BasicAuth, BearerAuth

## Security:

  - `BasicAuth` (unknown)
    http basic

  - `BearerAuth` (unknown)
    http bearer JWT

## Path parameters:

  - `contractId` (string, required)
    Unique identifier of the contract

## Request fields (application/json):

  - `orders` (array, required)
    List of orders

  - `orders.shippingCosts` (number, required)
    Shipping costs of the order. This amount is included in totalPrice.

  - `orders.orderId` (string, required)
    Unique ID of an order. This ID must be unique within the contract.

  - `orders.items` (array, required)
    List of purchased items.

  - `orders.items.itemId` (string, required)
    ID of the item in the customer's system. It is expected to be the customerProductId. It should be guaranteed that the itemId can be always assigned to only one product or variant.

  - `orders.items.unitPrice` (number, required)
    Gross unit price of a single item, including applicable taxes.

  - `orders.items.quantity` (integer, required)
    How often the item was purchased.

  - `orders.items.taxPercentage` (number)
    Tax percentage applied on the unit price, e.g. 20 for 20% tax. This percentage is used to determine the tax component of the unitPrice, but the unitPrice itself already includes this tax.

  - `orders.totalPrice` (number, required)
    Total price of the order, including all items, applicable taxes, and shipping costs.

  - `orders.origin` (string, required)
    Origin of an order, e.g., the online shop where the order is placed.

  - `orders.creationDate` (string, required)
    Timestamp in ISO 8601 format indicating when the order is placed.

  - `orders.currency` (string, required)
    Currency used in the order, represented by ISO 4217 Currency Codes (e.g., EUR).

  - `orders.referrer` (string)
    Optional referrer of an order. Third party (e.g. marketplace) which referred the customer to the online shop.

  - `version` (string, required)
    Version of orders. Currently only "3" is allowed

## Response 201:

  - `201` (unknown)
    The response provides the ids of the successfully imported orders

## Response 201 fields (application/json):

  - `data` (object, required)
    Represents list of unique identifiers

  - `data.ids` (array, required)
    list of ids of the items that have been saved or updated

## Response 400:

  - `400` (unknown)
    Unable to add orders because of invalid request data

## Response 400 fields (application/json):

  - `errors` (array, required)
    List of errors that occurred during request processing
    Example: [{"code":"request.invalid","message":"The provided request data is invalid"},{"code":"resource.invalid","message":"The requested resource could not be found"}]

  - `errors.code` (string, required)
    Machine-readable error code for programmatic error handling.
Typically follows a structured format like 'request.invalid' or 'resource.invalid'.
    Example: request.invalid

  - `errors.message` (string, required)
    Human-readable error message providing details about the issue
    Example: The provided email address is not in a valid format

