---
title: "List purchase orders"
method: GET
path: "/v1/erp/payouts/purchase_orders"
tags: ["Purchase Order"]
---

# List purchase orders

`GET /v1/erp/payouts/purchase_orders`

Returns a paginated list of purchase orders for the company. This endpoint provides comprehensive filtering, sorting, and pagination capabilities to help you query purchase order history effectively.

## Key Features
- **Pagination**: Control result size with `_start` and `_end` parameters (default: 25 items)
- **Sorting**: Sort by any field in ascending or descending order
- **Filtering**: Apply complex filters on multiple fields including amounts, types, statuses, and dates
- **Relationships**: Automatically includes related entities (business partners, items, payables)

## Authorization
- Regular users can only view purchase orders from companies they are members of.
- Admin users can view all purchase orders.

## Response Structure
The response includes the purchase order details along with nested relationships:
- **business_partner**: Complete vendor/supplier information
- **items**: List of purchase order items with approval status and linked invoices
- **payables**: Related fiscal invoices (when items are linked)
- **type**: The specific purchase order type (AgainstInvoice, ByMilestone, or ByPercentage)

## Purchase Order Types
1. **AgainstInvoice**: Single invoice purchase order (exactly 1 item at 100%)
2. **ByMilestone**: Multiple named deliverables with percentages (e.g., Design 30%, Development 70%)
3. **ByPercentage**: Multiple payment stages with percentages (e.g., 30% advance, 70% final)

## Common Use Cases
1. **Get recent purchase orders**: Use default pagination without filters
2. **Find high-value orders**: Filter by amount range
3. **Check approval status**: Filter by item review status
4. **Audit trail**: Sort by `created_at` or `updated_at` with date filters
5. **Vendor reconciliation**: Filter by `business_partner_id`
6. **Budget tracking**: Filter by type and sum amounts

## Query parameters

- `type` string
- `business_partner_id` string, uuid
- `folio` integer
- `created_at` string
- `updated_at` string
- `description` string
- `currency` 'CLP' | 'UF' | 'USD'
- `review_status` 'draft' | 'pending' | 'approved' | 'declined'

## Parameters

- `#/paths/~1v1~1erp~1payouts~1rules/get/parameters/0` — unresolved $ref
- `#/paths/~1v1~1erp~1payouts~1rules/get/parameters/1` — unresolved $ref
- `#/paths/~1v1~1erp~1payouts~1rules/get/parameters/2` — unresolved $ref
- `#/paths/~1v1~1erp~1payouts~1rules/get/parameters/3` — unresolved $ref
- `#/paths/~1v1~1erp~1payouts~1rules/get/parameters/4` — unresolved $ref
- `#/paths/~1v1~1erp~1payouts~1reviews/get/parameters/5` — unresolved $ref

## Response `200`

Successfully retrieved purchase orders list

- Schema[] — unresolved $ref

## Other responses

- `401` — Unauthorized — typically missing/invalid `Authorization` or missing `company-id` header. **The response body is empty** for this guard. Branch your client logic on the status code, not the body. See [Errors](https://docs.cardda.com/docs/errors) for details.

---

[API](https://skmtc.dev/cardda/apis/banking-api.md) · [All operations](https://skmtc.dev/cardda/apis/banking-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cardda/banking-api/revisions/ff1aeb3fda8b/schema)
