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.


GET/my/support/tickets

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

GET
/my/support/tickets
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
  }
}

GET/my/support/tickets/show/{id}

Show Ticket

Retrieve detailed information about a specific support ticket.

URL Parameters

  • Name
    id
    Type
    string
    Description

    The unique identifier of the ticket.

Request

GET
/my/support/tickets/show/{id}
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/my/support/tickets/messages/{id}

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

GET
/my/support/tickets/messages/{id}
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
  }
}

POST/my/support/tickets/close/{id}

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

POST
/my/support/tickets/close/{id}
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/my/support/tickets/{id}

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

DELETE
/my/support/tickets/{id}
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
}

POST/my/support/tickets/messages/{id}

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

POST
/my/support/tickets/messages/{id}
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"
  }
}

POST/my/support/tickets

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

POST
/my/support/tickets
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
  }
}

GET/my/support/tickets/departments

List Departments

Retrieve a list of all available support departments. Use the department key when creating a new ticket.

Request

GET
/my/support/departments
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"
    }
  ]
}

GET/my/support/tickets/statuses

List Ticket Statuses

Retrieve a list of all possible ticket statuses. These statuses indicate the current state of support tickets in the system.

Request

GET
/my/support/statuses
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"
  ]
}