IOSOR Learn
Inbound MO billing vs outbound MT: two-way wallet rows on one prepaid ledger
Replies, STOP, and rented-number events debit. If finance only modelled outbound, the ledger lies. A two-way product must see MO and MT in the same export, with an auto-reply cap.
The pitch talks outbound. In production the rented number receives replies, STOP, and sometimes voice callbacks, and rows appear that finance never put in the model. Inbound MO is not a free courtesy. A two-way product moves MT and MO on the same prepaid ledger. If the export only counts “sent,” finance treats inbound debit as noise until usage near USD 1,000+ makes it a commercial topic.
IOSOR is white-label prepaid: outbound and inbound on one ledger, client-safe errors, no foreign portal for day-to-day. live is two-way production; in setup is not a cheap inbox. See inbound two-way inbox guide and inbox events on rented numbers. Evidence first, then scale. Auto-reply loops: inbound auto-reply loops.
MO debits finance did not plan for
If the finance model only multiplies the MT rate, it misses MO rows on the rented number: inbound SMS, keyword acks, sometimes voice events. Those rows debit when the reply arrives, not on the marketing calendar. Product says “we are two-way”; finance asks “which row is inbound.” Without an answer there is no control. Rentals follow the UTC calendar month — setup plus prorated first period, full monthly from the next 1st — so inbound events can outlive the campaign week that funded the number.
| Direction | What the wallet sees | What product often omits |
|---|---|---|
| MT outbound | Send units / segments | That inbound also debits |
| MO inbound | Inbound units + keyword reply | Correlation to the outbound thread |
| Auto-reply | Another MT | Loop cap |
MT vs MO in the same export
Put MT and MO in the same export: time, number, direction, debit, correlation ID. Finance must filter by direction, not fold inbound into an outbound average. STOP/HELP is a compliance row and may also debit. Rented-number lifecycle binds to the inbox: releasing the number must cleanly stop inbound events, or ghost rows appear next month. Do not let a world average hide an expensive inbound corridor. A live two-way number without a direction column is a receipt printer, not a control.
Autoreply loop wallet drain
An uncapped auto-reply turns one MO into a string of MT until the wallet is empty. Bot-vs-bot, HELP that quotes the original, non-idempotent webhook retries — all drain prepaid. Cap replies per thread and treat STOP as immediate suppression. See inbound auto-reply loops.
Inbox events and correlation
The inbox is evidence, not a chat toy. Each inbound event should show number, timestamp, and a safely redacted body, and link to outbound context when there is a thread.
Red flags
- Finance model with MT rate only
- Export that does not distinguish direction
- Auto-reply without a per-thread cap
- STOP treated as chatter, no suppression
- Agents seeing raw upstream payloads
- Released number with inbound debits still live
- Catalog in setup promised as two-way production
Start with IOSOR
Send one inbound MO and one outbound MT on the same rented DID. Export both wallet rows and prove they carry different reason codes. Cap the auto-reply so an inbound cannot mint unbounded MT. This is two-way prepaid row honesty, not an invoice-week mix report and not a media storage cap.
IOSOR takeaway
MO and MT share a wallet, not a line.
Do: label inbound debit separately from outbound debit. Don’t: net MO into MT or hide inbound rows until month-end.
Was this guide helpful?
Related guides
- Configuring Inbound Voice Missed Call Fallback to SMS Triggers
Set up automated missed call text follow-ups on your white-label telecom platform to capture leads instantly when voice routes fail.
- Buffer Inbound Webhook Processing Against Carrier Latency Spikes
Configure IOSOR white-label CPaaS queue buffers to prevent downstream application timeouts during high-volume carrier delivery delays and batch spikes.
- Synchronizing Inbound Opt-Out Keywords Across Multi-Tenant Accounts
Master multi-tenant opt-out synchronization in IOSOR. Learn how inbound stop keywords manage global suppressions while isolating sub-accounts.