---
title: "Purchase Order Bulk Action"
method: POST
path: "/purchase_orders/bulk_action"
---

# Purchase Order Bulk Action

`POST /purchase_orders/bulk_action`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/purchase_orders/bulk_action`
- Auth: API key in header `x-api-key`

Operates on Purchase Orders. In the Zuper client app this module is labeled "Purchase Order" for most companies, and "Material Order" for companies in the roofing industry — the API and data shape are identical either way. Purchase Orders and Work Orders (Service Orders) share the exact same underlying schema and endpoints; they're distinguished only by the `purchase_order_type` field (`PURCHASE_ORDER` here) and the `/purchase_orders` vs `/service_orders` route prefix. Only `action: "update_status"` is currently supported. The action is processed asynchronously by a background worker — this endpoint acknowledges the request immediately; it does not confirm that every order was updated by the time it responds.

## Request body

- object
  - `purchase_order_uid` string[]: UIDs to target. Alternative to filter_rules.
  - `filter_rules` object[]: Rule-engine filter, alternative to purchase_order_uid.
  - `filter_rule_operator` 'AND' | 'OR'
  - `action` 'update_status', required
  - `action_options` object, required
    - `status` 'DRAFT' | 'SUBMITTED' | 'APPROVED' | 'REJECTED' | 'CANCELED' | 'SENT_TO_VENDOR' | 'VENDOR_APPROVED' | 'VENDOR_REJECTED' | 'FULFILLED' | 'PARTIALLY_FULFILLED' | 'WORK_COMPLETED' | 'INVOICED' | 'PAID' | 'CLOSED', required

## Response `200`

200

- object
  - `type` 'success'
  - `title` string
  - `message` string

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/purchase_orders/bulk_action/post.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
