---
title: "Refresh Invoice Line Items"
method: POST
path: "/invoices/{invoice_id}/reset-time"
tags: ["Invoices"]
---

# Refresh Invoice Line Items

`POST /invoices/{invoice_id}/reset-time`

Refresh an invoice's line items from current time records.

The invoice's billable items are rebuilt from the underlying time tracked against the invoice's client over its date range. Useful when time records have been added, edited, or deleted after the invoice was first generated.

## Path parameters

- `invoice_id` number, required

## Request body

- InvoiceRefreshRequest
  - `limitDateFrom` string
  - `limitDateTill` string
  - `includeExpenses` boolean
  - `includeTime` boolean
  - `projects` string[]
  - `expenseMask` string
  - `timeMask` string
  - `showRowNumbers` boolean

## Response `200`

OK

- Invoice
  - `id` number, required — Invoice ID
  - `client` Client, required
    - `id` number, required
    - `name` string, required
    - `projects` string[], required — List of projects ID
    - `businessDetails` string, nullable
    - `budget` ClientBudget
      - `type` 'money' | 'time' | 'costs', required — Budget Type
      - `budget` number, required — Budget value in cents (for money) or seconds (for time)
      - `period` 'general' | 'monthly' | 'weekly' | 'daily' | 'quarterly' | 'yearly', required — Budget periodicity (overall, monthly, weekly, daily)
      - `appliedFrom` string, nullable — Start budget from (available only for non-recurrent budgets)
      - `disallowOverbudget` boolean
      - `excludeUnbillableTime` boolean
      - `excludeExpenses` boolean
      - `threshold` number — Email admins when threshold reached. Threshold is percentage 1 - 100.
      - `progress` number — Current budget usage in cents (for money) or seconds (for time)
  - `createdAt` string, required
  - `createdBy` User, required
    - `id` number, required
    - `name` string, required
    - `headline` string, nullable
    - `avatarUrl` string, nullable
    - `role` 'admin' | 'supervisor' | 'member' | 'member_limited', required
    - `status` 'active' | 'invited' | 'pending' | 'removed', required
    - `phone` string, nullable
    - `capacity` integer, nullable — Weekly capacity in seconds.
    - `avatarUrlLarge` string, nullable
  - `dateFrom` string
  - `dateTill` string
  - `dueDate` string
  - `discount` object
    - `amount` number
    - `rate` number
  - `expenseMask` string
  - `includeExpenses` boolean
  - `includeTime` boolean
  - `invoiceItems` InvoiceItem[]
    - `billedTime` number — Time in seconds
    - `createdAt` string
    - `custom` boolean
    - `id` number
    - `listAmount` number — Amount in cents
    - `name` string
    - `netAmount` number — Amount in cents
    - `position` number
    - `taxable` number
    - `totalAmount` number
  - `issueDate` string
  - `limitDateFrom` string
  - `limitDateTill` string
  - `listAmount` number — List amount in cents (without discount and taxes)
  - `netAmount` number — Net amount in cents (without taxes but with discount applied)
  - `projects` string[]
  - `publicId` string
  - `status` 'draft' | 'sent' | 'paid' | 'deleted' | 'partial', required
  - `tax` object
    - `id` integer — Tax ID from a connected accounting integration (external invoices).
    - `rate` number
    - `amount` number
  - `timeMask` string
  - `totalAmount` number — Total invoice amount in cents (with discount and taxes applied)
  - `totalTime` number — Total invoice time in seconds
  - `valid` boolean

## Other responses

- `401` — Unauthorized

---

[API](https://skmtc.net/everhour/apis/everhour-api.md) · [All operations](https://skmtc.net/everhour/apis/everhour-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/everhour/everhour-api/versions/fc6136e33352/schema)
