View as Markdown
Clockify icon

Clockify ACTION

Update Invoice

Updates an existing invoice in a Clockify workspace. Clockify's update endpoint replaces the entire invoice, so this action first fetches the current invoice and merges your changes into it — fields you don't set are left unchanged, including the invoice's tax and discount percentages, which this action preserves but cannot edit. Status is applied through a separate endpoint, so it is sent as a second request after the field changes are saved, and setting it alone skips the replace entirely. Clockify offers no transaction across the two endpoints: if the status request fails, the field changes have already been applied. Line items and imported time cannot be set through Clockify's public API. Use List Invoices to find the ID of the invoice to update. See the documentation and the status endpoint
  • Action
  • Writes data
  • API key
  • SDK
  • MCP

IMPLEMENTATION

Call this tool

Connect a user's Clockify 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: "clockify-update-invoice",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    clockify: { authProvisionId: "apn_xxxxxxx" },
    workspaceId: "Workspace",
    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
workspaceId Workspace string
Identifier of a workspace
Required Dynamic
invoiceId Invoice ID string
Identifier of an invoice. Use the List Invoices action to find it, and pass the id field from that response — e.g. 6a72db27a231b34fe8361aebnot the human-readable invoice number such as INV-001. Passing the invoice number fails with a misleading Invoice doesn't belong to Workspace error.
Required
clientId Client string
Identifier of a client
Optional Dynamic
number Number string
New invoice number. Example: INV-001
Optional
issuedDate Issue Date string
New issue date of the invoice, in ISO 8601 format. Example: 2026-08-05T00:00:00Z
Optional
dueDate Due Date string
New due date of the invoice, in ISO 8601 format. Example: 2026-09-05T00:00:00Z
Optional
currency Currency string
New currency of the invoice. Example: USD
Optional
subject Subject string
New subject line for the invoice. Example: Consulting services, August 2026
Optional
note Note string
New note for the invoice, e.g. a summary of the billing period or hours covered. Set to an empty string to clear the existing note
Optional
status Status string
New status of the invoice. Clockify applies this through a dedicated status endpoint rather than the update endpoint, so it is sent as a separate request after the other field changes are saved. If it fails, those field changes have already been applied
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
clockify-update-invoice
Version
0.0.2
App
Clockify
Authentication
API key
Read-only
No
Destructive
No
Open world
Yes