{"_id":"5ad0e1c3339d8400037554ee","project":"55dd9f2e0efd5821000d54d9","version":{"_id":"55dd9f4dab0e4d210045aae9","__v":39,"project":"55dd9f2e0efd5821000d54d9","createdAt":"2015-08-26T11:13:17.024Z","releaseDate":"2015-08-26T11:13:17.024Z","categories":["55dd9f4dab0e4d210045aaea","55ddb5fa9067202b00ddff6f","55e0472c6bad670d0081f213","55e04764a44fae0d00214671","55e047a9a44fae0d00214672","55e047b258c5460d0076a9a7","55e95e337fc27b2d00d32cf2","55e979bda7ca823900ad549a","55edb8c18dcb210d0056900b","55f0365c8563861700a33765","55f03677d58f9b1900acf996","55f036938eeefc23001ea5de","55f036a38563861700a33767","55f036c08563861700a33769","55f036d02911b72100482cd7","55f036e92911b72100482cd9","55f036fa8563861700a3376b","55f0370ee507711900e58c69","55f0371df6101b1900c70700","55f0374f2911b72100482cdb","55f0375e2911b72100482cdc","560eb0f659cb8d0d0015cd52","560eb25239fad419002ae1e0","561fb64d4d67490d00804b2a","562b9f775a39cd0d009aff22","562ba0505a39cd0d009aff23","562ba149d56bc30d00f0cb18","562ba595f68a5f0d007b1f3b","562ba78fd56bc30d00f0cb1b","562ba8b95a39cd0d009aff27","562baadf6562140d001501d2","562bab37f68a5f0d007b1f3d","562bc1bf9ebc950d000f7523","562bc99ced4bea0d00c11dfa","562bd29c1b98640d00714520","562bd5875a39cd0d009aff60","562bdfabff2da50d002c0aaf","562be0bd5a39cd0d009aff75","57a0b476d8313e1900454439"],"is_deprecated":false,"is_hidden":false,"is_beta":false,"is_stable":true,"codename":"","version_clean":"2.0.0","version":"2"},"category":{"_id":"562b9f775a39cd0d009aff22","project":"55dd9f2e0efd5821000d54d9","pages":["562ba0bbed4bea0d00c11de2","562ba2436562140d001501cd","562ba4a6f68a5f0d007b1f3a","562ba73c6562140d001501d1","562ba8e19ebc950d000f750b","562badaded4bea0d00c11de6","562bae17db5fea0d003fa832","562baef76562140d001501d4","562baf3ad56bc30d00f0cb1e","562bbfe59ebc950d000f7521","562bc031ed4bea0d00c11df1","562bc060d56bc30d00f0cb2f","562bc0f1d56bc30d00f0cb30","562bc14a5a39cd0d009aff49","562bc17c5a39cd0d009aff4a","562bc8ca5a39cd0d009aff54","562bc9131b98640d0071451b","562bd54052fb180d0034cc0b","562bda3212c2820d00869ba0","562bdab29ebc950d000f753c","562bdb00ff2da50d002c0aac","562bdb851b98640d00714527","562bde831b98640d0071452c","562bded9ff2da50d002c0aae","562be2159ebc950d000f7542","562be2725a39cd0d009aff78","562be33d9ebc950d000f7543","562d619ae01a430d00c2c82d"],"version":"55dd9f4dab0e4d210045aae9","__v":28,"sync":{"url":"","isSync":false},"reference":false,"createdAt":"2015-10-24T15:10:47.563Z","from_sync":false,"order":22,"slug":"contacts-1","title":"Contacts"},"user":"55dd9841cafe7221002a4c62","__v":5,"parentDoc":null,"updates":[],"next":{"pages":[],"description":""},"createdAt":"2018-04-13T16:58:43.133Z","link_external":false,"link_url":"","githubsync":"","sync_unique":"","hidden":false,"api":{"settings":"","results":{"codes":[{"name":"","code":"<s:Envelope xmlns:s=\"http://schemas.xmlsoap.org/soap/envelope/\">\n   <s:Body>\n      <CreateAddressBookResponse xmlns=\"http://apiconnector.com/v2\">\n         <CreateAddressBookResult xmlns:a=\"http://apiconnector.com\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\">\n            <a:Id>0</a:Id>\n            <a:Name>My Address Book</a:Name>\n            <a:Visibility>Public</a:Visibility>\n            <a:Contacts>0</a:Contacts>\n         </CreateAddressBookResult>\n      </CreateAddressBookResponse>\n   </s:Body>\n</s:Envelope>","language":"xml","status":200}]},"examples":{"codes":[{"code":"<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:v2=\"http://apiconnector.com/v2\" xmlns:apic=\"http://apiconnector.com\">\n   <soapenv:Header/>\n   <soapenv:Body>\n      <v2:CreateAddressBook>\n         <v2:apiAddressBook>\n            <apic:Name>My Address Book</apic:Name>\n            <apic:Visibility>Public</apic:Visibility>\n         </v2:apiAddressBook>\n      </v2:CreateAddressBook>\n   </soapenv:Body>\n</soapenv:Envelope>","language":"xml"}]},"auth":"required","params":[{"_id":"55ddbc1e746ace2b00dd6f38","ref":"","in":"body","required":true,"desc":"The name of the address book you're creating. It can't be an existing address book's name, 'Test' or 'All contacts'.","default":"","type":"string","name":"Name"},{"_id":"55ddbc1e746ace2b00dd6f37","ref":"","in":"body","required":false,"desc":"All address books are created as 'Private' by default but you can set it as 'Public' upon creation should you wish to.","default":"","type":"string","name":"Visibility"}],"url":"/v:version/ApiService/CreateAddressBook"},"isReference":false,"order":32,"body":"This operation updates a contact within your account with their consent information. The information entered will replace any existing information for the contact.\n\nSetting the OptInType to 'VerifiedDouble' will result in a double opt-in confirmation email being sent to the contact. The result will state that the contact's OptInType is 'Double' and Status is 'PendingOptIn'. These will only update to 'VerifiedDouble'  and 'Subscribed' respectively once the contact has clicked the link in the confirmation email, at which point they will be added to the account. \n\nFurthermore, this method can also be used to create a contact. This is done by using an ID that doesn't already exist, or by using 0, plus using an email address that doesn't already exist within your account. The contact will be created, with a valid ID assigned, in 'All contacts'.\n\n**SOAP action:** [https://[region ID]-api.dotmailer.com/v2/ApiService/UpdateContactWithConsent](doc:updatecontactwithconsent)\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"The input and output parameters for this method are:\\n\\n**Input parameters** \\n  * Contact Id - *required; integer*\\n  * Email - *required; string*\\n  * OptInType - *optional; string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\\n  * EmailType - *optional; string ('PlainText', 'Html')*\\n  * DataFields - *optional; array of ContactData* \\n       * ContactData\\n            * Key - *string*\\n            * Value - *anyType* (please note: the data type needs to be defined for the value, such as 'string', 'numeric', 'date' or 'boolean'; e.g., for 'Firstname', the XML would need to be as follows - **<apic:Value xsi:type=\\\"xsd:string\\\">John</apic:Value>**)   \\n  * ConsentFields - *optional; array of ConsentData*\\n       * ConsentData\\n            * Key - *string ('Text', 'DateTimeConsented', 'URL', 'IPAddress', 'UserAgent')*\\n            * Value - *anyType* (please note: the data type needs to be defined for the value, such as 'string', 'numeric', 'date' or 'boolean'; e.g., for 'Text', the XML would need to be as follows - **<apic:Value xsi:type=\\\"xsd:string\\\">Your consent text goes here</apic:Value>**)  \\n                 \\n**Output parameters** \\n  * UpdateContactWithConsentResult\\n       * Id - *integer*\\n       * Email - *string*\\n       * OptInType - *string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\\n       * EmailType - *string ('PlainText', 'Html')* \\n       * DataFields - *optional; array of ContactData* \\n            * ContactData\\n                 * Key - *string*\\n                 * Value - *anyType*\\n       * Status - *string ('Subscribed', 'Unsubscribed', 'SoftBounced', 'HardBounced', 'IspComplained', 'MailBlocked', 'PendingOptIn', 'DirectComplaint', 'Deleted', 'SharedSuppression', 'Suppressed', 'NotAllowed', 'DomainSuppression', 'NoMxRecord')*\\n       * ConsentFields - *optional; array of ConsentData*\\n            * ConsentData\\n                 * Key - *string ('Text', 'DateTimeConsented', 'URL', 'IPAddress', 'UserAgent')*\\n                 * Value - *anyType*\",\n  \"title\": \"Input and output parameters\"\n}\n[/block]\n**Example** \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"using (var client = new ApiServiceClient())\\n{\\n\\tclient.ClientCredentials.UserName.UserName = \\\"username\\\";\\n\\tclient.ClientCredentials.UserName.Password = \\\"password\\\";\\n\\n\\tvar contactId = 1;\\n\\tvar contact = client.GetContactById(contactId);\\n\\tvar dataFields = contact.DataFields.ToList();\\n\\tdataFields.Add(new ApiContactData { Key = \\\"Address\\\", Value = \\\"TestAddress\\\" });\\n\\tcontact.DataFields = dataFields.ToArray();\\n\\tvar updatedContact = client.UpdateContact(contact);\\n}\",\n      \"language\": \"csharp\"\n    }\n  ]\n}\n[/block]","excerpt":"Updates a contact by ID with their consent information","slug":"updatecontactwithconsent","type":"basic","title":"UpdateContactWithConsent"}

UpdateContactWithConsent

Updates a contact by ID with their consent information

This operation updates a contact within your account with their consent information. The information entered will replace any existing information for the contact. Setting the OptInType to 'VerifiedDouble' will result in a double opt-in confirmation email being sent to the contact. The result will state that the contact's OptInType is 'Double' and Status is 'PendingOptIn'. These will only update to 'VerifiedDouble' and 'Subscribed' respectively once the contact has clicked the link in the confirmation email, at which point they will be added to the account. Furthermore, this method can also be used to create a contact. This is done by using an ID that doesn't already exist, or by using 0, plus using an email address that doesn't already exist within your account. The contact will be created, with a valid ID assigned, in 'All contacts'. **SOAP action:** [https://[region ID]-api.dotmailer.com/v2/ApiService/UpdateContactWithConsent](doc:updatecontactwithconsent) [block:callout] { "type": "info", "body": "The input and output parameters for this method are:\n\n**Input parameters** \n * Contact Id - *required; integer*\n * Email - *required; string*\n * OptInType - *optional; string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\n * EmailType - *optional; string ('PlainText', 'Html')*\n * DataFields - *optional; array of ContactData* \n * ContactData\n * Key - *string*\n * Value - *anyType* (please note: the data type needs to be defined for the value, such as 'string', 'numeric', 'date' or 'boolean'; e.g., for 'Firstname', the XML would need to be as follows - **<apic:Value xsi:type=\"xsd:string\">John</apic:Value>**) \n * ConsentFields - *optional; array of ConsentData*\n * ConsentData\n * Key - *string ('Text', 'DateTimeConsented', 'URL', 'IPAddress', 'UserAgent')*\n * Value - *anyType* (please note: the data type needs to be defined for the value, such as 'string', 'numeric', 'date' or 'boolean'; e.g., for 'Text', the XML would need to be as follows - **<apic:Value xsi:type=\"xsd:string\">Your consent text goes here</apic:Value>**) \n \n**Output parameters** \n * UpdateContactWithConsentResult\n * Id - *integer*\n * Email - *string*\n * OptInType - *string ('Unknown', 'Single', 'Double', 'VerifiedDouble')*\n * EmailType - *string ('PlainText', 'Html')* \n * DataFields - *optional; array of ContactData* \n * ContactData\n * Key - *string*\n * Value - *anyType*\n * Status - *string ('Subscribed', 'Unsubscribed', 'SoftBounced', 'HardBounced', 'IspComplained', 'MailBlocked', 'PendingOptIn', 'DirectComplaint', 'Deleted', 'SharedSuppression', 'Suppressed', 'NotAllowed', 'DomainSuppression', 'NoMxRecord')*\n * ConsentFields - *optional; array of ConsentData*\n * ConsentData\n * Key - *string ('Text', 'DateTimeConsented', 'URL', 'IPAddress', 'UserAgent')*\n * Value - *anyType*", "title": "Input and output parameters" } [/block] **Example** [block:code] { "codes": [ { "code": "using (var client = new ApiServiceClient())\n{\n\tclient.ClientCredentials.UserName.UserName = \"username\";\n\tclient.ClientCredentials.UserName.Password = \"password\";\n\n\tvar contactId = 1;\n\tvar contact = client.GetContactById(contactId);\n\tvar dataFields = contact.DataFields.ToList();\n\tdataFields.Add(new ApiContactData { Key = \"Address\", Value = \"TestAddress\" });\n\tcontact.DataFields = dataFields.ToArray();\n\tvar updatedContact = client.UpdateContact(contact);\n}", "language": "csharp" } ] } [/block]