콘텐츠로 이동

정산/환불 정책 및 검증 기준

작성일: 2026-05-05 최근 확인: 2026-05-06 클라이언트 답변 반영

이 문서는 사용자가 전달한 정산/환불 문서와 현재 코드 구현을 대조해, 이후 개발 및 QA의 기준으로 쓰기 위한 작업 문서다. 아래 확인 필요 항목은 아직 확정 정책으로 보지 않는다.

참고 소스

  • 사용자 제공 문서: 현재 대화의 정산관리, 강사 정산 정책, 환불 모달, 환불 3분기 분기, 환불 저장/로그, 결제내역 QA, 강사정산 계산법
  • 기존 작업 문서:
  • docs/qa-analysis/refund-auto-logic-plan.md
  • docs/qa-analysis/refund-modal-plan.md
  • docs/qa-analysis/admin-refund-management-plan.md
  • 코드 기준:
  • backend/prisma/schema.prisma
  • backend/src/controllers/refund.controller.js
  • backend/src/controllers/settlement.controller.js
  • backend/src/utils/settlementUtils.js
  • backend/src/services/attendance-scheduler.service.js
  • backend/src/controllers/payment.controller.js
  • frontend/src/views/admin/RefundManagement.vue
  • frontend/src/views/admin/SettlementManagement.vue
  • frontend/src/views/user/shared/SharedPayment.vue
  • frontend/src/components/common/RefundModal.vue
  • frontend/src/components/common/PaymentItem.vue

확정 정책

1. 강사 정산 상태

정산 상태 흐름은 다음 순서를 기준으로 한다.

정산보류 -> 정산대상 -> 지급대기 -> 지급완료
  • 정산보류: 결제 및 매칭 완료 후, 환불 가능 기간으로 금액이 아직 확정되지 않은 상태
  • 정산대상: 컨설팅 전체 횟수의 1/3 이상 진행되어 환불 불가 상태로 전환되고 정산 대상에 포함된 상태
  • 지급대기: 운영진이 정산확정 처리를 완료하여 금액이 확정/락된 상태
  • 지급완료: 익월 15일 지급이 완료된 상태

보류 예외 상태로 지급보류가 코드에 존재한다.

2. 정산 대상 자동 전환

  • 컨설팅 전체 횟수의 1/3 이상 진행되면 자동으로 정산대상이 된다.
  • 1/3 계산은 소수점 발생 시 올림한다.
  • 예: 6회 컨설팅은 2회 이상, 8회 컨설팅은 3회 이상이면 1/3 이상으로 본다.
  • 사전 합의 없는 무단 결석 2회는 진행 1회로 인정한다.

3. 정산 확정 및 지급

  • 정산확정은 운영진이 어드민에서 수동으로 처리한다.
  • 정산확정 결과는 지급대기이며, 금액은 확정/락된다.
  • 정산일은 실제 지급일이며 익월 15일이다.
  • 정산확정일은 지급을 위해 금액을 확정하는 시점이며, 정산일 기준 5~7영업일 전까지 유동적으로 진행한다.
  • 지급 완료는 익월 15일에 처리한다.

4. 정산관리 화면 요구사항

상단 전체 정산 요약 영역은 모든 강사 합산 기준으로 다음을 보여야 한다.

  • 정산월 기준 환불 반영 총액
  • 정산월 기준 환불 건수
  • 정산월 기준 환불률

강사별 정산 내역 테이블은 강사 1명 단위로 다음을 보여야 한다.

  • 강사별 환불 반영 금액
  • 강사별 환불 반영 건수
  • 환불 반영 있음/없음 표시

강사 정산 상세 화면은 정산에 포함된 환불 내역 목록을 보여야 한다.

  • 환불 발생일
  • 환불 금액
  • 연관 주문/학생
  • 강사 정산 차감 금액
  • 반영된 정산월

5. 환불 버튼 클릭 시 기본 분기

환불 버튼 클릭 시 시스템이 먼저 상품 유형과 사용/진행 상태를 자동 점검하고 3가지로 분기한다.

