# Manage PO Statuses **Goal:** move a Sortly purchase order to match where it has got to in your own process, whether that decision was made in another system or over email. Every transition uses the same endpoint and the same two fields: the target `status` and the `version` you got from your last read. - A stale `version` is rejected with `409`. Read immediately before writing, and retry with the new one. - Sending a status the order already has changes nothing, so a retried delivery is safe. | From | Can move to | |---|---| | `draft`, `ready_for_review`, `approved` | each other, or `ordered` | | `ordered` | `voided` or `closed` | | `partially_received`, `received` | `closed` | | `voided`, `closed` | final | Anything outside that returns `400`. `received` and `partially_received` cannot be requested here at all: Sortly sets them when a delivery is recorded against the order, either in the app or through the receive endpoint.