---
title: "Update products in bulk"
method: PATCH
path: "/products/{companyId}"
tags: ["Products"]
---

# Update products in bulk

`PATCH /products/{companyId}`

Updates the accounting code and/or additional info of several products, identified by `id`. Entries whose `id` does not match any product are silently skipped — the call returns `200` for the whole batch. If the same `id` appears more than once, all entries are applied in order and the last one determines the final values.

## Path parameters

- `companyId` string, required

## Request body

- BulkPatchProductsRequestSchema
  - `data` AuxBulkPatchProductsRequestSchema[], required — Products to update, identified by `id`.
    - `additionalInfo` object — Free-form key/value metadata to attach to the product. Replaces the existing value entirely.
    - `accountingCode` string, nullable — Accounting account code to link the product to.
    - `id` string, required — Embat product ID

## Response `200`

Successful Response

- BulkModifyProductsResponseSchema
  - `data` ModifyProductsResponseSchema[], required — Result of the bulk operation, one entry per product.
    - `id` string, required — Embat product ID

## Other responses

- `401` — Unauthorized. The bearer token is missing, invalid or expired.
- `404` — Not found. The requested resource or `companyId` does not exist.
- `422` — Validation Error

---

[API](https://skmtc.net/embat/apis/embat-api.md) · [All operations](https://skmtc.net/embat/apis/embat-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/embat/embat-api/versions/36ca48bf4489/schema)
