인증
Bearer 토큰으로 API 키를 전송하세요. 키는 반드시 tickets.reply 권한을 가지고 있어야 하며, 권한이 없는 키는 404가 아닌 403으로 거부됩니다.
조직 ID가 들어가는 위치
이 엔드포인트는 JSON 본문의 필드로 org_id을(를) 받습니다.
조직 ID는 대시보드의 API 키 화면에서 키 바로 옆에 있습니다. 이는 실행하는 모든 호출에서 동일한 ID입니다.
무료 체험하기
대괄호 안에 있는 모든 내용을 사용자 지정 값으로 바꾸고, 키 플레이스홀더는 대시보드의 키로 바꾸세요.
curl -X POST https://api.zinndigital.com/v1/tickets \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ "subject": <string>, "body": <string> }'로그인하셨나요? 대시보드의 API 콘솔이 실제 조직 ID와 본인의 키를 자동으로 채우고 라이브 API를 대상으로 요청을 실행하므로 실제 응답을 확인할 수 있습니다. API 콘솔에서 이 엔드포인트를 여세요
상세 정보
Opens a ticket in `open` with the supplied `body` as its first message, and publishes `ticket.created` (which sends the customer a localized acknowledgement via the notification consumer). `channel` is server-decided — it is not accepted from the client. A supplied `site_id` or `invoice_id` must belong to the same org or the request is a `404`. Requires `tickets.reply`.
요청 본문
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
subject | string | 예 | — |
body | string | 예 | The customer's description — becomes the first message in the thread. |
priority | TicketPriority | 아니요 | How urgent the ticket is. The customer may propose one; staff decide. |
site_id | string | 아니요 | The site this is about. Must belong to the same org or the request is a 404. |
invoice_id | string | 아니요 | The invoice this is about. Must belong to the same org or the request is a 404. |
org_id | string | 아니요 | The organization to open it in. Required only when the caller holds `tickets.reply` in more than one org. |
on_behalf_of_org_id | string | 아니요 | The client org this is about — a reseller escalating to Zinn® on their client's behalf. Must be a **descendant** of the ticket's org or the request is a `404`; your client never… |
응답
| 이름 | 유형 | 필수 | 설명 |
|---|---|---|---|
id | Uuid | 예 | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
org_id | Uuid | 예 | UUIDv7 identifier — sortable by creation time (docs/02 §8). |
subject | string | 예 | — |
status | TicketStatus | 예 | Where a ticket sits in its lifecycle. `open` = waiting on us; `pending` = waiting on the customer; `solved` = we believe it is resolved and a customer reply reopens it; `closed`… |
priority | TicketPriority | 예 | How urgent the ticket is. The customer may propose one; staff decide. |
channel | string | 예 | How the ticket reached us — `dashboard`, `api` or `staff`. Server-decided; an open string so a future channel is additive on both sides. |
site_id | object | 아니요 | — |
invoice_id | object | 아니요 | — |
on_behalf_of_org_id | object | 아니요 | The **client org** a reseller opened this ticket about. Null on every ordinary ticket. ⛔ Validated as a descendant of the ticket's own org and `404`d otherwise, so it can never… |
assignee_name | object | 예 | The owning agent's display name (first name), or null while unassigned. The customer sees a **name** so they know a person owns their ticket; the agent's id and email are staff-… |
first_response_at | object | 아니요 | — |
resolved_at | object | 아니요 | — |
closed_at | object | 아니요 | — |
last_message_at | object | 아니요 | — |
reopened_count | integer | 예 | — |
message_count | integer | 예 | Customer-visible messages in the thread — internal notes are not counted. |
created_at | string | 예 | — |
updated_at | string | 예 | — |
messages | TicketMessage[] | 예 | The customer-visible thread in chronological order. |
이 엔드포인트가 반환할 수 있는 오류
401 · 403 · 404 · 422 · 429