IOSOR Learn
Prepaid hold before the first debit
Follow the honest first money path from a reserved prepaid amount to available balance, assignment, and the first unit debit — including release and refund outcomes.
The first money event should be clear before a billable unit moves. In prepaid, a hold reserves an approved amount; it is not yet the final service debit. The remaining balance is what other work may use. Only after the requested resource or send is accepted does the ledger record the debit. That sequence aligns product, operations, and finance through success, failure, or timeout.
IOSOR uses a white-label JIT path: quote, place a prepaid hold, complete the action, assign the result, then settle the correct debit. The USD 20 minimum top-up is a pilot wallet floor, not an entry fee. Review near USD 1,000/month is a soft usage signal, not a test condition.
What a prepaid hold is
A hold ring-fences funds for one pending intent without pretending the service completed. It needs an amount, currency, intent ID, creation time, expiry, and a client-readable state: reserved, completed, or released.
| Event | Wallet movement | Client meaning |
|---|---|---|
| Hold created | Available balance decreases; reserved balance increases | Funds are protected for this intent |
| Intent completed | Reserved amount settles into debit | The billable outcome occurred |
| Intent failed or expired | Reserved amount returns to available | No completed outcome was charged |
Hold versus available balance
A useful view separates total, reserved, and available funds. With USD 50 total and USD 12 held, only USD 38 can fund another action. Concurrent requests cannot spend the same funds. Hold and debit share one correlation ID. Messaging may reserve a bounded batch; a JIT number request may reserve its quoted first charge. In every case, available balance excludes active holds.
The first debit must tell the truth
Settlement matches an observable outcome, not a button click: a completed send intent, assigned number, or another named billable event. If the final amount is lower than the hold, settle the actual amount and release the rest. Never silently exceed the reservation.
The ledger row carries the product event’s intent ID, service, amount, currency, time, and final state. That makes idempotency, retries, and money part of wallet design.
Failures before debit
Failure before completion ends in release or an explicit refund path. A timed-out JIT request can release the hold; a completed purchase that cannot be assigned needs a visible operational resolution. Review the DID order fail refund and swap.
- Validation reject before work starts: create no debit
- Duplicate request with the same key: return the existing intent
- Fulfillment failure while funds are held: release the reservation
- Partial batch: settle completed units and release the unused portion
- Unknown outcome: freeze retries, investigate, and avoid a second debit
Buyer checklist
- Can finance distinguish reserved, available, and settled amounts?
- Does every hold have an expiry and one business-intent ID?
- Is completion evidence named for each channel?
- Are release and refund states visible without opening a support case?
- Check named owner + UTC export for this control?
Start with IOSOR
Configure your prepaid hold expiration limits and authorization state webhooks in the IOSOR console before.
IOSOR takeaway
A prepaid hold ring-fences funds for pending intents to prevent race conditions and double-spending without misrepresenting unbilled activity as completed revenue. Isolating reserved amounts from available balances gives both your system gates and finance teams an accurate, audit-ready view of account solvency in real time.
Do bind every authorization hold to a unique business-intent ID and release unspent reservations automatically if delivery or assignment fails. Don't quietly exceed the reserved balance upon final settlement or commit debits without observable completion evidence.
Was this guide helpful?
Related guides
- Resolving Timing Gaps Between Hold Expiration and Ledger Settlement
Learn how to reconcile unreleased platform authorizations when delivery status webhooks arrive after hold TTLs in your white-label CPaaS ledger.
- Reconciling Stuck Prepaid Holds After Upstream Outages
Step-by-step playbook for auditing and releasing lingering prepaid system holds across all billing channels following platform network incidents.
- Detecting Wallet Spend Velocity Anomalies Before Balance Exhaustion
Learn how IOSOR detects abnormal prepaid spend velocity, halts anomalous automated outbound traffic instantly, and protects funds from sudden drainage.