# Detailed charges and pricing

## How much will messages cost?

Only messages sent out from Postman's production environment will be charged.

The below pricing is independent of where the recipient is located (i.e. local number pricing will still apply to recipients who are overseas but own Singapore numbers).

All charges are subject to GST which will be applied in the invoice.

| Local Number (numbers starting with +65) | Foreign Numbers (all other numbers) |
| ---------------------------------------- | ----------------------------------- |
| $0.046 SGD per segment                   | $0.23 SGD per segment               |

{% hint style="warning" %}
**GST will be included in the final invoice at the prevailing GST rate**.\
\
The Postman team previously communicated to several agencies that no GST would be included.\
\
We regret this error and apologise for any inconvenience caused. Please reach out to the BTN Finance team via email should you have any questions.
{% endhint %}

Refer to the [message segment calculator](https://postman-v2.guides.gov.sg/postman-v2-pricing-from-1-july-2025/billing-overview/message-segment-calculator) to understand more about message segments.

## What kind of messages will be charged?

A breakdown of when a message is charged is dependent on the status of a message.

{% hint style="warning" %}
Note that messages sent to recipients with invalid phone numbers or message content will still be charged. Please verify your recipients' numbers and use the [Postman message segment calculator](https://postman-v2.guides.gov.sg/postman-v2-pricing-from-1-july-2025/billing-overview/message-segment-calculator) before sending.
{% endhint %}

<table><thead><tr><th width="237.07421875">Message status</th><th>Will the message be charged?</th></tr></thead><tbody><tr><td><code>success</code></td><td>✅ Yes</td></tr><tr><td><code>recipient_invalid</code></td><td>✅ Yes</td></tr><tr><td><code>recipient_unavailable</code></td><td>✅ Yes</td></tr><tr><td><code>content_invalid</code></td><td>✅ Yes</td></tr><tr><td><code>routing_error</code></td><td>✅ Yes</td></tr><tr><td><code>message_expired</code></td><td>✅ Yes</td></tr><tr><td><code>sent_to_telco</code></td><td>✅ Yes (only for foreign numbers as this is the terminal state for foreign numbers)</td></tr><tr><td><code>delivery_unknown_error</code></td><td>🚫 No</td></tr><tr><td><code>server_unknown_error</code></td><td>🚫 No</td></tr></tbody></table>

## Why are charges applied to non-success message statuses?

* **recipient\_invalid** *- Mobile number is not recognised by the network operator:*\
  The system must validate the number and attempt initial routing, using resources as it tries to establish if the message can be delivered. We advise all users to ensure that recipients' numbers are updated to avoid unnecessary costs.
* **recipient\_unavailable** *- Recipient is not currently connected to the mobile network:*\
  While the message remains undelivered, the attempt to route it still consumes network resources and incurs charges from the operator as it processes the delivery.
* **content\_invalid** *- Message content contains prohibited elements or incorrect encoding:*\
  Although messages with invalid content are blocked by the network, they still pass through several stages of processing, including identifying and handling these messages which involves costs. We advise all users to ensure that their message content does not contain invalid characters to avoid unnecessary costs.
* **routing\_error** *- Issues with routing to the recipient’s mobile network:*\
  Network operators still process these messages and attempt routing, so the resources used in these steps incur costs.
* **message\_expired** *- Message was not successfully delivered within the expected timeframe:*\
  The message remains in the network queue, and several delivery attempts may be made, incurring costs throughout the process.
