support

POST /v1/tickets

Open a support ticket.

모든 support 엔드포인트

인증

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`.

요청 본문

이름유형필수설명
subjectstring
bodystringThe customer's description — becomes the first message in the thread.
priorityTicketPriority아니요How urgent the ticket is. The customer may propose one; staff decide.
site_idstring아니요The site this is about. Must belong to the same org or the request is a 404.
invoice_idstring아니요The invoice this is about. Must belong to the same org or the request is a 404.
org_idstring아니요The organization to open it in. Required only when the caller holds `tickets.reply` in more than one org.
on_behalf_of_org_idstring아니요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…

응답

이름유형필수설명
idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
org_idUuidUUIDv7 identifier — sortable by creation time (docs/02 §8).
subjectstring
statusTicketStatusWhere 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`…
priorityTicketPriorityHow urgent the ticket is. The customer may propose one; staff decide.
channelstringHow the ticket reached us — `dashboard`, `api` or `staff`. Server-decided; an open string so a future channel is additive on both sides.
site_idobject아니요
invoice_idobject아니요
on_behalf_of_org_idobject아니요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_nameobjectThe 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_atobject아니요
resolved_atobject아니요
closed_atobject아니요
last_message_atobject아니요
reopened_countinteger
message_countintegerCustomer-visible messages in the thread — internal notes are not counted.
created_atstring
updated_atstring
messagesTicketMessage[]The customer-visible thread in chronological order.

이 엔드포인트가 반환할 수 있는 오류

401 · 403 · 404 · 422 · 429