포인트 + 친구초대 + 돈지키미 통합 플로우
어드민 14/15/16/17번 메뉴 · 포인트 적립/출금 + 친구초대 + 돈지키미 알림 + 알림 채널 정책
SECTION 1 — 포인트 관리 (어드민 14번)
STEP 1 — 포인트 적립 조건
적립 대상: 앱회원만 (비회원 불가)
모든 보상은 PASS 본인인증 완료가 필수. 가입만으로는 포인트 지급 안 됨. PASS 인증 = CI(고유값) 확보 → 어뷰징 원천 차단.
| 적립 조건 | 대상 | 포인트 | 필수 조건 |
| 회원가입 | 본인 | 5,000P | PASS 인증 완료 + 마케팅 수신 동의 |
| 친구초대 가입 | 추천인 | 3,000P | 친구의 PASS 인증 완료 시 추천인에게 적립 |
| 친구 계약 완료 (추천인) | 추천인 | 인터넷 15,000 / 인터넷+TV 20,000 / 렌탈 10,000P | 양쪽 PASS 인증 완료 필수 |
| 친구 계약 완료 (친구) | 친구 | 인터넷 10,000 / 인터넷+TV 15,000 / 렌탈 5,000P | 양쪽 PASS 인증 완료 필수 |
| 후기 작성 | 본인 | 15,000P | PASS 인증 완료 + 사진 필수 |
금액 기준: 마진의 10% 기준으로 확정. 고정 금액이며 등급제 없음.
↓
STEP 2 — 출금 조건 (4가지 모두 충족 필수)
출금 정책 (cash.js)
| 항목 | 값 |
| 최소 출금 금액 | 30,000원 |
| 수수료 | 0원 (무료) |
| 처리 기간 | 영업일 기준 1~2일 |
| 지원 은행 | 신한/국민/NH농협/우리/하나/IBK기업/SC제일/카카오뱅크/토스뱅크/케이뱅크/광주/전북/새마을금고/신협/우체국 (15개) |
계약 확인 로직 (checkWithdrawalEligibility):
1) bongi_referrals 테이블에서 추천인으로서 계약완료/보상완료 건 확인
2) bongi_applications 테이블에서 본인 계약완료 건 확인
둘 중 하나라도 있으면 출금 자격 충족
↓
STEP 3 — 출금 프로세스
고객
출금 신청
→
POST /api/cash/withdraw
4가지 조건 검증
→
bongi_withdrawals
status: 대기
잔액 즉시 차감
→
어드민 14번
"출금 대기" 목록
→
승인 → 계좌 입금 + 알림톡
반려 → 잔액 복원 + 사유 표시
API 엔드포인트 (server/routes/cash.js)
| API | 설명 |
| GET /api/cash/balance | 내 리턴캐쉬 잔액 조회 |
| GET /api/cash/history | 적립/출금 내역 (페이징, 최대 50건) |
| POST /api/cash/withdraw | 출금 신청 (bank_name, account_number, account_holder, amount) |
| GET /api/cash/banks | 은행 목록 (15개) |
| GET /api/cash/policy | 출금 정책 (최소금액/수수료/처리일) |
DB 테이블
| 테이블 | 역할 |
| bongi_cash_balance | 유저별 포인트 잔액 (user_id, balance, updated_at) |
| bongi_cash_history | 적립/출금 내역 (type: earn/withdraw, amount, description, status) |
| bongi_withdrawals | 출금 신청 (amount, bank_name, account_number, account_holder, status: 대기/승인/반려) |
↓
STEP 4 — 마이페이지 포인트 UI (Points.jsx)
보유 포인트
30,000 P
현금 출금까지 38,000P 더 필요해요
현금 출금 조건
□ 5만 포인트 이상 보유 (현재 30,000P)
✓ 1회 이상 계약 완료
✓ 본인인증 완료
✓ 계좌 등록 완료
5만P 달성 시 출금 신청 버튼 활성화
포인트 내역
+20,000P 친구 계약 완료 (추천인)
+5,000P 계약 완료 포인트
+5,000P 회원가입 포인트
-5,000P 출금 처리
↓
STEP 5 — 어드민 포인트 관리 화면 (14번)
KPI
출금 신청 목록
| 신청일 | 이름 | 신청 포인트 | 본인인증 | 계좌 | 계약횟수 | 조건 | 상태 | 관리 |
| 2026.04.06 | 홍길동 | 52,000P |
인증완료 | 국민 123-456-**** | 3회 |
충족 | 출금 대기 |
승인 반려 |
| 2026.04.03 | 윤서연 | 45,000P |
인증완료 | 카카오뱅크 3333-**** | 0회 |
미충족 | 반려 |
조건미충족 |
포인트 적립 내역
| 일시 | 이름 | 구분 | 내용 | 포인트 | 잔액 |
| 2026.04.06 14:23 | 홍길동 | 적립 | 친구초대 계약완료 — 이영희 / LG U+ 500M+프리미엄+UHD4 (LG0079) | +5,000P | 52,000P |
| 2026.04.04 10:00 | 강민준 | 출금 | 포인트 출금 → 우리은행 1002-123-456789 | -50,000P | 0P |
| 2026.04.01 09:00 | 홍길동 | 적립 | 회원가입 포인트 | +5,000P | 47,000P |
조건 충족/미충족 자동 검증. 승인 → 등록 계좌로 입금 + 알림톡 발송. 반려 → 사유 표시. 엑셀 다운로드 지원.
이름 클릭 → 회원 상세 모달 (포인트/친구초대/돈지키미/출금이력 통합 확인).
SECTION 2 — 친구초대 시스템 (포인트 14번에 통합)
STEP 1 — 추천 코드 생성
코드 형식
RETURN_XXXXXX
• 접두어: RETURN_ (고정)
• 뒤 6자리: A-Z (I,O 제외) + 2-9 숫자 = 31개 문자에서 랜덤
• 중복 검사: 최대 10회 재생성 시도
• 생성 시점: 회원 최초 추천 코드 요청 시
사기 방지 로직
✓ 동일 전화번호 중복 등록 방지 (bongi_referrals 테이블)
✓ 자가추천 방지 (referrer_phone === referred_phone 검증)
✓ 추천 코드 유효성 검증 (존재하는 코드인지 확인)
API 엔드포인트 (server/routes/referrals.js)
| API | 설명 |
| GET /api/referrals/my-code | 내 추천 코드 생성/조회 (RETURN_XXXXXX) |
| GET /api/referrals/stats | 추천 실적 (초대수/가입수/계약수/총 수익/대기금액/등급) |
| POST /api/referrals/register | 추천 코드로 친구 등록 → 가입 보상 즉시 지급 |
| POST /api/referrals/convert | 계약 완료 처리 → 계약 보상 지급 |
| GET /api/referrals/reward-policy | 전체 등급별 보상 정책 조회 |
↓
STEP 2 — 친구초대 전체 흐름
추천인
코드 공유
RETURN_XXXXXX
→
친구가
코드로 가입
→
POST /register
사기방지 검증
→
bongi_referrals
status: 가입완료
→
bongi_rewards
가입 보상 (추천인)
3,000P 적립
↓
친구가
계약 완료
→
POST /convert
계약 보상 처리
→
bongi_referrals
status: 계약완료
→
추천인 계약 보상 (최대 20,000P)
친구 계약 보상 (최대 15,000P)
DB 테이블
| 테이블 | 역할 |
| bongi_referrals | 추천 관계 (referrer_code, referrer_user_id, referred_name, referred_phone, status: 가입완료/계약완료/보상완료/취소) |
| bongi_rewards | 보상 내역 (referral_id, recipient_type: referrer/referred, reward_type: signup/contract, amount, status: 적립/출금/완료) |
↓
STEP 3 — 포인트 보상 정책 (고정)
친구초대 보상 — 고정 금액
| 시점 | 대상 | 포인트 |
| 친구 앱 가입 + PASS 인증 완료 | 추천인 | 3,000P |
| 친구 계약완료 (인터넷) | 추천인 / 친구 | 15,000P / 10,000P |
| 친구 계약완료 (인터넷+TV) | 추천인 / 친구 | 20,000P / 15,000P |
| 친구 계약완료 (렌탈) | 추천인 / 친구 | 10,000P / 5,000P |
양쪽 PASS 본인인증 필수. 추천인+친구 모두 PASS 인증 완료 상태여야 포인트 적립. 가입만으로는 지급 안 됨.
어뷰징 방지: PASS 인증 = CI(고유 식별값) 확보 → 동일인 중복가입 원천 차단. 가입만으로 포인트 지급 시 허위가입 어뷰징 발생.
친구초대 최대: 추천인 20,000P + 친구 15,000P = 35,000P (인터넷+TV 기준)
↓
STEP 4 — 마이페이지 친구초대 UI (Referral.jsx)
내 초대 코드
HONG2026
링크 복사
카카오 공유
포인트 적립 조건
친구 앱 가입 시 → 추천인 3,000P
친구 계약 완료 시 → 추천인 최대 20,000P + 친구 최대 15,000P
인터넷 15K/인터넷+TV 20K/렌탈 10K (추천인) · 인터넷 10K/인터넷+TV 15K/렌탈 5K (친구)
나를 초대한 사람
김철수 님의 초대로 가입했어요
| 이름 | 가입일 | 계약 | 내 포인트 |
| 이영희 | 2026.04.02 | 완료 | +5,000P |
| 박민수 | 2026.03.25 | 미계약 | - |
SECTION 3 — 돈지키미 관리 (어드민 16번)
STEP 1 — 등록 항목 4종
요금제 변경
plan_change
요금제 변경 가능일 알림
부가서비스 해지
addon_cancel
부가서비스 해지일 알림
인터넷 약정
internet_expire
인터넷 약정 종료일 알림
렌탈 약정
rental_expire
렌탈 약정 종료일 알림
API 엔드포인트 (server/routes/alarms.js)
| API | 설명 |
| GET /api/alarms | 내 알람 목록 (target_date 오름차순) |
| POST /api/alarms | 알람 추가 (alarm_type, title, target_date(YYYY-MM-DD), memo) |
| PATCH /api/alarms/:id | 알람 수정 (title, target_date, memo) |
| DELETE /api/alarms/:id | 알람 삭제 |
DB 테이블
| 테이블 | 컬럼 | 설명 |
| bongi_user_alarms | user_id | 유저 ID |
| alarm_type | plan_change / addon_cancel / internet_expire / rental_expire |
| title | 알람 제목 (최대 100자) |
| target_date | 만료/변경 예정일 (YYYY-MM-DD) |
| memo | 메모 (최대 500자) |
↓
STEP 2 — 알림 타이밍 + CRM 자동 연동
D-30
앱 푸시 알림
+ CRM 해피콜 자동 추가
CRM 자동 연동 흐름 (D-30 트리거)
target_date
D-30 도래
→
돈지키미
배치 스캔
→
CRM 해피콜
자동 추가
→
상담사 배정
→
비즈니스 목적: 앱 락인 효과 — 고객이 알림을 위해 앱을 유지하고, D-30에 자동으로 CRM 해피콜이 추가되어 재계약/업셀링 기회를 만든다.
↓
STEP 3 — 마이페이지 돈지키미 UI (MoneyGuard.jsx)
돈지키미
약정 만료일을 등록하고 알람을 받으세요
+ 항목 추가
⚠️ 인터넷 약정 종료
2026.05.01 (D-26)
재계약 상담
요금제 변경 가능일
2026.08.15 (D-132)
여유
부가서비스 해지일
2026.10.20 (D-198)
여유
렌탈 약정 종료
2027.02.01 (D-302)
여유
알람 설정
D-30 알람 ON
D-7 알람 ON
D-1 알람 OFF
↓
STEP 4 — 어드민 돈지키미 관리 화면 (16번)
KPI
필터: 기간 (D-7이내/D-30이내/D-30초과) + 항목 (요금제변경/부가서비스해지/인터넷약정/렌탈약정)
| 이름 | 항목 | 상품 | 종료일 | D-day | 앱알림 | CRM 전달 | 담당 | 상태 |
| 홍길동 |
인터넷 약정 |
KT 1G+지니TV모든G |
2026.04.08 |
D-3 |
발송완료 |
전달완료 |
김상담 |
상담중 |
| 강민준 |
요금제 변경 |
SKT 5GX 프리미엄 |
2026.04.20 |
D-15 |
발송완료 |
전달완료 |
CRM 대기 |
대기 |
| 이영희 |
부가서비스 해지 |
KT 우주패스 mini |
2026.05.10 |
D-35 |
예정 |
대기 |
- |
대기 |
| 최지은 |
렌탈 약정 |
LG 퓨리케어 공기청정기 |
2026.06.15 |
D-71 |
예정 |
대기 |
CRM 대기 |
- |
D-7 이내 빨간색 강조. CRM 대기 상담사 빨간색 표시. 이름 클릭 → 회원 상세. 상담중 건에 "재계약완료" 버튼.
SECTION 4 — 알림 관리 (어드민 17번)
STEP 1 — 알림 채널 정책
카카오 알림톡 (유료) — 2가지만
1. 비회원 가입 유도 (3단계)
1차: 신청 완료 즉시 — "앱 가입 + 계좌 등록하면 현금 페이백 즉시 지급"
2차: 계약 완료 시 — "현금 페이백 OO만원 준비됨 → 앱 가입 → 즉시 입금"
3차: D+7 미가입 — "현금 페이백이 아직 대기 중이에요!"
2. 현금 페이백 지급 완료
"현금 페이백 OO만원 입금 완료" + 계좌 정보
앱 푸시 (무료) — 나머지 전부
1. 신청 상태 변경 — "신청이 접수되었습니다 (KT0311)"
2. 포인트 적립 — "친구초대 가입으로 5,000P 적립!"
3. 포인트 출금 완료 — 출금 승인 시
4. 돈지키미 알림 — D-90 / D-30 / D-7 / D-1
5. 후기 작성 유도 — "계약 완료! 후기 작성하고 15,000P 받으세요"
6. 현금 페이백 지급 완료 — 앱회원 대상
비용 절감 정책: 카카오 알림톡은 건당 유료이므로 비회원 전환(가입 유도)과 현금 페이백 입금 알림 2가지만 사용. 나머지 모든 알림은 앱 푸시(무료)로 처리.
↓
STEP 2 — 어드민 알림 관리 기능
KPI
1. 발송 이력
• 채널 필터 (카카오/앱 푸시)
• 발송일시, 유형, 수신자, 내용, 상태
• 실패 건 재발송 기능
• 이름 클릭 → 회원 상세
2. 템플릿 관리
• 카카오 알림톡 템플릿 4개
— 비회원 가입유도 1/2/3차
— 현금 페이백 지급 완료
• 앱 푸시 템플릿 6개
— 신청상태/포인트적립/포인트출금/돈지키미/후기유도/현금 페이백
• 각 템플릿 편집 가능
3. 수동 발송
• 채널 선택 (앱 푸시/카카오)
• 유형: 실패 재발송/마케팅/시세 업데이트/긴급 공지
• 대상: 전체/앱회원/조건별/개별
• 타겟 조건: 통신사별/상품별
• 휴대폰 시세 빠른 발송 기능
전체 연결 맵 — 포인트 / 친구초대 / 돈지키미 / 알림
고객 앱
회원가입
→
+5,000P
회원가입 적립
↓
추천 코드 공유
RETURN_XXXXXX
→
친구 가입
→
+3,000P
추천인 적립
→
친구 계약
→
추천인 최대 +20,000P
친구 최대 +15,000P
↓
후기 작성
→
+15,000P
→
5만P 달성?
→
출금 신청
(4조건 충족)
→
어드민 승인
→ 계좌 입금
↓
돈지키미 등록
(4종)
→
D-90
앱 푸시
→
D-30
CRM 해피콜
→
D-7 / D-1
긴급 알림
→
재계약 완료
예외 케이스 — 포인트
| 상황 | 처리 방법 |
| PASS 미인증 상태에서 포인트 적립 요청 | 적립 보류. PASS 인증 완료 후 적립 처리. "인증하면 포인트 적립" 안내. |
| 출금 조건 미충족 | 미충족 조건별 안내 표시 (5만P 부족 / 계약 없음 / PASS 미인증 / 계좌 미등록). 출금 버튼 비활성화. |
| 출금 신청 후 반려 | 잔액 복구. 마이페이지에서 반려 사유 확인 가능. |
| 비회원이 가입 후 포인트 요청 | 가입 시 5,000P 자동 적립. PASS 인증 완료 필수. |
| 포인트 부정 적립 시도 | CI 기반 중복 체크. 동일 CI로 재가입 불가. |
예외 케이스 — 친구초대
| 상황 | 처리 방법 |
| 자기 자신 추천 코드 입력 | 서버에서 자가추천 차단. "본인 코드는 사용할 수 없습니다" 에러. |
| 동일 전화번호 중복 등록 | 이미 추천 등록된 번호 차단. "이미 추천 등록된 번호입니다". |
| 친구가 PASS 인증 안 함 | 추천인 가입 보상 3,000P 보류. 친구가 PASS 인증 완료 시 적립. |
| 추천인이 PASS 인증 안 함 | 계약 보상 보류. 양쪽 모두 PASS 인증 완료 시 적립. |
| 친구가 계약 후 취소 | 계약 보상 미지급 (계약완료 상태만 보상 대상). |
| 추천 코드 존재하지 않음 | "유효하지 않은 추천 코드입니다" 에러. |
예외 케이스 — 돈지키미
| 상황 | 처리 방법 |
| 이미 지난 날짜 등록 | 등록은 가능하지만 D-day가 음수로 표시. 알림 미발송. |
| 동일 항목 중복 등록 | 허용. 고객이 여러 약정을 각각 등록 가능 (인터넷 2개 등). |
| 알림 발송 실패 | 어드민 알림관리에서 실패 건 재발송 가능. |
| D-30 도래 시 CRM 연동 실패 | 어드민에서 "CRM 대기" 상태로 표시. 수동 전달 가능. |
| 재계약 완료 후 | 해당 돈지키미 항목 자동 완료 처리. 새 약정일로 재등록 유도. |
예외 케이스 — 알림
| 상황 | 처리 방법 |
| 카카오 알림톡 발송 실패 | 어드민 알림관리에서 실패 건 확인. 재발송 버튼으로 재시도. |
| 앱 푸시 수신 거부 | 마이페이지 알림 설정에서 ON/OFF 토글. OFF 시 푸시 미발송. |
| 마케팅 수신 거부 | 마케팅 알림만 차단. 서비스 알림(신청/계약/현금 페이백)은 계속 발송. |
| 비회원에게 알림 발송 | 카카오 알림톡으로만 발송 (앱 푸시 불가). 비회원 가입유도 3단계. |
관련 파일 / URL
| 어드민 | https://bongi-mobile-production.up.railway.app/admin/ | 14 포인트 / 16 돈지키미 / 17 알림 |
| 포인트 API | server/routes/cash.js | 잔액/내역/출금/은행/정책 |
| 친구초대 API | server/routes/referrals.js | 코드/실적/등록/계약/보상정책 |
| 돈지키미 API | server/routes/alarms.js | 알람 CRUD |
| 마이페이지 | client/src/pages/my/Points.jsx client/src/pages/my/Referral.jsx client/src/pages/my/MoneyGuard.jsx | 고객용 UI |
봉이모바일 · 포인트 + 친구초대 + 돈지키미 통합 플로우 · 2026-04-09