Craft Commerce: Agree to Terms Checkbox?
We've implemented this using front end JS, simply don't allow submission until it is ticked, but you could (and/or) in theory add a field to your orders and then validate it as set during the onBeforeSaveOrder event I guess?  If not set, you'd set $event-&gt;performAction to false to stop the order being saved and show an error in your template.

https://craftcommerce.com/docs/events-reference#commerce_orders.onbeforesaveorder

...but frond end JS is probably going to be the easier route here.