IOSOR 가이드
대기 열의 메시지는 즉시 차감되지 않고 자금을 임시 보류해야 합니다
IOSOR가 원장에서 메시지 대기 열 상태를 관리하는 방법을 알아보세요. 대기 중인 SMS 요청은 라우팅 확인 전까지 임시 승인 보류를 생성합니다.
대기 열의 메시지는 즉시 차감되지 않고 자금을 임시 보류해야 합니다。
대기 열 상태에 승인 보류가 필요한 이유
API 클라이언트가 대량의 SMS 메시지나 단일 OTP 페이로드를 전송할 때, 플랫폼은 네트워크 발송 전에 각 메시지 프레임을 대기 열(Queued) 상태로 배치합니다. API 수신 직후 대기 중인 메시지를 최종 차감으로 처리하면 고객의 정산 기록에 오류가 발생합니다. 이동통신사 라우팅 지연이 발생하거나 잘못된 E.164 번호로 인해 즉시 거부되는 경우, 확인 전 차감은 회계 오류 및 불필요한 잔액 분쟁을 유발합니다.
화이트 레이블 CPaaS 환경에서 정산 정확도는 매우 중요합니다. 대기 중인 요청을 즉시 소진된 비용으로 처리하면 네트워크 장애 발생 시 환불 및 정산 복잡성이 증가합니다. 따라서 원장 엔진은 '자금 보류'와 '최종 차감'을 명확히 구분해야 합니다.
원장 메커니즘: 보류 원장 대 최종 원장 확정
메시지가 파이프라인에 진입하면 원장 시스템은 현재 사용 가능한 잔액을 확인하고 대상 국가 요금에 해당하는 임시 승인 보류(Authorization Hold)를 생성합니다. 이 보류는 전송 용량을 확보하기 위해 필요한 금액을 잠그면서 핵심 원장 잔액을 안전하게 유지합니다. 통신사 라우팅이 수신 승인 프레임이나 긍정적인 DLR 이벤트를 반환하면, 시스템은 최종 원장 확정(Final Ledger Commit)을 실행하여 보류를 영구 차감으로 전환합니다.
| 메시지 상태 | 원장 동작 | 사용 가능 잔액 영향 | 핵심 원장 영향 |
|---|---|---|---|
| Queued (대기 중) | 승인 보류 생성 | 해당 금액 잠금 | 변경 없음 |
| Sent / Delivered | 최종 원장 확정 | 보류를 확정 차감으로 전환 | 차감 완료 |
| Expired / Failed | 자동 승인 취소 | 잠긴 금액 해제 | 변경 없음 |
예외 상황: 만료된 대기 열, 타임아웃 및 승인 취소
시스템 혼잡, 목적지 네트워크 장애 또는 일시적인 라우팅 오류로 인해 메시지가 정상 처리 시간을 초과하여 대기 상태에 머물 수 있습니다. 대기 중인 메시지가 지정된 TTL(Time-to-Live) 만료 제한에 도달하거나 즉시 거부되는 경우 라우팅 엔진은 시도를 종료합니다. 보류 원장은 즉시 취소 명령을 받아 승인 보류에 대한 자동 반환(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의 단일 메시지 경로
IOSOR에서 프로덕트 및 재무 팀이 SMS 및 OTP 라이프사이클 단계를 위한 단일 상태 머신을 공유하고 사전 홀드와 DLR 상태를 조화시키는 방법을 알아봅니다.
- 메시지 수명 주기 상태 대 낮은 전달률 대응 플레이북
요청 제출부터 대기열, 전송, DLR 수신까지의 SMS 상태 머신과 원장 보류, Webhook 연동 규칙을 완벽히 이해합니다.