API Reference

Tickets

Customer tickets and ticket types. These are not platform support tickets.

Explicit scopes Every tickets route requires an explicit scope. tickets:read for lists and show. tickets:write for create, update, close, reopen, and CSAT. A legacy null credential is denied. The module also requires FEATURE_TENANT_TICKETS_V1.

Ticket types

GET /ticket-types tickets:read https://app.washeej.com/v1/ticket-types

List customer ticket types. Explicit scope tickets:read is required. Legacy null credentials are denied.

cURL
curl -H "client-id: YOUR_CLIENT_ID" \
     -H "client-secret: YOUR_CLIENT_SECRET" \
     https://app.washeej.com/v1/ticket-types
Notes
  • Requires FEATURE_TENANT_TICKETS_V1.
  • Not granted by a legacy null scope catalog. The credential must list tickets:read.
POST /ticket-types tickets:write https://app.washeej.com/v1/ticket-types

Create a customer ticket type. Explicit scope tickets:write is required.

cURL
curl -X POST https://app.washeej.com/v1/ticket-types \
  -H "client-id: YOUR_CLIENT_ID" \
  -H "client-secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"key":"case","name":"Case"}'

Tickets

List filters match Legacy: status, type / type_id, assignee / assigned_agent_id, search, and per_page.

Sanctum GET /api/support/tickets is platform support. It filters status, search, and per_page. type and assignee are accepted there and match no row.

GET /tickets tickets:read https://app.washeej.com/v1/tickets

List customer tickets. Filters: status, type or type_id, assignee or assigned_agent_id, search, per_page.

Parameter Type Required Description
status string optional open, in_progress, waiting_customer, resolved, closed, reopened.
type_id integer optional Ticket type id. Alias: type when numeric.
assignee integer optional Assigned employee id. Alias of assigned_agent_id.
search string optional Number, subject, or contact.
per_page integer optional Page size, 1-100. Default 25.
cURL
curl -H "client-id: YOUR_CLIENT_ID" \
     -H "client-secret: YOUR_CLIENT_SECRET" \
     "https://app.washeej.com/v1/tickets?status=open&per_page=25"
Notes
  • Explicit scope tickets:read. This is customer tickets, not platform support.
  • Sanctum GET /api/support/tickets is platform support. It filters status, search, and per_page. type and assignee are accepted there and match no row, because support_tickets has no type or assignee column.
GET /tickets/{number} tickets:read https://app.washeej.com/v1/tickets/{number}

Show one customer ticket by number. Explicit scope tickets:read.

cURL
curl -H "client-id: YOUR_CLIENT_ID" \
     -H "client-secret: YOUR_CLIENT_SECRET" \
     https://app.washeej.com/v1/tickets/TKT-1
POST /tickets tickets:write https://app.washeej.com/v1/tickets

Create a customer ticket. Explicit scope tickets:write.

cURL
curl -X POST https://app.washeej.com/v1/tickets \
  -H "client-id: YOUR_CLIENT_ID" \
  -H "client-secret: YOUR_CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -d '{"type_key":"case","subject":"Hello"}'