Each message sent to or delivered by the Service Bus counts as a billable message. This applies to all Service Bus entity types, including queues, topics/subscriptions, message buffers, and relays.
A message is defined as a unit of data which is 64KB or less in size. In the case of brokered entities (queues, topics/subscriptions, message buffers), any message that is less than or equal to 64KB in size is considered as one billable message. If the message is greater than 64KB in size, the number of billable messages is calculated according to the message size in multiples of 64KB. For example, an 8 KB message sent to the Service Bus will be billed as one message, but a 96 KB message sent to the Service Bus will be billed as two messages.
Multiple deliveries of the same message (for example, message fan out to multiple listeners or message retrieval after abandon, deferral, or dead lettering) will be counted as independent messages. For example, in the case of a topic with three subscriptions, a single 64KB message sent and subsequently received will generate four billable messages (one “in” plus three “out”, assuming all messages are delivered to all subscriptions).
In general, management operations and “control messages,” such as completes and deferrals, are not counted as billable messages. There are two exceptions:
1. Null messages delivered by the Service Bus in response to requests against an empty queue, subscription, or message buffer, are also billable. Thus, applications that poll against Service Bus entities will effectively be charged one message per poll.
2. Setting and getting state on a MessageSession will also result in billable messages, using the same message size-based calculation described above.