Skip to content

Support

Prefix: /v1/support on the Public API.

Customers open tickets from the app. Categories are public; ticket CRUD requires a customer JWT (Authorization: Bearer).

Endpoints

MethodPathAuthPurpose
GET/v1/support/categoriesPublicTaxonomy for the compose form
GET/v1/support/ticketsCustomerList my tickets (paginated; optional status)
POST/v1/support/ticketsCustomerOpen a ticket
GET/v1/support/tickets/:ticketIdCustomerThread the customer owns
POST/v1/support/tickets/:ticketId/messagesCustomerReply
PATCH/v1/support/tickets/:ticketIdCustomer{ "action": "confirm" | "reopen" }

Categories

GET /v1/support/categories returns the allowed category values and their subcategory lists. Use those strings on create; do not invent values.

categoryTypical use
orderMissing / wrong items, quantity
deliveryLate, driver, wrong address, failed visit
paymentCharge disputes
walletBalance, credit, refund to wallet
accountLogin, profile, deletion
productDamaged, expired, quality
subscriptionPro billing / access
otherAnything else

Some categories require an orderId and/or productIds in the compose rules returned with the taxonomy.

Create

Body

FieldRequiredNotes
subjectyesMax 200
categoryyesFrom taxonomy
subcategorynoFrom that category’s list
orderIdnoLink an order the customer owns
productIdsnoProduct ids
bodyyesMax 4000
attachmentUrlsnoAlready-uploaded media URLs
http
POST /v1/support/tickets
Content-Type: application/json
Authorization: Bearer <accessToken>

{
  "subject": "Missing milk",
  "category": "order",
  "subcategory": "missing_items",
  "orderId": "665f0c0c0c0c0c0c0c0c0c10",
  "body": "One item was not in the bag."
}

results includes ticketId and message.

Reply and update

Reply body: message text plus optional attachmentUrls.

PATCH action:

actionWhen
confirmCustomer accepts the resolution
reopenCustomer wants the ticket open again

Staff reply from the dashboard. Customers also receive in-app notifications (support.ticket_created, support.replied, support.resolved).

Assistant threads can create a ticket via handoff.