We are having an important issue here since Campaign Monitor API does not allow to subscribe a user with State "Unsubscribed", it just appears as "Active". We are doing this through the API using the Java wrapper (subscriber.State = "Unsubscribed"):
SubscriberToAdd subscriber = new SubscriberToAdd();
subscriber.State = "Unsubscribed"
Why we need to do so? We are exporting our database list of subscribers to Campaign Monitor (CM). In our database some users are selected as unsubscribed. To export this user to CM, we must subscribe him first and after add him to the Supression List by unsubscribing. See the below pseudocode:
This is also giving us problems many times because of the transactionality issue Campaign Monitor has. We have some registers which after 2000 miliseconds of suscription, when trying to unsubscribe we are getting the getApiErrorCode() == 203 indicating this is not yet subscribed. This is becoming urgent issue since we are going to production tonight.
I have shared some emails with Fionnuala about this but decided to post the issue here since is very important to find a solution.
Thanks for getting in touch. I've just recently responded to your email that we have in progress and thought I would share the answer here also. We do have a method you can call that will add the email address you want to the suppression list, which negates the need to add the subscriber, then immediately unsubscribe them in the same call.
It can be located here: http://www.campaignmonitor.com/api/clients/#suppress_email_addresses
You can add all the email addresses via that one call and they will be added to the suppression list straight away.
I hope that makes sense and helps!