분기 조건 처리 어드민 개입
자동 환불 가능 AI 리포트 미사용 + 7일 이내, 또는 컨설팅 0회 진행 + 공제 없음 + 무료 AI 리포트 미사용 환불 처리 중 후 PG 자동 환불, 성공 시 환불 완료 없음
환불 불가 AI 리포트 사용 이력 있음, AI 리포트 결제 후 7일 초과, 컨설팅 1/3 이상 진행 즉시 환불 불가 모달, 상태 변화 없음 없음
컨설팅 공제 환불 컨설팅 1/3 미만 진행이지만 진행 인정 회차 또는 무료 AI 리포트 사용으로 공제 발생 환불 대기, 어드민 승인 후 PG 환불 필요

6. AI 리포트/이용권 환불

  • 분석 실행 버튼을 1회라도 눌렀으면 환불 불가다.
  • 분석 실행 이력이 없고 결제 후 7일 이내면 자동 환불 대상이다.
  • 리포트 이용권 환불은 어드민 승인 없이 시스템에서 이용권 사용 여부를 확인 후 자동 처리한다.
  • 완료 시 상태는 환불 완료다.

7. 컨설팅 환불

진행 인정 회차 산정 기준:

  • 실제 진행 완료 회차를 집계한다.
  • 무단 결석은 2회마다 진행 1회로 인정한다.
  • 최종 진행 인정 회차가 총 컨설팅 횟수의 1/3 이상이면 환불 불가다.

환불 가능/불가 기준:

  • 진행 인정 회차가 0회이고 공제 금액이 없으면 자동 환불 대상이다.
  • 컨설팅은 결제 후 7일이 지나도 수강 이력이 없고 리포트를 쓰지 않았으면 환불 가능하다.
  • 진행 인정 회차가 1/3 미만이면 부분 환불 대상이다.
  • 진행 인정 회차가 1/3 이상이면 환불 불가다.

컨설팅 공제 환불 시 어드민에 전달되어야 할 계산 항목:

  • 총 컨설팅 횟수
  • 진행 인정 회차
  • 회당 단가
  • 컨설팅 공제 금액
  • 리포트 공제 여부
  • 최종 환불 예정 금액

8. 환불 모달 UX

환불 가능한 경우에만 환불 신청 폼이 노출된다.

  • 컨설팅 환불은 환불 사유 입력란이 필수다.
  • 리포트 이용권 환불은 환불 사유 입력란을 노출하지 않는다.
  • 환불 수단은 선택 불가이며 결제 수단 기준으로 자동 설정한다.
  • 체크박스 UI는 유지하되, 선택되지 않은 환불 수단은 disabled 처리한다.
  • 안내 문구에 다음 문장을 포함한다: ※ 환불은 결제 수단과 동일한 방식으로 처리됩니다.

결제 수단별 환불 수단:

  • 카드 결제: 카드 환불만 활성
  • 계좌이체/현금 결제: 현금 환불만 활성, 계좌 입력 영역 노출
  • 포인트 결제: 포인트 환불만 활성

현금 환불 계좌 입력 필수값:

  • 은행명
  • 계좌번호
  • 예금주

9. 환불 상태

사용자 제공 문서의 최종 상태 단계:

환불 대기 -> 환불 처리 중 -> 환불 완료
환불 불가

상태 의미:

  • 환불 대기: 관리자 확인 필요 상태, 공제가 있을 때 사용
  • 환불 처리 중: PG 요청 완료 또는 PG 처리 중 상태
  • 환불 완료: PG 환불 완료 상태
  • 환불 불가: 시스템 조건 미충족 또는 관리자 검토 결과 환불 불가 확정

시스템이 조건 미충족으로 즉시 차단하는 환불 불가 케이스는 DB에 환불 요청 기록을 만들지 않고, 사용자에게 모달만 표시한다. 어드민 검토 후 반려하는 케이스는 환불 요청 기록을 남기고 rejected 상태로 관리한다.

10. 환불 신청 취소

  • 컨설팅 환불이 환불 대기 상태일 때, 어드민이 승인하기 전에는 학생 화면에 환불신청 취소 버튼이 있어야 한다.
  • 취소는 환불 대기 상태에서만 가능하다.

