cURL
curl -X POST "$EXSITED_BASE_URL/api/v4/purchase_orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"purchase_order": {
"account": {
"name": "Acme Pty Ltd",
"type": "SUPPLIER",
"email_address": "jane@example.com"
},
"lines": [
{
"item_name": "Copy paper A4",
"item_quantity": 1,
"item_price_snapshot": {
"pricing_rule": {
"price": 5
}
}
}
]
}
}'from exsited import build_client
client = build_client()
response = client.purchase_orders.create_purchase_order(
{
"purchase_order": {
"account": {
"name": "Acme Pty Ltd",
"type": "SUPPLIER",
"email_address": "jane@example.com",
},
"lines": [
{
"item_name": "Copy paper A4",
"item_quantity": 1,
"item_price_snapshot": {"pricing_rule": {"price": 5}},
}
],
}
}
)
print(response.data)
import {buildClient} from 'exsited';
const client = await buildClient();
const response = await client.purchaseOrders.createPurchaseOrder({
purchase_order: {
account: {name: 'Acme Pty Ltd', type: 'SUPPLIER', email_address: 'jane@example.com'},
lines: [{item_name: 'Copy paper A4', item_quantity: 1, item_price_snapshot: {pricing_rule: {price: 5}}}],
},
});
console.log(response.data);
use Exsited\Client\ClientRegistry;
$client = ClientRegistry::buildClient();
$response = $client->purchaseOrders->createPurchaseOrder([
'purchase_order' => [
'account' => [
'name' => 'Acme Pty Ltd',
'type' => 'SUPPLIER',
'email_address' => 'jane@example.com',
],
'lines' => [
[
'item_name' => 'Copy paper A4',
'item_quantity' => 1,
'item_price_snapshot' => ['pricing_rule' => ['price' => 5]],
],
],
],
]);
print_r($response->data);
import com.exsited.client.ApiResponse;
import com.exsited.client.ClientRegistry;
import com.exsited.client.ExsitedClient;
import com.exsited.resources.purchase_orders.purchase_orders_dto.PurchaseOrdersDto;
import java.util.List;
import java.util.Map;
ExsitedClient client = ClientRegistry.buildClient();
ApiResponse<PurchaseOrdersDto.PurchaseOrders> response = client.purchaseOrders().createPurchaseOrder(
Map.of(
"purchase_order", Map.of(
"account", Map.of(
"name", "Acme Pty Ltd",
"type", "SUPPLIER",
"email_address", "jane@example.com"),
"lines", List.of(
Map.of(
"item_name", "Copy paper A4",
"item_quantity", 1,
"item_price_snapshot", Map.of(
"pricing_rule", Map.of("price", 5)))))));
System.out.println(response.getMap());
using Exsited.Client;
await using var client = ExsitedClient.BuildClient();
var response = await client.PurchaseOrders.CreatePurchaseOrderAsync(new Dictionary<string, object?>
{
["purchase_order"] = new Dictionary<string, object?>
{
["account"] = new Dictionary<string, object?>
{
["name"] = "Acme Pty Ltd",
["type"] = "SUPPLIER",
["email_address"] = "jane@example.com",
},
["lines"] = new List<object?>
{
new Dictionary<string, object?>
{
["item_name"] = "Copy paper A4",
["item_quantity"] = 1,
["item_price_snapshot"] = new Dictionary<string, object?>
{
["pricing_rule"] = new Dictionary<string, object?>
{
["price"] = 5,
},
},
},
},
},
});
Console.WriteLine(response.Json);
import 'package:exsited/exsited.dart';
final client = buildClient();
final response = await client.purchaseOrders.createPurchaseOrder({
'purchase_order': {
'account': {
'name': 'Acme Pty Ltd',
'type': 'SUPPLIER',
'email_address': 'jane@example.com',
},
'lines': [
{
'item_name': 'Copy paper A4',
'item_quantity': 1,
'item_price_snapshot': {
'pricing_rule': {'price': 5},
},
},
],
},
});
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.PurchaseOrders().CreatePurchaseOrder(context.Background(), map[string]any{
"purchase_order": map[string]any{
"account": map[string]any{
"name": "Acme Pty Ltd",
"type": "SUPPLIER",
"email_address": "jane@example.com",
},
"lines": []any{
map[string]any{
"item_name": "Copy paper A4",
"item_quantity": 1,
"item_price_snapshot": map[string]any{
"pricing_rule": map[string]any{"price": 5},
},
},
},
},
}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Map)
{
"purchase_order": {
"account": {
"code": "<string>",
"href": "<string>",
"id": "<string>",
"name": "<string>",
"object": "<string>"
},
"account_id": "<string>",
"activity_logs": [
"<unknown>"
],
"bill_total": "<string>",
"code": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"created_on": "<string>",
"currency": {
"code": "<string>",
"href": "<string>",
"id": "<string>",
"name": "<string>",
"object": "<string>"
},
"custom_attributes": [
"<unknown>"
],
"custom_form": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"custom_objects": [
"<unknown>"
],
"due_date": "<string>",
"due_total": "<string>",
"expected_completion_date": "<string>",
"href": "<string>",
"id": "<string>",
"is_price_tax_inclusive": "<unknown>",
"issue_date": "<string>",
"kpis": {
"estimated_total": "<string>",
"issue_date": "<unknown>",
"last_cancelled_on": "<unknown>",
"last_changed_on": "<unknown>",
"last_deleted_on": "<unknown>",
"last_invoice_issue_date": "<unknown>",
"last_invoice_total": "<string>",
"last_reactivated_on": "<unknown>",
"object": "<string>",
"total_expense": "<string>",
"total_outstanding": "<string>",
"total_overdue": "<string>",
"total_purchase_invoice": 123
},
"last_updated_by": "<string>",
"last_updated_on": "<string>",
"lines": [
"<unknown>"
],
"object": "<string>",
"operational_status": "<string>",
"origin": "<string>",
"paid_amount": "<string>",
"price_tax_inclusive": "<string>",
"purchase_order_note": "<string>",
"sale_order": "<unknown>",
"status": "<string>",
"subtotal": "<string>",
"supplier_invoice_id": "<string>",
"tax": "<string>",
"tax_total": "<string>",
"total": "<string>",
"uuid": "<string>",
"version": 123,
"warehouse": "<unknown>"
}
}Purchase orders
Create a purchase order
Creates a purchase order for a supplier and returns it under purchase_order.
POST
/
purchase_orders
cURL
curl -X POST "$EXSITED_BASE_URL/api/v4/purchase_orders" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"purchase_order": {
"account": {
"name": "Acme Pty Ltd",
"type": "SUPPLIER",
"email_address": "jane@example.com"
},
"lines": [
{
"item_name": "Copy paper A4",
"item_quantity": 1,
"item_price_snapshot": {
"pricing_rule": {
"price": 5
}
}
}
]
}
}'from exsited import build_client
client = build_client()
response = client.purchase_orders.create_purchase_order(
{
"purchase_order": {
"account": {
"name": "Acme Pty Ltd",
"type": "SUPPLIER",
"email_address": "jane@example.com",
},
"lines": [
{
"item_name": "Copy paper A4",
"item_quantity": 1,
"item_price_snapshot": {"pricing_rule": {"price": 5}},
}
],
}
}
)
print(response.data)
import {buildClient} from 'exsited';
const client = await buildClient();
const response = await client.purchaseOrders.createPurchaseOrder({
purchase_order: {
account: {name: 'Acme Pty Ltd', type: 'SUPPLIER', email_address: 'jane@example.com'},
lines: [{item_name: 'Copy paper A4', item_quantity: 1, item_price_snapshot: {pricing_rule: {price: 5}}}],
},
});
console.log(response.data);
use Exsited\Client\ClientRegistry;
$client = ClientRegistry::buildClient();
$response = $client->purchaseOrders->createPurchaseOrder([
'purchase_order' => [
'account' => [
'name' => 'Acme Pty Ltd',
'type' => 'SUPPLIER',
'email_address' => 'jane@example.com',
],
'lines' => [
[
'item_name' => 'Copy paper A4',
'item_quantity' => 1,
'item_price_snapshot' => ['pricing_rule' => ['price' => 5]],
],
],
],
]);
print_r($response->data);
import com.exsited.client.ApiResponse;
import com.exsited.client.ClientRegistry;
import com.exsited.client.ExsitedClient;
import com.exsited.resources.purchase_orders.purchase_orders_dto.PurchaseOrdersDto;
import java.util.List;
import java.util.Map;
ExsitedClient client = ClientRegistry.buildClient();
ApiResponse<PurchaseOrdersDto.PurchaseOrders> response = client.purchaseOrders().createPurchaseOrder(
Map.of(
"purchase_order", Map.of(
"account", Map.of(
"name", "Acme Pty Ltd",
"type", "SUPPLIER",
"email_address", "jane@example.com"),
"lines", List.of(
Map.of(
"item_name", "Copy paper A4",
"item_quantity", 1,
"item_price_snapshot", Map.of(
"pricing_rule", Map.of("price", 5)))))));
System.out.println(response.getMap());
using Exsited.Client;
await using var client = ExsitedClient.BuildClient();
var response = await client.PurchaseOrders.CreatePurchaseOrderAsync(new Dictionary<string, object?>
{
["purchase_order"] = new Dictionary<string, object?>
{
["account"] = new Dictionary<string, object?>
{
["name"] = "Acme Pty Ltd",
["type"] = "SUPPLIER",
["email_address"] = "jane@example.com",
},
["lines"] = new List<object?>
{
new Dictionary<string, object?>
{
["item_name"] = "Copy paper A4",
["item_quantity"] = 1,
["item_price_snapshot"] = new Dictionary<string, object?>
{
["pricing_rule"] = new Dictionary<string, object?>
{
["price"] = 5,
},
},
},
},
},
});
Console.WriteLine(response.Json);
import 'package:exsited/exsited.dart';
final client = buildClient();
final response = await client.purchaseOrders.createPurchaseOrder({
'purchase_order': {
'account': {
'name': 'Acme Pty Ltd',
'type': 'SUPPLIER',
'email_address': 'jane@example.com',
},
'lines': [
{
'item_name': 'Copy paper A4',
'item_quantity': 1,
'item_price_snapshot': {
'pricing_rule': {'price': 5},
},
},
],
},
});
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.PurchaseOrders().CreatePurchaseOrder(context.Background(), map[string]any{
"purchase_order": map[string]any{
"account": map[string]any{
"name": "Acme Pty Ltd",
"type": "SUPPLIER",
"email_address": "jane@example.com",
},
"lines": []any{
map[string]any{
"item_name": "Copy paper A4",
"item_quantity": 1,
"item_price_snapshot": map[string]any{
"pricing_rule": map[string]any{"price": 5},
},
},
},
},
}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Map)
{
"purchase_order": {
"account": {
"code": "<string>",
"href": "<string>",
"id": "<string>",
"name": "<string>",
"object": "<string>"
},
"account_id": "<string>",
"activity_logs": [
"<unknown>"
],
"bill_total": "<string>",
"code": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"created_on": "<string>",
"currency": {
"code": "<string>",
"href": "<string>",
"id": "<string>",
"name": "<string>",
"object": "<string>"
},
"custom_attributes": [
"<unknown>"
],
"custom_form": {
"object": "<string>",
"id": "<string>",
"name": "<string>",
"href": "<string>"
},
"custom_objects": [
"<unknown>"
],
"due_date": "<string>",
"due_total": "<string>",
"expected_completion_date": "<string>",
"href": "<string>",
"id": "<string>",
"is_price_tax_inclusive": "<unknown>",
"issue_date": "<string>",
"kpis": {
"estimated_total": "<string>",
"issue_date": "<unknown>",
"last_cancelled_on": "<unknown>",
"last_changed_on": "<unknown>",
"last_deleted_on": "<unknown>",
"last_invoice_issue_date": "<unknown>",
"last_invoice_total": "<string>",
"last_reactivated_on": "<unknown>",
"object": "<string>",
"total_expense": "<string>",
"total_outstanding": "<string>",
"total_overdue": "<string>",
"total_purchase_invoice": 123
},
"last_updated_by": "<string>",
"last_updated_on": "<string>",
"lines": [
"<unknown>"
],
"object": "<string>",
"operational_status": "<string>",
"origin": "<string>",
"paid_amount": "<string>",
"price_tax_inclusive": "<string>",
"purchase_order_note": "<string>",
"sale_order": "<unknown>",
"status": "<string>",
"subtotal": "<string>",
"supplier_invoice_id": "<string>",
"tax": "<string>",
"tax_total": "<string>",
"total": "<string>",
"uuid": "<string>",
"version": 123,
"warehouse": "<unknown>"
}
}Creates a purchase order from a supplier and its lines, wrapped in
purchase_order. Name an existing supplier with account_id, or send account to create the supplier in the same call. A line takes an existing item by item_id, or a new one by item_name with a price under item_price_snapshot. The new order is active; send "draft": true to create a draft instead.
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.
Body
application/json
Show child attributes
Show child attributes
Response
201 - application/json
The new purchase order, under purchase_order.
Show child attributes
Show child attributes