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:
This worked for me 100%. Hopefully it does for you.