Skip to content

Issue Tracker - Tickets

GET    /api/issue-tracker-tickets
GET    /api/issue-tracker-tickets/{id}
POST   /api/issue-tracker-tickets
PUT    /api/issue-tracker-tickets/{id}
DELETE /api/issue-tracker-tickets/{id}
GET    /api/issue-tracker-tickets/{id}/notes

Required privilege: Issue Tracker / View (read) ยท Issue Tracker / Edit (write)

The Issue Tracker allows users to log, track, and resolve supply chain issues and exceptions directly within Knosc.


Ticket Object

{
  "id": "TKT-001",
  "Title": "Delayed shipment from Acme",
  "Description": "PO-2024-001 ETA pushed by 5 days.",
  "Status": "Open",
  "Priority": "High",
  "Category": "Procurement",
  "Assignee Email": "jane.doe@acme.com",
  "Reporter Email": "john.smith@acme.com",
  "Created At": "2024-03-10T09:00:00Z",
  "Updated At": "2024-03-10T09:00:00Z",
  "Due Date": "2024-03-20",
  "Linked PO Id": 42,
  "Linked PO Number": "PO-2024-001",
  "Notes": [],
  "Subscribers": ["jane.doe@acme.com"]
}
Field Type Description
id string Unique ticket identifier (e.g., TKT-001)
Title string Ticket summary
Description string | null Detailed description
Status string Open, In Progress, Resolved, Closed
Priority string Low, Medium, High, Critical
Category string Issue category
Assignee Email string | null Assigned user
Due Date string | null Resolution target date (ISO 8601)
Linked PO Id integer | null Linked purchase order
Notes array Ticket notes - see Notes

GET - List Tickets

curl -b cookies.txt "https://acme.knosc.com/api/issue-tracker-tickets"

Supports filter, sort, and pagination. Filterable fields include: Status, Priority, Category, Assignee Email.


GET - Get Ticket

curl -b cookies.txt "https://acme.knosc.com/api/issue-tracker-tickets/TKT-001"

GET - Get Ticket Notes

GET /api/issue-tracker-tickets/{id}/notes

Returns all notes for a ticket.

curl -b cookies.txt "https://acme.knosc.com/api/issue-tracker-tickets/TKT-001/notes"

POST - Create Ticket

POST /api/issue-tracker-tickets HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: <csrf>

{
  "Title": "Delayed shipment from Acme",
  "Description": "PO-2024-001 ETA pushed by 5 days.",
  "Priority": "High",
  "Category": "Procurement",
  "Assignee Email": "jane.doe@acme.com",
  "Due Date": "2024-03-20",
  "Linked PO Id": 42
}
Field Type Required Description
Title string Yes Ticket summary
Description string No Detailed description
Priority string Yes Low, Medium, High, Critical
Category string No Issue category
Assignee Email string No User to assign
Due Date string No ISO 8601 date
Linked PO Id integer No Link to a purchase order

PUT - Update Ticket

PUT /api/issue-tracker-tickets/TKT-001 HTTP/1.1
Content-Type: application/json
X-XSRF-TOKEN: <csrf>

{
  "Status": "In Progress",
  "Assignee Email": "ops.team@acme.com"
}

DELETE - Delete Ticket

DELETE /api/issue-tracker-tickets/TKT-001 HTTP/1.1
X-XSRF-TOKEN: <csrf>

Code Example

csrf = session.cookies.get("csrf_access_token")

# Create a ticket
r = session.post(
    "https://acme.knosc.com/api/issue-tracker-tickets",
    headers={"X-XSRF-TOKEN": csrf},
    json={
        "Title": "Delayed shipment from Acme",
        "Priority": "High",
        "Linked PO Id": 42
    }
)
ticket_id = r.json()["id"]

# Update status
session.put(
    f"https://acme.knosc.com/api/issue-tracker-tickets/{ticket_id}",
    headers={"X-XSRF-TOKEN": csrf},
    json={"Status": "Resolved"}
)