I will tell you, if you want your API to use your credentials, then the app registration would have to use delegate permissions. You can read more about it under Delegate app registration permissions in Azure Active Directory documentation. In other words, your app will use the permissions of the person logging in. This may be preferred because you can check the claims of the user principal and determine whether or not they have the necessary permissions for your app execute API calls against billing or billing accounts. This approach will work if you have a front-end app that's calling your backend non-interactive API, as this tutorial outlines.
With regards to your second question, it is not possible. However, along similar lines you can utilize a user managed identity instead of a system-assigned one. You can grant the same permissions to the user identity that your account currently has however I advise to a least permission access approach.