Work Order Lifecycle

Understanding how work orders move through the system is key to building effective integrations.

Status Flow

estimate
→
approved
→
in_progress
→
quality_check
→
ready_for_pickup
→
invoiced
→
paid
→
completed

Tenants can also configure custom workflow statuses; pass any string to status and the API stores it as-is. The list above is the default set.

1. Creation

Work orders start with a customer and vehicle link. Use POST /v1/work-orders to initialize a ticket.

2. Adding Services & Line Items

Edit the services[] array via PATCH /v1/work-orders/{id}/services/{svcId} to add labor / parts / tires / materials. Each service block carries its own version — PATCH must echo the version it read; the server returns 409 on stale writes. Totals on the work order are recomputed server-side.

3. Updating Status

Use PATCH /v1/work-orders/{id} with a status body field. Status changes trigger webhook events (work_order.updated).

Inventory Management

Keep your stock levels accurate by syncing your inventory system with BigShop.

Real-time Updates

When parts are added to a work order, stock is reserved. When the work order is completed, stock is deducted.

Low Stock Alerts

Set reorder points for items. The API returns low_stock flags you can filter by.

Webhook Integration

Webhooks allow your system to react immediately to changes in BigShop.

Example Payload: work_order.updated

{
  "event": "work_order.updated",
  "occurredAt": "2026-03-20T14:30:00Z",
  "data": {
    "workOrderId": "wo_987xyz",
    "previousStatus": "approved",
    "currentStatus": "in_progress",
    "technicianId": "usr_456"
  }
}

Best Practices

  • Always verify the webhook signature (if enabled) to ensure authenticity.
  • Respond with a 200 OK immediately to prevent retries.
  • Process heavy logic asynchronously after receiving the event.