---
title: "Purchase Order - Get Single Bulk"
method: POST
path: "/purchase_order/get_single_bulk"
tags: ["purchase_order"]
---

# Purchase Order - Get Single Bulk

`POST /purchase_order/get_single_bulk`

Retrieve multiple purchase orders by their IDs in a single request.

## Request body

- object
  - `id` string[], required — Array of purchase order IDs
  - `fields` object — Projection fields object, e.g. { "name": 1 }
  - `options` object — Additional options

## Response `200`

Multiple purchase orders

- PurchaseOrder[]
  - `_id` string, required — Unique purchase order identifier
  - `account_id` string — Account ID
  - `number` string, required — PO number
  - `distributor_id` string — Distributor/vendor ID
  - `log` PurchaseOrderLogEntry[] — Activity log entries
    - `user_id` string, nullable — User ID who performed the action
    - `action` string — Action type (created, edited, accepted, added tag, removed tag, etc.)
    - `details` object — Additional details about the action
    - `time` string — ISO 8601 timestamp of the action
  - `status` 'closed' | 'created' | 'receiving' | 'acknowledged' | 'sent' | 'edited' | 'transit' | 'accepting', required — PO status
  - `items` PurchaseOrderItem[] — Line items
    - `item_id` string — Item ID
    - `kit_id` string — Kit ID (when the PO line is a kit)
    - `sku` string — Item SKU
    - `name` string — Item name
    - `quantity` number — Ordered quantity
    - `received` number — Received quantity
    - `cost` number — Unit cost
    - `rate` number — Unit rate
    - `type` 'item' | 'kit' — Line item type
    - `serial_numbers` string[] — Serial/lot numbers received
    - `description` string — Item description/notes
    - `unit` string — Unit of measure
  - `custom_items` object[] — Custom line items
  - `custom_adjustments` object[] — Custom adjustments (fees, duties, etc.)
    - `name` string, required — Adjustment type name
    - `amount` number, required — Adjustment amount
  - `tracking` object[] — Tracking information
  - `subtotal` number — Subtotal amount
  - `total` number — Total amount
  - `tax` number — Tax amount
  - `tax_per` number — Tax percentage
  - `shipping` number — Shipping cost
  - `discount` number — Discount amount
  - `due_date` string, date, nullable — Due date
  - `arrival_date` string, nullable — Expected arrival date
  - `closed_date` string, nullable — Date the PO was closed
  - `metadata` object — Additional metadata
  - `discount_per` number — Discount percentage
  - `tags` string[] — Array of tag IDs (ObjectId strings referencing the tag collection)
  - `store_id` string — Associated store ID
  - `warehouse_id` string — Destination warehouse ID
  - `memo` string, nullable — PO memo
  - `currency` string — Currency code
  - `terms` string, nullable — Payment terms
  - `method` string, nullable — Payment method
  - `order_number` string — Associated order number
  - `dropship_address` object — Dropship address
  - `dropshipped` boolean — Whether this PO is dropshipped
  - `bol_pro_numbers` string[] — BOL/PRO numbers

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden. Insufficient permissions.
- `429` — Too many requests. Rate limit exceeded.
- `500` — Internal server error.

---

[API](https://skmtc.net/skulabs/apis/skulabs-api.md) · [All operations](https://skmtc.net/skulabs/apis/skulabs-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/skulabs/skulabs-api/revisions/4b5ec0ed78a6/schema)
