> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Invoicing troubleshooting

> Every invoicing error message in TimeTracker, what it means and how to fix it – from missing approved time to exchange rates, payments and permission problems.

Find your message below. If you cannot see it, jump to the symptom tables at the end.

## Nothing to invoice

| Message                                                                                                            | Meaning                            | Fix                                                                                                 |
| ------------------------------------------------------------------------------------------------------------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------- |
| "Nothing to invoice yet" / "Time must be approved and locked before it can be invoiced. Check the approval queue." | No qualifying time for that client | Approve the timesheets first – see [/approvals/approve-a-timesheet](/approvals/approve-a-timesheet) |
| "Select a client to load approved time."                                                                           | No client chosen                   | Pick a client                                                                                       |
| "No approved billable expenses."                                                                                   | Nothing to add                     | Approve the expenses and mark them billable                                                         |
| "No invoices yet – create your first invoice from approved time, expenses, or a manual line."                      | An empty workspace                 | Create your first invoice                                                                           |

Time only appears in the picker when **all** of these are true: it is billable, its status is approved or locked, it is not already invoiced, it is not in the Trash, and its project belongs to the client you chose.

## Saving an invoice

| Message                                                                                    | Meaning                                   | Fix                                              |
| ------------------------------------------------------------------------------------------ | ----------------------------------------- | ------------------------------------------------ |
| "Select a client before saving."                                                           | No client chosen                          | Pick a client                                    |
| "Add at least one line item before saving."                                                | Nothing selected                          | Tick some time, an expense, or add a manual line |
| "An invoice needs at least one line. Add some time or an expense."                         | The server received an empty selection    | Select something                                 |
| "Add at least one line to this invoice."                                                   | A manual invoice with no lines            | Click **Add line item**                          |
| "Time that is submitted can't be invoiced. Only approved or locked billable time can."     | An entry is not approved                  | Approve it, then rebuild the selection           |
| "That expense isn't an approved billable expense, so it can't go on an invoice."           | The expense is unapproved or non-billable | Approve it and mark it billable                  |
| "Some selected time entries were already invoiced by someone else. Refresh and try again." | Another invoice claimed the same time     | Reload and rebuild                               |
| "Couldn't save this invoice. Check the fields above and try again."                        | The save was refused                      | Check every field, then retry                    |

<Note>
  Saving is all or nothing. One ineligible entry fails the whole save, so you never end up with a half-built invoice missing lines you thought you had added.
</Note>

## Invoice numbers

| Message                                                                           | Meaning                                 | Fix                     |
| --------------------------------------------------------------------------------- | --------------------------------------- | ----------------------- |
| "That invoice number is already used by another invoice. Choose a different one." | The typed number is taken               | Pick a different number |
| "Invoice number '2026/ACME/001' is already in use. Pick a different one."         | The clash was caught on save            | Pick a different number |
| "That invoice number is too long. Use 64 characters or fewer."                    | Over the limit                          | Shorten it              |
| "Choose an invoice number that isn't already in use."                             | The save is blocked by the inline error | Fix the field first     |

See [/invoicing/invoice-numbering](/invoicing/invoice-numbering).

## Currency and exchange rates

| Message                                                                                                     | Meaning                               | Fix                                      |
| ----------------------------------------------------------------------------------------------------------- | ------------------------------------- | ---------------------------------------- |
| "Enter a valid exchange rate for EUR → USD before saving."                                                  | A rate field is empty or not positive | Enter a decimal such as `1.08`           |
| "This invoice is in USD but some lines are in EUR, and no exchange rate is on file. Add one, then invoice." | A conversion is needed                | Fill in the **Exchange rates** section   |
| "Some lines are in a different currency from the invoice. Convert them, or invoice them separately."        | A line reached the totals unconverted | Supply the rate, or split the invoice    |
| "That isn't a currency code we recognise. Pick one from the list."                                          | Unsupported code                      | Use a supported three-letter ISO code    |
| The **Currency** field is greyed out                                                                        | The invoice already has a line        | Remove all lines, or start a new invoice |

