cURL
curl -X POST "$EXSITED_BASE_URL/api/v4/purchase_orders/PO-0001/notes" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
--form-string 'note=<p>Goods received in full.</p>' \
-F "file=@delivery-note.pdf"from exsited import build_client
client = build_client()
response = client.purchase_orders.create_purchase_order_note(
"PO-0001",
"<p>Goods received in full.</p>",
files={"file": open("delivery-note.pdf", "rb")},
)
print(response.data)
import {readFileSync} from 'node:fs';
import {buildClient} from 'exsited';
const client = await buildClient();
const response = await client.purchaseOrders.createPurchaseOrderNote('PO-0001', '<p>Goods received in full.</p>', {
files: {file: ['delivery-note.pdf', readFileSync('delivery-note.pdf')]},
});
console.log(response.data);
use Exsited\Client\ClientRegistry;
$client = ClientRegistry::buildClient();
$response = $client->purchaseOrders->createPurchaseOrderNote(
'PO-0001',
'<p>Goods received in full.</p>',
['file' => ['delivery-note.pdf', fopen('delivery-note.pdf', 'r')]],
);
print_r($response->data);
import com.exsited.client.ApiResponse;
import com.exsited.client.ClientRegistry;
import com.exsited.client.ExsitedClient;
import com.exsited.client.RequestOptions;
import com.exsited.resources.purchase_orders.purchase_orders_dto.PurchaseOrdersDto.PurchaseOrderNotesView;
import java.nio.file.Path;
import java.util.Map;
ExsitedClient client = ClientRegistry.buildClient();
ApiResponse<PurchaseOrderNotesView> response = client.purchaseOrders().createPurchaseOrderNote(
"PO-0001",
"<p>Goods received in full.</p>",
Map.of("file", Path.of("delivery-note.pdf")),
RequestOptions.none());
System.out.println(response.getMap());
using Exsited.Client;
await using var client = ExsitedClient.BuildClient();
var response = await client.PurchaseOrders.CreatePurchaseOrderNoteAsync(
"PO-0001",
"<p>Goods received in full.</p>",
new Dictionary<string, object?> { ["file"] = new object?[] { "delivery-note.pdf", File.ReadAllBytes("delivery-note.pdf") } });
Console.WriteLine(response.Json);
import 'dart:io';
import 'package:exsited/exsited.dart';
final client = buildClient();
final response = await client.purchaseOrders.createPurchaseOrderNote(
'PO-0001',
'<p>Goods received in full.</p>',
files: {
'file': [
'delivery-note.pdf',
File('delivery-note.pdf').readAsBytesSync(),
],
},
);
print(response.map);
import (
"context"
"fmt"
"log"
"os"
exsited "github.com/exsited/exsited-sdk-go/v4"
)
client, err := exsited.BuildClient(nil)
if err != nil {
log.Fatal(err)
}
defer client.Close()
file, err := os.ReadFile("delivery-note.pdf")
if err != nil {
log.Fatal(err)
}
response, err := client.PurchaseOrders().CreatePurchaseOrderNote(context.Background(), "PO-0001", "<p>Goods received in full.</p>", map[string]any{"file": []any{"delivery-note.pdf", file}}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Map)
{
"note": {
"attachments": [
{
"uuid": "<string>",
"filename": "<string>",
"content_type": "<string>",
"size": 123,
"href": "<string>"
}
],
"content": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"created_on": "<string>",
"group": "<unknown>",
"href": "<string>",
"id": "<string>",
"last_updated_by": "<unknown>",
"last_updated_on": "<unknown>",
"object": "<string>",
"purchase_order": {
"href": "<string>",
"id": "<string>",
"object": "<string>"
},
"user": "<unknown>",
"version": 123,
"watchers": [
{
"email": "<string>",
"name": "<string>",
"type": "<string>"
}
]
}
}Purchase orders
Create a purchase order note
Adds a note, with an optional file, to a purchase order and returns it under note.
POST
/
purchase_orders
/
{purchase_order_id}
/
notes
cURL
curl -X POST "$EXSITED_BASE_URL/api/v4/purchase_orders/PO-0001/notes" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
--form-string 'note=<p>Goods received in full.</p>' \
-F "file=@delivery-note.pdf"from exsited import build_client
client = build_client()
response = client.purchase_orders.create_purchase_order_note(
"PO-0001",
"<p>Goods received in full.</p>",
files={"file": open("delivery-note.pdf", "rb")},
)
print(response.data)
import {readFileSync} from 'node:fs';
import {buildClient} from 'exsited';
const client = await buildClient();
const response = await client.purchaseOrders.createPurchaseOrderNote('PO-0001', '<p>Goods received in full.</p>', {
files: {file: ['delivery-note.pdf', readFileSync('delivery-note.pdf')]},
});
console.log(response.data);
use Exsited\Client\ClientRegistry;
$client = ClientRegistry::buildClient();
$response = $client->purchaseOrders->createPurchaseOrderNote(
'PO-0001',
'<p>Goods received in full.</p>',
['file' => ['delivery-note.pdf', fopen('delivery-note.pdf', 'r')]],
);
print_r($response->data);
import com.exsited.client.ApiResponse;
import com.exsited.client.ClientRegistry;
import com.exsited.client.ExsitedClient;
import com.exsited.client.RequestOptions;
import com.exsited.resources.purchase_orders.purchase_orders_dto.PurchaseOrdersDto.PurchaseOrderNotesView;
import java.nio.file.Path;
import java.util.Map;
ExsitedClient client = ClientRegistry.buildClient();
ApiResponse<PurchaseOrderNotesView> response = client.purchaseOrders().createPurchaseOrderNote(
"PO-0001",
"<p>Goods received in full.</p>",
Map.of("file", Path.of("delivery-note.pdf")),
RequestOptions.none());
System.out.println(response.getMap());
using Exsited.Client;
await using var client = ExsitedClient.BuildClient();
var response = await client.PurchaseOrders.CreatePurchaseOrderNoteAsync(
"PO-0001",
"<p>Goods received in full.</p>",
new Dictionary<string, object?> { ["file"] = new object?[] { "delivery-note.pdf", File.ReadAllBytes("delivery-note.pdf") } });
Console.WriteLine(response.Json);
import 'dart:io';
import 'package:exsited/exsited.dart';
final client = buildClient();
final response = await client.purchaseOrders.createPurchaseOrderNote(
'PO-0001',
'<p>Goods received in full.</p>',
files: {
'file': [
'delivery-note.pdf',
File('delivery-note.pdf').readAsBytesSync(),
],
},
);
print(response.map);
import (
"context"
"fmt"
"log"
"os"
exsited "github.com/exsited/exsited-sdk-go/v4"
)
client, err := exsited.BuildClient(nil)
if err != nil {
log.Fatal(err)
}
defer client.Close()
file, err := os.ReadFile("delivery-note.pdf")
if err != nil {
log.Fatal(err)
}
response, err := client.PurchaseOrders().CreatePurchaseOrderNote(context.Background(), "PO-0001", "<p>Goods received in full.</p>", map[string]any{"file": []any{"delivery-note.pdf", file}}, nil)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Map)
{
"note": {
"attachments": [
{
"uuid": "<string>",
"filename": "<string>",
"content_type": "<string>",
"size": 123,
"href": "<string>"
}
],
"content": "<string>",
"created_by": {
"name": "<string>",
"object": "<string>"
},
"created_on": "<string>",
"group": "<unknown>",
"href": "<string>",
"id": "<string>",
"last_updated_by": "<unknown>",
"last_updated_on": "<unknown>",
"object": "<string>",
"purchase_order": {
"href": "<string>",
"id": "<string>",
"object": "<string>"
},
"user": "<unknown>",
"version": 123,
"watchers": [
{
"email": "<string>",
"name": "<string>",
"type": "<string>"
}
]
}
}Adds a note to the purchase order. Send a multipart form with the text as the
note field and, optionally, a file to attach. Address the purchase order by its code. The new note comes back under note.
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.Authorizations
An access token from POST /api/v4/oauth2/token. The SDKs get and renew it for you.
Path Parameters
The purchase order's code. The note calls address a purchase order by its code.
Body
multipart/form-data
Response
201 - application/json
The new note, under note.
Show child attributes
Show child attributes