Clockify Invoice API
The Invoice API from Clockify — 12 operation(s) for invoice.
The Invoice API from Clockify — 12 operation(s) for invoice.
openapi: 3.0.1
info:
description: "## Introduction\nBy using this REST API, you can easily integrate Clockify with your own add-ons, push and pull data\nbetween Clockify and other tools, and create custom add-ons on [CAKE.com Marketplace](https://marketplace.cake.com).\nWhether you’re looking to automate time tracking, generate custom reports, or build other custom\nintegrations, our API provides the flexibility and power you need to get the job done. If you\nhave any questions or run into any issues while using our API, don’t hesitate to reach out to us for help.\nYou can also post questions on Stack Overflow with the Clockify tag to get help from the community.\n## Authentication\nTo authenticate your requests to your API, make sure to include either the ‘X-Api-Key’ or the\n‘X-Addon-Token’ in the request header, containing your API or Addon key. If your workspace is\non a subdomain (e.g. subdomain.clockify.me), you’ll need to generate a new API key in your\nProfile Settings that will work specifically for that workspace. This ensures that you’re\naccessing data from the correct workspace and helps maintain the security of your data.\n## Webhooks\nWebhooks can enhance your workflow by keeping your add-on up-to-date with the latest changes in\nClockify. With Clockify’s webhooks you can receive real-time notifications when certain events such as\nstarting a timer or deleting a time entry occur in Clockify.\nDepending on the workspace plan, workspace owners and admins can create:\n\n* Up to 3 webhooks on **FREE** plan\n* Up to 10 webhooks per user, with a total of 100 webhooks per entire workspace\non **BASIC**, **STANDARD** and **PRO** plans\n* Up to 100 webhooks per user, with a total of 300 webhooks per entire workspace on **ENTERPRISE** plan\n\n## Rate limiting\nOur REST API has a specific rate limit of 50 requests per second (by addon on one workspace) when\naccessed using X-Addon-Token. Exceeding this limit will result in an error message with the description\n\"Too many requests\".\n## Pagination\nOur REST API supports pagination for all synchronous GET endpoints that retrieve lists of entities.\nWhen an endpoint accepts the `page` and `pageSize` query parameters, it will return a paginated response.\n\nTo control the data returned in a paginated request, you can use the following optional query parameters.\n\n- **page** (integer): The page number you wish to retrieve. This is 1-indexed. If this parameter is omitted,\nthe API will default to the first page (page=1).\n- **pageSize** (integer): The number of items to include on each page. If this parameter is omitted,\na default page size will be used.\n\nEvery response from an endpoint that supports these parameters will include a custom `Last-Page` header.\nThis header provides a simple way to determine if you have reached the end of the data set.\n\n- **true:** The current page is the final page; no more data is available.\n- **false:** Additional pages can be fetched.\n## API URLs\nRefer to the list on what URL to use base on the subdomain and data region settings of your workspace.\n* Global - can be used by workspaces with or without subdomain.\n * Regular: https://api.clockify.me/api/v1/file/image\n * Reports: https://reports.api.clockify.me/v1/workspaces/{workspaceId}/reports/detailed\n* Regional\n * Non-subdomain\n * Regular: https://euc1.clockify.me/api/v1/file/image\n * Reports: https://use2.clockify.me/report/v1/workspaces/{workspaceId}/reports/detailed\n * Subdomain\n * Regular: https://euc1.clockify.me/api/v1/file/image\n * Reports: https://yoursubdomainname.clockify.me/report/v1/workspaces/{workspaceId}/reports/detailed\n* Developer\n * Regular: https://developer.clockify.me/api/v1/file/image\n * Reports: https://developer.clockify.me/report/v1/workspaces/{workspaceId}/reports/detailed\n## Regional Server Prefixes\nIf your workspace is in a specific region, you need to change your URL prefix to access v1 API endpoints.\nFor example, this is how **backend** api [v1/file/image](#tag/User/operation/uploadImage) endpoint\nwould look in EU region:\n[https://euc1.clockify.me/api/v1/file/image](https://euc1.clockify.me)\n\nBelow are the available regional server prefixes:\n* **EU (Germany)**: euc1\n* **USA**: use2\n* **UK**: euw2\n* **AU**: apse2\n\n\n## Breaking changes\nBreaking changes in APIs are modifications that disrupt existing integrations,\nrequiring users to update their applications to maintain functionality.\nThese changes can lead to failures or unexpected results if not addressed.\nSee the list of [breaking changes](breaking-changes/).\n\n## Experimental APIs\nThe experimental API has been thoroughly tested and is ready for use in production. However, please note that user feedback may lead to changes in the API’s structure or functionality. If you choose to use the experimental API, be prepared to modify your application code accordingly to accommodate any updates."
title: Clockify Approval Invoice API
version: v1
x-logo:
altText: Clockify logo
url: https://clockify.me/downloads/clockify_logo_primary_black_margin.png
tags:
- name: Invoice
x-displayName: Invoice
paths:
/v1/workspaces/{workspaceId}/invoices:
servers:
- url: https://api.clockify.me/api
get:
operationId: getInvoices
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Page number.
example: 1
in: query
name: page
required: false
schema:
type: integer
description: Page number.
format: int32
example: 1
default: 1
- description: Page size.
example: 50
in: query
name: page-size
required: false
schema:
minimum: 1
type: integer
description: Page size.
format: int32
example: 50
default: 50
- description: If provided, you'll get a filtered result of invoices that matches the provided string in the user ID linked to the expense.
example:
- UNSENT
- PAID
in: query
name: statuses
required: false
schema:
type: string
enum:
- UNSENT
- SENT
- PAID
- PARTIALLY_PAID
- VOID
- OVERDUE
- description: 'Valid column name as sorting criteria. Default: ID'
example: CLIENT
in: query
name: sort-column
required: false
schema:
type: string
enum:
- ID
- CLIENT
- DUE_ON
- ISSUE_DATE
- AMOUNT
- BALANCE
- description: 'Sort order. Default: ASCENDING'
example: ASCENDING
in: query
name: sort-order
required: false
schema:
type: string
enum:
- ASCENDING
- DESCENDING
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoicesListDtoV1'
description: OK
summary: Get all invoices on a workspace
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
post:
operationId: createInvoice
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceDtoV1'
description: Created
summary: Add an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/info:
servers:
- url: https://api.clockify.me/api
post:
operationId: getInvoicesInfo
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceFilterRequestV1'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceInfoResponseDtoV1'
description: OK
summary: Filter out invoices
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/settings:
servers:
- url: https://api.clockify.me/api
get:
operationId: getInvoiceSettings
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceSettingsDtoV1'
description: OK
summary: Get an invoice in another language
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
put:
operationId: updateInvoiceSettings
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInvoiceSettingsRequestV1'
required: true
responses:
'200':
description: OK
summary: Change an invoice language
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}:
servers:
- url: https://api.clockify.me/api
delete:
operationId: deleteInvoice
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
responses:
'200':
description: OK
summary: Delete an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
get:
operationId: getInvoice
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: OK
summary: Get an invoice by ID
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
put:
operationId: updateInvoice
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateInvoiceRequestV1'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: OK
summary: Update an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/duplicate:
servers:
- url: https://api.clockify.me/api
post:
operationId: duplicateInvoice
parameters:
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: Created
summary: Duplicate an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/export:
servers:
- url: https://api.clockify.me/api
get:
operationId: exportInvoice
parameters:
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents a locale.
example: en
in: query
name: userLocale
required: true
schema:
type: string
description: Represents a locale.
example: en
responses:
'200':
content:
'*/*':
schema:
type: string
format: byte
description: OK
summary: Export an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/items:
servers:
- url: https://api.clockify.me/api
post:
operationId: addInvoiceItem
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoiceItemRequestV1'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: OK
summary: Add item to an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/items/import:
servers:
- url: https://api.clockify.me/api
post:
operationId: importTimeEntriesAndExpenses
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ImportTimeEntriesAndExpensesRequestV1'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: OK
summary: Import time entries and expenses to an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/items/{order}:
servers:
- url: https://api.clockify.me/api
delete:
operationId: removeInvoiceItem
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 83q687e29ae1f428e7ebe195
- description: Represents an invoice item order.
example: 3
in: path
name: order
required: true
schema:
minimum: 1
type: integer
description: Represents an invoice item order.
format: int32
example: 3
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: OK
summary: Delete item from an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments:
servers:
- url: https://api.clockify.me/api
get:
operationId: getPaymentsForInvoice
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
- description: Page number.
example: 1
in: query
name: page
required: false
schema:
type: integer
description: Page number.
format: int32
example: 1
default: 1
- description: Page size.
example: 50
in: query
name: page-size
required: false
schema:
minimum: 1
type: integer
description: Page size.
format: int32
example: 50
default: 50
responses:
'200':
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/InvoicePaymentDtoV1'
description: OK
summary: Get payments for an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
post:
operationId: createInvoicePayment
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateInvoicePaymentRequest'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: Created
summary: Add payment to an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/payments/{paymentId}:
servers:
- url: https://api.clockify.me/api
delete:
operationId: deletePaymentById
parameters:
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents a payment identifier across the system.
example: 56p687e29ae1f428e7ebe456
in: path
name: paymentId
required: true
schema:
type: string
description: Represents a payment identifier across the system.
example: 56p687e29ae1f428e7ebe456
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/InvoiceOverviewDtoV1'
description: OK
summary: Delete payment from an invoice
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
/v1/workspaces/{workspaceId}/invoices/{invoiceId}/status:
servers:
- url: https://api.clockify.me/api
patch:
operationId: changeInvoiceStatus
parameters:
- description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
in: path
name: workspaceId
required: true
schema:
type: string
description: Represents a workspace identifier across the system.
example: 64a687e29ae1f428e7ebe303
- description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
in: path
name: invoiceId
required: true
schema:
type: string
description: Represents an invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ChangeInvoiceStatusRequestV1'
required: true
responses:
'200':
description: OK
summary: Change an invoice status
tags:
- Invoice
security:
- ApiKeyAuth: []
- AddonKeyAuth: []
components:
schemas:
InvoiceInfoV1:
type: object
properties:
amount:
type: integer
description: Represents an invoice amount as long.
format: int64
example: 100
balance:
type: integer
description: Represents an invoice balance amount as long.
format: int64
example: 50
billFrom:
type: string
description: Represents to whom an invoice is billed from.
example: Company XYZ
clientId:
type: string
description: Represents client identifier across the system.
example: 98h687e29ae1f428e7ebe707
clientName:
type: string
description: Represents client name for an invoice.
example: Client X
currency:
type: string
description: Represents the currency used by the invoice.
example: USD
daysOverdue:
type: integer
description: Represents the number of days an invoice is overdue.
format: int64
example: 10
dueDate:
type: string
description: Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.
format: date-time
example: '2020-06-01T08:00:00Z'
id:
type: string
description: Represents invoice identifier across the system.
example: 78a687e29ae1f428e7ebe303
issuedDate:
type: string
description: Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.
format: date-time
example: '2020-01-01T08:00:00Z'
number:
type: string
description: Represents an invoice number.
example: '202306121129'
paid:
type: integer
description: Represents an invoice paid amount as long.
format: int64
example: 50
status:
type: string
description: Represents the status of an invoice.
example: PAID
enum:
- UNSENT
- SENT
- PAID
- PARTIALLY_PAID
- VOID
- OVERDUE
visibleZeroFields:
$ref: '#/components/schemas/VisibleZeroFieldsInvoice'
description: Represents a list of invoice info.
TaxType:
type: object
description: Represents an invoice taxation type.
example: SIMPLE
oneOf:
- type: string
enum:
- COMPOUND
- SIMPLE
- NONE
properties:
COMPOUND:
type: string
enum:
- COMPOUND
- SIMPLE
- NONE
NONE:
type: string
enum:
- COMPOUND
- SIMPLE
- NONE
SIMPLE:
type: string
enum:
- COMPOUND
- SIMPLE
- NONE
value:
type: string
BaseFilterRequest:
type: object
properties:
contains:
type: string
description: Filter type.
example: CONTAINS
enum:
- CONTAINS
- DOES_NOT_CONTAIN
- CONTAINS_ONLY
ids:
uniqueItems: true
type: array
description: Represents a list of filter identifiers.
example:
- 5a0ab5acb07987125438b60f
- 64c777ddd3fcab07cfbb210c
items:
type: string
description: Represents a list of filter identifiers.
example: '["5a0ab5acb07987125438b60f","64c777ddd3fcab07cfbb210c"]'
description: Represents a company filter object. If provided, you'll get a filtered list of invoices that matches the specified company filter.
UpdateInvoiceRequestV1:
required:
- currency
- discountPercent
- dueDate
- issuedDate
- number
- tax2Percent
- taxPercent
type: object
properties:
clientId:
type: string
description: Represents client identifier across the system.
example: 98h687e29ae1f428e7ebe707
companyId:
type: string
description: Represents company identifier across the system.
example: 04g687e29ae1f428e7ebe123
currency:
maxLength: 100
minLength: 1
type: string
description: Represents the currency used by the invoice.
example: USD
discountPercent:
type: number
description: Represents an invoice discount percent as double.
format: double
example: 1.5
dueDate:
type: string
description: Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.
format: date-time
example: '2020-06-01T08:00:00Z'
issuedDate:
type: string
description: Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.
format: date-time
example: '2020-01-01T08:00:00Z'
note:
type: string
description: Represents an invoice note.
example: This is a sample note for this invoice.
number:
minLength: 1
type: string
description: Represents an invoice number.
example: '202306121129'
subject:
type: string
description: Represents an invoice subject.
example: January salary
tax2Percent:
type: number
description: Represents an invoice tax 2 percent as double.
format: double
example: 0
taxPercent:
type: number
description: Represents an invoice tax per
# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/clockify/refs/heads/main/openapi/clockify-invoice-api-openapi.yml