Purchase Order Events
Webhook events for purchase orders from suppliers
Purchase order events are triggered when purchase orders are created, updated, or deleted.
TypeScript Interfaces
Copy these interfaces to type your webhook handlers:
/** Base event properties included in all webhook events */
interface BaseEvent {
/** Unique event identifier (UUID) */
id: string;
/** Event type */
kind: string;
/** ISO 8601 timestamp */
time: string;
/** Transaction identifier for grouping related events */
transactionId: string;
}purchase.created
Triggered when a new purchase order is created.
{
"id": "evt_abc123",
"kind": "purchase.created",
"time": "2024-01-15T10:30:00Z",
"transactionId": "txn_xyz789",
"orderId": "po_456"
}interface PurchaseCreatedEvent extends BaseEvent {
kind: "purchase.created";
/** Purchase order UUID */
orderId: string;
}purchase.updated
Triggered when a purchase order is updated.
{
"id": "evt_abc123",
"kind": "purchase.updated",
"time": "2024-01-15T10:30:00Z",
"transactionId": "txn_xyz789",
"orderId": "po_456"
}interface PurchaseUpdatedEvent extends BaseEvent {
kind: "purchase.updated";
/** Purchase order UUID */
orderId: string;
}purchase.deleted
Triggered when a purchase order is deleted.
{
"id": "evt_abc123",
"kind": "purchase.deleted",
"time": "2024-01-15T10:30:00Z",
"transactionId": "txn_xyz789",
"orderId": "po_456"
}interface PurchaseDeletedEvent extends BaseEvent {
kind: "purchase.deleted";
/** Purchase order UUID */
orderId: string;
}All Purchase Order Event Types
Union type for handling any purchase order event:
type PurchaseOrderEvent =
| PurchaseCreatedEvent
| PurchaseUpdatedEvent
| PurchaseDeletedEvent;
// Type guard for purchase order events
function isPurchaseOrderEvent(event: BaseEvent): event is PurchaseOrderEvent {
return event.kind.startsWith("purchase.");
}
// Example webhook handler
async function handlePurchaseOrderWebhook(event: PurchaseOrderEvent) {
switch (event.kind) {
case "purchase.created":
console.log(`Purchase order ${event.orderId} created`);
// Notify procurement team
// Create receiving schedule
break;
case "purchase.updated":
console.log(`Purchase order ${event.orderId} updated`);
// Sync changes to external systems
break;
case "purchase.deleted":
console.log(`Purchase order ${event.orderId} deleted`);
// Clean up related data
break;
}
}