To answer your questions in order:
-
You are correct. You cannot programatically complete checkouts using the storefront API. You must redirect to the webUrl.
-
If you use the Admin REST API you can create and complete checkouts programatically only if you are a sales channel integration. To become a sales channel integration it has to make business sense for your app and it must function as a market place. This is something you would apply for in your partner dashboard. After a review of your request from our end, your app will or will not be converted to a sales channel integration. More on that here.
-
Related to point 2, here’s information on payment processing, which is also a part of the sales channel SDK.