Update an Invoice
Scopes: invoice:update
curl --request PATCH \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "Web development services",
"amount": 520.56,
"ledger_id": "<string>",
"metadata": {}
}
],
"delete_lines": [
"<string>"
],
"metadata": {}
},
"tags": {
"Location": "NYC"
}
}
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}"
payload = {
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "Web development services",
"amount": 520.56,
"ledger_id": "<string>",
"metadata": {}
}
],
"delete_lines": ["<string>"],
"metadata": {}
},
"tags": { "Location": "NYC" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
status: 'open',
line_changes: {
create_lines: [
{
description: 'Web development services',
amount: 520.56,
ledger_id: '<string>',
metadata: {}
}
],
delete_lines: ['<string>'],
metadata: {}
},
tags: {Location: 'NYC'}
})
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'open',
'line_changes' => [
'create_lines' => [
[
'description' => 'Web development services',
'amount' => 520.56,
'ledger_id' => '<string>',
'metadata' => [
]
]
],
'delete_lines' => [
'<string>'
],
'metadata' => [
]
],
'tags' => [
'Location' => 'NYC'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}"
payload := strings.NewReader("{\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"Web development services\",\n \"amount\": 520.56,\n \"ledger_id\": \"<string>\",\n \"metadata\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ],\n \"metadata\": {}\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"Web development services\",\n \"amount\": 520.56,\n \"ledger_id\": \"<string>\",\n \"metadata\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ],\n \"metadata\": {}\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"Web development services\",\n \"amount\": 520.56,\n \"ledger_id\": \"<string>\",\n \"metadata\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ],\n \"metadata\": {}\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"business_id": "biz_Pk2fNFDd8wj7EFeLWJywc7",
"number": "INV-1234567890",
"description": "Invoice from Acme Corp",
"total_amount": 520.56,
"source": "manual",
"due_at": "2023-11-07T05:31:56Z",
"sent_at": "2023-11-07T05:31:56Z",
"status": "paid",
"id": "inv_GkBo16N66u2teKfFuFMMwf",
"customer_id": "cus_WxcM3ypJ5boFxsNQzcqRXe",
"total_paid": 520.56,
"voided_at": "2023-11-07T05:31:56Z",
"metadata": {},
"lines": [
{
"description": "Web development services",
"ledger_id": "ldg_ErisumsAc7qgmbTctM7zKK",
"amount": 520.56,
"id": "inl_GkBo16N66u2teKfFuFMMwf",
"invoice_id": "inv_WQMDNUHpBThYSNh4AprDBo",
"metadata": {}
}
],
"payments": [
{
"invoice_id": "inv_GkBo16N66u2teKfFuFMMwf",
"payment_id": "inp_ErisumsAc7qgmbTctM7zKK",
"datetime": "2021-01-01T00:00:00Z",
"payment_amount": 520.56,
"id": "inp_WQMDNUHpBThYSNh4AprDBo",
"transaction_id": "txn_WQMDNUHpBThYSNh4AprDBo",
"credit_journal_entry_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"credit_memo_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice": "<unknown>",
"is_write_off": false
}
],
"tags": {
"Job": [
{
"amount": "3000.00",
"value": "Maple Street Remodel"
},
{
"amount": "1500.00",
"value": "Downtown Office Rewire"
}
]
}
}
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Headers
Optional external entity identifier that performed the action
Path Parameters
The id of the business
"biz_GA6EG2qFxA97NZHtxeLPUy"
The id of the invoice
"inv_WQMDNUHpBThYSNh4AprDBo"
Body
The new status of the invoice
open, paid, uncollectible, voided, refunded, partially_refunded "open"
The changes to the lines of the invoice
Show child attributes
Show child attributes
Inline tag input to merge into the invoice's tags. Each key is a tag field name that must already exist. A string upserts a single value and replaces all current values for that field. A list of {value, amount} objects replaces all current values for the field with the supplied set. A null (or empty list) removes all of the invoice's values for that field. Fields not mentioned are left untouched. Per-field amounts follow the default rules (single value -> invoice total; N values without amounts -> invoice total / N; mixed is rejected) and the per-field sum must not exceed the invoice total.
Show child attributes
Show child attributes
{ "Location": "NYC" }
Response
Successful Response
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "Web development services",
"amount": 520.56,
"ledger_id": "<string>",
"metadata": {}
}
],
"delete_lines": [
"<string>"
],
"metadata": {}
},
"tags": {
"Location": "NYC"
}
}
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}"
payload = {
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "Web development services",
"amount": 520.56,
"ledger_id": "<string>",
"metadata": {}
}
],
"delete_lines": ["<string>"],
"metadata": {}
},
"tags": { "Location": "NYC" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
status: 'open',
line_changes: {
create_lines: [
{
description: 'Web development services',
amount: 520.56,
ledger_id: '<string>',
metadata: {}
}
],
delete_lines: ['<string>'],
metadata: {}
},
tags: {Location: 'NYC'}
})
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'status' => 'open',
'line_changes' => [
'create_lines' => [
[
'description' => 'Web development services',
'amount' => 520.56,
'ledger_id' => '<string>',
'metadata' => [
]
]
],
'delete_lines' => [
'<string>'
],
'metadata' => [
]
],
'tags' => [
'Location' => 'NYC'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}"
payload := strings.NewReader("{\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"Web development services\",\n \"amount\": 520.56,\n \"ledger_id\": \"<string>\",\n \"metadata\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ],\n \"metadata\": {}\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"Web development services\",\n \"amount\": 520.56,\n \"ledger_id\": \"<string>\",\n \"metadata\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ],\n \"metadata\": {}\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sandbox.getasset.com/v0/business/{business_id}/invoice/{invoice_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"Web development services\",\n \"amount\": 520.56,\n \"ledger_id\": \"<string>\",\n \"metadata\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ],\n \"metadata\": {}\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"business_id": "biz_Pk2fNFDd8wj7EFeLWJywc7",
"number": "INV-1234567890",
"description": "Invoice from Acme Corp",
"total_amount": 520.56,
"source": "manual",
"due_at": "2023-11-07T05:31:56Z",
"sent_at": "2023-11-07T05:31:56Z",
"status": "paid",
"id": "inv_GkBo16N66u2teKfFuFMMwf",
"customer_id": "cus_WxcM3ypJ5boFxsNQzcqRXe",
"total_paid": 520.56,
"voided_at": "2023-11-07T05:31:56Z",
"metadata": {},
"lines": [
{
"description": "Web development services",
"ledger_id": "ldg_ErisumsAc7qgmbTctM7zKK",
"amount": 520.56,
"id": "inl_GkBo16N66u2teKfFuFMMwf",
"invoice_id": "inv_WQMDNUHpBThYSNh4AprDBo",
"metadata": {}
}
],
"payments": [
{
"invoice_id": "inv_GkBo16N66u2teKfFuFMMwf",
"payment_id": "inp_ErisumsAc7qgmbTctM7zKK",
"datetime": "2021-01-01T00:00:00Z",
"payment_amount": 520.56,
"id": "inp_WQMDNUHpBThYSNh4AprDBo",
"transaction_id": "txn_WQMDNUHpBThYSNh4AprDBo",
"credit_journal_entry_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"credit_memo_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"invoice": "<unknown>",
"is_write_off": false
}
],
"tags": {
"Job": [
{
"amount": "3000.00",
"value": "Maple Street Remodel"
},
{
"amount": "1500.00",
"value": "Downtown Office Rewire"
}
]
}
}
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}{
"error": "<string>",
"data": "<unknown>"
}