> ## Documentation Index
> Fetch the complete documentation index at: https://www.zinc.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Case

> Add a message to an existing case

<Info>
  Cases are for **Zinc Managed Account (ZMA) orders only**. Self-managed account orders should handle issues directly with the retailer.
</Info>

Add a message to an existing case to provide updates or additional information.

<Warning>
  Do not include the `reason` field when updating a case - send only the `message`.
</Warning>

<Tip>
  Check the case status regularly using the [Retrieve Case](/v1/api-reference/cases/retrieve) endpoint for updates from Zinc support.
</Tip>


## OpenAPI

````yaml POST /v1/orders/{order_id}/case
openapi: 3.0.0
info:
  title: Zinc API
  version: 1.0.0
  description: API for placing orders and retrieving product data from top retailers.
servers:
  - url: https://api.zinc.io
    description: Production server
security:
  - basicAuth: []
paths:
  /v1/orders/{order_id}/case:
    post:
      summary: Create or Update Case
      description: >-
        Open a new case or add a message to an existing case for a Managed
        Account order
      parameters:
        - name: order_id
          in: path
          required: true
          schema:
            type: string
          description: The order ID to create or update a case for
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CaseRequest'
      responses:
        '200':
          description: Case created or updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CaseResponse'
components:
  schemas:
    CaseRequest:
      type: object
      properties:
        reason:
          type: string
          description: The reason for opening a case (required when opening a new case)
          enum:
            - return.request_label
            - nondelivery.not_delivered
            - nondelivery.damaged
            - nondelivery.empty_box
            - tracking.request_update
            - cancel.forced_cancellation
            - other
        message:
          type: string
          description: Message content for the case
      required:
        - message
    CaseResponse:
      type: object
      properties:
        state:
          type: string
          description: Current state of the case
          enum:
            - open
            - closed
          nullable: true
        messages:
          type: array
          description: Array of case messages and updates
          items:
            type: object
            properties:
              type:
                type: string
                description: Type of case message
                enum:
                  - case.opened.return.request_label
                  - case.opened.nondelivery.not_delivered
                  - case.opened.nondelivery.damaged
                  - case.opened.nondelivery.empty_box
                  - case.opened.tracking.request_update
                  - case.opened.cancel.forced_cancellation
                  - case.opened.other
                  - case.freetext
                  - case.return.label_generated
                  - case.return.status_updated
                  - case.refund.partial
                  - case.refund.full
                  - case.closed
              message:
                type: string
                description: Message content
              timestamp:
                type: string
                format: date-time
                description: When the message was created
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Use your client token as the username. Leave the password blank.

````