6

In Salesforce marketing cloud I have an installed package with an API integration. I am in the process of moving from the old OAuth token created via https://auth.exacttargetapis.com/v1/requestToken to the new OAuth 2 token created via https://mcc289rsykf7bklym5hlwv5n40n4.auth.marketingcloudapis.com/v2/token

I am using the client credentials server to server integration type.

The new OAuth 2 token generated works correctly via any of the REST API endpoints however it doesn't work with the old soap web service when passed in the <fueloauth>TOKEN_HERE</fueloauth> soap header. This does work correctly with the old OAuth token.

Here is an example of the soap call that I am testing with. Like I said this works correctly with tokens generated via https://auth.exacttargetapis.com/v1/requestToken

<?xml version="1.0" encoding="UTF-8"?>
  <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
      <fueloauth>TOKEN_HERE</fueloauth>
    </soapenv:Header>
    <soapenv:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
      <RetrieveRequestMsg xmlns="http://exacttarget.com/wsdl/partnerAPI">
           <RetrieveRequest>
              <ObjectType>DataExtensionObject[DE-KEY]</ObjectType>
              <Properties>CustomerKey</Properties>
              <Properties>Name</Properties>
              <Properties>Keys</Properties>
              <Properties>Type</Properties>
              <Properties>ModifiedDate</Properties>
              <Properties>CreatedDate</Properties>
           </RetrieveRequest>
        </RetrieveRequestMsg>
      </soapenv:Body>
    </soapenv:Envelope>

The error I receive back is "User not authorized" the soap fault is below:

            <faultcode>soap:Client</faultcode>
            <faultstring>User not authorized</faultstring>
            <faultactor>https://mcc289rsykf7bklym5hlwv5n40n4.soap.marketingcloudapis.com/Service.asmx</faultactor>
            <detail>
                <apifault xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:fault.partner.exacttarget.com">
                    <Code>11</Code>
                    <Message>User not authorized</Message>
                </apifault>
            </detail>
        </soap:Fault>

Its worth noting that I have enabled every permission available in the API integration.

Has any one experienced any similar issues or have an idea how to fix this issue?

  • i think your token was expired generate new token the try – pkharries Feb 28 at 7:23
  • The token definitely hasn’t expired, it was just generated and I used it via the REST API and it works fine. The soap service returns a different fault when the token has expired. – Dan Feb 28 at 7:42
  • workaround (no solution unfortunately) suggested here: salesforce.stackexchange.com/questions/252031/… – Jonas Lamberty Feb 28 at 14:25
  • To verify, you are using the new soap_instance_url when you are making your soap calls, right? This authentication will not work with any legacy endpoints – Gortonington Feb 28 at 15:16
  • I have successfully used the new S2S v2 OAuth token to make SOAP calls now. This issue appears to have been resolved. – Gortonington Mar 21 at 20:41
5

I had a email exchange with a contact I have in the salesforce marketing cloud team and I was specifically told that the enchanced package support isn’t complete yet for AppExchange partners and we should continue to use the legacy endpoints until further comms to AppExchange partners says otherwise.

I don’t know what that means for other people how are having a similar issue. We are building an app for the AppExchange so this was relevant to me.

Once I receive further communication regarding the readiness of the enchanced package support I will update this answer.

  • Thanks for the update @Dan! – Gortonington Mar 1 at 14:33
  • 1
    Got feedback in the partner community: "there was a problem on the product side and the fix was deployed last night. I've run my test and was able to create DE without any problems." Sounds like it should work now. – Jonas Lamberty Mar 7 at 7:42
  • Thanks, I have confirmed it now works. I wasted a lot of time with this problem thinking I was missing some vital piece of information in the docs. More testing please SFMC devs :) – Dan Mar 15 at 3:06
  • Can confirm that legacy SOAP API calls using the new auth token header now also works for me. Thanks! – Jake Shorty Mar 18 at 16:37
  • 1
    Hmm also went back to check this one and was surprised it is now working...for once would be nice if documentation was clear and support had the real answers:/ – Doug Apr 7 at 9:38

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.