송금 수수료 홀딩 정책 도입과 파트너별 입금 통계 화면 추가
목차
연락처 송금 수수료 관리, 그리고 파트너 입금 통계
오늘은 결제 플랫폼에 두 가지를 한 번에 밀어넣음. 하나는 연락처 송금 흐름에 수수료 정책을 붙이는 작업, 다른 하나는 파트너별로 입금 내역을 합산해서 운영팀이 볼 수 있게 만드는 통계 화면.
처음엔 두 작업이 별개라고 생각했는데, 막상 들여다보니 잔액 계산 유틸리티가 양쪽에서 똑같이 호출되고 있어서 한 PR로 묶는 게 맞다고 판단함.
수수료 정책을 한 곳으로 모으기
기존엔 송금 시점에 수수료를 즉시 차감하고 있었는데, 결제대행사 정산 일정과 맞물려서 홀딩 상태가 필요했음. 그래서 다음 규칙을 강제함.
- 송금 발생 시 충전수수료 / 결제수수료 / 송금원금 세 건을 모두
PENDING상태로 적재 - 가상계좌는 +2시간, 카드는 +3일 후
CONFIRMED전환 - 홀딩 중 취소 → 전부
CANCELLED, 잔액 변동 0원
여기서 핵심은 PENDING 없이 즉시 차감하면 버그라는 점. 운영팀이 환불 요청을 받았을 때 잔액이 이상해지는 케이스가 이전에 있었어서, 이번에 유틸리티 레이어에서 강제하도록 바꿈.
[송금 요청] → PENDING 3건 생성
├─ 충전수수료 (파트너 부담)
├─ 결제수수료 (파트너 부담)
└─ 송금원금 (수취인 지급)
[홀딩 만료] → CONFIRMED 3건 일괄 전환
[중도 취소] → CANCELLED 3건 (잔액 무변동)
파트너별 입금 통계 화면
운영 어드민에서 파트너 단위로 입금 흐름을 보고 싶다는 요청이 길게 누적돼 있었음. 기존엔 거래 원장에서 파트너ID로 필터링해 엑셀로 내보내는 방식이었는데, 매번 같은 합산을 손으로 돌리고 있었음.
작업 내용은 다음 표대로.
| 항목 | 기존 | 변경 |
|---|---|---|
| 집계 단위 | 거래 단건 | 파트너 × 일자 |
| 수수료 표시 | 합쳐진 금액 | 충전 / 결제 / 원금 분리 |
| 홀딩 표시 | 없음 | PENDING 잔액 별도 표기 |
| 정산 차감 | 미표시 | 결제대행사 청구분 라벨링 |
특히 결제대행사 청구분에 "익월 후정산" 라벨을 붙인 게 컸음. 이걸 안 붙이면 운영팀이 "왜 머천트 통장에서 선차감처럼 보이냐"고 다시 물어봄. 회계 혼동 방지용.
삽질 포인트
- 마진 = 상위 계층 수익이라는 점을 자꾸 까먹음. 가맹점 1.0%, 총판 0.8%면 총판이 0.2%를 가져가는 구조인데, 처음엔 가맹점이 1.0% 내고 총판이 또 0.8% 내는 식으로 잘못 짰다가 갈아엎음
- 통계 쿼리에서 PENDING 잔액과 CONFIRMED 잔액을 한 번에 SUM 했더니 홀딩 중 취소건이 두 번 잡힘. 상태별 GROUP BY 로 분리
회고
- 같은 유틸리티를 건드리는 작업은 묶는 편이 리뷰가 빠름
- 정책 문서(수수료 정산 단가표)와 코드를 같은 PR에서 갱신하는 습관 굳히기
- 다음엔 홀딩 만료 잡 모니터링 대시보드까지 붙일 예정
다음
댓글 0
첫 댓글 달아줘.