Update Purchase Order Status

Changed on

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. Status transitions are validated against a fixed transition matrix — an unreachable transition is rejected with 400. FULFILLED is not a valid status for a Work Order (Service Order); use WORK_COMPLETED instead.

put/purchase_orders/{purchase_order_uid}/status

Request

  • Base URL
    https://dc-region.zuperpro.com/api
  • URL
    https://dc-region.zuperpro.com/api/purchase_orders/{purchase_order_uid}/status
  • Auth
    API key in header x-api-key

Path parameters

purchase_order_uidstring required

Request body

purchase_order_status'DRAFT' | 'SUBMITTED' | 'APPROVED' | 'REJECTED' | 'CANCELED' | 'SENT_TO_VENDOR' | 'VENDOR_APPROVED' | 'VENDOR_REJECTED' | 'FULFILLED' | 'PARTIALLY_FULFILLED' | 'WORK_COMPLETED' | 'INVOICED' | 'PAID' | 'CLOSED' required
remarksstring
attachmentsobject[]

Response

200

type'success'
titlestring

Exact wording is "Purchase Order" for most companies, or "Material Order" for roofing-industry companies.

messagestring

Exact wording is "Purchase Order" for most companies, or "Material Order" for roofing-industry companies.

dataobject

Present only for vendor-integrated suppliers — holds the supplier submission result.

Changes

    • breaking

      request property was restricted to a list of enum values

    • breaking

      the request property became required

    • info

      added the new optional request property

    • info

      added the new APPROVED enum value to the request property

    • info

      added the new CANCELED enum value to the request property

    • info

      added the new CLOSED enum value to the request property

    • info

      added the new DRAFT enum value to the request property

    • info

      added the new FULFILLED enum value to the request property

    • info

      added the new INVOICED enum value to the request property

    • info

      added the new PAID enum value to the request property

    • info

      added the new PARTIALLY_FULFILLED enum value to the request property

    • info

      added the new REJECTED enum value to the request property

    • info

      added the new SENT_TO_VENDOR enum value to the request property

    • info

      added the new SUBMITTED enum value to the request property

    • info

      added the new VENDOR_APPROVED enum value to the request property

    • info

      added the new VENDOR_REJECTED enum value to the request property

    • info

      added the new WORK_COMPLETED enum value to the request property

    • info

      added the media type application/json for the response with the status