---
title: "Purchase Order"
description: "Common usage example for Endpoint(ScreenId=PO301000)"
lang: en
languages:
  en: https://docs.vismasoftware.no/vismanetapi/how-tos/supplierledgerendpoint/purchaseorder/index.md
lastmod: 2026-01-28
---

> Documentation index: https://docs.vismasoftware.no/vismanetapi/how-tos/supplierledgerendpoint/purchaseorder/llms.txt


# Purchase Order

Last modified January 28, 2026

> Common usage example for Endpoint(ScreenId=PO301000)


URL: `https://api.finance.visma.net/v1/PurchaseOrder`

For information about the ERP logic behind Purchase Orders, please refer to the [ERP Manual Help: Purchase orders](https://help.content.visma.net/Sweden/SE_EN/online-help/o2c/PO/PO301000-ref.html)

## Methods

---

### GET ALL Purchase Orders

URL: `https://api.finance.visma.net/v1/PurchaseOrder`

#### Query Parameters

##### Supplier=string
  
Lets you search for Purchase Orders registered to one supplier

##### orderStatus=string

Lets you define what orderStatuses to return, these are the Statuses of Purchase Order:

- On hold - The purchase order is a draft and can be edited manually.
- Open - The order was processed in accordance but has not been completed yet.
- Pending approval - The purchase order has not been approved by all the assigned persons.
- Rejected - The order was rejected by one of the persons assigned to approve it.
- Pending printing - Printing is required for the document but has not been performed yet.
- Pending e-mail - E-mailing is required for this document, but it has not been performed yet.
- Closed - All the ordered goods were received.
- Cancelled - The order was cancelled through the “ Cancel order” action - An order with this - status cannot be edited, and purchase receipts cannot be based on it.

#### Usage Example

This will return Purchase Orders registered on supplier “50000” that are in status OPEN.

**GET** `https://api.finance.visma.net/v1/purchaseorder?Supplier=50000&status=open`

---

### POST Purchase Order

URL: `https://api.finance.visma.net/v1/purchaseorder`

This example shows the minimum fields you should send to be able to post a new Purchase Order, if you are using automatic numbering you can omit the “referenceNumber” field.

#### JSON Request body

```json
{
    "orderType": {
        "value": "RegularOrder"
    },
    "date": {
        "value": "2019-12-27T09:46:11.202Z"
    },
    "supplier": {
        "value": "50000"
    },
    "lines": [
        {
            "operation": "Insert",
            "inventory": {
                "value": "teststock"
            },
            "lineType": {
                "value": "GoodsForInventory"
            },
            "warehouse": {
                "value": "2"
            },
            "uom": {
                "value": "PALL"
            },
            "orderQty": {
                "value": 2
            },
            "unitCost": {
                "value": 2000
            }
        }
    ]
}
```

If sent successfully, the API will return:

![Created](https://docs.vismasoftware.no/vismanetapi/how-tos/supplierledgerendpoint/purchaseorder/201created4.png)

---

### PUT Purchase Order

URL: `https://api.finance.visma.net/v1/purchaseorder/{purchaseOrder}`

When using PUT, you only send the fields you want to update. In the below example, we update the first line of the Credit Note:

URL
PUT `https://api.finance.visma.net/v1/supplierInvoice/000050`'

#### JSON Request body

```json
{
    "lines": [
        {
            "operation": "Update",
            "lineNumber": {
                "value": 1
            },
            "inventory": {
                "value": "6"
            },
            "orderQty": {
                "value": 1
            }
        }
    ]
}
```

If successful, the API will return:

![No Content](https://docs.vismasoftware.no/vismanetapi/how-tos/supplierledgerendpoint/purchaseorder/nocontent3.png)

---

---

[View this page](https://docs.vismasoftware.no/vismanetapi/how-tos/supplierledgerendpoint/purchaseorder/)


## In this section