11. 환불 요청 저장 및 로그

환불 요청 시 다음 정보를 저장해야 한다.

  • 주문번호
  • 사용자 ID
  • 상품 유형
  • 결제금액

컨설팅 진행 상태 스냅샷:

  • 총 회차
  • 진행 완료 회차
  • 잔여 회차

이용권 사용 상태 스냅샷:

  • 사용 여부
  • 사용 횟수

금액 로그:

  • 시스템 계산 환불금
  • 어드민 최종 승인 환불금
  • 어드민 수정 전/후 환불금
  • 수정 사유 메모
  • 수정한 관리자 계정
  • 수정 시각

PG 처리 결과:

  • PG 요청 금액
  • PG 성공/실패 여부
  • PG 응답 코드
  • PG 응답 메시지
  • PG 거래키
  • PG 요청/완료 시각

환불 예상일은 별도 계산해서 보여주지 않는다. 사용자 화면에는 결제 수단에 따라 3~5영업일이 소요될 수 있다는 안내 문구를 사용한다.

중요: 스냅샷 값은 환불 요청 당시 기준으로 복사 저장해야 하며, 이후 회차나 사용 횟수가 바뀌어도 환불 요청 기록의 기준값은 바뀌면 안 된다.

12. 강사 정산 계산법

환불 없이 컨설팅을 정상 완료한 경우:

강사정산금 = 총결제금액 * (1 - 수수료율)

현재 정책(초기 강사 유입 단계)에서는 컨설팅 환불이 발생해도 강사 정산 시 사전 AI 분석 리포트 금액을 별도 공제하지 않는다.

컨설팅 환불 발생 시:

강사정산금 = (총결제금액 / 총컨설팅횟수 * 실제진행횟수) * (1 - 수수료율)

학생 유입 및 강사 확보가 안정화된 이후 정책 전환 시에는 환불 로직과 동일하게 사전 분석 리포트 금액을 선공제한 뒤 수수료를 정산한다.

강사정산금 = ((총결제금액 - 리포트비용) / 총컨설팅횟수 * 실제진행횟수) * (1 - 수수료율)

사전분석 리포트 공제 금액은 학생 환불금 산정에서는 항상 실제 사용한 사전분석 이용권의 리포트 유형 기준으로 계산한다.

  • 생기부 분석 리포트: 59,000원
  • 실기 분석 리포트: 29,000원

무료 사전 분석 이용권은 학생이 준비 전형에 맞춰 생기부/실기 및 수시/정시 중 선택해 1회 사용할 수 있다. 환불금 산정에서는 실제 사용한 리포트 유형 기준으로 생기부 또는 실기 리포트 금액을 공제한다.

13. 쿠폰 적용 결제 환불

  • 쿠폰을 사용한 주문은 쿠폰 할인 후 실제 결제금액 기준으로 환불/정산을 계산한다.
  • 환불 완료 시 사용했던 쿠폰은 유저에게 그대로 복구한다.
  • 복구된 쿠폰은 사용하지 않은 상태로 돌아가야 한다.

14. 컨설팅 공제 환불 사용자 안내

컨설팅 부분 환불처럼 공제가 발생하는 케이스는 학생에게 예상 환불 금액과 공제 내역을 보여준다.

안내 문구:

사전 분석 리포트 이용권을 사용하신 경우,
리포트 1회 이용 금액이 공제된 후,
실제 진행된 컨설팅 횟수를 기준으로 환불 금액이 산정됩니다.

표시 형식:

예상 환불 금액: 90,000원

[공제 내역]
- 사전 분석 리포트: -30,000원
- 컨설팅 진행 1회: -20,000원

* 최종 환불 금액은 관리자 확인 후 확정됩니다.

위 금액은 예시이며, 실제 화면에서는 시스템 계산값을 표시한다.

15. 어드민 정산관리 환불률

어드민 정산관리에서는 환불률을 금액 기준으로 계산한다. 건수 기준으로 계산하지 않는다.

