Skip to main content
GET
Get Case
Retrieve a support case with its whole thread, oldest message first. Any teammate who can see the order can read the case. A case that doesn’t exist or belongs to another team returns 404 with code: "not_found".

Messages

Each message’s author says who wrote it: Ordinary back-and-forth doesn’t add system lines. A reply already shows that the case moved to the other side. system lines mark holds, closes, reopens and credits.

Credits

credited_amount is the total wallet credit issued from this case, in cents, net of any reversals. Each credit or reversal also adds a system message and sends a case.credited webhook.
Each attachment’s url is a signed link that expires after 7 days. Fetch the case again for fresh links. url is null if signing failed, and the next fetch retries it.

Authorizations

Authorization
string
header
required

Zinc API key (Bearer zn_...)

Headers

authorization
string | null

Path Parameters

case_id
string<uuid>
required

Response

Successful Response

id
string<uuid>
required
order_id
string<uuid>
required
reason
enum<string>
required

What a support case is about. Routing and reporting only — no reason triggers automation.

Available options:
not_received,
missing_item,
late,
damaged_or_wrong_item,
cancellation,
address_change,
return,
billing,
other
status
enum<string>
required

open — waiting on Zinc. waiting_on_customer — Zinc replied and is waiting on you. on_hold — waiting on the retailer or carrier. closed — resolved; replying reopens it within the case window.

Available options:
open,
waiting_on_customer,
on_hold,
closed
created_at
string<date-time>
required
updated_at
string<date-time>
required
return_request_id
string<uuid> | null
credited_amount
integer
default:0

Total wallet credit issued from this case, in cents (net of reversals).

opened_by_name
string | null

Who opened the case: a teammate's name, or Zinc support when Zinc reached out. (The case.created webhook's opened_by is the side instead: customer or zinc.)

closed_at
string<date-time> | null
messages
CaseMessageResponse · object[]