Purchase Order Events
Purchase order events are triggered when purchase orders are created, updated, or deleted.
TypeScript Interfaces
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “All Purchase Order Event Types”Union type for handling any purchase order event:
type PurchaseOrderEvent = | PurchaseCreatedEvent | PurchaseUpdatedEvent | PurchaseDeletedEvent;
// Type guard for purchase order eventsfunction isPurchaseOrderEvent(event: BaseEvent): event is PurchaseOrderEvent { return event.kind.startsWith("purchase.");}
// Example webhook handlerasync 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; }}