전체 환불률:

전체 환불률 = 전체 환불 금액 / 전체 매출 * 100
  • 전체 환불 금액은 리포트 환불과 컨설팅 환불을 모두 포함한다.
  • 전체 매출도 리포트 매출과 컨설팅 매출을 모두 포함한다.

강사별 환불률:

강사별 환불률 = 해당 강사 컨설팅 환불 금액 / 해당 강사 컨설팅 매출 * 100
  • 강사별 환불률 계산 시 리포트 금액은 제외한다.
  • 여기서 제외하는 리포트 금액은 컨설팅 사전분석 리포트 값이다.
  • 사전분석 리포트는 회사 매출이며 강사 정산과 무관하기 때문이다.
  • 다음 매칭/정산 계산 때 고려해야 한다.

16. 강사 마이페이지 정산관리 환불 지표

강사 마이페이지 정산관리에는 환불률을 노출하지 않아도 된다.

강사 마이페이지에는 다음 구조로 환불 지표를 노출한다.

  • 환불 건수
  • 환불 금액
  • 누적 총 환불 건수

확인 필요

현재 없음.

현재 구현 대조

백엔드 상태

backend/prisma/schema.prisma

  • RefundStatus: requested, processing, approved, rejected, completed, cancelled
  • SettlementStatus: pending, eligible, confirmed, completed, hold
  • Refund 모델은 주문/결제/신청자/환불금/사유/상태/계좌/rawData를 가진다.
  • Settlement 모델은 refundAmount, bookingSnapshot을 가진다.
  • ClassBooking 모델은 progressCount, unexcusedAbsenceCount, settlementStatus, eligibleAt, settlementId를 가진다.
  • UsageCredit 모델은 productName, category, usedCount, remainingCount, allowEarlyReport, allowRegularReport를 가진다.

backend/src/services/attendance-scheduler.service.js

  • Math.ceil(totalSessions / 3) 기준으로 pending -> eligible 자동 전환한다.
  • 출석 1회는 진행 1회로 계산한다.
  • 결석 2회는 진행 1회로 계산하고, 남은 결석 1회는 unexcusedAbsenceCount로 저장한다.

backend/src/controllers/refund.controller.js

  • AI 리포트/이용권은 UsageCredit.usedCount > 0이면 환불 불가다.
  • AI 리포트/이용권은 결제 후 7일 초과면 환불 불가다.
  • 컨설팅은 booking settlementStatuseligible, confirmed, completed이면 환불 불가다.
  • 컨설팅 환불 금액은 총결제금액 - 리포트 공제 - 진행분으로 계산한다.
  • 컨설팅 0회 진행 + 리포트 미사용이면 자동 환불로 처리한다.
  • 공제 발생 컨설팅 환불은 requested로 저장하고 관리자 승인 대기 상태가 된다.
  • 학생 환불신청 취소 API가 있으며 requested 상태만 취소 가능하다.
  • 어드민 승인 시 adjustedAmount, adjustReason으로 최종 환불금 수정이 가능하다.

backend/src/utils/settlementUtils.js

  • 환불 없는 정상 완료는 총결제금액 기준 정산한다.
  • 현재 정책에서는 환불 발생 시에도 강사 정산에서 사전분석 리포트 비용을 별도 공제하지 않는다.
  • 환불 발생 시 총결제금액을 회차로 나누어 진행 회차 기준으로 강사 정산금을 계산한다.
  • 추후 정책 전환 시 reportDeductionPolicy를 바꿔 리포트 비용 선공제 정산으로 전환할 수 있어야 한다.
  • 리포트 공제 금액은 학생 환불금 산정과 강사별 환불률 분모 계산에 사용하며, 사용한 사전분석 이용권의 유형을 기준으로 생기부 59,000원, 실기 29,000원을 적용한다.

