Support hours

GET /v1/support/chat-availability

Whether the support team is available right now, and the usual hours.

Response in data

  • hours • Required string
  • is_online • Required boolean
  • next_available string
GET /v1/support/chat-availability
curl "https://api.parcelhub.ca/v1/support/chat-availability" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "hours": "string",
    "is_online": false,
    "next_available": "string"
  },
  "request_id": "01JBX7Q2…"
}

List tickets

GET /v1/support/tickets

Support tickets on the account, newest first.

Query parameters

  • page integer
  • page_size integer
  • status string
  • category string

Response in data

  • items • Required array of objects
    Each item · 10
    • category • Required string
    • created_at • Required timestamp

      When it was created (ISO 8601, UTC).

    • id • Required uuid
    • priority • Required string
    • status • Required string
    • subject • Required string
    • updated_at • Required timestamp

      When it last changed (ISO 8601, UTC).

    • assigned_agent_avatar string
    • assigned_agent_name string
    • description string
  • page • Required integer
  • page_size • Required integer
  • total • Required integer
  • total_pages • Required integer
GET /v1/support/tickets
curl "https://api.parcelhub.ca/v1/support/tickets" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "items": [
      {
        "assigned_agent_avatar": "string",
        "assigned_agent_name": "string",
        "category": "string",
        "created_at": "2026-10-31T15:04:05Z",
        "description": "string",
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "priority": "string",
        "status": "string",
        "subject": "string",
        "updated_at": "2026-10-31T15:04:05Z"
      }
    ],
    "page": 1,
    "page_size": 50,
    "total": 1,
    "total_pages": 1
  },
  "request_id": "01JBX7Q2…"
}

Open a ticket

POST /v1/support/tickets

Opens a ticket with ParcelHub support. Link the shipments or pickups it is about in related_items.

Request body

  • category • Required string

    shipments, pickups, wallet_dropoff (wallet, billing and drop-offs), designs, prints or other.

  • priority • Required string

    low, medium, high or urgent.

  • subject • Required string

    A short summary.

  • attachments array of strings

    Files uploaded in the dashboard (optional).

  • description string

    The details.

  • related_items array of strings

    Shipments, pickups or invoices the ticket is about.

Response in data

  • id • Required uuid
POST /v1/support/tickets
curl -X POST "https://api.parcelhub.ca/v1/support/tickets" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "attachments": [
    "string"
  ],
  "category": "shipments",
  "description": "string",
  "priority": "low",
  "related_items": [
    "string"
  ],
  "subject": "string"
}'
Response
{
  "ok": true,
  "data": {
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f"
  },
  "request_id": "01JBX7Q2…"
}

Get a ticket

GET /v1/support/tickets/{id}

One ticket with its full conversation.

Path parameters

  • id • Required string

Response in data

  • attachments • Required array of strings

    Files uploaded in the dashboard (optional).

  • category • Required string
  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • id • Required uuid
  • messages • Required array of objects
    Each item · 9
    • attachments • Required array of strings

      Files uploaded in the dashboard (optional).

    • content • Required string
    • created_at • Required timestamp

      When it was created (ISO 8601, UTC).

    • id • Required uuid
    • sender_id • Required string
    • sender_name • Required string
    • sender_role • Required string
    • contentJson any
    • sender_avatar string
  • priority • Required string
  • related_items • Required array of strings
  • status • Required string
  • subject • Required string
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • assigned_agent_avatar string
  • assigned_agent_name string
  • closed_at timestamp
  • description string
  • rated_at timestamp
  • satisfaction_comment string
  • satisfaction_rating integer
  • satisfaction_resolved boolean
GET /v1/support/tickets/{id}
curl "https://api.parcelhub.ca/v1/support/tickets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f" \
  -H "Authorization: Bearer $TOKEN"
Response
{
  "ok": true,
  "data": {
    "assigned_agent_avatar": "string",
    "assigned_agent_name": "string",
    "attachments": [
      "string"
    ],
    "category": "string",
    "closed_at": "2026-10-31T15:04:05Z",
    "created_at": "2026-10-31T15:04:05Z",
    "description": "string",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "messages": [
      {
        "attachments": [
          "string"
        ],
        "content": "string",
        "contentJson": null,
        "created_at": "2026-10-31T15:04:05Z",
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "sender_avatar": "string",
        "sender_id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "sender_name": "string",
        "sender_role": "string"
      }
    ],
    "priority": "string",
    "rated_at": "2026-10-31T15:04:05Z",
    "related_items": [
      "string"
    ],
    "satisfaction_comment": "string",
    "satisfaction_rating": 1,
    "satisfaction_resolved": true,
    "status": "string",
    "subject": "string",
    "updated_at": "2026-10-31T15:04:05Z"
  },
  "request_id": "01JBX7Q2…"
}

Reply to a ticket

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

Adds a message to a ticket.

Path parameters

  • id • Required string

Request body

  • content • Required string

    The message.

  • attachments array of strings

    Files uploaded in the dashboard (optional).

Response in data

  • attachments • Required array of strings

    Files uploaded in the dashboard (optional).

  • content • Required string
  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • id • Required uuid
  • sender_id • Required string
  • sender_name • Required string
  • sender_role • Required string
  • contentJson any
  • sender_avatar string
