Purchase Order Update
Sent when a supplier gives us new expected dates for a purchase order, so your system can update the promise dates it holds. One event per update, scoped to the purchase order, with the affected lines nested.
Dates appear at the level the supplier stated them: on the purchase order when the supplier gave one date for the whole order, on lineItems when the supplier spoke line by line. Only lines that have a new date appear, and an update that carries no new date sends no event.
note carries what the typed fields cannot — the supplier's wording for why a date moved. It is present at both levels.
Failed deliveries are retried with exponential backoff, so the same update can arrive more than once — including after your handler applied it, when the 200 did not reach Augment. purchaseOrderNumber plus collectedAt identifies one update: treat a repeat of that pair as the delivery you have already applied.
Today this event carries expected dates only. What Augment learns that is not a date — cancellations, no record of the purchase order, shipped and delivered confirmations, tracking numbers — is not sent on this event.
New expected dates for a purchase order and its lines, as stated by the supplier. Scoped to the purchase order, with the affected lines nested. Apply the dates as updated promise dates on the purchase order.
The whole request body, sent without the shared event envelope.
Every event carries at least one new date — on the purchase order, on a line, or both. Each date field is individually optional because dates appear only at the level the supplier stated them, so no single field is the one that is always set. That is a guarantee about what Augment sends, not a shape you have to validate.
- collected
At required- Type: string · Format: date-time
When Augment collected the update from the supplier, as a UTC ISO 8601 timestamp ending in
Z. Use it to order updates for the same purchase order — a latercollectedAtreflects the more recent thing the supplier said.
- Type: array object[] ·line
Items requiredThe lines that have a new date. Lines the supplier said nothing new about are omitted, so this array is empty when the supplier stated dates only at purchase order level.
One purchase order line that has a new expected date.
- Type: stringpurchase
Order Number requiredYour purchase order number, as sent when the purchase order was created.
- enumsourceconst:SUPPLIER_EMAILrequired
Where the dates came from. New values may be added as Augment collects updates over other channels, so treat this as an open set.
values- S
U P P L I E R _ E M A I L
- Type: string | null Format: dateexpected
Arrival Date New expected arrival date for the whole purchase order, as a UTC calendar day. Present only when the supplier stated one date for the order rather than per line. Null otherwise.
- Type: string | null Format: dateexpected
Ship Date New expected ship date for the whole purchase order, as a UTC calendar day. Present only when the supplier stated one date for the order rather than per line. Null otherwise.
- Type: string | nullnote
What the typed fields cannot carry — the supplier's account of why the dates moved, at purchase order level.
- 200
Event acknowledged
curl /PURCHASE_ORDER_UPDATE \
--request POST \
--header 'Content-Type: application/json' \
--data '{
"purchaseOrderNumber": "PO-1001",
"expectedShipDate": null,
"expectedArrivalDate": null,
"note": "2 units of RH110 backordered until late September.",
"lineItems": [
{
"identifier": "RH110",
"expectedShipDate": "2026-09-25",
"expectedArrivalDate": null,
"note": "Due into supplier late September."
}
],
"source": "SUPPLIER_EMAIL",
"collectedAt": "2026-08-23T18:04:00Z"
}'