IOSOR ガイド
キューに入ったメッセージは送金コミットではなく資金を一時保留する
IOSORが元帳内でメッセージのキュー状態を管理する方法を解説します。キュー状態のSMSリクエストはルーティング確認まで一時保留を作成します。
キューに入ったメッセージは送金コミットではなく資金を一時保留する。
なぜキュー状態に承認保留が必要なのか
APIクライアントが大量のSMSメッセージや単一のOTP送信をリクエストした際、プラットフォームはネットワークへの送出前に各メッセージフレームをキュー状態(Queued)に配置します。APIが受信した時点で即座に確定デビットとして処理してしまうと、顧客の課金記録に歪みが生じます。キャリアのルーティング遅延が発生した場合や、無効なE.164番号によって即時拒否された場合、確認前の課金は会計エラーや無駄な残高紛争を引き起こします。
ホワイトレーベルCPaaSプラットフォームにおいて、資金管理の正確性は極めて重要です。キュー状態のメッセージを確定消費として扱うと、障害発生時の返金対応や残高照合の負担が増大します。課金エンジンは資金の「保留」と「確定引き落とし」を明確に分離する必要があります。
元帳メカニズム:保留元帳と最終コミット
メッセージがパイプラインに入ると、元帳システムは現在の利用可能残高を確認し、送信先のレートに等しい一時的な承認保留(Authorization Hold)を作成します。この保留により、確定引き落としを行わずに必要な容量をロックし、コア元帳の残高を保護します。キャリアから承認フレームや正常なDLRイベントを受信すると、システムは最終コミットを実行し、保留を永久的な引き落としに変換します。
| メッセージ状態 | 元帳アクション | 利用可能残高への影響 | コア元帳への影響 |
|---|---|---|---|
| Queued (キュー中) | 承認保留を作成 | 残高の一部をロック | 変更なし |
| Sent / Delivered | 最終コミットを実行 | 保留を引き落としに変換 | 確定引き落とし |
| Expired / Failed | 自動取込・解除 | 保留残高を即時解放 | 変更なし |
エッジケース:期限切れキュー、タイムアウト、手戻り処理
システムの混雑や宛先ネットワークの障害、一時的なルーティングエラーにより、メッセージが通常処理時間を超えてキューに残る場合があります。キュー内のメッセージが規定のTTL(生存時間)制限に達するか、即時拒否を受け取った場合、ルーティングエンジンは処理を打ち切ります。保留元帳は即座に取り消し命令を受け取り、承認保留の自動返還(Reversal)を実行します。
自動返還処理は数ミリ秒以内に完了し、保留されていた資金が即座に利用可能残高に戻るため、サポートへの問い合わせ作業を削減できます。
スケール時のマージンガードレールとソフトレビュー閾値
トラフィックの急増時でもインフラの安定性を維持するため、アカウントは自動化された残高ガードレール下で動作します。送信APIリクエストを処理し、アクティブな保留予約を維持するために、ベースラインとして USD 20 の前払い残高が必要です。プラットフォームの処理能力が拡張し、月間支出が USD 1,000/month に近づくと、システムはソフトレビュー(Soft Review)をトリガーします。
ソフトレビューは業務を停止させることなく、必要なキャパシティや上限値を調整するための安全な評価プロセスです。
キュー状態の管理と監査ログの追跡
エンジニアおよび経理担当者は、プラットフォームの Webhook やログエクスポートを使用して、メッセージライフサイクルの状態遷移をリアルタイムで監視できます。各 API イベントは、ペイロードが queued、sent、delivered、failed のいずれであるかを示す明確なステータスフィールドと、関連する取引参照キーを返します。
これにより、すべての資金保留と確定引き落としの履歴を完全に追跡し、正確な会計照合を実現できます。
関連ガイド: 保留中 vs 送信済み:IOSORにおける単一のメッセージパス · メッセージライフサイクル状態と低到達率対策プレイブック · 初回引き落とし前のプリペイド残高確保.
IOSORで始める
IOSORコンソールを開き、「台帳監査」タブに移動して、実際に送信されたデビットに対するアクティブなホールド予約を確認します。ステータスウェブフックを設定して message.queued および message.failed イベントをサブスクライブし、自動ホールド解除サイクルをリアルタイムで追跡します。バッチ照合を実行する前に、内部レポートシステムがキューに置かれたフレームを最終的な請求ユニットではなく、保留中のホールドとして分類していることを検証します。
IOSORの要点
このガイドでは、メッセージフレームをキューに置くことで、即座の台帳デビットではなく、ネットワーク配信容量を確保するための承認ホールドがトリガーされることを確立しました。キューに置かれたペイロードを完全に実行されたディスパッチとして扱うと、上流のネットワーク輻輳やリトライ時に、不自然な残高枯渇、不正確な請求照合、および早期の残高減少につながります。
アーキテクチャ内でアクティブなキューホールドと最終的な台帳コミットを分離し、費用会計には明示的な最終ディスパッチウェブフックまたはDLRイベントに依存してください。メッセージがキューに置かれた状態のままでユーザーの残高をデビットしたり、最終的な請求書項目を生成したりしないでください。また、ライフサイクル状態ハンドラーによって自動的に解除されるタイムアウトしたフレームに対して、手動での台帳修正を実行しないでください。
このガイドは役に立ちましたか?
関連ガイド
- 保留中 vs 送信済み:IOSORにおける単一のメッセージパス
プロダクトチームと財務チームが、SMSおよびOTPのライフステージに対して単一の状態マシンをどのように共有し、事前保留とDLRステータスを管理するかを解説します。
- メッセージライフサイクル状態と低到達率対策プレイブック
送信からキュー、送信完了、DLR受信までのSMSステートマシンと、残高保留、Webhook通知、プラットフォームルールを解説します。