This is due to norwegian law, european law, best practice for e-commerce as interpreted by Forbrukerr?det and the agreements you have with the payment providers.
Long story short: you can normally capture the payment for orders when the orders are (in the process of being) sent or delivered. Before that, you can only reserve the funds from the customers’ account. Based on the documentation available from WooCommerce for payment gateways with this feature, this was interpreted as being possible in the “Processing” status, with the “On-hold” status being used for orders not yet captured.
When the order is set to “Processing” it will be captured automatically. It is only possible to capture the payment once, so there will be no duplicate charges. You can refund after capture, but you cannot re-capture funds that have been refunded.
A special case: Orders that are delivered as soon as the order is completed, will be captured at once. In WooCommerce, by default, these are orders where all items are both “virtual” and “downloadable”. You can extend this by modifying the “needs_processing” filter on the order. If it doesn’t need processing, it will be automatically captured.
As the “On-hold” status has other meanings, one of which “There is a problem with your order”, very many payment gateways use the “Processing” status instead of on-hold after the order has been processed, with the money being captured only when the order is set to “Complete”. You can select this for Vipps too in the payment gateway settings, which you will find in WooCommerce/Settings/Payment/Vipps (/wp-admin/admin.php?page=wc-settings&tab=checkout§ion=vipps)
If you do this, you should complete shipping only after setting to complete (or manually capturing) to avoid any chance of the capture failing. This seems to basically never happen, but still. Keeping that in mind, you may prefer this flow.
If you need to capture all order payments automatically, even if they require shipping/processing, this counts as pre-payment of the order, and will require explicit consent from the customer (in your terms and condition) and a special agreement with Vipps.
Currently, partial capture of orders is not possible, but this can be implemented at some point.
So to sum up; you may want to choose “Processing” as your end-state in the Vipps settings, you cannot charge the customer twice, and capture will happen automatically either in the “Processing” stage or the “Complete” stage.