---
title: "POST /Inventory/batch"
method: POST
path: "/Inventory/batch"
tags: ["Inventory"]
---

# POST /Inventory/batch

`POST /Inventory/batch`

## Request body

- BatchImportRequestDto
  - `items` BatchImportItemDto[]
    - `name` string
    - `invoiceName` string, nullable
    - `category` string, nullable
    - `unitCost` union
      - number, double
      - string, double
    - `unitPrice` union
      - number, double
      - string, double
    - `sku` string, nullable
    - `description` string, nullable
    - `drugForm` string, nullable
    - `strength` string, nullable
    - `ndc` string, nullable
    - `deaSchedule` string, nullable
    - `trackLots` boolean, nullable
    - `lot` BatchImportLotDto — DTO for unbilled patient items (dispensed medications not yet on an invoice)
      - `quantity` union
        - number, double
        - string, double
      - `locationId` string, nullable
      - `lotNumber` string, nullable
      - `expirationDate` string, date-time, nullable
      - `manufacturer` string, nullable
      - `unitCost` union
        - number, double
        - string, double
      - `containerId` string, nullable — Physical container identifier. Required when importing stock for a controlled substance — the DEA Received entry lands on a per-container ledger.
  - `skipDuplicates` boolean
  - `addStockToExisting` boolean — When true, a row whose name matches an existing item adds its quantity as a new lot on that item (instead of being skipped). Only stock is added; the existing item's own fields are not modified.
  - `defaultCategory` string, nullable
  - `defaultLocationId` string, nullable

## Response `201`

Created

- BatchImportResultDto
  - `created` union
    - integer
    - string, int32
  - `stocked` union
    - integer
    - string, int32
  - `skipped` union
    - integer
    - string, int32
  - `failed` union
    - integer
    - string, int32
  - `items` BatchImportItemResultDto[]
    - `rowIndex` union
      - integer
      - string, int32
    - `name` string
    - `status` string
    - `itemId` string, nullable
    - `error` string, nullable

## Other responses

- `400` — Bad Request

---

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