---
title: "Reads all Po template versions"
method: GET
path: "/api/2026-10-01/resources/procurement/po_template_versions"
tags: ["Procurement > PoTemplateVersion"]
---

# Reads all Po template versions

`GET /api/2026-10-01/resources/procurement/po_template_versions`

## Request

- Base URL: `https://api.factorialhr.com`
- URL: `https://api.factorialhr.com/api/2026-10-01/resources/procurement/po_template_versions`
- Auth: API key in header `x-api-key`

Fetch PO template versions for the company. A version is the immutable snapshot of a template's schema: it owns the field definitions a purchase order created against it must comply with. To introspect the schema an integrator will write POs against, request the active version (status=active) and read its field definitions. To update a purchase order created with an older template, request the specific historical version by id (purchase_order.po_template_version_id) so the correct schema is used.

## Query parameters

- `ids[]` string[]: An array of PO template version IDs to filter by. Use the po_template_version_id pinned on a purchase order to retrieve the exact (possibly historical, non-active) schema it was created with.
- `po_template_ids[]` string[]: An array of PO template IDs to filter versions for.
- `status[]` string[]: Filter by version status. Use "active" to retrieve the single currently-active version of each template (the schema new POs are created against). Other values: "draft", "archived".

## Response `200`

OK

- object
  - `data` ProcurementPoTemplateVersion[]
    - `id` string, required: The id of the PO template version
    - `po_template_id` string, required: The PO template this version belongs to
    - `company_id` string, required: Identifier of the company that owns this version
    - `version_number` integer, required: The sequential version number
    - `based_on_version_id` string: The version this was forked from (null for original)
    - `status` string, required: Version status (draft, active, archived)
    - `created_by_id` string: Employee ID who created this version
    - `published_by_id` string: Employee ID who published this version (null if not published)
    - `published_at` string: When this version was published (null if not published)
    - `created_at` string, required: When this version was created
    - `updated_at` string, required: When this version was last updated
  - `meta` PagedIndexMeta
    - `start_cursor` string
    - `end_cursor` string
    - `has_previous_page` boolean, required
    - `has_next_page` boolean, required
    - `limit` integer, required
    - `total` integer, required

## Changes

- **2026-11-03** `83ac9aa1de50`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/factorialhr/apis/factorial-api/changes/api/2026-10-01/resources/procurement/po_template_versions/get.md)

---

[API](https://skmtc.dev/factorialhr/apis/factorial-api.md) - [All operations](https://skmtc.dev/factorialhr/apis/factorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/factorialhr/apis/factorial-api/revisions/83ac9aa1de50?raw)
