---
title: "Update an invoice"
method: PUT
path: "/invoices/{id}"
tags: ["Invoices"]
---

# Update an invoice

`PUT /invoices/{id}`

Updates an existing invoice

## Path parameters

- `id` integer, required

## Request body

- object
  - `client_id` integer
  - `project_id` integer
  - `document_id` string
  - `issue_date` string, date
  - `due_date` string, date
  - `status` string
  - `discount` number
  - `shipping` number
  - `line_items` object[]

## Response `200`

Invoice updated

- Invoice — Invoice resource
  - `id` integer
  - `client_id` integer, nullable
  - `project_id` integer, nullable
  - `uuid` string, uuid
  - `document_id` string
  - `po_number` string, nullable
  - `subject` string, nullable
  - `issue_date` string, date
  - `payment_due` integer — Days until payment due
  - `due_date` string, date
  - `status` 'draft' | 'sent' | 'viewed' | 'partial' | 'paid' | 'processing'
  - `shipping` number
  - `discount` number
  - `total` number
  - `amount_paid` number
  - `amount_due` number
  - `outstanding` number
  - `company_name` string, nullable
  - `address` string, nullable
  - `email` string, email, nullable
  - `phone` string, nullable
  - `note` string, nullable
  - `send_at` string, date-time, nullable
  - `auto_billing` boolean
  - `online_payment` boolean
  - `accept_ach` boolean
  - `hide_qty_price_columns` boolean
  - `automatically_send_payment_reminders` boolean
  - `created_at` string, date-time

## Other responses

- `401` — Unauthenticated
- `403` — Forbidden
- `404` — Not found

---

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