# 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.688
Security: BasicAuth, BearerAuth

## Path parameters:

  - `contractId` (string, required)
    Unique identifier of the contract
    Example: "qbcxvb"

## 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 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 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"


