Multiplying a sending rate by message volume can leave out the carrier's share. A long text can also count as several segments, multiplying the quantity used for both charges.

## Which charges make up a message's cost?

Bird reports its sending charge and third-party fees separately inside **`cost`**.

- **`transaction_amount`** is Bird's charge to carry the message.
- **`passthrough_amount`** is the SMS carrier-fee component.
- **`amount`** is their total, net of tax.
- **`currency_code`** identifies the currency shared by those amounts.

The amounts are decimal strings. Preserve the returned currency when displaying them, so you do not present a converted estimate as Bird's quoted price.

Tax applies through billing rather than an individual message's net cost. A carrier surcharge is a separate component from that tax.

## What determines the carrier fee?

Bird looks up the fee using the operator, destination country and sender type.

Those dimensions can produce different fees for the same text. Changing from a long code to a toll-free sender can change the applicable rate. Check [SMS carrier and registration fees](/pricing/sms/fees) for the published combination.

The quantity is the number of segments. If one delivered message has three segments, its carrier-fee quantity is three. [SMS segments](/explained/sms/what-is-an-sms-segment) explains why a text displayed as one message can have that count.

Outbound and inbound traffic use separate fee products. Include both directions when estimating a conversation that expects replies.

## When does Bird charge the fee?

Bird attempts the outbound carrier charge when a delivery report confirms delivery and names an operator.

The sending charge happens separately. An outbound message can therefore have Bird's sending cost before any carrier fee is recorded. A failed-delivery report does not trigger this outbound carrier charge.

For incoming messages, Bird attempts the carrier charge during receipt processing, using the reported operator. It does not wait for an outbound delivery report.

No operator name or no matching price means this charging path skips the fee. [Delivery receipts](/explained/sms/what-is-a-delivery-receipt) explains the reports used for outbound status.

## What does a missing cost component mean?

A `null` component means the message has no amount recorded for it.

The cost schema distinguishes an absent amount from a decimal string representing zero. Your interface should preserve that distinction rather than turning every `null` into zero.

The message record is not conclusive evidence that billing collected nothing. A carrier-fee billing timeout can leave **`passthrough_amount`** absent even when billing holds a charge. Compare the message with billing records when investigating a disputed debit.

Read the [message response](/docs/api/reference/get-sms-message) for the recorded components and currency. Treat an incomplete component as unknown in your own reconciliation.

## Are registration fees the same as carrier surcharges?

Registration fees pay for registering a sender or campaign, independently of each message's carrier charge.

For US business messaging over local numbers, [The Campaign Registry](https://developer.campaignregistry.com/cadp/key-concepts) registers brands and campaigns through messaging service providers. Its registration process can carry setup and recurring fees.

Bird's [10DLC guide](/docs/guides/sms/10dlc) explains registering a business and campaign for US local-number messaging. The [fees page](/pricing/sms/fees) publishes the applicable amounts. Include registration costs separately in your budget so they do not look like unexplained per-message fees.

## How can I reduce the total?

Reduce unnecessary sends and billable segments. Compare eligible sender types for your destination.

Check a completed template after inserting names, since those characters can change its encoding and segment count. Keep opt-outs and recipient records accurate to avoid unwanted sends. Compare sender fees alongside registration and reply requirements, because the cheapest fee alone may not meet your program's needs.

[Sender types](/explained/sms/which-sms-sender-type-should-i-use) explains those requirements. A lower Bird sending rate does not by itself lower the carrier's published fee.

## Related resources

- [SMS](/products/sms) (product)
- [Sending SMS](/docs/guides/sms/sending-sms) (docs)
- [Sending your first SMS](/learn/sms/sending-your-first-sms) (video)
- [What does SMS mean?](/explained/sms/what-does-sms-mean) (answer)

[Get an implementation brief](/learn/workspace?topic=sms)
