# Table of contents:
# Introduction
<NOTIFICATION>
documents are the basis behind the NOT and IPG commands.
Being such, it was introduced with MSNP5.
This article only describes the <NOTIFICATION>
element from .NET Alerts 5.0 and below,
and not the <Notify>
element used in .NET Alerts 6.0 and above.
# NOTIFICATION
This is the root element of the document, and supports four attributes:
ver
: This is always1
. Seems optional, or was removed later.id
: A 32-bit unsigned integer that is set by the sending party.siteid
: The .NET Alerts Site ID, not to be confused with the .NET Passport Site ID. Setting this to some values changes the default icon:0
: Use stocks (stack of coins or line-chart) icon.1
: Use calendar (clock) icon.- Other values: Use default bell icon or custom icon.
siteurl
: The base URL to the service used in later relative URL attributes.
# TO
This element supports two attributes:
pid
: The recipient's Passport Unique ID. The format for the PUID is0xHHHHHHHH:0xLLLLLLLL
, whereH
is the hexadecimal representation of the profile'sMemberIdHigh
variable, and whereL
is the hexadecimal representation of the profile'sMemberIdLow
variable.name
: The recipient's display name or user handle. Optional.
If this element (<TO>
) does not have a (<VIA>
) element, it is to be empty.
# VIA
NOTE: This element seems to only exist as backwards compatibility from .NET Alerts 6.0.
This empty element only supports one attribute:
agent
: What this alert is intended to be viewed by:email
: A e-mail message.messenger
: A "toast" generated by the Official Client.mobile
: A mobile device.
# FROM
NOTE: This element should NOT be added to any <NOTIFICATION>
documents.
This optional empty element supports two attributes:
pid
: The sender's Passport Unique ID. Follows the same format as<TO>
'spid
parameter.from
: The sender's display name or user handle. Optional.
# MSG
This is the primary element of the document, and supports two attributes:
pri
: This is always empty, and should NOT be set. May be set to1
for incoming pages. Optional.id
: The notification's numeric ID, defaulting to '0', and should NOT be changed.
# ACTION
This element supports only one attribute:
url
: The main URL that is used when this notification is activated, relative tositeurl
.
When opened by a client, the following are added to the URL as query parameters:
to_pid
: Thepid
attribute from<TO>
element.notification_id
: Theid
attribute from<NOTIFICATION>
element.message_id
: Theid
attribute from<MSG>
element.agent
: The client that activated this notification. The Official Client sets this tomessenger
. Optional.
# SUBSCR
This element supports only one attribute:
url
: The configuration URL that is used when the notification'schange
option is activated, relative tositeurl
.
When opened by a client, the following are added to the URL as query parameters:
to_pid
: Thepid
attribute from<TO>
element.notification_id
: Theid
attribute from<NOTIFICATION>
element.message_id
: Theid
attribute from<MSG>
element.agent
: The client that activated this notification. The Official Client sets this tomessenger
. Optional.
# CAT
NOTE: This element is obsolete and
should NOT be added to any <NOTIFICATION>
documents.
This optional empty element only supports one attribute:
id
: The category ID of this notification.
# BODY
This is the main body of the document, and supports two attributes:
lang
: The decimal LCID that this notification document is meant to display in. Optional, but should be set.icon
: The custom 32x32 PNG icon URL, relative tositeurl
. Optional. Note: Client Version 6.0 (MSNP9) and above support 48x32 icons and will use them automatically if your icon URL includes the substring_32x32
, the client will replace it with_48x32
. If you do not have a 48x32 icon, the client will fallback to the original 32x32 icon.
The default element that this parents is <TEXT>
. It may also contain other types of data.
One such data type is the <NotificationData>
sub-document.
This element (including the <BODY>
and </BODY>
) are restricted in size to 1024 bytes.
# NAME
NOTE: This element should NOT be added to any <NOTIFICATION>
documents.
This optional element contains the friendly name of the recipient.
# TEXT
This optional element contains the text data of the notification.
# TEXTX
This optional element contains the extended text data of the notification, supported by MSNP9 and higher.
The <TEXT>
element is required for this to be parsed by the Official Client.
The inner document of this is required to be XML encoded.
# P
A paragraph, required for <TEXTX>
elements to parse correctly.
This element supports one attribute:
align
: The extended notification's text alignment:left
center
right
This element may contain any of the following elements:
P
: Nested paragraph, also supporting thealign
element.B
: Bold text.I
: Italic text.BR
: This empty element denotes a line-break.
# NotificationData
This element may instead be contained in the <BODY>
element entirely,
replacing all of it's children.
This sub-document is XML encoded if set as the inner data of the <BODY>
element.
This element supports two attributes:
xmlns:xsd
: is always set tohttp://www.w3.org/2001/XMLSchema
xmlns:xsi
: is always set tohttp://www.w3.org/2001/XMLSchema-instance
# Service
Contains only ABCHInternal
. Unknown if there are other values supported.
This element is exclusive to notifications generated by the Address Book Service.
# CID
Contains only the Common ID of the user associated with this notification.
This element is exclusive to notifications generated by the Address Book Service.
# SpaceHandle
This element only has one child named ResourceID
.
This element and it's children are exclusive to notifications generated by the blog service.
# ResourceID
Contains the blog service's ID for this user.
# ComponentHandle
This element only has one child named ResourceID
.
This element and it's children are exclusive to notifications generated by the blog service.
# ResourceID
Contains the blog service's ID for the main component.
# OwnerCID
This element only contains a signed 64-bit integer for the Common ID. Added since MSNP13.
This element and it's children are exclusive to notifications generated by the blog service.
# LastModifiedDate
Contains a ISO 8601-compatible timestamp with 7 millisecond digits.
This element is omitted in notifications generated by the persistent group service.
# Action
Only observed to contain Add
. Unknown if there are other values supported.
This element is exclusive to notifications generated by the blog service.
# HasNewItem
Contains either true
or false
.
# ComponentSummary
This element has two children named <Component>
and <Items>
.
This element and it's children are exclusive to notifications generated by the blog service.
# Component
This element has one child named ResourceID
and supports one attribute:
xsi:type
: The type of this<Component>
:List
: A list.Folder
: A photo collection.MessageContainer
: A text message container.
# ResourceID
Contains the blog service's ID for this <Component>
.
# Items
This element supports multiple <Item>
child elements.
# Item
This element has one child named ResourceID
and supports one attribute:
xsi:type
: The type of this<Component>
:ListEntry
: An entry on a list.Photo
: A photo.Message
: A text message.
# ResourceID
Contains the blog service's ID for this <Item>
.
# CircleId
Contains the GUID of the persistent group.
This element is exclusive to notifications generated by the persistent group service.