Optional

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.

Body·
required
application/json

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.

  • collectedAt
    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 later collectedAt reflects the more recent thing the supplier said.

  • lineItems
    Type: array object[] ·
    required

    The 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.

  • purchaseOrderNumber
    Type: string
    required

    Your purchase order number, as sent when the purchase order was created.

  • source
    enum
    const:  
    SUPPLIER_EMAIL
    required

    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
    • SUPPLIER_EMAIL
  • expectedArrivalDate
    Type: string | null Format: 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.

  • expectedShipDate
    Type: string | null Format: 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.

  • note
    Type: string | null

    What the typed fields cannot carry — the supplier's account of why the dates moved, at purchase order level.

Responses
  • 200

    Event acknowledged

Request Example for post/PURCHASE_ORDER_UPDATE
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"
}'
No Body