# submitPurchaseOrder

## Overview

Submits a DRAFT purchase order for approval, transitioning status to SUBMITTED.

## Modules Commands Used

- [purchase] SubmitPurchaseOrder

## Exception Handling

| Error Code | Description |
| --- | --- |
| PURCHASE_PURCHASE_ORDER_NOT_FOUND | The specified purchase order does not exist |
| PURCHASE_PURCHASE_ORDER_NOT_DRAFT | The purchase order is not in DRAFT status and cannot be submitted |
| PURCHASE_EMPTY_PURCHASE_ORDER_LINES | The purchase order has no line items |
| PURCHASE_PARTNER_NOT_SUPPLIER | The specified partner is not designated as a supplier |

> **Note:** `externalSupplierOrderReference` is non-unique by design — the same
> value may be reused across multiple POs, and submission is not blocked when
> another PO already carries the same reference. There is no duplicate-reference
> check at submit time.
