# Failed vs rejected

> A rejected message was refused by the gateway before sending (invalid number, unsupported destination, blocked content) and costs nothing; a failed message was accepted by a carrier that then could not deliver it, and is billed.

The distinction is about where the message stopped. Rejection happens at the gateway, synchronously, with an error code you can act on immediately: fix the number, remove the prefix, change the text. Failure happens later, at the carrier, with a carrier code: unknown subscriber, barred, filtered, network error.

Billing follows the attempt: rejected messages were never attempted and are free; failed ones were, and every operator charges for the attempt.

At SMSMeteor: rejected rows are listed in the import report or returned individually in batch responses; failed messages carry `carrier_code` and a plain-English `failure_reason`.

Related terms: [Message status lifecycle](https://smsmeteor.com/glossary/message-status), [Carrier error code](https://smsmeteor.com/glossary/carrier-error-code), [Batch endpoint](https://smsmeteor.com/glossary/batch-endpoint)

---
Source: https://smsmeteor.com/glossary/failed-vs-rejected (HTML). Generated by SMSMeteor from the same data as the page. Summary of the whole site: https://smsmeteor.com/llms.txt
