[SalesForce] Activate a Master Unsubscribe using the SOAP/REST API

Is there a way to Activate a Master Unsubscribe using the SOAP/REST API?

We are using the update method (UpdateAdd) with SOAP API. It works when a user is activated or subscribed to one or more lists, However if a user unsubscribes from all lists in the account (SMC calls this "Master Unsubscribe"- an administrator has to click on the "Activate" button to add the user back- the user is still a subscriber but is "deactivated"), the UpdateAdd fails in this case and it does this quietly – i.e: without sending back a fault exception. The subscriber is still completely unsubscribed from all lists. So the update/updateAdd method does nothing when a user is "Master Unsubscribed".

Here is a sample SOAP request and response (abbreviated):

abbreviated request
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> 
<env:Header><fueloauth xmlns="http://exacttarget.com">{{fuelOath token}} 
</fueloauth></env:Header>
<env:Body>
<ns2:CreateRequest xmlns:ns2="http://exacttarget.com/wsdl/partnerAPI" 
xmlns:ns3="urn:fault.partner.exacttarget.com">
<ns2:Options>
    <ns2:SaveOptions>
            <ns2:SaveOption>
            <ns2:PropertyName>*</ns2:PropertyName>
        <ns2:SaveAction>UpdateAdd</ns2:SaveAction>
            </ns2:SaveOption>
        </ns2:SaveOptions>
    </ns2:Options>
    <ns2:Objects xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:type="ns2:Subscriber">
    <ns2:EmailAddress>{{subscriber email}}</ns2:EmailAddress> 
   <ns2:SubscriberKey>{{subscriber key}}</ns2:SubscriberKey>
        <ns2:Lists><ns2:ID>7026</ns2:ID>
        <ns2:Status>Active</ns2:Status>
        </ns2:Lists>
    <ns2:Lists>
    <ns2:ID>7027</ns2:ID>
    <ns2:Status>Unsubscribed</ns2:Status>
    </ns2:Lists>
    </ns2:Objects>
    </ns2:CreateRequest>
    </env:Body></env:Envelope>

abbreviated response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" 
 xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- 
   wssecurity-secext-1.0.xsd"
     xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss- 
   wssecurity-utility-1.0.xsd">
    <soap:Header><wsa:Action>CreateResponse</wsa:Action>
        <wsa:MessageID>urn:uuid:911fd420-0e90-4a1b-a6eb- 
   398a197e1f18</wsa:MessageID>
        <wsa:RelatesTo>urn:uuid:bbf97a59-ac07-46d2-a4ed- 
   2d9c3afaae78</wsa:RelatesTo><wsa:To>

    http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:To>
            <wsse:Security><wsu:Timestamp wsu:Id="Timestamp-6f0d74d2-48d6- 
   4c84-a4b0-f3a69b487faf">
            <wsu:Created>2018-09-21T18:46:38Z</wsu:Created> 
   <wsu:Expires>2018-09-21T18:51:38Z</wsu:Expires></wsu:Timestamp> 
           </wsse:Security>
            </soap:Header>
        <soap:Body>
          <CreateResponse xmlns="http://exacttarget.com/wsdl/partnerAPI"> 
   <Results> 
       <StatusCode>OK</StatusCode>
            <StatusMessage>Created Subscriber.</StatusMessage> 
       <OrdinalID>0</OrdinalID><NewID>51613212</NewID><Object 
    xsi:type="Subscriber">
        <PartnerKey xsi:nil="true"/><ID>51613212</ID><ObjectID 
xsi:nil="true"/> 
   <Email
        Address>{{subscriber email}}</EmailAddress><SubscriberKey> 
   {{subscriber 
        key}}
            </SubscriberKey>
            <Lists><PartnerKey xsi:nil="true"/>
            <ID>7026</ID><ObjectID xsi:nil="true"/><Status>Active</Status> 
   </Lists> 
       <Lists><PartnerKey xsi:nil="true"/>
            <ID>7027</ID><ObjectID xsi:nil="true"/> 
<Status>Unsubscribed</Status> 
       </Lists></Object></Results>
            <RequestID>a3135161-407a-4f01-846b-5f74edd7f26f</RequestID> 
        <OverallStatus>OK</OverallStatus>
          </CreateResponse>
        </soap:Body></soap:Envelope>]

Best Answer

I understand that this post is from 2 years ago, but to anyone who hasnt found an answer, you dont need to specify the ListId if you want to unsubscribe/activate the Subscriber from All Subscriber List. Using Elliot's request body above, this is the only modification you will need:

<UpdateRequest xmlns="http://exacttarget.com/wsdl/partnerAPI">
        <Objects xsi:type="Subscriber">
            ***<SubscriberKey>{{insertSubscriberKey}}</SubscriberKey>
            <Status>Active</Status>
            <Action>Update</Action>***
        </Objects>
</UpdateRequest>

This worked for me 100%. Hopefully it does for you.

Related Topic