Hello user959297,
Thank you for reaching out to Constant Contact API Developer Support. My team is here to assist outside software developers with questions about building into Constant Contact's API.
The endpoint to Create or Update a Contact Using a Single Method is specifically intended for use with sign-up forms, as it does automatically set the permission of the contact being added to explicit, meaning they have given you their explicit (rather than implied) permission to send them emails. You can learn more about differences between implied and express permission here:
Understanding implied and express permission for CASL and GDPR https://knowledgebase.constantcontact.com/articles/KnowledgeBase/5924-implied-and-express-permission-in-casl-regulations
If you feel that explicit permission isn’t right for the way that you’ll be gathering contacts through your application, you can use this flow to add/update your contacts which incorporates three contact endpoints instead, which allows you to set the desired parameters for the Create Source and Permission to Send:
Step 1: Check to see if the contact exists in the account using the email query parameter to search for a contact using a specific email address.
GET Contacts Collection https://v3.developer.constantcontact.com/api_reference/index.html#!/Contacts/getContacts
Step 2: If the contact comes back as non-existent, use POST to create the contact:
POST (create) a Contact https://v3.developer.constantcontact.com/api_reference/index.html#!/Contacts/createContact
Step 3: If the contact comes back as already existing in the account. You need to append the returned data with the desired list memberships and send that back with PUT to update the contact:
**When Updating a contact, we need to append the new information to the old information and send all of it back in the request, because when you update a contact using a PUT, all properties are updated, overwriting all existing property values. Any properties left blank or not included in the PUT will be overwritten with a null value.
PUT (update) a Contact https://v3.developer.constantcontact.com/api_reference/index.html#!/Contacts/putContact
Please have a look and let us know if you have any other questions!
... View more