---
title: "Purchase Order - Create V2"
method: POST
path: "/purchase_order/create_v2"
tags: ["purchase_order"]
---

# Purchase Order - Create V2

`POST /purchase_order/create_v2`

Create a purchase order using names instead of IDs for store, distributor, and warehouse. Supports item lookup by SKU, MPN, or barcode.

## Request body

- object
  - `data` object, required — Purchase order data object (v2)

## Response `200`

Purchase order created

- object
  - `success` boolean, required — Whether the operation succeeded
  - `_id` string — ID of the created purchase order
  - `number` union — PO number (may be auto-generated)
    - string
    - number
  - `errors` string[] — Array of validation error messages
  - `add_results` unknown[] — Results from auto-adding serial numbers (pallet processing)
    - unknown
  - `skulabs_warning` object — Non-fatal warning from background operations

## 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)