backend/src/controllers/settlement.controller.js

  • 어드민 정산 목록은 리포트 매출, 컨설팅 매출, 총 매출을 분리해 반환한다.
  • 어드민 정산 목록은 리포트 환불 금액, 컨설팅 환불 금액, 총 환불 금액을 분리해 반환한다.
  • 전체 환불률은 총 환불 금액 / 총 매출 기준으로 계산한다.
  • 강사별 정산 내역에 refundAmount, refundCount, 환불 반영 여부 표시가 가능하다.
  • 정산 상세는 환불/분쟁 목록, 환불일, 학생, 강의, 환불금액, 차감금액, 정산월, 사유를 반환한다.
  • 정산 확정은 pending/eligible에서 confirmed로 전환한다.
  • 지급 완료는 예정 지급일 이후에만 completed로 전환한다.

프론트 상태

frontend/src/views/user/shared/SharedPayment.vue

  • 마이페이지 결제내역을 /payments/my에서 가져온다.
  • AI 리포트/이용권과 컨설팅 결제를 탭으로 나눈다.
  • 환불 가능 여부가 false면 환불 불가 모달을 먼저 보여준다.
  • 환불 가능하면 RefundModal을 열고 /refunds로 요청한다.
  • requested 상태의 환불은 환불신청 취소 버튼을 통해 /refunds/:id/cancel을 호출한다.

frontend/src/components/common/RefundModal.vue

  • 환불 수단은 결제수단 기준으로 자동 설정한다.
  • 카드/현금/포인트 체크박스 UI를 유지하고 선택 불가 항목을 disabled 처리한다.
  • 컨설팅 환불 사유는 필수다.
  • 현금 환불은 은행명/계좌번호/예금주가 필수다.
  • 리포트 모달에는 사용 횟수 표시 영역이 있다.

frontend/src/components/common/PaymentItem.vue

  • requested 상태는 환불 처리 중환불신청 취소 버튼을 표시한다.
  • processing/approved는 환불 처리 중으로 표시한다.
  • completed는 환불 완료로 표시한다.
  • rejected는 반려됨으로 표시한다.

frontend/src/views/admin/RefundManagement.vue

  • 어드민 환불관리 탭은 전체/환불 가능/환불 불가/환불처리완료 구조다.
  • 목록은 결제일/신청일, 진행/사용, 환불금액, 환불 가능 여부, 상태를 표시한다.
  • 상세 모달은 주문정보, 결제정보, 환불 신청 정보, 진행/사용 현황, 금액 계산, PG 상태를 표시한다.
  • requested 상태에서 금액 수정 후 승인/반려가 가능하다.

frontend/src/views/admin/SettlementManagement.vue

  • 정산관리 상단에 기존 매출/정산 통계와 환불 통계 카드가 있다.
  • 테이블에는 환불차감, 환불건수, 환불반영 여부가 있다.
  • 상세 모달에는 정산 정보, 환불 내역, 예약 내역이 있다.

