Use UpdateContactMessageCategoryPreference to opt a contact out of or back into a Message Category.
Contacts are available for all Message Categories by default unless an active category-level opt-out exists. Other suppression, unsubscribe, bounce, compliance, or targeting rules can still prevent sending.
This action updates one Message Category preference only.
Notes
- Provide one contact identifier: ContactId, Email, or ID. If more than one is supplied, resolution prefers ContactId, then ID, then Email.
- ID is the remote key. Element text is the remote ID; optional source is the remote system name.
- MessageCategoryId must be an active (non-archived) Message Category in the authenticated brand.
- PreferenceAction is case-insensitive (OptOut / OptIn).
- When using PostInformzMessage, place the ActionRequest XML in the SOAP <x> CDATA body.
Details
| Node | Type | Description |
|---|---|---|
| ContactId | Integer | Informz subscriber/contact ID |
| String | Contact email address | |
| ID | String (+ optional source) | Remote ID; optional source attribute identifies the remote system |
| MessageCategoryId | Integer | Message Category ID |
| PreferenceAction | String | OptOut or OptIn |
Opt Out
Opts a contact out of a Message Category. Idempotent if already opted out.
Request
<ActionRequest xmlns="http://partner.informz.net/aapi/2009/08/">
<Brand id="2001">Example Brand</Brand>
<User>apiuser</User>
<Password>password</Password>
<Actions>
<UpdateContactMessageCategoryPreference>
<Contact>
<ContactId>10001</ContactId>
</Contact>
<MessageCategoryId>11</MessageCategoryId>
<PreferenceAction>OptOut</PreferenceAction>
</UpdateContactMessageCategoryPreference>
</Actions>
</ActionRequest>Alternate contact identifiers:
<Contact>
<Email>user@example.com</Email>
</Contact><Contact>
<ID source="PartnerSystem">REMOTE-42</ID>
</Contact>Response
<ActionResponse xmlns="http://partner.informz.net/aapi/2009/08/">
<Brand id="2001">Example Brand</Brand>
<User>apiuser</User>
<Responses>
<UpdateContactMessageCategoryPreference>
<ActionStatus>
<Status>success</Status>
</ActionStatus>
<ContactId>10001</ContactId>
<Email>user@example.com</Email>
<MessageCategoryId>11</MessageCategoryId>
<MessageCategoryName>Promotions</MessageCategoryName>
<PreferenceStatus>OptedOut</PreferenceStatus>
<LastModifiedDate>2026-08-04T20:15:00</LastModifiedDate>
</UpdateContactMessageCategoryPreference>
</Responses>
</ActionResponse>Notes
- PreferenceStatus is OptedOut.
- Optional ID (with source) may be returned when a remote key is present.
- If already opted out, no additional opt-out is created; LastModifiedDate remains the existing modification time.
Opt In
Opts a contact back into a Message Category by deactivating the category-level opt-out (does not create a separate opt-in record). Idempotent if already available.
Request
<ActionRequest xmlns="http://partner.informz.net/aapi/2009/08/">
<Brand id="2001">Example Brand</Brand>
<User>apiuser</User>
<Password>password</Password>
<Actions>
<UpdateContactMessageCategoryPreference>
<Contact>
<ContactId>10001</ContactId>
</Contact>
<MessageCategoryId>11</MessageCategoryId>
<PreferenceAction>OptIn</PreferenceAction>
</UpdateContactMessageCategoryPreference>
</Actions>
</ActionRequest>Response
<ActionResponse xmlns="http://partner.informz.net/aapi/2009/08/">
<Brand id="2001">Example Brand</Brand>
<User>apiuser</User>
<Responses>
<UpdateContactMessageCategoryPreference>
<ActionStatus>
<Status>success</Status>
</ActionStatus>
<ContactId>10001</ContactId>
<Email>user@example.com</Email>
<MessageCategoryId>11</MessageCategoryId>
<MessageCategoryName>Promotions</MessageCategoryName>
<PreferenceStatus>Available</PreferenceStatus>
<LastModifiedDate>2026-08-05T14:30:00</LastModifiedDate>
</UpdateContactMessageCategoryPreference>
</Responses>
</ActionResponse>Notes
- PreferenceStatus is Available.
- If an inactive opt-out row already exists, LastModifiedDate is that row's existing modified_date.
- If no opt-out row exists, LastModifiedDate is the current server time for the successful no-op.
Errors
| Error | Description |
|---|---|
| MissingData | Contact is missing, or no supported contact identifier was supplied |
| InvalidData | Unsupported PreferenceAction; Message Category is archived; or multiple contacts matched |
| ItemNotFound | Contact not found, or Message Category does not exist for the authenticated brand |