> ## Documentation Index
> Fetch the complete documentation index at: https://zeply.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update ticket status

> Open or close an active conversation ticket in the organization's inbox

Update the state of an existing inbox ticket to either `open` (reopening a previously resolved thread) or `closed` (archiving a completed customer issue).

***

### Authentication

This endpoint requires Bearer token authentication.

```http theme={null}
Authorization: Bearer <token>
```

| Header          | Type     | Required | Description                                     | Format           |
| :-------------- | :------- | :------- | :---------------------------------------------- | :--------------- |
| `Authorization` | `string` | **Yes**  | Scoped organization API key or Bearer JWT token | `Bearer <token>` |

***

### Path Parameters

<ParamField header="Authorization" type="string" required>
  Bearer token for authentication. Format: `Bearer <token>`.
</ParamField>

<ParamField path="inbox_id" type="string" required>
  Unique UUID identifier of the inbox ticket.
</ParamField>

***

### Request Body

<ParamField body="status" type="string" required>
  The target status to assign to the ticket. Allowed values: `open`, `closed`.
</ParamField>

***

### Response Fields

<ResponseField name="id" type="string">
  UUID of the inbox ticket.
</ResponseField>

<ResponseField name="organization_id" type="string">
  UUID of the owning organization.
</ResponseField>

<ResponseField name="contact_id" type="string">
  UUID of the associated contact.
</ResponseField>

<ResponseField name="whatsapp_phone_number_id" type="string">
  UUID of the assigned WhatsApp phone number, or `null`.
</ResponseField>

<ResponseField name="status" type="string">
  Updated ticket status (`open` or `closed`).
</ResponseField>

<ResponseField name="created_at" type="string">
  ISO 8601 creation timestamp.
</ResponseField>

<ResponseField name="updated_at" type="string">
  ISO 8601 update timestamp reflecting status modification.
</ResponseField>

***

<RequestExample>
  ```bash cURL theme={null}
  curl -X PATCH "https://api.sayvy.ai/api/v1/inbox/tickets/e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b" \
    -H "Authorization: Bearer <token>" \
    -H "Content-Type: application/json" \
    -d '{
      "status": "closed"
    }'
  ```

  ```python Python theme={null}
  import requests

  url = "https://api.sayvy.ai/api/v1/inbox/tickets/e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b"
  headers = {
      "Authorization": "Bearer <token>",
      "Content-Type": "application/json"
  }
  payload = {
      "status": "closed"
  }

  response = requests.patch(url, headers=headers, json=payload)
  print(response.status_code)
  print(response.json())
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch("https://api.sayvy.ai/api/v1/inbox/tickets/e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b", {
    method: "PATCH",
    headers: {
      "Authorization": "Bearer <token>",
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      status: "closed"
    })
  });

  const data = await response.json();
  console.log(data);
  ```
</RequestExample>

<ResponseExample>
  ```json 200 OK theme={null}
  {
    "id": "e4f3a2b1-9c8d-7e6f-5a4b-3c2d1e0f9a8b",
    "organization_id": "e0b973dc-13a8-4c9f-861a-03e5b4b1a8d9",
    "contact_id": "8a7c2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
    "whatsapp_phone_number_id": "11a22b33-44c5-5d6e-7f8a-9b0c1d2e3f4a",
    "status": "closed",
    "created_at": "2026-09-07T15:30:00Z",
    "updated_at": "2026-09-07T16:00:00Z"
  }
  ```

  ```json 422 Unprocessable Entity theme={null}
  {
    "detail": [
      {
        "loc": ["body", "status"],
        "msg": "Value error, Status must be either 'open' or 'closed'",
        "type": "value_error"
      }
    ]
  }
  ```
</ResponseExample>
