Billing
When the balance is debited, and protection against double charging.
The balance debit is bound to the message being accepted by the system. The debit is written to an append-only credit ledger, which is the single source of truth for the account balance.
Double-charge protection
The ledger debit relies on a uniqueness constraint: re-processing the same request does not add a second debit. Together with idempotency protection, this prevents a send retried after a timeout from turning into a duplicate charge and substantially reduces the risk of a duplicate SMS.
Each ledger entry carries the post-transaction balance (balance_after) for audit. You can review balance movements on your account via the API Center.
You can check your balance with
/balance/ before sending. If the balance is insufficient, the send is rejected with TS-1027.