# NewSalePriceInput

input type

Create-input for a SalePrice. The tenant (org group) is derived SERVER-SIDE from the principal; inventoryItemId (rides the header) is tenant-scoped server-side and must be NON-doomed; startAt is optional (absent = effective NOW, server-stamped; explicit values must be >= the server now — no past starts) and must precede endAt; the price currency must match the schedule fixed currency (the first record fixes it).

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the per-type default applies — the window coordinate `<currency> <amount> from <startAt>`; when supplied it must be non-blank. |
| `inventoryItemId` | [ID](/types/#scalars) `ID!` | yes | The InventoryItem id. |
| `startAt` | [String](/types/#scalars) | no | The window start (INCLUSIVE; UTC ISO-8601). Optional — absent = effective NOW (server-stamped); explicit values must be >= the server now. |
| `endAt` | [String](/types/#scalars) `String!` | yes | The window end (EXCLUSIVE; UTC ISO-8601). ALWAYS required; must be strictly after startAt. |
| `price` | [MoneyEntryInput](/types/MoneyEntryInput/) `MoneyEntryInput!` | yes | The selling price — the currency must match the schedule fixed currency. |

## Used by

- [createSalePrice](/reference/sale-price/createSalePrice/)
