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": "<string>",
"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": "<string>",
"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: '<string>', 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' => '<string>',
'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\": \"<string>\",\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\": \"<string>\",\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\": \"<string>\",\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": "<string>",
"number": "<string>",
"description": "<string>",
"total_amount": 123,
"due_at": "2023-11-07T05:31:56Z",
"sent_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"customer_id": "<string>",
"total_paid": 0,
"voided_at": "2023-11-07T05:31:56Z",
"metadata": {},
"lines": [
{
"description": "<string>",
"ledger_id": "ldg_ErisumsAc7qgmbTctM7zKK",
"amount": 123,
"id": "<string>",
"invoice_id": "<string>",
"metadata": {}
}
],
"payments": [
{
"invoice_id": "<string>",
"payment_id": "<string>",
"datetime": "2023-11-07T05:31:56Z",
"payment_amount": 123,
"id": "<string>",
"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": "<string>",
"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": "<string>",
"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: '<string>', 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' => '<string>',
'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\": \"<string>\",\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\": \"<string>\",\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\": \"<string>\",\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": "<string>",
"number": "<string>",
"description": "<string>",
"total_amount": 123,
"due_at": "2023-11-07T05:31:56Z",
"sent_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"customer_id": "<string>",
"total_paid": 0,
"voided_at": "2023-11-07T05:31:56Z",
"metadata": {},
"lines": [
{
"description": "<string>",
"ledger_id": "ldg_ErisumsAc7qgmbTctM7zKK",
"amount": 123,
"id": "<string>",
"invoice_id": "<string>",
"metadata": {}
}
],
"payments": [
{
"invoice_id": "<string>",
"payment_id": "<string>",
"datetime": "2023-11-07T05:31:56Z",
"payment_amount": 123,
"id": "<string>",
"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>"
}