POST /v1/support/tickets/{id}/messages
curl -X POST "https://api.parcelhub.ca/v1/support/tickets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f/messages" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "attachments": [
    "string"
  ],
  "content": "string"
}'
Response
{
  "ok": true,
  "data": {
    "attachments": [
      "string"
    ],
    "content": "string",
    "contentJson": null,
    "created_at": "2026-10-31T15:04:05Z",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "sender_avatar": "string",
    "sender_id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "sender_name": "string",
    "sender_role": "string"
  },
  "request_id": "01JBX7Q2…"
}

Rate a ticket

POST /v1/support/tickets/{id}/rating

Rates how a resolved or closed ticket was handled. Sending again replaces the earlier rating.

Path parameters

  • id • Required string

Request body

  • rating • Required integer

    1 to 5 stars.

  • resolved • Required boolean

    Whether the issue was resolved.

  • comment string

    Anything to add (optional).

Response in data

  • attachments • Required array of strings

    Files uploaded in the dashboard (optional).

  • category • Required string
  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • id • Required uuid
  • messages • Required array of objects
    Each item · 9
    • attachments • Required array of strings

      Files uploaded in the dashboard (optional).

    • content • Required string
    • created_at • Required timestamp

      When it was created (ISO 8601, UTC).

    • id • Required uuid
    • sender_id • Required string
    • sender_name • Required string
    • sender_role • Required string
    • contentJson any
    • sender_avatar string
  • priority • Required string
  • related_items • Required array of strings
  • status • Required string
  • subject • Required string
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • assigned_agent_avatar string
  • assigned_agent_name string
  • closed_at timestamp
  • description string
  • rated_at timestamp
  • satisfaction_comment string
  • satisfaction_rating integer
  • satisfaction_resolved boolean
POST /v1/support/tickets/{id}/rating
curl -X POST "https://api.parcelhub.ca/v1/support/tickets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f/rating" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "comment": "string",
  "rating": 1,
  "resolved": true
}'
Response
{
  "ok": true,
  "data": {
    "assigned_agent_avatar": "string",
    "assigned_agent_name": "string",
    "attachments": [
      "string"
    ],
    "category": "string",
    "closed_at": "2026-10-31T15:04:05Z",
    "created_at": "2026-10-31T15:04:05Z",
    "description": "string",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "messages": [
      {
        "attachments": [
          "string"
        ],
        "content": "string",
        "contentJson": null,
        "created_at": "2026-10-31T15:04:05Z",
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "sender_avatar": "string",
        "sender_id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "sender_name": "string",
        "sender_role": "string"
      }
    ],
    "priority": "string",
    "rated_at": "2026-10-31T15:04:05Z",
    "related_items": [
      "string"
    ],
    "satisfaction_comment": "string",
    "satisfaction_rating": 1,
    "satisfaction_resolved": true,
    "status": "string",
    "subject": "string",
    "updated_at": "2026-10-31T15:04:05Z"
  },
  "request_id": "01JBX7Q2…"
}

Close or reopen a ticket

PATCH /v1/support/tickets/{id}/status

closed when the issue is sorted; open to reopen a resolved or closed ticket.

Path parameters

  • id • Required string

Request body

  • status • Required string

    closed or open.

Response in data

  • attachments • Required array of strings

    Files uploaded in the dashboard (optional).

  • category • Required string
  • created_at • Required timestamp

    When it was created (ISO 8601, UTC).

  • id • Required uuid
  • messages • Required array of objects
    Each item · 9
    • attachments • Required array of strings

      Files uploaded in the dashboard (optional).

    • content • Required string
    • created_at • Required timestamp

      When it was created (ISO 8601, UTC).

    • id • Required uuid
    • sender_id • Required string
    • sender_name • Required string
    • sender_role • Required string
    • contentJson any
    • sender_avatar string
  • priority • Required string
  • related_items • Required array of strings
  • status • Required string
  • subject • Required string
  • updated_at • Required timestamp

    When it last changed (ISO 8601, UTC).

  • assigned_agent_avatar string
  • assigned_agent_name string
  • closed_at timestamp
  • description string
  • rated_at timestamp
  • satisfaction_comment string
  • satisfaction_rating integer
  • satisfaction_resolved boolean
PATCH /v1/support/tickets/{id}/status
curl -X PATCH "https://api.parcelhub.ca/v1/support/tickets/3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f/status" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "status": "closed"
}'
Response
{
  "ok": true,
  "data": {
    "assigned_agent_avatar": "string",
    "assigned_agent_name": "string",
    "attachments": [
      "string"
    ],
    "category": "string",
    "closed_at": "2026-10-31T15:04:05Z",
    "created_at": "2026-10-31T15:04:05Z",
    "description": "string",
    "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
    "messages": [
      {
        "attachments": [
          "string"
        ],
        "content": "string",
        "contentJson": null,
        "created_at": "2026-10-31T15:04:05Z",
        "id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "sender_avatar": "string",
        "sender_id": "3f2b8c1e-5d6a-4b7c-9e0f-1a2b3c4d5e6f",
        "sender_name": "string",
        "sender_role": "string"
      }
    ],
    "priority": "string",
    "rated_at": "2026-10-31T15:04:05Z",
    "related_items": [
      "string"
    ],
    "satisfaction_comment": "string",
    "satisfaction_rating": 1,
    "satisfaction_resolved": true,
    "status": "string",
    "subject": "string",
    "updated_at": "2026-10-31T15:04:05Z"
  },
  "request_id": "01JBX7Q2…"
}