Beam Help
Get help now

How-to · Zoho DESK

How to get ticket time entries by billing type in Zoho Desk

Retrieve time entries grouped by billing type.

Retrieving ticket time entries filtered by billing type in Zoho Desk is straightforward using a dedicated API endpoint that scopes results to a single ticket and groups them by billing classification.


Why this matters


When your support team logs time against tickets, not all hours carry the same billing status — some may be billable, others non-billable or complimentary. Being able to pull time entries segmented by billing type lets you reconcile invoices, audit agent effort, and feed data into downstream billing workflows without manually filtering a full time-entry list.


Step-by-step


Step 1. Identify the ticketId for the ticket whose time entries you want to retrieve. This is the unique identifier Zoho Desk assigns to each support ticket — you can find it in the ticket URL or by querying the tickets list endpoint first. [1]


Step 2. Make a GET request to the billing-type endpoint, substituting your ticket's identifier into the path:


GET /api/v1/tickets/{ticketId}/timeEntries/billingType

This operation (gettickettimeentriesby) returns time entries for the specified ticket, organised by their billing type. [1]


Step 3. Pass any optional query parameters using the p dictionary argument. The endpoint accepts a p parameter that can carry pagination or filter options alongside the required ticketId. [1]


Step 4. If you are calling this from Python, the wrapper method looks like the following:


result = client.get_ticket_time_entries_by(
    ticketId="your_ticket_id_here",
    p={"page": 1}   # optional query params
)

The method issues a GET request to the constructed path and returns the response payload containing time entries grouped by billing type. [1]


Step 5. Parse the response to extract the billing type groupings. Each entry in the response will carry the time logged and its associated billing classification, which you can then use for invoicing or reporting purposes. [1]


---


Related endpoints worth knowing


The billing-type filter pattern is consistent across several Zoho Desk entities, so you can apply the same approach at different levels of your data model:


  • Account-level time entries by billing type: GET /api/v1/accounts/{accountId}/timeEntries/billingType [2]
  • Contact-level time entries by billing type: GET /api/v1/contacts/{contactId}/timeEntries/billingType [5]
  • Agent-level time entries by billing type: GET /api/v1/agents/{agentId}/timeEntries/billingType [6]
  • Task-level time entries by billing type: GET /api/v1/tasks/{taskId}/timeEntries/billingType [4]

If you need *all* time entries for a ticket without the billing-type grouping, use the sibling endpoint GET /api/v1/tickets/{ticketId}/timeEntries instead. [8]


Common pitfalls


  • Wrong entity endpoint: It is easy to accidentally call the account or contact variant when you intend the ticket variant. Double-check that your path contains tickets/{ticketId} and not accounts/{accountId} or contacts/{contactId}. [1][2][5]
  • Missing or malformed ticketId: The ticketId is a required path parameter. Passing an empty string or an integer where a string is expected will cause the request to fail or route to the wrong resource. [1]
  • Confusing this endpoint with the plain list endpoint: timeEntries/billingType and timeEntries are separate operations with different response shapes — use the billing-type path only when you specifically need entries segmented by billing classification. [1][8]

What to check


  • Confirm the ticketId in your request path matches an existing ticket in your Zoho Desk organisation before calling the endpoint. [1]
  • Verify that time entries have actually been logged against the ticket, since a valid ticket with no time entries will return an empty result rather than an error. [1][8]
  • If you need a broader view (e.g., all billable time across an account), consider switching to the account-level billing-type endpoint rather than looping over individual ticket calls. [2]

---


*Beam Help is an independent expert support resource for Zoho products and is not official Zoho support. Always validate API behaviour against your specific Zoho Desk plan and API version.*

Sources cited

  1. [1] GET /api/v1/tickets/{ticketId}/timeEntries/billingType
  2. [2] GET /api/v1/accounts/{accountId}/timeEntries/billingType
  3. [3] server.py: build_zoho_links
  4. [4] GET /api/v1/tasks/{taskId}/timeEntries/billingType
  5. [5] GET /api/v1/contacts/{contactId}/timeEntries/billingType
  6. [6] GET /api/v1/agents/{agentId}/timeEntries/billingType
  7. [7] server.py: chat_stream
  8. [8] GET /api/v1/tickets/{ticketId}/timeEntries
Get Time Entries by Billing Type | Beam Help