Currently, the workflow we have is as follows:
1.Client app clicks on checkout.
2.Turn quote into an order, and clear/deactivate quote. Set order as pending
.
3.The app/user is then forwarded to third party payment gateway, where they'll enter their credentials.
4.The third party does a callback to our server, returning if the user has successfully paid the amount, as well as the increment order Id.
5.Upon success, create an invoice for the order and set as paid.
My question is, is this a correct workflow? Or should I create an invoice upon order creation? And what do I set the invoice capture option as? Offline or Online?