IOSOR Learn
Invalid MSISDN Must Not Debit
Learn how the IOSOR platform blocks invalid E.164 phone numbers at ingress, preventing erroneous ledger debits and protecting your prepaid balance.
Invalid MSISDN Must Not Debit.
Ingress Validation vs Downstream Failure
When routing high-volume SMS or OTP traffic, distinguishing between an invalid destination address at ingress and a downstream delivery failure is critical for financial integrity. An invalid MSISDN must be rejected immediately at the API gateway before any ledger transaction occurs. If an invalid number bypasses ingress checks, it may generate a downstream DLR with an unknown status, which looks like spend but yields no delivery. IOSOR enforces strict validation rules to prevent this, ensuring that your balance is protected from faulty destination formats.
The E.164 Parsing Engine
Every API request targeting a mobile number undergoes real-time parsing against the global E.164 standard. The platform checks the country code, national destination code, and subscriber number length. If the format is invalid, the gateway returns an immediate HTTP 400 Bad Request. This JIT validation ensures that non-existent routing paths are blocked before resources are allocated or any prepaid hold is applied. This mechanism prevents invalid numbers from triggering downstream carrier queries that incur hidden costs.
Ledger Rules and Prepaid Holds
To maintain a healthy balance, IOSOR uses a real-time ledger. When a valid SMS request is accepted, a temporary prepaid hold is placed on your balance. If the message is successfully routed, the hold converts to a debit. However, if the number is flagged as invalid at ingress, no hold is created, and zero balance is debited. This protects your USD 20 prepaid floor from being eroded by malformed destination strings. For accounts scaling up, a soft review near USD 1,000/month helps optimize routing tables and adjust MRC limits for dedicated resources.
Webhook Payloads and Error Codes
When a message is rejected at ingress, the API response contains a specific error payload. Instead of waiting for an asynchronous DLR webhook, your application receives an immediate synchronous error. This payload includes the invalid parameter and a clear rejection code. For valid numbers, the system will assign the routing path and send status updates via webhook, including STOP and Verify OK events, ensuring full transparency over your messaging pipeline without wasting API cycles.
Developer Resources and Integration
To build a stable integration that avoids unnecessary spend, developers should implement client-side validation before hitting the API. Review these essential guides to optimize your implementation:
- Validating E.164 Phone Format at API Ingress Points
- Wallet pilot week: hold and debit truth on live traffic
- SMS API buyer checklist
Start with IOSOR
From the sandbox, POST a destination missing a country code and one with an impossible length. Expect HTTP 400 and an unchanged ledger — no hold, no debit. Then send a valid E.164 and confirm the hold appears only after accept. If money moved on the invalid pair, ingress parsing is broken.
IOSOR takeaway
A format reject at ingress is not a delivery failure. An invalid MSISDN must never open a hold. Do: parse E.164 before money moves. Don't: wait for an unknown DLR to explain a debit that should not exist. The ledger stays quiet until the number is well-formed.
Was this guide helpful?
Related guides
- NANP Overlays Before You Send: Data Quality for Finance
Learn how to parse North American Numbering Plan (NANP) overlays to prevent billing errors. Ensure your finance team quotes the correct rate zones before sending traffic.
- E.164 hygiene is not an HLR lookup
Learn why local E.164 formatting and NANP overlay validation differ from real-time HLR lookups, and how to structure your IOSOR routing ledger.