Every task supports a native timer (start it from the task or the global tracker), plus manual time entry for work logged after the fact. Each entry can be flagged billable or not, and timesheet reports roll time up by person, task, or date range. All of it is also accessible through ClickUp's time tracking API, so pulling the same data into another system programmatically is genuinely possible.
Where it's thinner: turning tracked, billable hours into an actual client invoice, with rates, line items, and totals, isn't something the native reports do on their own. That's exactly why third-party time tools like Everhour and Clockify show up as a real, repeated integration search, they add the invoicing and client-billing layer ClickUp's own reports stop short of.