IOSOR Learn
Correlating DLR Status Webhooks with Prepaid Holds
Learn how to reconcile incoming delivery receipt callbacks against held prepaid funds to release reserved ledger amounts within the IOSOR CPaaS infrastructure.
When dispatching an OTP SMS through IOSOR, a temporary hold in USD is placed on your balance. Failing to properly correlate incoming DLR webhooks with these holds can lead to locked capital and inaccurate ledger balances. By implementing a JIT reconciliation flow via our API, you ensure that funds are instantly debited or returned based on the final delivery status.
Understanding the Prepaid Hold Mechanism
In the IOSOR ecosystem, every outbound SMS request triggers an immediate JIT (Just-In-Time) ledger check. When a request is initiated, the system places a temporary hold on the account balance to ensure sufficient funds exist for the message delivery. This hold is not a final debit but a reservation of capital. The final settlement occurs only upon receiving the DLR (Delivery Receipt) status from the network, ensuring that your financial ledger accurately reflects the actual consumption of messaging credits.
The Lifecycle of a DLR Callback
Once a message is dispatched, the network returns a DLR status. Your webhook endpoint receives this payload, which contains the unique message ID and the final status code. The IOSOR engine correlates this ID with the original transaction record. If the status indicates a successful delivery, the system converts the held amount into a permanent debit. If the status indicates a failure, the hold is released back into your available balance, ensuring you only pay for successful attempts.
Managing Ledger Reconciliation
Reconciliation is automated, but developers must monitor the latency between the dispatch and the DLR arrival. If a DLR is delayed, the hold remains active, which may temporarily reduce your available credit. For accounts maintaining a USD 20 prepaid floor, this is critical to prevent service interruptions. If your monthly volume exceeds USD 1,000/month, our system triggers a soft review to adjust your credit limits and ensure smooth throughput for high-frequency traffic.
Handling Edge Cases and Timeouts
Not all messages receive a DLR within the expected window. If a network fails to provide a status update, the IOSOR system employs a cleanup job that releases stale holds after a defined TTL (Time-To-Live). This prevents 'ghost' holds from impacting your liquidity. Always ensure your webhook handler acknowledges receipt of the DLR within 500ms to maintain synchronization between our ledger and your internal accounting records.
Essential Integration Resources
To ensure your implementation is proven and follows best practices for financial integrity, refer to these guides:
- Event order vs ledger posting
- Duplicate webhook must not create a second debit
- idempotency, retries, and money.
Start with IOSOR
To finalize your integration, head to the IOSOR Console and navigate to the Webhook Settings to configure your ledger reconciliation endpoint. Ensure your listener is ready to process the dlr.status payload and map it directly to the corresponding transaction hold ID. Testing this correlation in the sandbox environment will guarantee that reserved funds are released or debited instantly without ledger drift.
IOSOR takeaway
This guide demonstrated how to safely bridge the gap between real-time message delivery and financial ledger accuracy. By correlating incoming DLR callbacks with active prepaid holds, you prevent capital lockup and ensure that your available balance reflects actual delivery states rather than worst-case assumptions.
Do design your webhook handler to be strictly idempotent, ensuring that duplicate DLRs do not trigger multiple ledger adjustments. Don't rely solely on immediate callbacks; always implement a fallback TTL mechanism to release stale holds when a carrier fails to return a delivery receipt.
Was this guide helpful?
Related guides
- Monitoring Consumer Webhook Endpoint Health Metrics
Learn how to track receiver response latency and status codes within the IOSOR platform to proactively manage webhook health and prevent callback failures.
- Configuring Threshold Webhook Alerts for Wallet Floors
Learn how to configure automated balance threshold webhooks in IOSOR to monitor prepaid accounts, prevent service interruptions, and manage JIT number provisioning effectively.
- Processing Just-in-Time Provisioning Webhook Events
Master the real-time lifecycle of inbound channels using IOSOR JIT provisioning webhooks. Automate number assignment and ledger updates for your white-label CPaaS.