The single design question for purchase order approval software is when the approval happens. Before the order goes to the supplier, it is a decision. After, it is a formality performed on a commitment that already exists, and the control is theatre. Plenty of implementations get this wrong for understandable reasons, usually because approving first felt too slow, and the fix is speed rather than sequence.
Why sequence is the whole control
Once a supplier holds an order they may act on it, and in most commercial relationships you are committed whether or not anyone internal has agreed. Approving afterwards can catch errors, but it cannot prevent the spend, which is what the approval was for. If your process approves after issue, you have a review process rather than an approval one, and it is worth calling it that.
Making it fast enough to survive
Approval-before-send only survives if it is quick, so the practical work is removing delay: routing to a named person, delegation during absence, escalation after a set period, and thresholds that do not send trivial orders to senior people. An approval step that adds days will be worked around, and the workaround will be undocumented.
What to record
Approver, date, value approved, and the order as it stood at that moment. That last point matters because orders get amended: an approval attached to a superseded version tells you very little. Amendments above a threshold should re-trigger approval, which is a policy decision to make consciously rather than discover during an audit.
Questions people ask about purchase order approval software
Should amendments need re-approval?
Above a threshold, yes, particularly increases in value. Set the threshold deliberately; the alternative is orders growing past their approved value one amendment at a time.
What about urgent orders?
Have a documented fast path with a named approver and review it afterwards. Undocumented emergency routes are how the control quietly stops applying.
Can approval be automatic below a value?
Many organisations auto-approve small orders to keep the process usable. That is a policy decision about risk, and it should be written down rather than implied by a configuration setting.