---
title: "POST /Invoices/{id}/items"
method: POST
path: "/Invoices/{id}/items"
tags: ["Invoices"]
---

# POST /Invoices/{id}/items

`POST /Invoices/{id}/items`

## Path parameters

- `id` string, required

## Request body

- CreateInvoiceLineItemDto
  - `id` string, nullable — Existing line-item id, sent on update so the line is reconciled in place (id + any linked inventory transactions preserved) instead of being dropped and recreated. Null/empty for a brand-new line.
  - `serviceCatalogItemId` string, nullable
  - `retailItemId` string, nullable
  - `inventoryItemId` string, nullable
  - `billableItemId` string, nullable — Source BillableItem ("Charge") when this line was added from the charge catalog.
  - `inventoryTransactionId` string, nullable
  - `code` string, nullable
  - `description` string
  - `unitPrice` union
    - number, double
    - string, double
  - `quantity` union
    - number, double
    - string, double
  - `discount` union
    - number, double
    - string, double
  - `dispenseFee` union
    - number, double
    - string, double
  - `isTaxable` boolean
  - `vatCategory` string, nullable
  - `providerId` string, nullable
  - `notes` string, nullable
  - `displayOrder` union
    - integer
    - string, int32
  - `groupCodeId` string, nullable
  - `groupCodeName` string, nullable

## Response `200`

OK

- InvoiceLineItemDto
  - `id` string
  - `invoiceId` string
  - `serviceCatalogItemId` string, nullable
  - `retailItemId` string, nullable
  - `retailItem` RetailItemSummaryDto
    - `id` string
    - `sku` string
    - `barcode` string, nullable
    - `name` string
    - `invoiceName` string, nullable
    - `category` string
    - `unitPrice` union
      - number, double
      - string, double
    - `isTaxable` boolean
    - `isActive` boolean
    - `quantityOnHand` union
      - number, double
      - string, double
    - `isLowStock` boolean
    - `vendorId` string, nullable
    - `vendorName` string, nullable
  - `inventoryItemId` string, nullable
  - `billableItemId` string, nullable — Source BillableItem ("Charge") when this line was added from the charge catalog.
  - `billableItemName` string, nullable — Display name of the source BillableItem (snapshot, response-only).
  - `isFulfilled` boolean — True when a BillableItem charge line has been fulfilled — its inventory components dispensed (derived from linked transactions, response-only).
  - `inventoryTransactionId` string, nullable
  - `unitCost` union
    - number, double
    - string, double
  - `code` string, nullable
  - `description` string
  - `unitPrice` union
    - number, double
    - string, double
  - `quantity` union
    - number, double
    - string, double
  - `discount` union
    - number, double
    - string, double
  - `appliedDiscountPolicyId` string, nullable
  - `appliedDiscountCode` string, nullable
  - `ruleDiscount` union — Discount produced by the price rule engine (separate from the manual `Discount`).
    - number, double
    - string, double
  - `dispenseFee` union
    - number, double
    - string, double
  - `lineTotal` union
    - number, double
    - string, double
  - `isTaxable` boolean
  - `vatCategory` string, nullable
  - `lineTaxAmount` union
    - number, double
    - string, double
  - `providerId` string, nullable
  - `provider` UserSummaryDto
    - `id` string
    - `email` string
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `displayName` string, nullable
    - `type` string
    - `roleId` string, nullable
    - `roleName` string, nullable
  - `notes` string, nullable
  - `displayOrder` union
    - integer
    - string, int32
  - `groupCodeId` string, nullable — Kit this line came from, when emitted via GroupCode expansion.
  - `groupCodeName` string, nullable — Snapshot of the kit's display name at time of add.

---

[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)