현재 구현의 주요 갭

  1. 환불 요청 스냅샷/로그가 구조화되어 있지 않다.
  2. 현재는 일부 계산값이 Refund.rawData에 들어간다.
  3. 상품 유형, 결제금액, 총 회차, 진행 완료 회차, 잔여 회차, 사용 여부, 사용 횟수, 시스템 계산 환불금, 어드민 최종 환불금, PG 요청 금액/성공여부/응답코드가 모두 별도 필드로 남지는 않는다.

  4. rejectRefund가 기존 rawData를 덮어쓴다.

  5. 반려 처리 시 rawData: { rejectionReason }로 업데이트한다.
  6. 기존 계산 스냅샷이 있었다면 유실될 수 있다.

  7. 기존 데이터 중 사전분석권 category가 비어 있는 사용 건은 실제 사용 리포트 유형 식별에 한계가 있다.

  8. 신규 사용 건은 분석 실행 시 사용한 reportCategoryUsageCredit.category에 기록한다.
  9. 과거 사용 건 중 category가 비어 있으면 현재 기본값인 생기부 59,000원으로 계산한다.

  10. AI 리포트 환불 미리보기는 사용 횟수/7일 체크를 하지 않는다.

  11. /refunds/calculate/:orderId에서 컨설팅이 아닌 주문은 전액 환불 가능 메시지를 반환한다.
  12. 실제 신청 API는 사용 횟수/7일을 다시 막지만, 미리보기 단계 메시지가 정책과 다를 수 있다.

  13. 마이페이지 결제내역의 이용권 제목에 수시/정시 구분이 붙지 않는다.

  14. 현재 title은 usageCredits[0].productName 위주다.
  15. 백엔드 응답에는 allowEarlyReport, allowRegularReport, category가 있으므로 프론트에서 수시, 정시, 수시·정시 라벨 조합이 가능하다.

  16. 리포트 환불 모달의 사용 횟수가 0으로 보일 수 있다.

  17. RefundModalpayment.usedCount를 표시한다.
  18. SharedPayment.vueformatAnalysisPaymentusageCredits[0].usedCountusedCount로 넘기지 않는다.
  19. 사용했는데도 환불 신청이 받아지는 문제는 별도 QA가 필요하다. UsageCredit.usedCountaiReport.controller.jsticket.controller.js에서 증가 로직이 있으나, 실제 분석 플로우가 결제내역의 같은 UsageCredit을 쓰는지 확인해야 한다.

  20. 정산관리 상단 환불 건수 기준이 다를 수 있다.

  21. 현재 totalRefundCount는 환불이 있는 정산 row 수에 가깝다.
  22. 사용자 요구는 정산월에 반영된 전체 환불 건수다.

  23. 정산 상세의 차감금액이 실제 강사 정산 차감액과 다를 수 있다.

  24. 현재 환불 리스트의 deductionAmount는 환불금액과 동일하게 세팅된다.
  25. 사용자 요구의 강사 정산 차감 금액은 환불금액이 아니라 강사 정산금 감소분일 가능성이 있다.

  26. 어드민 승인 후 processing 상태가 실질적으로 오래 유지되지 않는다.

  27. 현재 승인 요청 안에서 approved 후 PG 취소가 성공하면 곧바로 completed로 바뀐다.
  28. PG 요청 완료 후 비동기 완료를 기다리는 구조라면 상태/웹훅 저장 설계를 보강해야 한다.

  29. 어드민 승인 시 컨설팅 진행률 재검증이 약하다.

    • 승인 전 이용권 사용 재검증은 있다.
    • 컨설팅이 환불 요청 이후 1/3 이상으로 바뀐 경우를 승인 시점에 다시 차단하는 로직은 명확하지 않다.
  30. 정산확정 5~7영업일 전 정책은 안내만 있고 강제되지 않는다.

    • 지급 완료는 익월 15일 이후만 가능하도록 막는다.
    • 정산확정 자체는 날짜 제한 없이 가능하다.
  31. PG 처리 결과 저장이 부족하다.

    • refundKey 정도만 저장된다.
    • PG 요청 금액, 성공/실패 여부, 응답 코드, 응답 메시지, 거래키, 요청/완료 시각을 별도 보존하지 않는다.
  32. 마이페이지 환불 상태 라벨 조정이 필요하다.

    • 정책상 requested환불 대기, processing환불 처리 중이다.
    • 현재 PaymentItem.vuerequested 상태를 환불 처리 중으로 표시한다.
  33. 환불 불가 탭 의미를 정책에 맞게 고정해야 한다.

    • 시스템 차단 환불은 Refund 레코드를 만들지 않으므로 어드민 목록에 나오지 않는 것이 정책이다.
    • 어드민에서 반려한 rejected 건만 환불 불가/반려 성격의 목록에 표시해야 한다.

개발 우선순위 제안

  1. 남은 확인 필요 2개를 먼저 확정한다.
  2. 마이페이지 결제내역 표시 버그부터 수정한다.
  3. 이용권 제목에 수시/정시 라벨 추가
  4. 리포트 환불 모달 usedCount 전달
  5. requested 상태 라벨을 환불 대기로 조정
  6. 컨설팅 공제 환불 화면에 예상 환불 금액과 공제 내역을 표시한다.
  7. 환불 요청 스냅샷/금액 로그/PG 로그 저장 구조를 보강한다.
  8. 쿠폰 환불 시 실제 결제금액 기준 계산 및 쿠폰 복구를 구현한다.
  9. 정산관리 환불 건수/차감금액/환불률 기준을 실제 요구에 맞게 수정한다.
  10. 어드민 환불 승인 시점 재검증과 PG 상태 보존을 보강한다.

