Skip to main content
POST
Post Case Message
Reply on a support case. Like Create Case, this is a multipart form:
  • body: your message, up to 5,000 characters. It can be empty if you attach at least one file.
  • files (optional): up to 5 attachments, 25 MB each, as JPEG, PNG, WebP, HEIC or PDF.
The response is the whole case with your message added. See Get Case.

Status after a reply

A reply moves the case to open, which means it’s back with Zinc support. Replying on a closed case reopens it, and the thread gets a Case reopened line. That’s allowed only inside the order’s case window (see When a case can be opened):
  • Past the window, the reply fails with 400, code: "case_not_allowed" and details.reason: "window_closed". Nothing is posted.
  • If another case on the same order has been opened since this one closed, the reply fails with 409. An order can have only one open case, and details.case_id names the open one. Reply there instead.

Other errors

Authorizations

Authorization
string
header
required

Zinc API key (Bearer zn_...)

Headers

authorization
string | null

Path Parameters

case_id
string<uuid>
required

Body

multipart/form-data
body
string
default:""
files
file[]

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[]