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

# POST /Inventory/batch

`POST /Inventory/batch`

## Request

- Base URL: `https://api.clinicos.vet/backend/business`
- URL: `https://api.clinicos.vet/backend/business/Inventory/batch`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/docs/Inventory/batch/post.ts> (a function with typed inputs; its response is checked against the schema)

## 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.dev/clinicos/apis/pawthosx-business-api-v1.md) - [All operations](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/llms.txt) - [OpenAPI document](https://skmtc.dev/clinicos/apis/pawthosx-business-api-v1/revisions/099cf36186e0?raw)
