Update a Bill
Scopes: bill:update
curl --request PATCH \
--url https://api.sandbox.getasset.com/v0/business/{business_id}/bills/{bill_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"number": "BILL-002",
"description": "Updated office supplies",
"due_at": "2025-03-01T00:00:00Z",
"issued_at": "2025-01-20T00:00:00Z",
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "<string>",
"amount": 120.52,
"ledger_id": "<string>",
"metadata_": {}
}
],
"delete_lines": [
"<string>"
]
},
"tags": {
"Location": "NYC"
}
}
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/bills/{bill_id}"
payload = {
"number": "BILL-002",
"description": "Updated office supplies",
"due_at": "2025-03-01T00:00:00Z",
"issued_at": "2025-01-20T00:00:00Z",
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "<string>",
"amount": 120.52,
"ledger_id": "<string>",
"metadata_": {}
}
],
"delete_lines": ["<string>"]
},
"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({
number: 'BILL-002',
description: 'Updated office supplies',
due_at: '2025-03-01T00:00:00Z',
issued_at: '2025-01-20T00:00:00Z',
status: 'open',
line_changes: {
create_lines: [
{description: '<string>', amount: 120.52, ledger_id: '<string>', metadata_: {}}
],
delete_lines: ['<string>']
},
tags: {Location: 'NYC'}
})
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/bills/{bill_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}/bills/{bill_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([
'number' => 'BILL-002',
'description' => 'Updated office supplies',
'due_at' => '2025-03-01T00:00:00Z',
'issued_at' => '2025-01-20T00:00:00Z',
'status' => 'open',
'line_changes' => [
'create_lines' => [
[
'description' => '<string>',
'amount' => 120.52,
'ledger_id' => '<string>',
'metadata_' => [
]
]
],
'delete_lines' => [
'<string>'
]
],
'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}/bills/{bill_id}"
payload := strings.NewReader("{\n \"number\": \"BILL-002\",\n \"description\": \"Updated office supplies\",\n \"due_at\": \"2025-03-01T00:00:00Z\",\n \"issued_at\": \"2025-01-20T00:00:00Z\",\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"<string>\",\n \"amount\": 120.52,\n \"ledger_id\": \"<string>\",\n \"metadata_\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ]\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}/bills/{bill_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"number\": \"BILL-002\",\n \"description\": \"Updated office supplies\",\n \"due_at\": \"2025-03-01T00:00:00Z\",\n \"issued_at\": \"2025-01-20T00:00:00Z\",\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"<string>\",\n \"amount\": 120.52,\n \"ledger_id\": \"<string>\",\n \"metadata_\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ]\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}/bills/{bill_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 \"number\": \"BILL-002\",\n \"description\": \"Updated office supplies\",\n \"due_at\": \"2025-03-01T00:00:00Z\",\n \"issued_at\": \"2025-01-20T00:00:00Z\",\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"<string>\",\n \"amount\": 120.52,\n \"ledger_id\": \"<string>\",\n \"metadata_\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ]\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"business_id": "<string>",
"vendor_id": "<string>",
"number": "<string>",
"description": "<string>",
"total_amount": 123,
"total_paid": 123,
"due_at": "2023-11-07T05:31:56Z",
"issued_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"voided_at": "2023-11-07T05:31:56Z",
"metadata_": {},
"lines": [
{
"description": "<string>",
"ledger_id": "ldg_ErisumsAc7qgmbTctM7zKK",
"amount": 123,
"id": "<string>",
"bill_id": "<string>",
"metadata_": {}
}
],
"payments": [
{
"bill_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",
"bill": "<unknown>"
}
],
"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.
Path Parameters
The id of the business
"biz_GA6EG2qFxA97NZHtxeLPUy"
The id of the bill
"bil_WQMDNUHpBThYSNh4AprDBo"
Body
The new number of the bill
"BILL-002"
The new description of the bill
"Updated office supplies"
The new due date of the bill in ISO-8601 format
"2025-03-01T00:00:00Z"
The new issued date of the bill in ISO-8601 format
"2025-01-20T00:00:00Z"
The new status of the bill
open, paid, voided "open"
The changes to the lines of the bill
Show child attributes
Show child attributes
Inline tag input to merge into the bill'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 bill's values for that field. Fields not mentioned are left untouched. Per-field amounts follow the default rules (single value -> bill total; N values without amounts -> bill total / N; mixed is rejected) and the per-field sum must not exceed the bill 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}/bills/{bill_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"number": "BILL-002",
"description": "Updated office supplies",
"due_at": "2025-03-01T00:00:00Z",
"issued_at": "2025-01-20T00:00:00Z",
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "<string>",
"amount": 120.52,
"ledger_id": "<string>",
"metadata_": {}
}
],
"delete_lines": [
"<string>"
]
},
"tags": {
"Location": "NYC"
}
}
'import requests
url = "https://api.sandbox.getasset.com/v0/business/{business_id}/bills/{bill_id}"
payload = {
"number": "BILL-002",
"description": "Updated office supplies",
"due_at": "2025-03-01T00:00:00Z",
"issued_at": "2025-01-20T00:00:00Z",
"status": "open",
"line_changes": {
"create_lines": [
{
"description": "<string>",
"amount": 120.52,
"ledger_id": "<string>",
"metadata_": {}
}
],
"delete_lines": ["<string>"]
},
"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({
number: 'BILL-002',
description: 'Updated office supplies',
due_at: '2025-03-01T00:00:00Z',
issued_at: '2025-01-20T00:00:00Z',
status: 'open',
line_changes: {
create_lines: [
{description: '<string>', amount: 120.52, ledger_id: '<string>', metadata_: {}}
],
delete_lines: ['<string>']
},
tags: {Location: 'NYC'}
})
};
fetch('https://api.sandbox.getasset.com/v0/business/{business_id}/bills/{bill_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}/bills/{bill_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([
'number' => 'BILL-002',
'description' => 'Updated office supplies',
'due_at' => '2025-03-01T00:00:00Z',
'issued_at' => '2025-01-20T00:00:00Z',
'status' => 'open',
'line_changes' => [
'create_lines' => [
[
'description' => '<string>',
'amount' => 120.52,
'ledger_id' => '<string>',
'metadata_' => [
]
]
],
'delete_lines' => [
'<string>'
]
],
'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}/bills/{bill_id}"
payload := strings.NewReader("{\n \"number\": \"BILL-002\",\n \"description\": \"Updated office supplies\",\n \"due_at\": \"2025-03-01T00:00:00Z\",\n \"issued_at\": \"2025-01-20T00:00:00Z\",\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"<string>\",\n \"amount\": 120.52,\n \"ledger_id\": \"<string>\",\n \"metadata_\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ]\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}/bills/{bill_id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"number\": \"BILL-002\",\n \"description\": \"Updated office supplies\",\n \"due_at\": \"2025-03-01T00:00:00Z\",\n \"issued_at\": \"2025-01-20T00:00:00Z\",\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"<string>\",\n \"amount\": 120.52,\n \"ledger_id\": \"<string>\",\n \"metadata_\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ]\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}/bills/{bill_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 \"number\": \"BILL-002\",\n \"description\": \"Updated office supplies\",\n \"due_at\": \"2025-03-01T00:00:00Z\",\n \"issued_at\": \"2025-01-20T00:00:00Z\",\n \"status\": \"open\",\n \"line_changes\": {\n \"create_lines\": [\n {\n \"description\": \"<string>\",\n \"amount\": 120.52,\n \"ledger_id\": \"<string>\",\n \"metadata_\": {}\n }\n ],\n \"delete_lines\": [\n \"<string>\"\n ]\n },\n \"tags\": {\n \"Location\": \"NYC\"\n }\n}"
response = http.request(request)
puts response.read_body{
"data": {
"business_id": "<string>",
"vendor_id": "<string>",
"number": "<string>",
"description": "<string>",
"total_amount": 123,
"total_paid": 123,
"due_at": "2023-11-07T05:31:56Z",
"issued_at": "2023-11-07T05:31:56Z",
"id": "<string>",
"voided_at": "2023-11-07T05:31:56Z",
"metadata_": {},
"lines": [
{
"description": "<string>",
"ledger_id": "ldg_ErisumsAc7qgmbTctM7zKK",
"amount": 123,
"id": "<string>",
"bill_id": "<string>",
"metadata_": {}
}
],
"payments": [
{
"bill_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",
"bill": "<unknown>"
}
],
"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>"
}