See [/invoicing/taxes-and-currency](/invoicing/taxes-and-currency).

## Editing

| Message                                                                                   | Meaning                                   | Fix                                                                                           |
| ----------------------------------------------------------------------------------------- | ----------------------------------------- | --------------------------------------------------------------------------------------------- |
| "Only a draft invoice can be edited. Void this one and raise a new invoice to change it." | The invoice has been issued               | Issue a credit note, or void and rebuild                                                      |
| The **Edit** button is missing                                                            | Not a draft, or you lack `invoice.manage` | Check the status and your capability                                                          |
| The sender block still shows old details                                                  | It was snapshotted at creation            | Void and rebuild – see [/invoicing/invoice-sender-details](/invoicing/invoice-sender-details) |

## Sending

| Message                                                                                    | Meaning                                                           | Fix                                                          |
| ------------------------------------------------------------------------------------------ | ----------------------------------------------------------------- | ------------------------------------------------------------ |
| "Couldn't send this invoice. Try again."                                                   | The send was refused                                              | Reload and check the status is still Draft                   |
| "This invoice has already moved on since the page loaded. Refresh to see where it is now." | Someone else changed it                                           | Reload the invoice                                           |
| The **Send invoice** button is missing                                                     | Not a draft, or you lack `invoice.manage`                         | Check the status and your capability                         |
| The client says they never received it                                                     | No contact email on the client record, or the mail did not arrive | Check the client's first contact, then send the PDF yourself |

## Payments, credit notes and write-offs

| Message                                                                       | Meaning                      | Fix                                                   |
| ----------------------------------------------------------------------------- | ---------------------------- | ----------------------------------------------------- |
| "Invoice #42 is still a draft. Send it before recording a payment."           | The invoice was never issued | Send it                                               |
| "Invoice #42 is paid, so it can no longer take a payment."                    | The invoice is final         | Nothing to do                                         |
| "'abc' won't work as an amount. Enter a number like 500 or 500.25."           | The amount is not a number   | Enter a plain decimal                                 |
| "Enter an amount greater than zero."                                          | Zero or negative             | Enter a positive figure                               |
| "This invoice is in USD, so a payment in EUR can't be recorded against it."   | Currency mismatch            | Record it in the invoice currency                     |
| "That payment of 3000 is more than the 1332.80 still outstanding."            | Overpayment                  | Record the outstanding amount, or issue a credit note |
| "Give a reason for this credit note, so the invoice history explains itself." | No reason given              | Write a reason                                        |
| "That credit note of 3000 is more than the 1332.80 still outstanding."        | Exceeds the balance          | Lower the amount                                      |
| "Give a reason for writing this off, so the invoice history explains itself." | No reason given              | Write a reason                                        |
| "That write-off of 3000 is more than the 1332.80 still outstanding."          | Exceeds the balance          | Lower the amount                                      |
| "This invoice is already settled, so there's nothing to write off."           | The balance is zero          | Nothing to do                                         |
| "Couldn't record this payment. Try again."                                    | The write was refused        | Reload the invoice and retry                          |

## Reminders

| Message                                                                      | Meaning                   | Fix                          |
| ---------------------------------------------------------------------------- | ------------------------- | ---------------------------- |
| "A reminder goes out only once an invoice has been sent. This one is draft." | The invoice is not issued | Send it first                |
| "Couldn't queue this reminder. Try again."                                   | The reminder was refused  | Check the status, then retry |

A reminder is offered only for **sent**, **viewed**, **partially paid** and **overdue** invoices. The confirmation says *queued*, not delivered.

## PDF export

| Message                                               | Meaning                      | Fix                |
| ----------------------------------------------------- | ---------------------------- | ------------------ |
| "Couldn't build this invoice PDF. Try again."         | The export failed            | Retry, then reload |
| "We couldn't save the invoice PDF. Please try again." | The file could not be stored | Retry              |
| An upgrade prompt appears                             | Your plan lacks `exports`    | Upgrade to Pro     |
| The button stays on **Preparing…**                    | The export is still running  | Wait, then reload  |

## Voiding

