# NewCsCaseInput

input type

Create-input for a CsCase. The tenant is derived SERVER-SIDE; ⚠ the caption IS the case's subject line and is REQUIRED at the boundary (the CPG divergence — an unnamed case is meaningless; omission refuses VALIDATION/INVALID). Refs validate in-tenant + non-doomed; linkedFromCaseId validates CLOSED-only (ruling); assignedTo validates in-tenant + ACTIVE. The optional initialMessage appends in the SAME transaction. The consumer lane is openMyCase — NOT this shape.

## Fields

| Field | Type | Required | Notes |
| --- | --- | --- | --- |
| `caption` | [String](/types/#scalars) | no | Optional: when omitted the per-type default applies — NONE — the CPG divergence: the caption IS the subject line, and an omitted caption refuses VALIDATION/INVALID at the boundary instead of defaulting; when supplied it must be non-blank. |
| `caseType` | [String](/types/#scalars) `String!` | yes | return_request \| refund_inquiry \| product_issue \| complaint \| general_inquiry \| warranty_claim \| shipping_issue \| order_change \| other — the canned registry validates. |
| `priority` | [String](/types/#scalars) | no | Defaults 'normal' when omitted. |
| `consumerId` | [ID](/types/#scalars) | no | The registered Consumer this case is FOR (omit = a guest case). ⚠ IMMUTABLE at birth (ruling) — a consumer-ref’d case mints its write-once CASEBOOK index row in the create transaction. |
| `organizationId` | [ID](/types/#scalars) | no | No further notes. |
| `orderId` | [ID](/types/#scalars) | no | No further notes. |
| `appointmentId` | [ID](/types/#scalars) | no | No further notes. |
| `returnId` | [ID](/types/#scalars) | no | No further notes. |
| `fulfillmentId` | [ID](/types/#scalars) | no | No further notes. |
| `paymentId` | [ID](/types/#scalars) | no | No further notes. |
| `linkedFromCaseId` | [ID](/types/#scalars) | no | The CLOSED case this one reopens (ruling — a non-closed target refuses CONFLICT/REF_STATE). IMMUTABLE. |
| `assignedTo` | [ID](/types/#scalars) | no | In-tenant + ACTIVE User at set. |
| `slaDueAt` | [String](/types/#scalars) | no | ISO-8601 instant — manual. |
| `initialMessage` | [CsCaseInitialMessageInput](/types/CsCaseInitialMessageInput/) | no | Optional opening message — appends in the SAME transaction (the consumer lane REQUIRES its body instead — ruling). |

## Used by

- [createCsCase](/reference/cs-case/createCsCase/)
