View as Markdown
Harvest icon

Harvest ACTION

Update Invoice

Update an existing invoice. Use List Invoices to find a valid ID. Example: call with invoiceId set to a draft invoice's ID and subject set to a new value to revise it before sending. See the documentation.
  • Action
  • Writes data
  • OAuth
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Harvest account once, then configure and run Update Invoice from your backend or agent.

import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "harvest-update-invoice",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    harvest: { authProvisionId: "apn_xxxxxxx" },
    accountId: "Account ID",
    invoiceId: "Invoice ID",
  },
})

console.log(result)

SCHEMA

Inputs

Pipedream supplies the connected account. Your application provides the operation-specific values below. Dynamic inputs are resolved against that user's account.

Update Invoice inputs
Property Type Description
accountId Account ID string
Your Harvest account ID, e.g. 1234567. Run List Account ID Options to find it.
Required
invoiceId Invoice ID string
Free-form invoice ID, e.g. 13150403. Run List Invoices first to find valid IDs.
Required
clientId Client ID string
Free-form client ID, e.g. 5735776. Run List Clients first to find valid IDs.
Optional
subject Subject string
The invoice subject. Run Get Invoice to see the current subject.
Optional
number Number string
The invoice number, e.g. 1000. Run Get Invoice to see the current number.
Optional
purchaseOrder Purchase Order string
The purchase order number, e.g. PO-1234. Run Get Invoice to see the current value.
Optional
tax Tax string
First tax rate percentage, decimal, e.g. 5.5 for 5.5%. Run Get Invoice to see the current rate.
Optional
discount Discount string
Discount percentage, decimal, e.g. 10 for 10%. Run Get Invoice to see the current discount.
Optional
notes Notes string
Notes about the invoice. Run Get Invoice to see any existing notes.
Optional
issueDate Issue Date string
Issue date, YYYY-MM-DD, e.g. 2026-09-01. Run Get Invoice to see the current issue date.
Optional
dueDate Due Date string
Due date, YYYY-MM-DD, e.g. 2026-09-30. Run Get Invoice to see the current due date.
Optional
lineItems Line Items string
JSON array of line item objects. Omit id to add a new line item, e.g. [{"kind":"Service","description":"Consulting","unit_price":100,"quantity":5}]. Include an existing line item's id (from the invoice's line_items in a prior response, e.g. from Get Invoice) plus any fields to change, e.g. [{"id":53341928,"description":"Consulting Phase 2","unit_price":150}], to update it. Include that id with _destroy set to true, e.g. [{"id":53341928,"_destroy":true}], to delete it.
Optional

REFERENCE

Tool details

Behavior hints are published with the component in the Pipedream registry and surface as MCP tool annotations, so an agent can reason about a tool before it calls it.

Registry key
harvest-update-invoice
Version
0.0.1
App
Harvest
Authentication
OAuth
Read-only
No
Destructive
No
Open world
Yes