*REST API › Objects › Finance*

# Purchase order

> Purchase order to a supplier.

A purchase order to a supplier. The amounts are costs, because the object is a purchase. The lines are not published, so an expense cannot be attributed to a specific item of a rental. A purchase order can be changed, approved and received, and it needs the purchases add-on. Purchase orders are bounded to the subscription that owns the key.

Schemas: `PurchaseOrderDto`

## Attributes

| Name | Type | Description |
| --- | --- | --- |
| `id` | string | Unique purchase order identifier. |
| `poNumber` | string | Purchase order number; null while it is a draft. |
| `status` | string | Purchase order status. `draft`, `pending`, `completed`, `cancelled` |
| `type` | string | Purchase order type. `subrental`, `stock_purchase`, `resale_purchase`, `consumable_purchase`, `technician`, `transport`, `repair`, `consignment` |
| `isDraft` | boolean | true if the purchase order is still a draft. |
| `poDate` | string<date-time> | Purchase order date in ISO 8601 UTC; null if not set. |
| `supplierId` | string | Supplier identifier; null while a draft has no supplier. Resolve it against `/api/v1/contacts`. |
| `reference` | string | Free-form reference of the purchase order; null if it has none. |
| `currency` | string | Currency of the purchase order, as an ISO 4217 code. |
| `subTotal` | string | Subtotal before discounts and taxes, as a decimal string "1234.50". |
| `discountTotal` | string | Discount total, as a decimal string "1234.50". |
| `taxesPrice` | string | Tax total, as a decimal string "1234.50". |
| `netPrice` | string | Taxable base, as a decimal string "1234.50". |
| `grossPrice` | string | Total including taxes, as a decimal string "1234.50". |
| `totalPaid` | string | Amount already paid, as a decimal string "1234.50"; null if no payment has been recorded. |
| `orderId` | string | Associated rental order; null if it has none. |
| `orderNumber` | string | Number of that order; null if it has none. |
| `projectId` | string | Associated project; null if it has none. |
| `repairTicketId` | string | Repair ticket that originated the purchase; null if it does not come from one. |
| `notes` | string | Purchase order notes; null if it has none. |
| `createdAt` | string<date-time> | Creation date in ISO 8601 UTC. |
| `updatedAt` | string<date-time> | Last modification date in ISO 8601 UTC. |

## Values

| Field | Values |
| --- | --- |
| `status` | `draft`, `pending`, `completed`, `cancelled` |
| `type` | `subrental`, `stock_purchase`, `resale_purchase`, `consumable_purchase`, `technician`, `transport`, `repair`, `consignment` |

## Example

*Purchase order · Generated from the schema*

```json
{
  "id": "id_8f2a1c",
  "poNumber": "string",
  "status": "draft",
  "type": "subrental",
  "isDraft": true,
  "poDate": "2026-09-01T08:00:00Z",
  "supplierId": "string",
  "reference": "string",
  "currency": "EUR",
  "subTotal": "1234.50",
  "discountTotal": "1234.50",
  "taxesPrice": "1234.50",
  "netPrice": "1234.50",
  "grossPrice": "1234.50",
  "totalPaid": "1234.50",
  "orderId": "string",
  "orderNumber": "string",
  "projectId": "string",
  "repairTicketId": "string",
  "notes": "string",
  "createdAt": "2026-09-01T08:00:00Z",
  "updatedAt": "2026-09-01T08:00:00Z"
}
```

## Returned by

- [`GET /api/v1/purchase-orders`](https://docs.filmo.io/rest-api/endpoint-reference/purchase-orders/list-purchase-orders) — List purchase orders
- [`GET /api/v1/purchase-orders/{purchaseOrderId}`](https://docs.filmo.io/rest-api/endpoint-reference/purchase-orders/get-a-purchase-order) — Get a purchase order

## Modified by

- [`PATCH /api/v1/purchase-orders/{purchaseOrderId}`](https://docs.filmo.io/rest-api/endpoint-reference/purchase-orders/update-a-purchase-order) — Update a purchase order
- [`POST /api/v1/purchase-orders/{purchaseOrderId}/approve`](https://docs.filmo.io/rest-api/endpoint-reference/purchase-orders/approve-a-purchase-order) — Approve a purchase order
- [`POST /api/v1/purchase-orders/{purchaseOrderId}/receive`](https://docs.filmo.io/rest-api/endpoint-reference/purchase-orders/receive-material-from-a-purchase-order) — Receive material from a purchase order

---

Canonical URL: https://docs.filmo.io/rest-api/objects/purchase-order  
Last updated: 2026-10-25