Status transition
A transition permits one status change: from a source status to a target status. A ticket may only move where a transition exists — PATCH /v1/tickets/{ticketId} answers with 400 otherwise.
Transitions are directional. Permitting open → in_progress does not permit the way back; that needs its own transition.
Returns which status changes the tenant permits. A ticket may only move from one status to another if a transition exists for that pair — PATCH /v1/tickets/{ticketId} answers with 400 otherwise.
Filterable — paths into both ends, such as sourceStatus.name or targetStatus.isDefault.
Sortable — sourceStatus.<field> and targetStatus.<field>, for example sort=sourceStatus.position,targetStatus.position.
Token issued by the central equipme authentication, sent as Bearer <token>.
JSON filter expression
Free-text term — no effect here
Comma-separated field:direction terms
Selection of fields and relations
sourceStatus.name,targetStatus.nameNumber of entries to skip
0Page size, 1 to 100
100OK
Bad Request
Unauthorized
Forbidden
Internal Server Error
GET /api/v1/ticket-status-transitions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
"count": 1,
"data": [
{
"role": "text",
"sourceStatus": {
"allowedSourceStatuses": [
{
"allowedSourceStatuses": "[Circular Reference]",
"allowedTargetStatuses": "[Circular Reference]",
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"allowedTargetStatuses": [
{
"allowedSourceStatuses": "[Circular Reference]",
"allowedTargetStatuses": "[Circular Reference]",
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"targetStatus": {
"allowedSourceStatuses": [
{
"allowedSourceStatuses": "[Circular Reference]",
"allowedTargetStatuses": "[Circular Reference]",
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"allowedTargetStatuses": [
{
"allowedSourceStatuses": "[Circular Reference]",
"allowedTargetStatuses": "[Circular Reference]",
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
]
}Permits a status change from sourceStatusName to targetStatusName. Both statuses have to exist and they have to differ, otherwise the request is answered with 400. A transition that already exists is answered with 409.
role restricts the transition to a role; leaving it out lets it apply to everyone.
Token issued by the central equipme authentication, sent as Bearer <token>.
Created
Bad Request
Unauthorized
Forbidden
Not Found
Conflict
Internal Server Error
POST /api/v1/ticket-status-transitions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}{
"data": {
"role": "text",
"sourceStatus": {
"allowedSourceStatuses": [
{
"allowedSourceStatuses": [
"[Circular Reference]"
],
"allowedTargetStatuses": [
"[Circular Reference]"
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"allowedTargetStatuses": [
{
"allowedSourceStatuses": [
{
"allowedSourceStatuses": [
"[Circular Reference]"
],
"allowedTargetStatuses": [
"[Circular Reference]"
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"allowedTargetStatuses": [
"[Circular Reference]"
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
},
"targetStatus": {
"allowedSourceStatuses": [
{
"allowedSourceStatuses": [
"[Circular Reference]"
],
"allowedTargetStatuses": [
"[Circular Reference]"
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"allowedTargetStatuses": [
{
"allowedSourceStatuses": [
{
"allowedSourceStatuses": [
"[Circular Reference]"
],
"allowedTargetStatuses": [
"[Circular Reference]"
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"allowedTargetStatuses": [
"[Circular Reference]"
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
],
"color": "#f5a623",
"createdAt": "2026-01-01T00:00:00.000Z",
"displayName": "In progress",
"isDefault": true,
"name": "in_progress",
"position": 2,
"tenant": {
"id": 1,
"name": "text"
},
"updatedAt": "2026-01-01T00:00:00.000Z"
}
}
}Withdraws a permitted status change. The pair is named in the body rather than in the path, because a transition is identified by its two ends. Tickets already in the target status are unaffected — only future moves are refused.
Token issued by the central equipme authentication, sent as Bearer <token>.
No Content
No content
Bad Request
Unauthorized
Forbidden
Not Found
Internal Server Error
DELETE /api/v1/ticket-status-transitions HTTP/1.1
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 2
{}No content
Last updated
Was this helpful?