Hi Amy - thanks for the question . I appreciate this is a very long time since you asked and hopefully you resolved the issue. I'm adding an answer for the first question above, for the benefit of anyone else who sees this
APIM Subscription key is set on the http request, the SOAP payload (envelope) is part of the request body. So it should work find by the client adding the required http header and correct value to the incoming http request as documented here https://learn.microsoft.com/en-us/azure/api-management/api-management-subscriptions#use-a-subscription-key
On the second point you should be able to transform the body from the client, before sending on to the backend using XSLT. So you could try that to amend an envelope header REF https://learn.microsoft.com/en-us/azure/api-management/xsl-transform-policy I would use named values for any secrets and integrate these with Key Vault as described here (dont hard code secrets in policy expressions) https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-properties?tabs=azure-portal