| Symptom                                                    | Cause                                      | Fix                                     |
| ---------------------------------------------------------- | ------------------------------------------ | --------------------------------------- |
| The **Void invoice** item is missing                       | Already void, or you lack `invoice.manage` | Check the status and your capability    |
| The confirm button stays disabled                          | The typed number does not match            | Copy the number exactly from the modal  |
| "This invoice has already moved on since the page loaded." | Someone else voided or paid it             | Reload the invoice                      |
| Released time is not in the picker                         | The client or project filter excludes it   | Widen the filter and reload the builder |

## Access and plans

| Symptom                                             | Cause                                          | Fix                                           |
| --------------------------------------------------- | ---------------------------------------------- | --------------------------------------------- |
| **Invoices** is missing from the sidebar            | The app is off, or you lack `invoice.manage`   | Check **Settings** → **Apps**, then your role |
| An upgrade prompt on the builder                    | Your plan lacks `invoicing`                    | Upgrade to Pro                                |
| An upgrade prompt on payments                       | Your plan lacks `payments`                     | Upgrade to Pro                                |
| The invoice page shows *"This invoice is gone"*     | It was removed, or it is not in your workspace | Go back to the invoice list                   |
| You can open the list but not one client's invoices | Your supervision scope excludes that client    | Ask an Owner or Admin                         |

## Numbers that look wrong

| Symptom                                        | Likely cause                                                 | Where to look                                                                |
| ---------------------------------------------- | ------------------------------------------------------------ | ---------------------------------------------------------------------------- |
| A line's rate is `0.00`                        | The entry had no billable rate when it was recorded          | [/rates/how-rates-are-chosen](/rates/how-rates-are-chosen)                   |
| The invoice total does not match today's rates | The invoice snapshotted its own totals                       | [/rates/rate-snapshots](/rates/rate-snapshots)                               |
| Tax is lower than expected                     | Tax applies after the discount                               | [/invoicing/taxes-and-currency](/invoicing/taxes-and-currency)               |
| Two taxes do not stack                         | Taxes never compound                                         | [/invoicing/taxes-and-currency](/invoicing/taxes-and-currency)               |
| The balance did not reach zero                 | A payment, credit note or write-off is missing               | The totals block on the invoice                                              |
| The status did not change after a payment      | The ledger still leaves a balance                            | [/invoicing/invoice-statuses](/invoicing/invoice-statuses)                   |
| An hour is missing from the invoice            | It is non-billable, unapproved, already invoiced, or trashed | [/invoicing/invoice-from-tracked-time](/invoicing/invoice-from-tracked-time) |

## Still stuck

<Steps>
  <Step title="Reload the invoice">
    Most "already moved on" messages clear with a reload.
  </Step>

  <Step title="Check the status">
    Half of all invoicing questions come down to the invoice not being in the status you thought. See [/invoicing/invoice-statuses](/invoicing/invoice-statuses).
  </Step>

  <Step title="Check the capability">
    Missing buttons almost always mean a missing capability. See [/invoicing/invoice-permissions](/invoicing/invoice-permissions).
  </Step>

  <Step title="Check the app and the plan">
    A hidden page is an app switch. An upgrade prompt is a plan gate.
  </Step>
</Steps>

## Related guides

<CardGroup cols={2}>
  <Card title="Invoice statuses" icon="signal" href="/invoicing/invoice-statuses">
    What each status allows.
  </Card>

  <Card title="Invoice permissions" icon="file-shield" href="/invoicing/invoice-permissions">
    Why a button is missing.
  </Card>

  <Card title="Invoice from tracked time" icon="clock" href="/invoicing/invoice-from-tracked-time">
    Why time is not in the picker.
  </Card>

  <Card title="Taxes and currency" icon="percent" href="/invoicing/taxes-and-currency">
    Why a total looks wrong.
  </Card>

  <Card title="How rates are chosen" icon="list-ordered" href="/rates/how-rates-are-chosen">
    Why a rate looks wrong.
  </Card>

  <Card title="Invoicing overview" icon="file-invoice" href="/invoicing/overview">
    Back to the start.
  </Card>
</CardGroup>
