IOSOR 가이드
같은 장부의 차감 행과 전달 상태
각 선불 단위 차감을 DLR 또는 채널 결과와 하나의 지갑 장부에서 상관시켜, 재무가 sent를 공짜로 보거나 공짜 실패를 조용한 write-off로 숨기지 않게 하세요.
sent 배지는 공짜 점심이 아닙니다. 선불 자금 운용에서 과금 단위마다 재무 장부와 트랜잭션 결과가 조인(join)되는 명확한 차감 행이 남아야 합니다——같은 상태가 스크린샷 캡처 없이 즉각 확인되어야 하죠. 차감 기록과 전달 상태를 별개 데이터로 방치하면 월말 정산 때 「무료 발송」이라는 허수가 발생하고 조용한 상각(write-off) 처리라는 덫에 빠집니다.
IOSOR는 번호 intent를 단 하나의 지갑에서 관리하는 화이트라벨 선불 인프라입니다. USD 20 시드 자금은 장부의 정직성을 검증하기 위한 최소 파일럿 기준이며, 월 USD 1,000 구간의 soft review는 데이터 불일치로 인한 소음을 걸러내는 장치입니다. 연관 주제로 SMS 세그먼트 회계는 세그먼트 산출 공식, 선불에서 실패한 DLR 재시도 정책은 재시도 타이밍을 다룹니다. 본 문서에서는 지갑 전체 자금 흐름과 전송 결과의 정밀한 조인을 다룹니다.
Sent는 공짜 자금 진실이 아니다
"네트워크 수락"은 단지 기술적 이벤트일 뿐, 잔액 차감 면제권이 아닙니다. 정산이 완료된 개별 단위에는 정확한 금액, 통화, 채널, intent ID가 명시되어야 합니다. 과금 대상이 아닌 단위라면 settled debit이 없거나 명확한 release/refund 트랜잭션이 기록되어야 마땅합니다. 자금이 이동했음에도 status만 sent라고 해서 비용 발생을 무시하면 재무적 기만이 되며, 반대로 debit이 발생했음에도 failed 상태를 공짜로 처리하면 반대 방향의 장부 오류가 발생합니다.
정상적인 처리 경로라면 첫 차감 전 선불 잔액 예약을 거칩니다. 오류가 발생한 경우라면 선불 예약 실패 시 자동 환불과 상태 진실에 따라 정리가 이루어집니다. 핵심은 DLR이 늦게 수신되더라도 ledger 상의 한 행에서 직관적으로 읽을 수 있어야 한다는 점입니다.
한 행에 차감 + 결과 필드가 필요
과금 intent마다 데이터 조인이 가능한 단일 행 구조가 필수적입니다:
| 필드 | 이유 |
|---|---|
| Intent / correlation ID | 지갑 잔액과 연동된 서비스 조인 |
| 차감 금액 + 통화 | 자금 이동이 단 한 번 발생했음을 증명 |
| 채널 + 단위 유형 | SMS ≠ voice ≠ verify |
| Outcome / DLR | |
| Outcome 타임스탬프 | DLR 지연 시각 확인 및 2차 중복 차감 방지 |
| Idempotency key | 재시도 시 자금 재차감 방지——멱등, 재시도와 자금 |
공유 키가 없는 자금 내역 CSV와 DLR CSV는 억지스러운 조인 작업을 유발합니다. 두 필드가 단일 내보내기 파일에 결합되어 있는 정직한 원장을 사용하세요.
이중 과금 없는 DLR·상태 지연
전달 결과(DLR)는 시스템 사정에 따라 뒤늦게 도착할 수 있습니다. 자금 settle 이후 status가 pending으로 남아있는 것은 지극히 정상적인 흐름이지만, 동일한 correlation key에 두 번째 청구 행을 생성하는 것은 심각한 시스템 오류입니다. hold 상태에서 단 한 번만 settle을 처리하고 결과 상태(outcome)는 제자리에서 갱신해야 하며, DLR이 변경되었다고 해서 병렬 debit 행을 새로 열어서는 안 됩니다. 동일 키 기반의 재시도는 자금 이동 1회, 상태 전환 N회의 법칙을 따라야 합니다.
발송 실패가 최종 확정된 경우, 과금 가능한 시도였다면 failed outcome이 기록된 settled debit 행을 유지하고 미지급건이라면 즉시 release/refund를 실행해야 합니다. 가짜 Delivered 상태를 씌운 settled debit 행은 절대로 허용되지 않습니다. 지연은 타임스탬프에 기록하는 것이지, 중복 행을 생성하는 명분이 될 수 없습니다.
채널 결과는 서로 바꾸지 못한다
는 전혀 다른 상태 어휘입니다. 모든 채널의 상태값에 무작위로 "Delivered" 라벨을 덮어씌우면 실제 소진 비용(burn)이 감춰지고 한도 제어가 마비됩니다. 자금 계산용 금액 열은 공유하더라도 결과(outcome) 어휘는 각 채널 고유의 상태를 유지해야 합니다. 상세한 세그먼트 분석은 SMS 문서를 참고하되, 지갑 내보내기 리포트에는 과금 단위와 채널 고유의 결과가 정확히 대조되어야 합니다.
월말 정산 시에는 지갑 월말 02:00 내보내기 기능을 활용해 holds, debits, refunds, outcomes 내역을 단일 파일로 검증하세요.
장부 정직성 구매자 체크리스트
- 엔지니어링 개입 없이 재무팀이 모든 settled debit 내역을 outcome에 조인할 수 있는가?
- 늦게 도착한 DLR이 2차 차감 행을 만들지 않고 기존 행의 상태만 갱신하는가?
- 동일한 idempotency key로 들어온 재시도 요청이 자금 안전성을 보장하는가?
- 미지급 실패건에 대해 정당한 release/refund 트랜잭션을 실행하는가?
- 클라이언트 응답 및 데이터에 서드파티 브랜드명이 철저히 배제되어 있는가?
- 급격한 트래픽 증가 전에 선불 지출 통제 정책을 적용하여 위험을 차단했는가?
IOSOR로 시작하기
SMS 단위 하나를 고른다. hold 하고 선불 차감을 확정한 뒤, 같은 ledger 행에 종단 DLR 을 요구한다. 한 줄을 보낸다: 차감액, DLR 상태, 시각. DLR 없는 차감, 또는 차감 없는 DLR 은 사고다. 이는 한 행의 돈 대 영수증이지 CRM 위생도, 경보 인계도 아니다.
IOSOR 핵심 요약
한 ledger 행이 차감과 DLR 을 든다. 아니면 재무는 발송을 닫지 못한다.
할 일: 같은 행에서 차감을 종단 DLR 에 잇고, 짝 없는 행을 열어 둔다.
하지 말 일: sent 를 확정으로 보거나, 행에 영수증이 없는데 채팅으로 월을 닫지 마라.
이 가이드가 도움이 되었나요?
관련 가이드
- 홀드 만료와 원장 정산 간의 타이밍 격차 해결 방법
TTL 만료 이후 캐리어 전달 웹훅이 도착할 때의 비동기 조정을 마스터하세요. 원장 오프리프트를 방지하고 JIT 잔액 홀드를 동기화하며 마진을 보호합니다.
- 업스트림 장애 후 고착된 선불 홀드 대조
플랫폼 네트워크 인시던트 발생 후 모든 청구 채널에 걸쳐 잔류하는 선불 시스템 홀드를 감사하고 해제하기 위한 단계별 플레이북.
- 잔고 고갈 전 지갑 지출 속도 이상 현상 및 중단 감지
IOSOR가 비정상적인 선불 지출 속도를 감지하고, 자동화된 아웃바운드 트래픽을 즉시 중단하며 자금을 보호하는 방법을 알아보세요.