Time Tracking
Time entries recorded by team members, optionally linked to a client and/or task. Supports CRUD operations with filtering by user, client, task, date range, billable flag, and billed state. Billable entries carry an hourly rate snapshot and can later be converted into client billing line items.
-
GET List TimeEntriesLists all TimeEntries for the given tenant./tenants/{tenant}/time-entries
-
POST Create TimeEntryCreates a new TimeEntry for the specified tenant./tenants/{tenant}/time-entries
-
GET Get TimeEntryGets a TimeEntry for the specified tenant./tenants/{tenant}/time-entries/{code}
-
PUT Update TimeEntryUpdates a TimeEntry for the specified tenant./tenants/{tenant}/time-entries/{code}
-
DELETE Delete TimeEntryDeletes a TimeEntry for the specified tenant./tenants/{tenant}/time-entries/{code}
-
GET List Unbilled Time ClientsLists the clients that have unbilled billable time, with the unbilled minutes, entry count, value, oldest entry date and unrated entry count for each..../tenants/{tenant}/time-entries/unbilled-clients
-
GET Get Expected TimeThe minutes a team member's working pattern expects of them on each day of the window (own pattern, falling back to the practice default; bank holiday.../tenants/{tenant}/time-entries/expected-minutes
-
GET List Unpaid Time UsersLists the team members the practice pays for tracked time, with each member's unpaid minutes, entry count, value at the stamped cost rates, approved-f.../tenants/{tenant}/time-entries/unpaid-users
-
POST Approve Time PaymentApproves (or un-approves) time entries for payment to the team members who logged them. Approval is a stamp, not a lock — editing an approved entry cl.../tenants/{tenant}/time-entries/approve-payment
-
POST Pay Time EntriesPays a batch of one team member's unpaid time entries on a new pay run, at the cost rates stamped on the entries. The member must be paid for tracked .../tenants/{tenant}/time-entries/pay
-
GET List Time Pay RunsLists the pay runs recorded for tracked time, newest first unless sorted otherwise. Pass userCode to narrow to one team member's payment history./tenants/{tenant}/time-entries/pay-runs
-
DELETE Delete Time Pay RunDeletes a pay run and un-pays its time entries — they keep their payment approval and become available to pay again. Use this to undo a payment record.../tenants/{tenant}/time-entries/pay-runs/{code}
-
POST Bill Time EntriesConverts unbilled billable time entries for a single client into billing line items, one per distinct hourly rate. Users restricted to their own time .../tenants/{tenant}/time-entries/bill
-
POST Bill Clients TimeBills several clients' unbilled billable time in one run, resolving each client's entries from the given date window and team member. Clients are bill.../tenants/{tenant}/time-entries/bill-clients