Support Tickets
These endpoints allow you to manage your support tickets, including creating, listing, and updating tickets.
The Ticket object
The ticket object contains all information about support tickets in the system.
Properties
- Name
id
- Type
- string
- Description
Unique identifier for the ticket.
- Name
title
- Type
- string
- Description
The title of the ticket.
- Name
department
- Type
- integer
- Description
The department ID the ticket belongs to (see Ticket Departments).
- Name
status
- Type
- integer
- Description
Current status of the ticket (see Ticket Status).
- Name
transaction_id
- Type
- string
- Description
Optional reference to a related transaction.
- Name
created_at
- Type
- timestamp
- Description
ISO 8601 timestamp of when the ticket was created.
- Name
updated_at
- Type
- timestamp
- Description
ISO 8601 timestamp of when the ticket was last updated.
- Name
user
- Type
- object
- Description
Information about the ticket creator.
- Name
id
- Type
- string
- Description
User's unique identifier.
- Name
name
- Type
- string
- Description
User's full name.
- Name
email
- Type
- string
- Description
User's email address.
- Name
messages_count
- Type
- integer
- Description
Number of messages in the ticket thread.
The Ticket object
{
"id": "9e98a3d9-02f4-4d78-b540-4a3fe7ab93b1",
"title": "Issue with MT4 Terminal",
"department": 1,
"status": 3,
"transaction_id": null,
"created_at": "2025-04-04T16:30:11.000000Z",
"updated_at": "2025-04-04T18:12:59.000000Z",
"user": {
"id": "9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8",
"name": "Test User",
"email": "[email protected]"
},
"messages_count": 10
}
The Message object
The message object contains all information about messages within a support ticket.
Properties
- Name
id
- Type
- string
- Description
Unique identifier for the message.
- Name
content
- Type
- string
- Description
The content of the message.
- Name
created_at
- Type
- timestamp
- Description
When the message was created.
- Name
user
- Type
- object
- Description
Information about the message sender.
- Name
name
- Type
- string
- Description
Sender's full name.
- Name
email
- Type
- string
- Description
Sender's email address.
- Name
is_system
- Type
- boolean
- Description
Whether the message was sent by the system.
- Name
attachment_url
- Type
- string
- Description
URL to any attached file (optional).
The Message object
{
"id": "9e989d04-fb07-44ab-811e-af25509a91b7",
"content": "This is my first ticket testing API v1.",
"created_at": "2025-04-04T16:11:05.000000Z",
"user": {
"name": "Test User",
"email": "[email protected]",
"is_system": false
},
"attachment_url": "https://tv1.fra1.digitaloceanspaces.com/9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8/tickets/2025/04/avatar3.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DO8013AK6FM2U3LKKNXC%2F20250404%2Ffra1%2Fs3%2Faws4_request&X-Amz-Date=20250404T190008Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Signature=079fa9a16acab7af06d0fb7635bee883bab934a82691067c81f4ab5f7bb8297a"
}
Ticket Departments
The department
field indicates which team or department the ticket is assigned to. Here are the possible values:
- Name
ACCOUNT (0)
- Type
- info
- Description
Account-related issues including login, profile, and security settings.
- Name
TERMINALS (1)
- Type
- info
- Description
Issues related to trading terminals and their configuration.
- Name
TRADING_SERVER (2)
- Type
- info
- Description
Trading server connectivity and performance issues.
- Name
WINDOWS_SERVER (3)
- Type
- info
- Description
Windows server management and configuration support.
- Name
BILLING (4)
- Type
- warning
- Description
Billing, payments, and subscription-related inquiries.
- Name
OTHER (5)
- Type
- default
- Description
General inquiries or issues not covered by other departments.
Ticket Status
The status
field indicates the current state of a ticket. Here are the possible values:
- Name
IN_QUEUE (0)
- Type
- warning
- Description
Ticket is waiting in the queue to be processed.
- Name
CLOSED (1)
- Type
- danger
- Description
Ticket has been closed.
- Name
ANSWERED (2)
- Type
- success
- Description
Support has provided an answer.
- Name
REPLIED (3)
- Type
- info
- Description
Customer has replied to the ticket.
- Name
IN_PROGRESS (4)
- Type
- warning
- Description
Support team is working on the ticket.
- Name
SOLVED (5)
- Type
- success
- Description
Issue has been resolved.
- Name
UNDER_REVIEW (6)
- Type
- warning
- Description
Ticket is being reviewed by support team.
List Tickets
Retrieve a paginated list of support tickets for the authenticated user.
Optional parameters
- Name
search
- Type
- string
- Description
Search term to filter tickets by title (max: 255 characters).
- Name
department
- Type
- string
- Description
Filter by multiple departments. Comma-separated list of department IDs (e.g., "0,1,2"). See Ticket Departments.
- Name
status
- Type
- string
- Description
Filter by multiple status codes. Comma-separated list of status codes (e.g., "0,1,2"). See Ticket Status.
- Name
date_from
- Type
- string
- Description
Filter tickets created from this date (ISO 8601 format).
- Name
date_to
- Type
- string
- Description
Filter tickets created until this date (ISO 8601 format). Must be after or equal to date_from.
- Name
per_page
- Type
- integer
- Description
Number of tickets per page (min: 1, max: 100, default: 15).
- Name
page
- Type
- integer
- Description
Page number for pagination (min: 1, default: 1).
Request
curl -X GET "https://api.tradevps.net/v1/my/support/tickets?search=MT4&department=1,2&status=2,3,4&date_from=2025-01-01&date_to=2025-12-31" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Tickets fetched",
"data": [
{
"id": "9e98a3d9-02f4-4d78-b540-4a3fe7ab93b1",
"title": "Issue with MT4 Terminal",
"department": 1,
"status": 3,
"transaction_id": null,
"created_at": "2025-04-04T16:30:11.000000Z",
"updated_at": "2025-04-04T18:12:59.000000Z",
"user": {
"id": "9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8",
"name": "Test User",
"email": "[email protected]"
},
"messages_count": 10
}
],
"pagination": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 5,
"first_page_url": "https://api.tradevps.net/v1/my/support/tickets?page=1",
"from": 1,
"last_page_url": "https://api.tradevps.net/v1/my/support/tickets?page=1",
"links": "",
"next_page_url": null,
"prev_page_url": null
}
}
Show Ticket
Retrieve detailed information about a specific support ticket.
URL Parameters
- Name
id
- Type
- string
- Description
The unique identifier of the ticket.
Request
curl -X GET "https://api.tradevps.net/v1/my/support/tickets/show/9e989d02-a8dc-404f-9036-0f9881a259cd" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Ticket fetched",
"data": {
"id": "9e989d02-a8dc-404f-9036-0f9881a259cd",
"title": "First Ticket",
"department": 1,
"status": 0,
"transaction_id": null,
"created_at": "2025-04-04T16:11:04.000000Z",
"updated_at": "2025-04-04T16:11:04.000000Z",
"user": {
"id": "9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8",
"name": "Test User",
"email": "[email protected]"
},
"messages_count": 1
}
}
Get Ticket Messages
Retrieve all messages for a specific support ticket. The response is paginated.
URL Parameters
- Name
id
- Type
- string
- Description
The unique identifier of the ticket.
Optional Parameters
- Name
per_page
- Type
- integer
- Description
Number of messages per page (min: 1, max: 100, default: 15).
- Name
page
- Type
- integer
- Description
Page number for pagination (min: 1, default: 1).
Request
curl -X GET "https://api.tradevps.net/v1/my/support/tickets/messages/9e989d02-a8dc-404f-9036-0f9881a259cd" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Messages fetched",
"data": [
{
"id": "9e989d04-fb07-44ab-811e-af25509a91b7",
"content": "This is my first ticket testing API v1.",
"created_at": "2025-04-04T16:11:05.000000Z",
"user": {
"name": "Test User",
"email": "[email protected]",
"is_system": false
},
"attachment_url": "https://tv1.fra1.digitaloceanspaces.com/9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8/tickets/2025/04/avatar3.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DO8013AK6FM2U3LKKNXC%2F20250404%2Ffra1%2Fs3%2Faws4_request&X-Amz-Date=20250404T190008Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Signature=079fa9a16acab7af06d0fb7635bee883bab934a82691067c81f4ab5f7bb8297a"
}
],
"pagination": {
"current_page": 1,
"last_page": 1,
"per_page": 15,
"total": 1,
"first_page_url": "https://api.tradevps.net/v1/my/support/tickets/messages/9e989d02-a8dc-404f-9036-0f9881a259cd?page=1",
"from": 1,
"last_page_url": "https://api.tradevps.net/v1/my/support/tickets/messages/9e989d02-a8dc-404f-9036-0f9881a259cd?page=1",
"links": "",
"next_page_url": null,
"prev_page_url": null
}
}
Close Ticket
Close a specific support ticket. Once closed, the ticket status will be set to CLOSED (1)
.
URL Parameters
- Name
id
- Type
- string
- Description
The unique identifier of the ticket to close.
Request
curl -X POST "https://api.tradevps.net/v1/my/support/tickets/close/9e98a3d9-02f4-4d78-b540-4a3fe7ab93b1" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Ticket closed successfully",
"data": null
}
Delete Ticket
Permanently delete a specific support ticket and all its associated messages. This action cannot be undone.
URL Parameters
- Name
id
- Type
- string
- Description
The unique identifier of the ticket to delete.
Request
curl -X DELETE "https://api.tradevps.net/v1/my/support/tickets/9e98a3d9-02f4-4d78-b540-4a3fe7ab93b1" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Ticket deleted successfully",
"data": null
}
Create Ticket Message
Add a new message to an existing support ticket. You can optionally include a file attachment.
URL Parameters
- Name
id
- Type
- string
- Description
The unique identifier of the ticket.
Request Body
- Name
content
- Type
- string
- Description
The message content.
- Name
attachment
- Type
- file
- Description
Optional file attachment. Supported formats: jpg, jpeg, png, pdf, doc, docx, xls, xlsx, zip, rar. Maximum size: 10MB.
Request
curl -X POST "https://api.tradevps.net/v1/my/support/tickets/messages/9e98a3d9-02f4-4d78-b540-4a3fe7ab93b1" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-F "content=This is my second answer via API." \
-F "attachment=@/path/to/file.jpg"
Response 200
{
"ok": true,
"msg": "Message added successfully",
"data": {
"id": "9e98c89c-cdb7-4769-9e7c-f4f80f9ddb2c",
"content": "This is my second answer via API.",
"created_at": "2025-04-04T18:12:59.000000Z",
"user": {
"name": "Test User",
"email": "[email protected]",
"is_system": false
},
"attachment_url": "https://tv1.fra1.digitaloceanspaces.com/9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8/tickets/2025/04/avatar3.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=DO8013AK6FM2U3LKKNXC%2F20250404%2Ffra1%2Fs3%2Faws4_request&X-Amz-Date=20250404T181301Z&X-Amz-SignedHeaders=host&X-Amz-Expires=300&X-Amz-Signature=3c3b0d737c4ec3e8a888cc1414d691da25481a66b099efc103b82e0cdad86dd8"
}
}
Create Ticket
Create a new support ticket. The first message is included in the creation request.
Request Body
- Name
title
- Type
- string
- Description
The ticket title (5-255 characters).
- Name
department
- Type
- integer
- Description
The department ID to assign the ticket to.
- Name
content
- Type
- string
- Description
The initial message content.
- Name
transaction_id
- Type
- string
- Description
Optional transaction ID reference. Must exist in the transactions table.
- Name
attachment
- Type
- file
- Description
Optional file attachment. Supported formats: jpg, jpeg, png, pdf, doc, docx, xls, xlsx, zip, rar. Maximum size: 10MB.
Request
curl -X POST "https://api.tradevps.net/v1/my/support/tickets" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}" \
-F "title=First Ticket" \
-F "department=1" \
-F "content=I need help with my service." \
-F "attachment=@/path/to/file.jpg"
Response 200
{
"ok": true,
"msg": "Ticket created successfully",
"data": {
"id": "9e98dd1a-37b8-4028-99fe-30206aeb4b42",
"title": "First Ticket",
"department": 1,
"status": 0,
"transaction_id": null,
"created_at": "2025-04-04T19:10:17.000000Z",
"updated_at": "2025-04-04T19:10:17.000000Z",
"user": {
"id": "9ddc0e2a-74cc-434c-bb93-1d0a39fdf9c8",
"name": "Test User",
"email": "[email protected]"
},
"messages_count": 1
}
}
List Departments
Retrieve a list of all available support departments. Use the department key
when creating a new ticket.
Request
curl -X GET "https://api.tradevps.net/v1/my/support/departments" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Departments fetched",
"data": [
{
"key": 0,
"label": "Account"
},
{
"key": 1,
"label": "Terminals"
},
{
"key": 2,
"label": "Trading Server"
},
{
"key": 3,
"label": "Windows Server"
},
{
"key": 4,
"label": "Billing"
},
{
"key": 5,
"label": "Other"
}
]
}
List Ticket Statuses
Retrieve a list of all possible ticket statuses. These statuses indicate the current state of support tickets in the system.
Request
curl -X GET "https://api.tradevps.net/v1/my/support/statuses" \
-H "Accept: application/json" \
-H "Authorization: Bearer {token}"
Response 200
{
"ok": true,
"msg": "Statuses fetched",
"data": [
"IN_QUEUE",
"CLOSED",
"ANSWERED",
"REPLIED",
"IN_PROGRESS",
"SOLVED",
"UNDER_REVIEW"
]
}