# Add an item to a screen

**POST /items/integration/v2/business-locations/{businessLocationId}/items/{itemId}/screens/{screenId}**

Adds an existing item to a v2 menu screen, using the item's current button styling and appending in backend order.
Returns `201` when the item was added and `204` when it was already there, so replay is safe.



## Servers
- Demo URL: https://api.trial.lsk.lightspeed.app (Demo URL)
- Production URL: https://api.lsk.lightspeed.app (Production URL)


## Authentication methods
- O auth2


## Parameters

### Path parameters

- **businessLocationId** (integer(int64))
  The unique identifier for the business location.

- **itemId** (integer(int64))
  Item id

- **screenId** (integer(int64))
  The unique identifier for the screen.




## Responses
### 201
Item added to the screen.

### 204
Item already present on the screen; nothing was written.

### 400
The request was rejected, or the item or the screen cannot be used for this placement.

A non-positive `screenId` fails schema validation and returns `message` `"Constraint violation"` with `screenId` listed in `apiSubExceptions`, and no `errorCode`. Every other rejection carries an `errorCode` instead, and an empty `apiSubExceptions`. Possible `errorCode` values:
* `ikentoo.error.item_is_archived` — the item is archived; no placement is possible.
* `screens_not_found` — no v2 screen with this id is reachable from this business location. Only v2
  menus are supported, so a v1 screen is reported the same way.

* `ikentoo.error.item_is_linked_to_shared_menu` — the request comes from a regular location and the
  menu does not allow local edits.

* `ikentoo.error.item-sharing-incompatible-with-menu-sharing` — the request comes from the main
  location, where the button is synced to the whole menu, and the item is not active in every location
  the menu is shared with. Placing from a regular location creates a local override instead and is not
  subject to this rule.


#### Body: application/json (object)
- **status** (string)
  The HTTP status, as its Spring `HttpStatus` name.

- **timestamp** (string(date-time))

- **message** (string)
  A human-readable summary of the failure.

- **errorCode** (string)
  A stable, machine-readable code identifying the failure.

- **details** (string)
  Context identifying what the failure applies to.

- **apiSubExceptions** (array[object])
  Per-field failures. Always present, and empty when the failure is not field-scoped.


### 404
No item with this id exists at this business location.

#### Body: application/json (object)
- **status** (string)
  The HTTP status, as its Spring `HttpStatus` name.

- **timestamp** (string(date-time))

- **message** (string)
  A human-readable summary of the failure.

- **errorCode** (string)
  A stable, machine-readable code identifying the failure.

- **details** (string)
  Context identifying what the failure applies to.

- **apiSubExceptions** (array[object])
  Per-field failures. Always present, and empty when the failure is not field-scoped.



[Powered by Bump.sh](https://bump.sh)