QA 체크리스트

환불 사용자 플로우

  • AI 리포트 미사용 + 7일 이내: 환불 요청 시 자동 환불 안내, 상태 환불 처리 중 또는 환불 완료
  • AI 리포트 사용 이력 있음: 환불 불가 모달, Refund 레코드 생성 없음
  • AI 리포트 결제 후 7일 초과: 환불 불가 모달, Refund 레코드 생성 없음
  • 리포트 환불 모달: 사용 횟수가 실제 UsageCredit.usedCount와 일치
  • 리포트 결제내역 제목: 수시/정시 구분 표시
  • 컨설팅 0회 진행 + 리포트 미사용: 결제 후 7일이 지나도 자동 환불 가능
  • 컨설팅 1/3 미만 진행 + 진행 회차 있음: 환불 대기, 사용자에게 공제 가능 안내
  • 컨설팅 1/3 미만 진행 + 무료 리포트 사용: 환불 대기, 어드민에 리포트 공제 내역 전달
  • 컨설팅 공제 환불 모달: 예상 환불 금액과 공제 내역 표시
  • 컨설팅 공제 환불 모달: * 최종 환불 금액은 관리자 확인 후 확정됩니다. 문구 표시
  • 컨설팅 1/3 이상 진행: 환불 불가 모달, Refund 레코드 생성 없음
  • 환불 대기 상태: 환불 대기 라벨과 환불신청 취소 버튼 표시 및 취소 성공
  • 환불 처리 중/완료 상태: 환불신청 취소 불가
  • 쿠폰 사용 주문 환불 완료: 사용한 쿠폰이 유저에게 미사용 상태로 복구

어드민 환불관리

  • 목록 탭: 전체/환불 가능/환불 불가/환불처리완료가 정책대로 필터링
  • 목록: 결제일/신청일/경과일, 진행 회차 또는 사용 횟수 표시
  • 상세: 주문정보, 결제정보, 환불사유, 환불수단, 진행/사용 현황 표시
  • 상세: 시스템 계산 환불금과 어드민 최종 승인 환불금 구분
  • 상세: 금액 수정 승인 시 수정 전/후 금액과 수정 사유 저장
  • 반려: 기존 계산 rawData 유실 없음
  • PG 실패: PG 실패 상태/코드/응답 메시지/거래키 저장 및 관리자 확인 가능
  • 환불 예상일: 별도 날짜 계산 없이 3~5영업일 안내 문구만 표시

정산관리

  • 상단: 정산월 기준 환불 반영 총액이 정산 데이터와 일치
  • 상단: 정산월 기준 환불 건수가 환불 row 수 기준으로 일치
  • 상단: 리포트 매출, 컨설팅 매출, 총 매출이 분리되어 표시됨
  • 상단: 리포트 환불 금액, 컨설팅 환불 금액, 총 환불 금액이 분리되어 표시됨
  • 상단: 전체 환불률은 전체 환불 금액 / 전체 매출 기준이며 리포트와 컨설팅을 모두 포함
  • 테이블: 강사별 환불률은 강사 컨설팅 환불 금액 / 강사 컨설팅 매출 기준이며 사전분석 리포트 금액 제외
  • 테이블: 강사별 환불 반영 금액/건수 표시
  • 테이블: 환불 반영 있음/없음 표시
  • 상세: 환불 발생일, 환불 금액, 주문/학생, 강사 정산 차감 금액, 정산월 표시
  • 환불 발생: 현재 정책에서는 리포트 비용 차감 없이 진행 회차 기준 정산
  • 향후 정책 전환 시: 리포트 비용 선차감 후 진행 회차 기준 정산
  • 환불 없음 + 완료: 총결제금액 기준 정산
  • 정산확정 후 환불 요청 차단
  • 지급완료는 익월 15일 이전 처리 불가