cURL
curl -X POST "$EXSITED_BASE_URL/api/v4/invoices/INV-0001/amend" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"invoice": {
"lines": [
{
"op": "add",
"value": {
"item_id": "ITEM-0001",
"item_price": 3,
"item_quantity": 1
}
}
]
}
}'from exsited import build_client
client = build_client()
response = client.invoices.amend_invoice(
"INV-0001",
{
"invoice": {
"lines": [
{
"op": "add",
"value": {
"item_id": "ITEM-0001",
"item_price": 3,
"item_quantity": 1,
},
}
]
}
},
)
print(response.data)
import {buildClient} from 'exsited';
const client = await buildClient();
const response = await client.invoices.amendInvoice('INV-0001', {
invoice: {lines: [{op: 'add', value: {item_id: 'ITEM-0001', item_price: 3, item_quantity: 1}}]},
});
console.log(response.data);
use Exsited\Client\ClientRegistry;
$client = ClientRegistry::buildClient();
$response = $client->invoices->amendInvoice('INV-0001', [
'invoice' => [
'lines' => [
[
'op' => 'add',
'value' => ['item_id' => 'ITEM-0001', 'item_price' => 3, 'item_quantity' => 1],
],
],
],
]);
print_r($response->data);
import com.exsited.client.ApiResponse;
import com.exsited.client.ClientRegistry;
import com.exsited.client.ExsitedClient;
import com.exsited.resources.invoices.invoices_dto.InvoicesDto.Invoice;
import java.util.List;
import java.util.Map;
ExsitedClient client = ClientRegistry.buildClient();
ApiResponse<Invoice> response = client.invoices().amendInvoice(
"INV-0001",
Map.of(
"invoice", Map.of(
"lines", List.of(
Map.of(
"op", "add",
"value", Map.of(
"item_id", "ITEM-0001",
"item_price", 3,
"item_quantity", 1))))));
System.out.println(response.getMap());
using Exsited.Client;
await using var client = ExsitedClient.BuildClient();
var response = await client.Invoices.AmendInvoiceAsync(
"INV-0001",
new Dictionary<string, object?>
{
["invoice"] = new Dictionary<string, object?>
{
["lines"] = new List<object?>
{
new Dictionary<string, object?>
{
["op"] = "add",
["value"] = new Dictionary<string, object?>
{
["item_id"] = "ITEM-0001",
["item_price"] = 3,
["item_quantity"] = 1,
},
},
},
},
});
Console.WriteLine(response.Json);
import 'package:exsited/exsited.dart';
final client = buildClient();
final response = await client.invoices.amendInvoice('INV-0001', {
'invoice': {
'lines': [
{
'op': 'add',
'value': {
'item_id': 'ITEM-0001',
'item_price': 3,
'item_quantity': 1,
},
},
],
},
});
print(response.map);
import (
"context"
"fmt"
"log"
exsited "github.com/exsited/exsited-sdk-go/v4"
)
client, err := exsited.BuildClient(nil)
if err != nil {
log.Fatal(err)
}
defer client.Close()
response, err := client.Invoices().AmendInvoice(context.Background(), "INV-0001", map[string]any{
"invoice": map[string]any{
"lines": []any{
map[string]any{
"op": "add",
"value": map[string]any{
"item_id": "ITEM-0001",
"item_price": 3,
"item_quantity": 1,
},
},
},
},
}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Map)
{
"invoice": {
"id": "<string>",
"uuid": "<string>",
"version": 123,
"status": "<string>",
"type": "<string>",
"origin": "<string>",
"payment_status": "<string>",
"account_id": "<string>",
"account_name": "<string>",
"order_id": "<string>",
"customer_purchase_order_id": "<string>",
"invoice_note": "<string>",
"issue_date": "<string>",
"due_date": "<string>",
"alternate_issue_date": "<string>",
"alternate_due_date": "<string>",
"billing_start_date": "<string>",
"billing_end_date": "<string>",
"alternate_billing_start_date": "<string>",
"alternate_billing_end_date": "<string>",
"subtotal": "<string>",
"tax": "<string>",
"tax_total": "<string>",
"total": "<string>",
"due": "<string>",
"paid": "<string>",
"discount_amount": 123,
"shipping_cost": "<string>",
"credit_applied": "<string>",
"credit_issued": "<string>",
"payment_applied": "<string>",
"outstanding": "<string>",
"price_tax_inclusive": true,
"recurring_rate_count": "<string>",
"usage_rate_count": "<string>",
"currency": {
"code": "<string>",
"href": "<string>",
"id": "<string>",
"name": "<string>",
"object": "<string>"
},
"custom_form": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"kpis": {
"credit_applied": "<string>",
"credit_issued": "<string>",
"payment_applied": "<string>",
"last_payment_date": "<string>",
"last_amended_on": "<string>",
"last_cancelled_on": "<string>",
"last_reactivated_on": "<string>",
"deleted_on": "<string>",
"voided_on": "<string>",
"outstanding": "<string>",
"overdue": 123
},
"last_payment": {
"uuid": "<string>",
"id": "<string>",
"date": "<string>",
"amount": "<string>",
"created_on": "<string>"
},
"created_on": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"last_updated_on": "<string>",
"last_updated_by": {
"name": "<string>",
"object": "<string>"
},
"lines": [
{
"object": "<string>",
"id": "<string>",
"version": 123,
"item": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"item_id": "<string>",
"item_uuid": "<string>",
"item_name": "<string>",
"item_uom": "<string>",
"item_warehouse": "<string>",
"item_serial_or_batch_number": "<string>",
"item_order_quantity": 123,
"item_charge_type": "<string>",
"item_custom_attributes": [
"<unknown>"
],
"pricing_snapshot_price": 123,
"pricing_snapshot_uuid": "<string>",
"charging_start_date": "<string>",
"charging_end_date": "<string>",
"alternate_charging_start_date": "<string>",
"alternate_charging_end_date": "<string>",
"subtotal": "<string>",
"total": "<string>",
"tax": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"rate": 123,
"amount": "<string>",
"href": "<string>"
},
"accounting_code": {
"sales_revenue": "<string>"
}
}
],
"custom_attributes": [
{
"name": "<string>",
"value": "<unknown>"
}
],
"custom_objects": [
"<unknown>"
],
"activity_logs": [
{
"activity": "<string>"
}
],
"notes": [
{
"object": "<string>",
"id": "<string>",
"href": "<string>",
"content": "<string>",
"version": 123,
"invoice": {
"href": "<string>",
"id": "<string>",
"object": "<string>"
},
"group": "<unknown>",
"user": "<unknown>",
"attachments": [
{
"uuid": "<string>",
"filename": "<string>",
"content_type": "<string>",
"size": 123,
"href": "<string>"
}
],
"watchers": [
{
"email": "<string>",
"name": "<string>",
"type": "<string>"
}
],
"created_on": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"last_updated_on": "<unknown>",
"last_updated_by": "<unknown>"
}
],
"item_fulfillments": [
{
"uuid": "<string>",
"id": "<string>",
"version": "<string>",
"invoice_id": "<string>",
"order_id": "<string>",
"date": "<string>",
"status": "<string>",
"note": "<string>",
"tracking_number": "<string>",
"created_on": "<string>",
"created_by": "<string>",
"last_updated_on": "<string>",
"last_updated_by": "<string>",
"fulfillments": [
"<unknown>"
]
}
],
"return_merchandise_authorisations": [
"<unknown>"
],
"account": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"object": "<string>",
"order": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
}
}
}Invoices
Amend an invoice
Adds, changes or removes invoice lines and returns the invoice.
POST
/
invoices
/
{invoice_id}
/
amend
cURL
curl -X POST "$EXSITED_BASE_URL/api/v4/invoices/INV-0001/amend" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"invoice": {
"lines": [
{
"op": "add",
"value": {
"item_id": "ITEM-0001",
"item_price": 3,
"item_quantity": 1
}
}
]
}
}'from exsited import build_client
client = build_client()
response = client.invoices.amend_invoice(
"INV-0001",
{
"invoice": {
"lines": [
{
"op": "add",
"value": {
"item_id": "ITEM-0001",
"item_price": 3,
"item_quantity": 1,
},
}
]
}
},
)
print(response.data)
import {buildClient} from 'exsited';
const client = await buildClient();
const response = await client.invoices.amendInvoice('INV-0001', {
invoice: {lines: [{op: 'add', value: {item_id: 'ITEM-0001', item_price: 3, item_quantity: 1}}]},
});
console.log(response.data);
use Exsited\Client\ClientRegistry;
$client = ClientRegistry::buildClient();
$response = $client->invoices->amendInvoice('INV-0001', [
'invoice' => [
'lines' => [
[
'op' => 'add',
'value' => ['item_id' => 'ITEM-0001', 'item_price' => 3, 'item_quantity' => 1],
],
],
],
]);
print_r($response->data);
import com.exsited.client.ApiResponse;
import com.exsited.client.ClientRegistry;
import com.exsited.client.ExsitedClient;
import com.exsited.resources.invoices.invoices_dto.InvoicesDto.Invoice;
import java.util.List;
import java.util.Map;
ExsitedClient client = ClientRegistry.buildClient();
ApiResponse<Invoice> response = client.invoices().amendInvoice(
"INV-0001",
Map.of(
"invoice", Map.of(
"lines", List.of(
Map.of(
"op", "add",
"value", Map.of(
"item_id", "ITEM-0001",
"item_price", 3,
"item_quantity", 1))))));
System.out.println(response.getMap());
using Exsited.Client;
await using var client = ExsitedClient.BuildClient();
var response = await client.Invoices.AmendInvoiceAsync(
"INV-0001",
new Dictionary<string, object?>
{
["invoice"] = new Dictionary<string, object?>
{
["lines"] = new List<object?>
{
new Dictionary<string, object?>
{
["op"] = "add",
["value"] = new Dictionary<string, object?>
{
["item_id"] = "ITEM-0001",
["item_price"] = 3,
["item_quantity"] = 1,
},
},
},
},
});
Console.WriteLine(response.Json);
import 'package:exsited/exsited.dart';
final client = buildClient();
final response = await client.invoices.amendInvoice('INV-0001', {
'invoice': {
'lines': [
{
'op': 'add',
'value': {
'item_id': 'ITEM-0001',
'item_price': 3,
'item_quantity': 1,
},
},
],
},
});
print(response.map);
import (
"context"
"fmt"
"log"
exsited "github.com/exsited/exsited-sdk-go/v4"
)
client, err := exsited.BuildClient(nil)
if err != nil {
log.Fatal(err)
}
defer client.Close()
response, err := client.Invoices().AmendInvoice(context.Background(), "INV-0001", map[string]any{
"invoice": map[string]any{
"lines": []any{
map[string]any{
"op": "add",
"value": map[string]any{
"item_id": "ITEM-0001",
"item_price": 3,
"item_quantity": 1,
},
},
},
},
}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Map)
{
"invoice": {
"id": "<string>",
"uuid": "<string>",
"version": 123,
"status": "<string>",
"type": "<string>",
"origin": "<string>",
"payment_status": "<string>",
"account_id": "<string>",
"account_name": "<string>",
"order_id": "<string>",
"customer_purchase_order_id": "<string>",
"invoice_note": "<string>",
"issue_date": "<string>",
"due_date": "<string>",
"alternate_issue_date": "<string>",
"alternate_due_date": "<string>",
"billing_start_date": "<string>",
"billing_end_date": "<string>",
"alternate_billing_start_date": "<string>",
"alternate_billing_end_date": "<string>",
"subtotal": "<string>",
"tax": "<string>",
"tax_total": "<string>",
"total": "<string>",
"due": "<string>",
"paid": "<string>",
"discount_amount": 123,
"shipping_cost": "<string>",
"credit_applied": "<string>",
"credit_issued": "<string>",
"payment_applied": "<string>",
"outstanding": "<string>",
"price_tax_inclusive": true,
"recurring_rate_count": "<string>",
"usage_rate_count": "<string>",
"currency": {
"code": "<string>",
"href": "<string>",
"id": "<string>",
"name": "<string>",
"object": "<string>"
},
"custom_form": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"kpis": {
"credit_applied": "<string>",
"credit_issued": "<string>",
"payment_applied": "<string>",
"last_payment_date": "<string>",
"last_amended_on": "<string>",
"last_cancelled_on": "<string>",
"last_reactivated_on": "<string>",
"deleted_on": "<string>",
"voided_on": "<string>",
"outstanding": "<string>",
"overdue": 123
},
"last_payment": {
"uuid": "<string>",
"id": "<string>",
"date": "<string>",
"amount": "<string>",
"created_on": "<string>"
},
"created_on": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"last_updated_on": "<string>",
"last_updated_by": {
"name": "<string>",
"object": "<string>"
},
"lines": [
{
"object": "<string>",
"id": "<string>",
"version": 123,
"item": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"item_id": "<string>",
"item_uuid": "<string>",
"item_name": "<string>",
"item_uom": "<string>",
"item_warehouse": "<string>",
"item_serial_or_batch_number": "<string>",
"item_order_quantity": 123,
"item_charge_type": "<string>",
"item_custom_attributes": [
"<unknown>"
],
"pricing_snapshot_price": 123,
"pricing_snapshot_uuid": "<string>",
"charging_start_date": "<string>",
"charging_end_date": "<string>",
"alternate_charging_start_date": "<string>",
"alternate_charging_end_date": "<string>",
"subtotal": "<string>",
"total": "<string>",
"tax": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"rate": 123,
"amount": "<string>",
"href": "<string>"
},
"accounting_code": {
"sales_revenue": "<string>"
}
}
],
"custom_attributes": [
{
"name": "<string>",
"value": "<unknown>"
}
],
"custom_objects": [
"<unknown>"
],
"activity_logs": [
{
"activity": "<string>"
}
],
"notes": [
{
"object": "<string>",
"id": "<string>",
"href": "<string>",
"content": "<string>",
"version": 123,
"invoice": {
"href": "<string>",
"id": "<string>",
"object": "<string>"
},
"group": "<unknown>",
"user": "<unknown>",
"attachments": [
{
"uuid": "<string>",
"filename": "<string>",
"content_type": "<string>",
"size": 123,
"href": "<string>"
}
],
"watchers": [
{
"email": "<string>",
"name": "<string>",
"type": "<string>"
}
],
"created_on": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"last_updated_on": "<unknown>",
"last_updated_by": "<unknown>"
}
],
"item_fulfillments": [
{
"uuid": "<string>",
"id": "<string>",
"version": "<string>",
"invoice_id": "<string>",
"order_id": "<string>",
"date": "<string>",
"status": "<string>",
"note": "<string>",
"tracking_number": "<string>",
"created_on": "<string>",
"created_by": "<string>",
"last_updated_on": "<string>",
"last_updated_by": "<string>",
"fulfillments": [
"<unknown>"
]
}
],
"return_merchandise_authorisations": [
"<unknown>"
],
"account": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"object": "<string>",
"order": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
}
}
}Amends the invoice’s lines. Each entry of
invoice.lines names an op: add with the new line under value, change with the line’s id as charge_item_uuid and the new price or quantity, or remove with the line’s id as charge_item_uuid. Each amendment raises the invoice’s version by one. The body is optional.
The SDK samples get their client from credentials your app registers once when it starts, as shown in Authentication. To try the call here, click Try it, set
host to your Exsited API host name and paste an access token from Get an access token. To send a raw JSON body instead of filling in fields, copy the cURL sample and edit its -d payload.Authorizations
An access token from POST /api/v4/oauth2/token. The SDKs get and renew it for you.
Path Parameters
The invoice's id, such as INV-0001. Not its uuid.
Body
application/json
Show child attributes
Show child attributes
Response
200 - application/json
The amended invoice, under invoice.
Show child attributes
Show child attributes