---
title: "Invoices with due dates, payments and EUR"
method: GET
path: "/api/v1/invoices"
---

# Invoices with due dates, payments and EUR

`GET /api/v1/invoices`

## Request

- Base URL: `https://tallymeter.com`
- URL: `https://tallymeter.com/api/v1/invoices`
- Auth: HTTP bearer

The workspace's invoices, newest first, with totals. EUR: `total_amount_eur` when it was recorded at issue, `payment_amount_eur` when the EUR received was recorded, otherwise `eur_estimate` at the ECB reference rate (an unpaid invoice at the latest rate, a paid one at the rate of the day it was paid; never stored). `eur_estimates_error` says when the rates did not load. Requires the `invoices:read` scope and a token of the workspace owner (403 for a member, like the Invoices page).

## Query parameters

- `status` 'paid' | 'unpaid' | 'overdue'
- `from` string, date
- `to` string, date

## Response `200`

Invoices and their totals

- object
  - `invoices` object[], required
    - `invoice_number` string
    - `client_name` string
    - `invoice_date` string, date
    - `period_start` string, date
    - `period_end` string, date
    - `due_date` string, date
    - `days_until_due` integer, nullable: whole days from today in the owner's timezone: 0 due today, negative overdue, null once paid
    - `total_hours` number
    - `hourly_rate` number
    - `total_amount_usd` number
    - `total_amount_eur` number, nullable: EUR recorded at issue
    - `eur_estimate` object, nullable: set only when total_amount_eur is null and the rates loaded
      - `eur` number
      - `rate` number
      - `rate_date` string, date
    - `payment_amount_eur` number, nullable: EUR received, when recorded
    - `is_paid` boolean
    - `paid_at` string, date, nullable
  - `totals` object, required
    - `count` integer
    - `amount_usd` number
    - `paid_usd` number
    - `unpaid_usd` number
    - `overdue_count` integer
    - `overdue_usd` number
  - `eur_estimates_error` string, nullable, required

## Other responses

- `401`: Missing or invalid token
- `403`: Token lacks the required scope, or the account has no active plan
- `422`: Validation failed

---

[API](https://skmtc.dev/tallymeter/apis/tallymeter-api.md) · [All operations](https://skmtc.dev/tallymeter/apis/tallymeter-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tallymeter/apis/tallymeter-api/revisions/50044367b64e?raw)
