IOSOR Learn
OTP delivery debit is not the verify session: two ledger lines, one user
An OTP SMS segment and a verification session are two prepaid events on one signup. Do not double-count them as “one OTP cost,” and do not hide the second line from finance.
A user asked for a code. Product saw one OTP. The prepaid wallet posted two lines: a messaging debit for the SMS (segments, destination, DLR path) and a Verify debit for the session (create, TTL window, check). Teams that merge those into “OTP cost” either double-count in the board pack or hide a line until month-end. Neither is a control.
IOSOR runs white-label prepaid Verify next to SMS on one ledger. Catalog live is a real channel; in setup is not a free session. Near USD 1,000+ monthly usage, SMS lines and Verify session lines become commercial review material. No platform subscription to keep Verify available.
One user session, two prepaid lines
The journey is one. The money is two.
- Delivery debit — SMS (or voice/email fallback) that carried the code: encoding, segments, destination, terminal DLR.
- Verify session debit — issued, waited, checked, expired, or resend policy.
If finance only sees SMS, Verify looks “free.” If product only sees Verify, SMS pumping looks like “more sessions.” Operating picture: OTP without chaos. Keep both wallet rows visible.
Delivery debit is not the verify session debit
| Event | What the wallet should show | Typical failure if merged |
|---|---|---|
| Code SMS sent | Segment debit, destination, encoding | “One OTP” hides UCS-2 multipart |
| DLR terminal | Same SMS line, updated status | Retry billed twice with no session |
| Session created | Verify debit, TTL, channel | Session looks like another SMS |
| Check / expire | Same Verify line, terminal reason | Expired codes blamed on “SMS cost” |
| User resend | New SMS ± new session per policy | Cooldown skipped, double burn |
Resend policy: OTP TTL and resend cooldown. A cooldown that blocks a session but still fires SMS (or the reverse) is how two ledgers disagree. Voice fallback is a third money shape if that channel is live — never an invisible extra on the SMS row.
How teams double-count or bury the second line
- Board pack adds SMS OTP spend plus Verify units that already include those sends.
- Finance refunds undelivered SMS and also voids the session.
- Dashboards show session success while SMS is still pending DLR.
- Verify in setup while SMS is live — sessions promised, SMS still debiting.
A prepaid wallet that cannot explain two debits from one human is a receipt printer. Export both lines with a shared correlation id. Stop rules: prepaid spend control.
Reconciling SMS, DLR, and the verify attempt
Weekly recon, one corridor:
Red flags
- A single blended “OTP fee” with no SMS vs session split
- Verify billed like a marketing blast
- SMS refunded without touching the session row (or the reverse) with no policy
- Resend button that ignores cooldown on one of the two paths
- Upstream brand names in client-facing errors
- Verify promised while the channel is in setup
Start with IOSOR
Audit your console webhooks to ensure SMS segment charges and DLR updates generate distinct ledger events from session verification attempts. Configure your billing gate to map session checks and transport charges to separate transaction IDs before finalizing prepaid balances. Set an immediate reconciliation hold on any account where resends register transport debits without updating the active session state.
IOSOR takeaway
This article proved that blending SMS segment transport costs with verification logic obscures true unit economics and creates reconciliation errors across board packs and finance logs. Tracking delivery debits independently from verify sessions is essential for accurate margin visibility and clean billing operations.
Was this guide helpful?
Related guides
- Verify Corridor Degradation: Recovery Week Operations
Navigate the recovery week after a Verify corridor degradation. Rebuild OTP route health, honestly replay failed sessions, and reconcile prepaid balances using IOSOR's robust operational tools.
- Verify Audit Log Export Operations for Enterprise Compliance Reviews
Export timestamped verification attempts, DLR status events, and financial ledger entries from IOSOR to satisfy enterprise compliance and regulatory audit reviews.
- Adding a Second Application to Verify Without OTP Congestion
Onboard a second application to IOSOR Verify without congesting primary OTP routes. Implement rate isolation, JIT numbers, and prepaid sub-account tags.