📄️ Create a time log reason
Creates a new time log reason. Admin-type reasons are forced to non-billable with no product and zero rate/cost.
📄️ List time log reasons
Returns time log reasons. Defaults to Active, non-Admin reasons whose product is Labor-typed. Set ActiveOnly=false to include Inactive reasons; IncludeAdmin=true to include Admin reasons (Admin reasons bypass the Labor-product gate).
📄️ Bulk create time log reasons
Creates one or more time log reasons. Each item is validated independently and the response returns a per-item success or failure entry in payload order. Admin-type reasons are forced to non-billable with no product and zero rate/cost.
📄️ Update a time log reason
Updates an existing time log reason. To change only the Active flag, use PUT /v1/time-log-reasons/{id}/active.
📄️ Get a time log reason
Retrieves a single time log reason by its identifier.
📄️ Set the active state of a time log reason
Updates only the Active flag on a time log reason. Use this for activate/deactivate actions in the UI.
📄️ List the Agreement Templates and Customer Agreements affected by this reason's agreement rates
Returns the Agreement Templates and Customer Agreements with Block Hour or Time & Material rows referencing this time log reason, including each row's current rates so a pending change can be previewed as old-to-new per component. Locked agreements are included and flagged; propagation skips them.
📄️ List the agreement rate change history of a time log reason
Returns the field-level change history of the reason's agreement override fields (active/billable flags, rate, cost), newest first. Each entry carries the change source (Edit, RestoreDefaults, Propagation, StatusChange), the user, and old/new values.
📄️ Update a time log reason's agreement-specific rates
Updates only the agreement-specific fields (active/billable flags, rate, cost). The general rate/cost/active/billable are managed via System Tables → Time Entry and are left unchanged. No-op requests (values identical to current) are accepted without writing history. Requires agreement time entry rate UPDATE for value changes and DEACTIVATE for status changes.
📄️ Propagate a time log reason's agreement rates to referencing templates and agreements
Applies the reason's agreement rate, cost, and billable flag to the Agreement Template rows that reference it, and — when scope is TemplatesAndCustomerAgreements — to customer agreement rows as well. Customer rate changes snapshot history first. Locked agreements are skipped and reported.