Invoices
The invoice object
Attribute | Type | Description |
---|---|---|
id |
integer | Unique ID for the invoice. |
client |
object | An object containing invoice’s client id and name. |
line_items |
array | Array ofinvoice line items。 |
estimate |
object | An object containing the associated estimate’s id. |
retainer |
object | An object containing the associated retainer’s id. |
creator |
object | An object containing the id and name of the person that created the invoice. |
client_key |
string | Used to build a URL to the public web invoice for your client by adding/client/invoices/{CLIENT_KEY} to your account URLhttps://{SUBDOMAIN}.harvestapp.com/ Note: you can also add。pdf to the end of this URL to access a PDF version of the invoice. |
number |
string | 如果没有value is set, the number will be automatically generated. |
purchase_order |
string | The purchase order number. |
amount |
decimal | The total amount for the invoice, including any discounts and taxes. |
due_amount |
decimal | The total amount due at this time for this invoice. |
tax |
decimal | This percentage is applied to the subtotal, including line items and discounts. |
tax_amount |
decimal | The first amount of tax included, calculated fromtax 。如果没有tax 定义,该值将be null. |
tax2 |
decimal | This percentage is applied to the subtotal, including line items and discounts. |
tax2_amount |
decimal | The amount calculated fromtax2 。 |
discount |
decimal | This percentage is subtracted from the subtotal. |
discount_amount |
decimal | The amount calculated fromdiscount 。 |
subject |
string | The invoice subject. |
notes |
string | Any additional notes included on the invoice. |
currency |
string | The currency code associated with this invoice. |
state |
string | The current state of the invoice:draft ,open ,paid , orclosed 。 |
period_start |
date | Start of the period during which time entries were added to this invoice. |
period_end |
date | End of the period during which time entries were added to this invoice. |
issue_date |
date | Date the invoice was issued. |
due_date |
date | Date the invoice is due. |
payment_term |
string | The timeframe in which the invoice should be paid. Options:upon receipt ,net 15 ,net 30 ,net 45 ,net 60 , orcustom 。 |
sent_at |
datetime | Date and time the invoice was sent. |
paid_at |
datetime | Date and time the invoice was paid. |
paid_date |
date | Date the invoice was paid. |
closed_at |
datetime | Date and time the invoice was closed. |
recurring_invoice_id |
integer | Unique ID of the associated recurring invoice. |
created_at |
datetime | Date and time the invoice was created. |
updated_at |
datetime | 最后一次更新发票的日期和时间。 |
The invoice line item object
Attribute | Type | Description |
---|---|---|
id |
integer | Unique ID for the line item. |
project |
object | An object containing the associated project’s id, name, and code. |
kind |
string | The name of an发票项目类别。 |
description |
string | Text description of the line item. |
quantity |
decimal | The unit quantity of the item. |
unit_price |
decimal | The individual price per unit. |
amount |
decimal | The line item subtotal (quantity *unit_price ). |
taxed |
boolean | Whether the invoice’stax percentage applies to this line item. |
taxed2 |
boolean | Whether the invoice’stax2 percentage applies to this line item. |
Required permissions
You must be an Administrator or Manager with permission to create and edit invoices in order to interact with the/v2/invoices
endpoint. Insufficient permissions will result in a403 Forbidden
status code.
List all invoices
Returns a list of your invoices. The invoices are returned sorted by issue date, with the most recently issued invoices appearing first.
The response contains an object with ainvoices
property that contains an array of up toper_page
invoices. Each entry in the array is a separate invoice object. If no more invoices are available, the resulting array will be empty. Several additional pagination properties are included in the response to simplify paginating your invoices.
GET /v2/invoices
Parameter | Type | Description |
---|---|---|
client_id |
integer | Only return invoices belonging to the client with the given ID. |
project_id |
integer | Only return invoices associated with the project with the given ID. |
updated_since |
datetime | Only return invoices that have been updated since the given date and time. |
from |
date | Only return invoices with anissue_date on or after the given date. |
to |
date | Only return invoices with anissue_date on or before the given date. |
state |
string | Only return invoices with astate matching the value provided. Options:draft ,open ,paid , orclosed 。 |
page |
integer | The page number to use in pagination. For instance, if you make a list request and receive 2000 records, your subsequent call can includepage=2 to retrieve the next page of the list. (Default: 1) |
per_page |
integer | The number of records to return per page. Can range between 1 and 2000. (Default: 2000) |
Example Request:
curl "https://api.harvestapp.com/v2/invoices" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-Id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)"
Example Response:
{"invoices":[{"id":13150403,"client_key":"21312da13d457947a217da6775477afee8c2eba8","number":"1001","purchase_order":"","amount":288.9,"due_amount":288.9,"tax":5,"tax_amount":13.5,"tax2":2,"tax2_amount":5.4,"discount":10,"discount_amount":30,"subject":"Online Store - Phase 1","notes":"Some notes about the invoice.","state":"open","period_start":"2017-03-01","period_end":"2017-03-01","issue_date":"2017-04-01","due_date":"2017-04-01","payment_term":"upon receipt","sent_at":"2017-08-23T22:25:59Z","paid_at":null,"paid_date":null,"closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:27:16Z","updated_at":"2017-08-23T22:25:59Z","currency":"EUR","client":{"id":5735776,"name":"123 Industries"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341602,"kind":"Service","description":"03/01/2017 - Project Management: [9:00am - 11:00am] Planning meetings","quantity":2,"unit_price":100,"amount":200,"taxed":true,"taxed2":true,"project":{"id":14308069,"name":"Online Store - Phase 1","code":"OS1"}},{"id":53341603,"kind":"Service","description":"03/01/2017 - Programming: [1:00pm - 2:00pm] Importing products","quantity":1,"unit_price":100,"amount":100,"taxed":true,"taxed2":true,"project":{"id":14308069,"name":"Online Store - Phase 1","code":"OS1"}}]},{"id":13150378,"client_key":"9e97f4a65c5b83b1fc02f54e5a41c9dc7d458542","number":"1000","purchase_order":"1234","amount":10700.0,"due_amount":0.0,"tax":5.0,"tax_amount":500.0,"tax2":2.0,"tax2_amount":200.0,"discount":null,"discount_amount":0.0,"subject":"Online Store - Phase 1","notes":"Some notes about the invoice.","state":"paid","period_start":null,"period_end":null,"issue_date":"2017-02-01","due_date":"2017-03-03","payment_term":"custom","sent_at":"2017-02-01T07:00:00Z","paid_at":"2017-02-21T00:00:00Z","paid_date":"2017-02-21","closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:24:30Z","updated_at":"2017-06-27T16:24:57Z","currency":"USD","client":{"id":5735776,"name":"123 Industries"},"estimate":{"id":1439814},"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341450,"kind":"Service","description":"50% of Phase 1 of the Online Store","quantity":100.0,"unit_price":100.0,"amount":10000.0,"taxed":true,"taxed2":true,"project":{"id":14308069,"name":"Online Store - Phase 1","code":"OS1"}}]}],"per_page":2000,"total_pages":1,"total_entries":2,"next_page":null,"previous_page":null,"page":1,"links":{"first":"https://api.harvestapp.com/v2/invoices?page=1&per_page=2000","next":null,"previous":null,"last":"https://api.harvestapp.com/v2/invoices?page=1&per_page=2000"}}
Retrieve an invoice
Retrieves the invoice with the given ID. Returns an invoice object and a200 OK
response code if a valid identifier was provided.
GET /v2/invoices/{INVOICE_ID}
Example Request:
curl "https://api.harvestapp.com/v2/invoices/13150378" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-Id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)"
Example Response:
{"id":13150378,"client_key":"9e97f4a65c5b83b1fc02f54e5a41c9dc7d458542","number":"1000","purchase_order":"1234","amount":10700.0,"due_amount":0.0,"tax":5.0,"tax_amount":500.0,"tax2":2.0,"tax2_amount":200.0,"discount":null,"discount_amount":0.0,"subject":"Online Store - Phase 1","notes":"Some notes about the invoice.","state":"paid","period_start":null,"period_end":null,"issue_date":"2017-02-01","due_date":"2017-03-03","payment_term":"custom","sent_at":"2017-02-01T07:00:00Z","paid_at":"2017-02-21T00:00:00Z","paid_date":"2017-02-21","closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:24:30Z","updated_at":"2017-06-27T16:24:57Z","currency":"USD","client":{"id":5735776,"name":"123 Industries"},"estimate":{"id":1439814},"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341450,"kind":"Service","description":"50% of Phase 1 of the Online Store","quantity":100.0,"unit_price":100.0,"amount":10000.0,"taxed":true,"taxed2":true,"project":{"id":14308069,"name":"Online Store - Phase 1","code":"OS1"}}]}
Create a free-form invoice
Creates a new invoice object. Returns an invoice object and a201 Created
response code if the call succeeded.
POST /v2/invoices
Parameter | Type | Required | Description |
---|---|---|---|
client_id |
integer | required | The ID of the client this invoice belongs to. |
retainer_id |
integer | optional | The ID of the retainer associated with this invoice. |
estimate_id |
integer | optional | The ID of the estimate associated with this invoice. |
number |
string | optional | 如果没有value is set, the number will be automatically generated. |
purchase_order |
string | optional | The purchase order number. |
tax |
decimal | optional | This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%. |
tax2 |
decimal | optional | This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%. |
discount |
decimal | optional | This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%. |
subject |
string | optional | The invoice subject. |
notes |
string | optional | Any additional notes to include on the invoice. |
currency |
string | optional | The currency used by the invoice. If not provided, the client’s currency will be used. See a list ofsupported currencies |
issue_date |
date | optional | Date the invoice was issued. Defaults to today’s date. |
due_date |
date | optional | Date the invoice is due. Defaults to theissue_date if nopayment_term is specified. To set a customdue_date thepayment_term must also be set tocustom , otherwise the value supplied in the request fordue_date will be ignored and thedue_date will be calculated using theissue_date and thepayment_term 。 |
payment_term |
string | optional | The timeframe in which the invoice should be paid. Defaults tocustom 。Options:upon receipt ,net 15 ,net 30 ,net 45 ,net 60 , orcustom 。 |
line_items |
array | optional | Array of line item parameters |
Line Item Parameter | Type | Required | Description |
---|---|---|---|
project_id |
integer | optional | The ID of the project associated with this line item. |
kind |
string | required | The name of an发票项目类别。 |
description |
string | optional | Text description of the line item. |
quantity |
decimal | optional | The unit quantity of the item. Defaults to1 。 |
unit_price |
decimal | required | The individual price per unit. |
taxed |
boolean | optional | Whether the invoice’stax percentage applies to this line item. Defaults tofalse 。 |
taxed2 |
boolean | optional | Whether the invoice’stax2 percentage applies to this line item. Defaults tofalse 。 |
Example Request:
curl "https://api.harvestapp.com/v2/invoices" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-Id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X POST \ -H "Content-Type: application/json" \ -d '{"client_id":5735774,"subject":"ABC Project Quote","due_date":"2017-07-27","line_items":[{"kind":"Service","description":"ABC Project","unit_price":5000.0}]}'
Example Response:
{"id":13150453,"client_key":"8b86437630b6c260c1bfa289f0154960f83b606d","number":"1002","purchase_order":null,"amount":5000.0,"due_amount":5000.0,"tax":null,"tax_amount":0.0,"tax2":null,"tax2_amount":0.0,"discount":null,"discount_amount":0.0,"subject":"ABC Project Quote","notes":null,"state":"draft","period_start":null,"period_end":null,"issue_date":"2017-06-27","due_date":"2017-07-27","payment_term":"custom","sent_at":null,"paid_at":null,"paid_date":null,"closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:34:24Z","updated_at":"2017-06-27T16:34:24Z","currency":"USD","client":{"id":5735774,"name":"ABC Corp"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341928,"kind":"Service","description":"ABC Project","quantity":1.0,"unit_price":5000.0,"amount":5000.0,"taxed":false,"taxed2":false,"project":null}]}
Create an invoice based on tracked time and expenses
Creates a new invoice object. Returns an invoice object and a201 Created
response code if the call succeeded.
POST /v2/invoices
Parameter | Type | Required | Description |
---|---|---|---|
client_id |
integer | required | The ID of the client this invoice belongs to. |
retainer_id |
integer | optional | The ID of the retainer associated with this invoice. |
estimate_id |
integer | optional | The ID of the estimate associated with this invoice. |
number |
string | optional | 如果没有value is set, the number will be automatically generated. |
purchase_order |
string | optional | The purchase order number. |
tax |
decimal | optional | This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%. |
tax2 |
decimal | optional | This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%. |
discount |
decimal | optional | This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%. |
subject |
string | optional | The invoice subject. |
notes |
string | optional | Any additional notes to include on the invoice. |
currency |
string | optional | The currency used by the invoice. If not provided, the client’s currency will be used. See a list ofsupported currencies |
issue_date |
date | optional | Date the invoice was issued. Defaults to today’s date. |
due_date |
date | optional | Date the invoice is due. Defaults to theissue_date if nopayment_term is specified. To set a customdue_date thepayment_term must also be set tocustom , otherwise the value supplied in the request fordue_date will be ignored and thedue_date will be calculated using theissue_date and thepayment_term 。 |
payment_term |
string | optional | The timeframe in which the invoice should be paid. Defaults tocustom 。Options:upon receipt ,net 15 ,net 30 ,net 45 ,net 60 , orcustom 。 |
line_items_import |
object | optional | An line items import object |
Line Items Import Parameter | Type | Required | Description |
---|---|---|---|
project_ids |
array | required | An array of the client’s project IDs you’d like to include time/expenses from. |
time |
object | optional | A time import object. |
expenses |
object | optional | An expense import object. |
Time Import Parameter | Type | Required | Description |
---|---|---|---|
summary_type |
string | required | How to summarize the time entries per line item. Options:project ,task ,people , ordetailed 。 |
from |
date | optional | Start date for included time entries. Must be provided ifto is present. If neitherfrom orto are provided, all unbilled time entries will be included. |
to |
date | optional | End date for included time entries. Must be provided iffrom is present. If neitherfrom orto are provided, all unbilled time entries will be included. |
Expense Import Parameter | Type | Required | Description |
---|---|---|---|
summary_type |
string | required | How to summarize the expenses per line item. Options:project ,category ,people , ordetailed 。 |
from |
date | optional | Start date for included expenses. Must be provided ifto is present. If neitherfrom orto are provided, all unbilled expenses will be included. |
to |
date | optional | End date for included expenses. Must be provided iffrom is present. If neitherfrom orto are provided, all unbilled expenses will be included. |
attach_receipts |
boolean | optional | If set totrue , a PDF containing an expense report with receipts will be attached to the invoice. Defaults tofalse 。 |
Example Request:
curl "https://api.harvestapp.com/v2/invoices" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-Id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X POST \ -H "Content-Type: application/json" \ -d '{"client_id":5735774,"subject":"ABC Project Quote","payment_term":"upon receipt","line_items_import":{"project_ids":[14307913],"time":{"summary_type":"task","from":"2017-03-01","to":"2017-03-31"},"expenses":{"summary_type":"category"}}}'
Example Response:
{"id":15340591,"client_key":"16173155e0a01542b8c7f689888cb3eaeda0dc94","number":"1002","purchase_order":"","amount":333.35,"due_amount":333.35,"tax":null,"tax_amount":0.0,"tax2":null,"tax2_amount":0.0,"discount":null,"discount_amount":0.0,"subject":"ABC Project Quote","notes":"","state":"draft","period_start":"2017-03-01","period_end":"2017-03-31","issue_date":“2018 - 02-12","due_date":“2018 - 02-12","payment_term":"upon receipt","sent_at":null,"paid_at":null,"closed_at":null,"recurring_invoice_id":null,"created_at":“2018 - 02-12T21:02:37Z","updated_at":“2018 - 02-12T21:02:37Z","paid_date":null,"currency":"USD","client":{"id":5735774,"name":"ABC Corp"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":64957723,"kind":"Service","description":"[MW] Marketing Website: Graphic Design (03/01/2017 - 03/31/2017)","quantity":2.0,"unit_price":100.0,"amount":200.0,"taxed":false,"taxed2":false,"project":{"id":14307913,"name":"Marketing Website","code":"MW"}},{"id":64957724,"kind":"Product","description":"[MW] Marketing Website: Meals ","quantity":1.0,"unit_price":133.35,"amount":133.35,"taxed":false,"taxed2":false,"project":{"id":14307913,"name":"Marketing Website","code":"MW"}}]}
Update an invoice
Updates the specific invoice by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Returns an invoice object and a200 OK
response code if the call succeeded.
PATCH /v2/invoices/{INVOICE_ID}
Parameter | Type | Description |
---|---|---|
client_id |
integer | The ID of the client this invoice belongs to. |
retainer_id |
integer | The ID of the retainer associated with this invoice. |
estimate_id |
integer | The ID of the estimate associated with this invoice. |
number |
string | 如果没有value is set, the number will be automatically generated. |
purchase_order |
string | The purchase order number. |
tax |
decimal | This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%. |
tax2 |
decimal | This percentage is applied to the subtotal, including line items and discounts. Example: use 10.0 for 10.0%. |
discount |
decimal | This percentage is subtracted from the subtotal. Example: use 10.0 for 10.0%. |
subject |
string | The invoice subject. |
notes |
string | Any additional notes to include on the invoice. |
currency |
string | The currency used by the invoice. If not provided, the client’s currency will be used. See a list ofsupported currencies |
issue_date |
date | Date the invoice was issued. |
due_date |
date | Date the invoice is due. |
payment_term |
string | The timeframe in which the invoice should be paid. Options:upon receipt ,net 15 ,net 30 ,net 45 , ornet 60 。 |
line_items |
array | Array of line item parameters |
Line Item Parameter | Type | Description |
---|---|---|
id |
integer | Unique ID for the line item. |
project_id |
integer | The ID of the project associated with this line item. |
kind |
string | The name of an发票项目类别。 |
description |
string | Text description of the line item. |
quantity |
decimal | The unit quantity of the item. Defaults to1 。 |
unit_price |
decimal | The individual price per unit. |
taxed |
boolean | Whether the invoice’stax percentage applies to this line item. Defaults tofalse 。 |
taxed2 |
boolean | Whether the invoice’stax2 percentage applies to this line item. Defaults tofalse 。 |
Example Request:
curl "https://api.harvestapp.com/v2/invoices/13150453" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-Id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X PATCH \ -H "Content-Type: application/json" \ -d '{"purchase_order":"2345"}'
Example Response:
{"id":13150453,"client_key":"8b86437630b6c260c1bfa289f0154960f83b606d","number":"1002","purchase_order":"2345","amount":5000.0,"due_amount":5000.0,"tax":null,"tax_amount":0.0,"tax2":null,"tax2_amount":0.0,"discount":null,"discount_amount":0.0,"subject":"ABC Project Quote","notes":null,"state":"draft","period_start":null,"period_end":null,"issue_date":"2017-06-27","due_date":"2017-07-27","payment_term":"custom","sent_at":null,"paid_at":null,"paid_date":null,"closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:34:24Z","updated_at":"2017-06-27T16:36:33Z","currency":"USD","client":{"id":5735774,"name":"ABC Corp"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341928,"kind":"Service","description":"ABC Project","quantity":1.0,"unit_price":5000.0,"amount":5000.0,"taxed":false,"taxed2":false,"project":null}]}
Create an invoice line item
Create a new line item on an invoice. Returns a200 OK
response code if the call succeeded.
Example Request:
curl "https://api.harvestapp.com/api/v2/invoices/13150403" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-ID: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X PATCH \ -H "Content-Type: application/json" \ -d '{"line_items":[{"kind":"Service","description":"DEF Project","unit_price":1000.0}]}'
Example Response:
{"id":13150453,"client_key":"8b86437630b6c260c1bfa289f0154960f83b606d","number":"1002","purchase_order":"2345","amount":6000.0,"due_amount":6000.0,"tax":null,"tax_amount":0.0,"tax2":null,"tax2_amount":0.0,"discount":null,"discount_amount":0.0,"subject":"ABC Project Quote","notes":null,"state":"draft","period_start":null,"period_end":null,"issue_date":"2017-06-27","due_date":"2017-07-27","payment_term":"custom","sent_at":null,"paid_at":null,"paid_date":null,"closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:34:24Z","updated_at":"2017-06-27T16:36:33Z","currency":"USD","client":{"id":5735774,"name":"ABC Corp"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341928,"kind":"Service","description":"ABC Project","quantity":1.0,"unit_price":5000.0,"amount":0.0,"taxed":false,"taxed2":false,"project":null},{"id":53341929,"kind":"Service","description":"DEF Project","quantity":1.0,"unit_price":1000.0,"amount":1000.0,"taxed":false,"taxed2":false,"project":null}]}
Update an invoice line item
Update an existing line item on an invoice. Returns a200 OK
response code if the call succeeded.
Example Request:
curl "https://api.harvestapp.com/api/v2/invoices/13150403" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-ID: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X PATCH \ -H "Content-Type: application/json" \ -d '{"line_items":{[{"id":53341928,"description":"ABC Project Phase 2","unit_price":5000.0}]}'
Example Response:
{"id":13150453,"client_key":"8b86437630b6c260c1bfa289f0154960f83b606d","number":"1002","purchase_order":"2345","amount":6000.0,"due_amount":6000.0,"tax":null,"tax_amount":0.0,"tax2":null,"tax2_amount":0.0,"discount":null,"discount_amount":0.0,"subject":"ABC Project Quote","notes":null,"state":"draft","period_start":null,"period_end":null,"issue_date":"2017-06-27","due_date":"2017-07-27","payment_term":"custom","sent_at":null,"paid_at":null,"paid_date":null,"closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:34:24Z","updated_at":"2017-06-27T16:36:33Z","currency":"USD","client":{"id":5735774,"name":"ABC Corp"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341928,"kind":"Service","description":"ABC Project Phase 2","quantity":1.0,"unit_price":5000.0,"amount":0.0,"taxed":false,"taxed2":false,"project":null},{"id":53341929,"kind":"Service","description":"DEF Project","quantity":1.0,"unit_price":1000.0,"amount":1000.0,"taxed":false,"taxed2":false,"project":null}]}
Delete an invoice line item
Delete a line item from an invoice. Returns a200 OK
response code if the call succeeded.
Example Request:
curl "https://api.harvestapp.com/api/v2/invoices/13150403" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-ID: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X PATCH \ -H "Content-Type: application/json" \ -d '{"line_items":[{"id":53341928,"_destroy":true}]}'
Example Response:
{"id":13150453,"client_key":"8b86437630b6c260c1bfa289f0154960f83b606d","number":"1002","purchase_order":"2345","amount":1000.0,"due_amount":1000.0,"tax":null,"tax_amount":0.0,"tax2":null,"tax2_amount":0.0,"discount":null,"discount_amount":0.0,"subject":"ABC Project Quote","notes":null,"state":"draft","period_start":null,"period_end":null,"issue_date":"2017-06-27","due_date":"2017-07-27","payment_term":"custom","sent_at":null,"paid_at":null,"paid_date":null,"closed_at":null,"recurring_invoice_id":null,"created_at":"2017-06-27T16:34:24Z","updated_at":"2017-06-27T16:36:33Z","currency":"USD","client":{"id":5735774,"name":"ABC Corp"},"estimate":null,"retainer":null,"creator":{"id":1782884,"name":"Bob Powell"},"line_items":[{"id":53341929,"kind":"Service","description":"DEF Project","quantity":1.0,"unit_price":1000.0,"amount":1000.0,"taxed":false,"taxed2":false,"project":null}]}
Delete an invoice
Delete an invoice. Returns a200 OK
response code if the call succeeded.
DELETE /v2/invoices/{INVOICE_ID}
Example Request:
curl "https://api.harvestapp.com/v2/invoices/13150453" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Harvest-Account-Id: $ACCOUNT_ID" \ -H "User-Agent: MyApp (yourname@example.com)" \ -X DELETE