# Add item

`POST /api/v1/Outlets/{outletId}/Checks/AddItem`

Core API · Checks · base URL `https://core-api.ancon.io` · auth: `Access-Token` header · docs: https://ancon.dev/api/core/checks/add-item

**Deprecated.**

Will no longer work after 2028-09-01 00:00, move over to the V2 Check endpoints instead.

## Path parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `outletId` | string (uuid) | yes |  |

## Header parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `correlationId` | string | no | Correlation Id for the request |

## Request body

Content type: `application/json`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `item` | object | yes |  |
| `item.variantId` | string (uuid) | yes |  |
| `item.quantity` | number (double) | yes | min -100000, max 100000. |
| `item.kitchenMessage` | string or null | no |  |
| `item.price` | object or null | no |  |
| `item.price.unitPrice` | number (double) | no |  |
| `item.price.additionalPrice` | number (double) | no |  |
| `item.upsellGroupId` | string (uuid) or null | no |  |
| `item.modifications` | array<object> or null | no |  |
| `item.modifications[].modification` | string or null | no |  |
| `item.modifications[].ingredientId` | string (uuid) or null | no |  |
| `item.modifications[].addOnGroupId` | string (uuid) or null | no |  |
| `item.modifications[].replaceId` | string (uuid) or null | no |  |
| `item.modifications[].description` | string or null | no |  |
| `item.modifications[].quantity` | number (double) | no |  |
| `item.modifications[].freeAmount` | number (double) | no |  |
| `item.tag` | string or null | no |  |
| `item.subProductSpecification` | array<object> or null | no | Gets or sets the list of sub product specifications. It is used when adding a multi product with sub product with optional variant(s). In those cases the API user has to select a variant. |
| `item.subProductSpecification[].subProductId` | string (uuid) | no | Gets or sets the Id of the sub product. A sub product can be be configured in Admin to point to a product and optionally a specific variant. So in some cases the API user has to specify which variant should be added as a sub product. |
| `item.subProductSpecification[].subProductVariantId` | string (uuid) | no | Gets or sets the id of the variant to be used for this subproduct. |
| `courseId` | string (uuid) or null | no |  |
| `checkId` | string (uuid) or null | no |  |
| `check` | object or null | no |  |
| `check.orderFormat` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`, `64`, `128`, `159`, `191`. |
| `check.salesLocationType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`. |
| `check.salesLocationId` | string (uuid) | no |  |
| `check.guestCount` | integer (int32) or null | no |  |
| `check.collectionTicketId` | string (uuid) or null | no |  |
| `check.externalTableId` | string or null | no |  |
| `isPrepaid` | boolean | no |  |

### Add item new check example

```json
{
  "item": {
    "variantId": "4dfb61eb-57d4-4579-a79a-6a70c9727617",
    "quantity": 1,
    "kitchenMessage": "Cut burger in half",
    "price": {
      "unitPrice": 0,
      "additionalPrice": 0
    },
    "upsellGroupId": "f7bdc327-bd9c-41f9-9267-3839028a1abc",
    "modifications": [
      {
        "modification": "Tomato",
        "ingredientId": "b3a18787-647a-4f57-bce5-92f049bb30ac",
        "addOnGroupId": "85e8077d-f236-42de-adc0-c3af09c5eb40",
        "replaceId": "f0d0d53e-f405-4d24-a6f5-b07322b9710d",
        "description": "Add tomato",
        "quantity": 1,
        "freeAmount": 0
      }
    ],
    "tag": "Lunch special",
    "subProductSpecification": null
  },
  "courseId": "7667f9b1-760b-4601-8b5a-6b23009ca5d6",
  "checkId": null,
  "check": {
    "orderFormat": 1,
    "salesLocationType": 2,
    "salesLocationId": "106b674d-4bf3-4fd5-836e-aaf47137bb70",
    "guestCount": null,
    "collectionTicketId": null,
    "externalTableId": "External id"
  },
  "isPrepaid": false
}
```

### Add item to existing check example

```json
{
  "item": {
    "variantId": "47bb287f-1a6b-4e42-b8e8-2a5ff04f8c45",
    "quantity": 2,
    "kitchenMessage": "Medium rare",
    "price": null,
    "upsellGroupId": "015d887b-d7bc-44a1-9e47-2c9b6f785364",
    "modifications": [
      {
        "modification": "Sauce",
        "ingredientId": "9198a155-37c5-446e-a0b9-42afc0d2e7ad",
        "addOnGroupId": "d9b4fdbc-d0cb-497d-938f-0fea8a10b2d1",
        "replaceId": "d6143523-5b8e-4d90-98bf-bd873fe94b03",
        "description": "Extra sauce",
        "quantity": 1,
        "freeAmount": 0
      }
    ],
    "tag": "Dinner",
    "subProductSpecification": null
  },
  "courseId": "9d59f6ce-f394-4434-b66c-cb3b5402b596",
  "checkId": "a628e772-9acc-4901-bb53-19ef9c241146",
  "check": null,
  "isPrepaid": false
}
```

## Responses

| Status | Description |
| --- | --- |
| 200 | OK |
| 400 | Bad Request |
| 401 | Unauthorized |
| 404 | Not Found |

### 200 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checkItem` | object or null | no | Restored 1.0 wire shape of the old domain CheckItemDto as serialized inside the legacy CheckPaidEvent websocket payload on alpha/production (before the check item domain was restructured into CheckItemDto/SubCheckItemDto). Frozen - do not change the serialized surface. |
| `checkItem.id` | string (uuid) | no |  |
| `checkItem.created` | string (date-time) | no |  |
| `checkItem.modified` | string (date-time) | no |  |
| `checkItem.quantity` | object or null | no |  |
| `checkItem.quantity.value` | number (double) | no |  |
| `checkItem.unitQuantity` | object or null | no |  |
| `checkItem.unitQuantity.value` | number (double) | no |  |
| `checkItem.unit` | object or null | no |  |
| `checkItem.unit.name` | string or null | no |  |
| `checkItem.unit.type` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`. |
| `checkItem.productPriceInclTax` | object or null | no |  |
| `checkItem.productPriceInclTax.unitPrice` | object or null | no |  |
| `checkItem.productPriceInclTax.unitPrice.amount` | number (double) | no |  |
| `checkItem.productPriceInclTax.unitPrice.currencyCode` | string or null | no |  |
| `checkItem.productPriceInclTax.additionalPrice` | object or null | no |  |
| `checkItem.productPriceInclTax.additionalPrice.amount` | number (double) | no |  |
| `checkItem.productPriceInclTax.additionalPrice.currencyCode` | string or null | no |  |
| `checkItem.productPriceExclTax` | object or null | no |  |
| `checkItem.productPriceExclTax.unitPrice` | object or null | no |  |
| `checkItem.productPriceExclTax.unitPrice.amount` | number (double) | no |  |
| `checkItem.productPriceExclTax.unitPrice.currencyCode` | string or null | no |  |
| `checkItem.productPriceExclTax.additionalPrice` | object or null | no |  |
| `checkItem.productPriceExclTax.additionalPrice.amount` | number (double) | no |  |
| `checkItem.productPriceExclTax.additionalPrice.currencyCode` | string or null | no |  |
| `checkItem.kitchenMessage` | string or null | no |  |
| `checkItem.discount` | object or null | no |  |
| `checkItem.discount.value` | number (double) or null | no |  |
| `checkItem.discount.type` | integer (int32) or null | no | Allowed values: `0`, `1`. |
| `checkItem.checkPaymentId` | string (uuid) or null | no |  |
| `checkItem.paidAt` | string (date-time) or null | no |  |
| `checkItem.checkId` | string (uuid) or null | no |  |
| `checkItem.status` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`. |
| `checkItem.productMaterialCostExclTax` | object or null | no |  |
| `checkItem.productMaterialCostExclTax.unitPrice` | object or null | no |  |
| `checkItem.productMaterialCostExclTax.unitPrice.amount` | number (double) | no |  |
| `checkItem.productMaterialCostExclTax.unitPrice.currencyCode` | string or null | no |  |
| `checkItem.productMaterialCostExclTax.additionalPrice` | object or null | no |  |
| `checkItem.productMaterialCostExclTax.additionalPrice.amount` | number (double) | no |  |
| `checkItem.productMaterialCostExclTax.additionalPrice.currencyCode` | string or null | no |  |
| `checkItem.ticketedAt` | string (date-time) or null | no |  |
| `checkItem.ticketedTenantUserId` | string (uuid) or null | no |  |
| `checkItem.courseName` | string or null | no |  |
| `checkItem.coursePosition` | integer (int32) | no |  |
| `checkItem.upsellGroupId` | string (uuid) or null | no |  |
| `checkItem.product` | object or null | no | Restored 1.0 wire shape of Ancon.Wildcat.Shared OrderedProduct as it serializes in the production package (1.0.1200-alpha). The current package marks IsSystemProduct with [JsonIgnore], which would silently drop the field from the legacy payloads, so the raw value object cannot be serialized directly anymore. Frozen - do not change. |
| `checkItem.product.glassesPerBottle` | number (double) or null | no |  |
| `checkItem.product.hasVariants` | boolean | no |  |
| `checkItem.product.isSystemProduct` | boolean | no |  |
| `checkItem.product.localizedProductNames` | object or null | no |  |
| `checkItem.product.localizedProductNames.translations` | map<string, string> or null | no |  |
| `checkItem.product.localizedVariantNames` | object or null | no |  |
| `checkItem.product.localizedVariantNames.translations` | map<string, string> or null | no |  |
| `checkItem.product.position` | object or null | no |  |
| `checkItem.product.position.position` | integer (int32) | no |  |
| `checkItem.product.productGroupId` | string (uuid) | no |  |
| `checkItem.product.productGroupName` | string or null | no |  |
| `checkItem.product.productId` | string (uuid) | no |  |
| `checkItem.product.productName` | string or null | no |  |
| `checkItem.product.productNumber` | string or null | no |  |
| `checkItem.product.productType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`. |
| `checkItem.product.storageInfo` | object or null | no |  |
| `checkItem.product.storageInfo.temperature` | integer (int32) | no |  |
| `checkItem.product.storageInfo.size` | object or null | no |  |
| `checkItem.product.storageInfo.size.height` | integer (int32) | no |  |
| `checkItem.product.storageInfo.size.width` | integer (int32) | no |  |
| `checkItem.product.storageInfo.size.length` | integer (int32) | no |  |
| `checkItem.product.subProductId` | string (uuid) or null | no |  |
| `checkItem.product.subProductQuantity` | object or null | no |  |
| `checkItem.product.subProductQuantity.value` | number (double) | no |  |
| `checkItem.product.useBasePrice` | boolean | no |  |
| `checkItem.product.variantId` | string (uuid) | no |  |
| `checkItem.product.variantName` | string or null | no |  |
| `checkItem.product.variantNumber` | string or null | no |  |
| `checkItem.product.variantType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`. |
| `checkItem.discountInfo` | object or null | no |  |
| `checkItem.discountInfo.discountId` | string (uuid) or null | no |  |
| `checkItem.discountInfo.discountName` | string or null | no |  |
| `checkItem.parentItemId` | string (uuid) or null | no |  |
| `checkItem.taxes` | array<object> or null | no |  |
| `checkItem.taxes[].id` | string (uuid) | no |  |
| `checkItem.taxes[].created` | string (date-time) | no |  |
| `checkItem.taxes[].modified` | string (date-time) | no |  |
| `checkItem.taxes[].itemId` | string (uuid) | no |  |
| `checkItem.taxes[].tax` | object or null | no |  |
| `checkItem.taxes[].tax.taxId` | string (uuid) | no |  |
| `checkItem.taxes[].tax.taxValue` | object or null | no |  |
| `checkItem.taxes[].tax.taxValue.type` | integer (int32) | no | Allowed values: `1`, `2`. |
| `checkItem.taxes[].tax.taxValue.rate` | number (double) | no |  |
| `checkItem.modifications` | array<object> or null | no |  |
| `checkItem.modifications[].id` | string (uuid) | no |  |
| `checkItem.modifications[].created` | string (date-time) | no |  |
| `checkItem.modifications[].modified` | string (date-time) | no |  |
| `checkItem.modifications[].itemId` | string (uuid) | no |  |
| `checkItem.modifications[].modification` | object or null | no | Restored 1.0 wire shape of Ancon.Wildcat.Shared ProductModification as it serializes in the production package (1.0.1200-alpha), where Cost and MaterialCost are Money objects. The current package flattened them to decimals, so the raw value object cannot be serialized directly anymore. Frozen - do not change. |
| `checkItem.modifications[].modification.addOnGroup` | object or null | no |  |
| `checkItem.modifications[].modification.addOnGroup.id` | string (uuid) | no |  |
| `checkItem.modifications[].modification.addOnGroup.name` | string or null | no |  |
| `checkItem.modifications[].modification.addOnGroup.localizedCustomerFacingNames` | object or null | no |  |
| `checkItem.modifications[].modification.addOnGroup.localizedCustomerFacingNames.translations` | map<string, string> or null | no |  |
| `checkItem.modifications[].modification.cost` | object or null | no |  |
| `checkItem.modifications[].modification.cost.amount` | number (double) | no |  |
| `checkItem.modifications[].modification.cost.currencyCode` | string or null | no |  |
| `checkItem.modifications[].modification.freeAmount` | object or null | no |  |
| `checkItem.modifications[].modification.freeAmount.value` | number (double) | no |  |
| `checkItem.modifications[].modification.ingredient` | object or null | no |  |
| `checkItem.modifications[].modification.ingredient.id` | string (uuid) | no |  |
| `checkItem.modifications[].modification.ingredient.name` | object or null | no |  |
| `checkItem.modifications[].modification.ingredient.name.value` | string or null | no |  |
| `checkItem.modifications[].modification.ingredient.localizedNames` | object or null | no |  |
| `checkItem.modifications[].modification.ingredient.localizedNames.translations` | map<string, string> or null | no |  |
| `checkItem.modifications[].modification.materialCost` | object or null | no |  |
| `checkItem.modifications[].modification.materialCost.amount` | number (double) | no |  |
| `checkItem.modifications[].modification.materialCost.currencyCode` | string or null | no |  |
| `checkItem.modifications[].modification.modification` | string or null | no |  |
| `checkItem.modifications[].modification.position` | object or null | no |  |
| `checkItem.modifications[].modification.position.position` | integer (int32) | no |  |
| `checkItem.modifications[].modification.quantity` | object or null | no |  |
| `checkItem.modifications[].modification.quantity.value` | number (double) | no |  |
| `checkItem.modifications[].modification.replacement` | object or null | no |  |
| `checkItem.modifications[].modification.replacement.id` | string (uuid) | no |  |
| `checkItem.modifications[].modification.replacement.name` | object or null | no |  |
| `checkItem.modifications[].modification.replacement.name.value` | string or null | no |  |
| `checkItem.modifications[].modification.replacement.localizedNames` | object or null | no |  |
| `checkItem.modifications[].modification.replacement.localizedNames.translations` | map<string, string> or null | no |  |
| `checkItem.checkItems` | array<object> or null | no |  |
| `checkItem.pricePresetId` | string (uuid) or null | no |  |
| `checkItem.isPrepaid` | boolean | no |  |
| `checkItem.usedAccountId` | string (uuid) or null | no |  |
| `checkItem.addOnProducts` | array<object> or null | no |  |
| `checkItem.addOnProducts[].id` | string (uuid) | no |  |
| `checkItem.addOnProducts[].created` | string (date-time) | no |  |
| `checkItem.addOnProducts[].modified` | string (date-time) | no |  |
| `checkItem.addOnProducts[].quantity` | object or null | no |  |
| `checkItem.addOnProducts[].quantity.value` | number (double) | no |  |
| `checkItem.addOnProducts[].unitQuantity` | object or null | no |  |
| `checkItem.addOnProducts[].unitQuantity.value` | number (double) | no |  |
| `checkItem.addOnProducts[].unit` | object or null | no |  |
| `checkItem.addOnProducts[].unit.name` | string or null | no |  |
| `checkItem.addOnProducts[].unit.type` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`. |
| `checkItem.addOnProducts[].pricePresetId` | string (uuid) or null | no |  |
| `checkItem.addOnProducts[].productPriceInclTax` | object or null | no |  |
| `checkItem.addOnProducts[].productPriceInclTax.unitPrice` | object or null | no |  |
| `checkItem.addOnProducts[].productPriceInclTax.unitPrice.amount` | number (double) | no |  |
| `checkItem.addOnProducts[].productPriceInclTax.unitPrice.currencyCode` | string or null | no |  |
| `checkItem.addOnProducts[].productPriceInclTax.additionalPrice` | object or null | no |  |
| `checkItem.addOnProducts[].productPriceInclTax.additionalPrice.amount` | number (double) | no |  |
| `checkItem.addOnProducts[].productPriceInclTax.additionalPrice.currencyCode` | string or null | no |  |
| `checkItem.addOnProducts[].productPriceExclTax` | object or null | no |  |
| `checkItem.addOnProducts[].productPriceExclTax.unitPrice` | object or null | no |  |
| `checkItem.addOnProducts[].productPriceExclTax.unitPrice.amount` | number (double) | no |  |
| `checkItem.addOnProducts[].productPriceExclTax.unitPrice.currencyCode` | string or null | no |  |
| `checkItem.addOnProducts[].productPriceExclTax.additionalPrice` | object or null | no |  |
| `checkItem.addOnProducts[].productPriceExclTax.additionalPrice.amount` | number (double) | no |  |
| `checkItem.addOnProducts[].productPriceExclTax.additionalPrice.currencyCode` | string or null | no |  |
| `checkItem.addOnProducts[].discount` | object or null | no |  |
| `checkItem.addOnProducts[].discount.value` | number (double) or null | no |  |
| `checkItem.addOnProducts[].discount.type` | integer (int32) or null | no | Allowed values: `0`, `1`. |
| `checkItem.addOnProducts[].status` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `4`, `8`, `16`, `32`. |
| `checkItem.addOnProducts[].productMaterialCostExclTax` | object or null | no |  |
| `checkItem.addOnProducts[].productMaterialCostExclTax.unitPrice` | object or null | no |  |
| `checkItem.addOnProducts[].productMaterialCostExclTax.unitPrice.amount` | number (double) | no |  |
| `checkItem.addOnProducts[].productMaterialCostExclTax.unitPrice.currencyCode` | string or null | no |  |
| `checkItem.addOnProducts[].productMaterialCostExclTax.additionalPrice` | object or null | no |  |
| `checkItem.addOnProducts[].productMaterialCostExclTax.additionalPrice.amount` | number (double) | no |  |
| `checkItem.addOnProducts[].productMaterialCostExclTax.additionalPrice.currencyCode` | string or null | no |  |
| `checkItem.addOnProducts[].product` | object or null | no | Restored 1.0 wire shape of Ancon.Wildcat.Shared OrderedProduct as it serializes in the production package (1.0.1200-alpha). The current package marks IsSystemProduct with [JsonIgnore], which would silently drop the field from the legacy payloads, so the raw value object cannot be serialized directly anymore. Frozen - do not change. |
| `checkItem.addOnProducts[].product.glassesPerBottle` | number (double) or null | no |  |
| `checkItem.addOnProducts[].product.hasVariants` | boolean | no |  |
| `checkItem.addOnProducts[].product.isSystemProduct` | boolean | no |  |
| `checkItem.addOnProducts[].product.localizedProductNames` | object or null | no |  |
| `checkItem.addOnProducts[].product.localizedProductNames.translations` | map<string, string> or null | no |  |
| `checkItem.addOnProducts[].product.localizedVariantNames` | object or null | no |  |
| `checkItem.addOnProducts[].product.localizedVariantNames.translations` | map<string, string> or null | no |  |
| `checkItem.addOnProducts[].product.position` | object or null | no |  |
| `checkItem.addOnProducts[].product.position.position` | integer (int32) | no |  |
| `checkItem.addOnProducts[].product.productGroupId` | string (uuid) | no |  |
| `checkItem.addOnProducts[].product.productGroupName` | string or null | no |  |
| `checkItem.addOnProducts[].product.productId` | string (uuid) | no |  |
| `checkItem.addOnProducts[].product.productName` | string or null | no |  |
| `checkItem.addOnProducts[].product.productNumber` | string or null | no |  |
| `checkItem.addOnProducts[].product.productType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`. |
| `checkItem.addOnProducts[].product.storageInfo` | object or null | no |  |
| `checkItem.addOnProducts[].product.storageInfo.temperature` | integer (int32) | no |  |
| `checkItem.addOnProducts[].product.storageInfo.size` | object or null | no |  |
| `checkItem.addOnProducts[].product.storageInfo.size.height` | integer (int32) | no |  |
| `checkItem.addOnProducts[].product.storageInfo.size.width` | integer (int32) | no |  |
| `checkItem.addOnProducts[].product.storageInfo.size.length` | integer (int32) | no |  |
| `checkItem.addOnProducts[].product.subProductId` | string (uuid) or null | no |  |
| `checkItem.addOnProducts[].product.subProductQuantity` | object or null | no |  |
| `checkItem.addOnProducts[].product.subProductQuantity.value` | number (double) | no |  |
| `checkItem.addOnProducts[].product.useBasePrice` | boolean | no |  |
| `checkItem.addOnProducts[].product.variantId` | string (uuid) | no |  |
| `checkItem.addOnProducts[].product.variantName` | string or null | no |  |
| `checkItem.addOnProducts[].product.variantNumber` | string or null | no |  |
| `checkItem.addOnProducts[].product.variantType` | integer (int32) | no | Allowed values: `0`, `1`, `2`, `3`, `4`, `5`, `6`, `7`. |
| `checkItem.addOnProducts[].discountInfo` | object or null | no |  |
| `checkItem.addOnProducts[].discountInfo.discountId` | string (uuid) or null | no |  |
| `checkItem.addOnProducts[].discountInfo.discountName` | string or null | no |  |
| `checkItem.addOnProducts[].addOnGroupId` | string (uuid) | no |  |
| `checkItem.addOnProducts[].addOnGroupName` | string or null | no |  |
| `checkItem.addOnProducts[].freeAmount` | object or null | no |  |
| `checkItem.addOnProducts[].freeAmount.value` | number (double) | no |  |
| `checkItem.addOnProducts[].position` | object or null | no |  |
| `checkItem.addOnProducts[].position.position` | integer (int32) | no |  |
| `checkItem.addOnProducts[].taxes` | array<object> or null | no |  |
| `checkItem.addOnProducts[].taxes[].id` | string (uuid) | no |  |
| `checkItem.addOnProducts[].taxes[].created` | string (date-time) | no |  |
| `checkItem.addOnProducts[].taxes[].modified` | string (date-time) | no |  |
| `checkItem.addOnProducts[].taxes[].itemId` | string (uuid) | no |  |
| `checkItem.addOnProducts[].taxes[].tax` | object or null | no |  |
| `checkItem.addOnProducts[].taxes[].tax.taxId` | string (uuid) | no |  |
| `checkItem.addOnProducts[].taxes[].tax.taxValue` | object or null | no |  |
| `checkItem.addOnProducts[].taxes[].tax.taxValue.type` | integer (int32) | no | Allowed values: `1`, `2`. |
| `checkItem.addOnProducts[].taxes[].tax.taxValue.rate` | number (double) | no |  |
| `checkItem.addOnProducts[].kitchenMessage` | string or null | no |  |
| `checkItem.addOnProducts[].addOnGroupLocalizedCustomerFacingNames` | object or null | no |  |
| `checkItem.addOnProducts[].addOnGroupLocalizedCustomerFacingNames.translations` | map<string, string> or null | no |  |
| `checkItem.attendeeId` | string (uuid) or null | no |  |
| `checkItem.autoAccept` | boolean | no |  |
| `checkItem.hasCourseSupport` | boolean | no |  |

#### Example (from schema)

```json
{
  "checkItem": {
    "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "created": "2026-01-15T12:00:00Z",
    "modified": "2026-01-15T12:00:00Z",
    "quantity": {
      "value": 0
    },
    "unitQuantity": {
      "value": 0
    },
    "unit": {
      "name": "string",
      "type": 0
    },
    "productPriceInclTax": {
      "unitPrice": {
        "amount": 0,
        "currencyCode": "string"
      },
      "additionalPrice": {
        "amount": 0,
        "currencyCode": "string"
      }
    },
    "productPriceExclTax": {
      "unitPrice": {
        "amount": 0,
        "currencyCode": "string"
      },
      "additionalPrice": {
        "amount": 0,
        "currencyCode": "string"
      }
    },
    "kitchenMessage": "string",
    "discount": {
      "value": 0,
      "type": 0
    },
    "checkPaymentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "paidAt": "2026-01-15T12:00:00Z",
    "checkId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "status": 0,
    "productMaterialCostExclTax": {
      "unitPrice": {
        "amount": 0,
        "currencyCode": "string"
      },
      "additionalPrice": {
        "amount": 0,
        "currencyCode": "string"
      }
    },
    "ticketedAt": "2026-01-15T12:00:00Z",
    "ticketedTenantUserId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "courseName": "string",
    "coursePosition": 0,
    "upsellGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "product": {
      "glassesPerBottle": 0,
      "hasVariants": true,
      "isSystemProduct": true,
      "localizedProductNames": {
        "translations": {}
      },
      "localizedVariantNames": {
        "translations": {}
      },
      "position": {
        "position": 0
      },
      "productGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "productGroupName": "string",
      "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "productName": "string",
      "productNumber": "string",
      "productType": 0,
      "storageInfo": {
        "temperature": 0,
        "size": {
          "height": 0,
          "width": 0,
          "length": 0
        }
      },
      "subProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "subProductQuantity": {
        "value": 0
      },
      "useBasePrice": true,
      "variantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "variantName": "string",
      "variantNumber": "string",
      "variantType": 0
    },
    "discountInfo": {
      "discountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "discountName": "string"
    },
    "parentItemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "taxes": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "created": "2026-01-15T12:00:00Z",
        "modified": "2026-01-15T12:00:00Z",
        "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "tax": {
          "taxId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "taxValue": {
            "type": 1,
            "rate": 0
          }
        }
      }
    ],
    "modifications": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "created": "2026-01-15T12:00:00Z",
        "modified": "2026-01-15T12:00:00Z",
        "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "modification": {
          "addOnGroup": {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "name": "string",
            "localizedCustomerFacingNames": {}
          },
          "cost": {
            "amount": 0,
            "currencyCode": "string"
          },
          "freeAmount": {
            "value": 0
          },
          "ingredient": {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "name": {},
            "localizedNames": {}
          },
          "materialCost": {
            "amount": 0,
            "currencyCode": "string"
          },
          "modification": "string",
          "position": {
            "position": 0
          },
          "quantity": {
            "value": 0
          },
          "replacement": {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "name": {},
            "localizedNames": {}
          }
        }
      }
    ],
    "checkItems": [
      {}
    ],
    "pricePresetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "isPrepaid": true,
    "usedAccountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "addOnProducts": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "created": "2026-01-15T12:00:00Z",
        "modified": "2026-01-15T12:00:00Z",
        "quantity": {
          "value": 0
        },
        "unitQuantity": {
          "value": 0
        },
        "unit": {
          "name": "string",
          "type": 0
        },
        "pricePresetId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "productPriceInclTax": {
          "unitPrice": {
            "amount": 0,
            "currencyCode": "string"
          },
          "additionalPrice": {
            "amount": 0,
            "currencyCode": "string"
          }
        },
        "productPriceExclTax": {
          "unitPrice": {
            "amount": 0,
            "currencyCode": "string"
          },
          "additionalPrice": {
            "amount": 0,
            "currencyCode": "string"
          }
        },
        "discount": {
          "value": 0,
          "type": 0
        },
        "status": 0,
        "productMaterialCostExclTax": {
          "unitPrice": {
            "amount": 0,
            "currencyCode": "string"
          },
          "additionalPrice": {
            "amount": 0,
            "currencyCode": "string"
          }
        },
        "product": {
          "glassesPerBottle": 0,
          "hasVariants": true,
          "isSystemProduct": true,
          "localizedProductNames": {
            "translations": {}
          },
          "localizedVariantNames": {
            "translations": {}
          },
          "position": {
            "position": 0
          },
          "productGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "productGroupName": "string",
          "productId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "productName": "string",
          "productNumber": "string",
          "productType": 0,
          "storageInfo": {
            "temperature": 0,
            "size": {}
          },
          "subProductId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "subProductQuantity": {
            "value": 0
          },
          "useBasePrice": true,
          "variantId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "variantName": "string",
          "variantNumber": "string",
          "variantType": 0
        },
        "discountInfo": {
          "discountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
          "discountName": "string"
        },
        "addOnGroupId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "addOnGroupName": "string",
        "freeAmount": {
          "value": 0
        },
        "position": {
          "position": 0
        },
        "taxes": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "created": "2026-01-15T12:00:00Z",
            "modified": "2026-01-15T12:00:00Z",
            "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "tax": {}
          }
        ],
        "kitchenMessage": "string",
        "addOnGroupLocalizedCustomerFacingNames": {
          "translations": {}
        }
      }
    ],
    "attendeeId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "autoAccept": true,
    "hasCourseSupport": true
  }
}
```

### 400 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string or null | no |  |
| `errorCode` | string (uuid) | no |  |
| `additionalData` | any or null | no |  |

#### Delivery request is not valid

```json
{
  "message": "Delivery information is not valid!",
  "errorCode": "41fcedd1-dfef-4d0d-a5b3-2e28da7dfc9a",
  "additionalData": null
}
```

### 401 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string or null | no |  |

#### Example (from schema)

```json
{
  "message": "string"
}
```

### 404 response (`application/json`)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `message` | string or null | no |  |
| `errorCode` | string (uuid) | no |  |

#### Example (from schema)

```json
{
  "message": "string",
  "errorCode": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
```

## Example request

```bash
curl -X POST "https://core-api.ancon.io/api/v1/Outlets/{outletId}/Checks/AddItem" \
  -H "Access-Token: $ANCON_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "item": {
    "variantId": "4dfb61eb-57d4-4579-a79a-6a70c9727617",
    "quantity": 1,
    "kitchenMessage": "Cut burger in half",
    "price": {
      "unitPrice": 0,
      "additionalPrice": 0
    },
    "upsellGroupId": "f7bdc327-bd9c-41f9-9267-3839028a1abc",
    "modifications": [
      {
        "modification": "Tomato",
        "ingredientId": "b3a18787-647a-4f57-bce5-92f049bb30ac",
        "addOnGroupId": "85e8077d-f236-42de-adc0-c3af09c5eb40",
        "replaceId": "f0d0d53e-f405-4d24-a6f5-b07322b9710d",
        "description": "Add tomato",
        "quantity": 1,
        "freeAmount": 0
      }
    ],
    "tag": "Lunch special",
    "subProductSpecification": null
  },
  "courseId": "7667f9b1-760b-4601-8b5a-6b23009ca5d6",
  "checkId": null,
  "check": {
    "orderFormat": 1,
    "salesLocationType": 2,
    "salesLocationId": "106b674d-4bf3-4fd5-836e-aaf47137bb70",
    "guestCount": null,
    "collectionTicketId": null,
    "externalTableId": "External id"
  },
  "isPrepaid": false
}'
```
