SAP 비환불 선수수수료 수익인식 점검 — IFRS 15, 가입비·개통비는 받은 날이 아니라 서비스가 제공되는 기간에 나눠 인식했는지 원장과 맞춘다
이행활동 판단·갱신 권리·인식기간으로 기대 수익을 다시 계산하고 원장 금액과 대사합니다
가입비, 개통수수료, 설치비, 입회금처럼 고객이 계약을 시작하면서 한 번 내고 돌려받지 않는 돈은 받는 날 통장에 들어오지만, 그 돈이 곧바로 수익은 아닙니다. 이 수수료를 받기 위해 회사가 하는 가입 처리나 설치 같은 활동이 고객에게 따로 가치 있는 재화·용역을 넘기는 것이 아니라면, 그 수수료는 앞으로 제공할 서비스의 선급입니다. IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호)의 비환불 선수수수료 요구사항은 이 경우 수수료를 미래 재화·용역이 이전될 때 수익으로 인식하도록 하고, 갱신할 때 수수료를 다시 받지 않는 등 고객에게 실질적 권리(material right)가 있다면 그 갱신 기간까지 고려하도록 다룹니다.
실무에서는 받은 달에 전액을 수익으로 올리거나, 갱신 기간을 빼고 계약기간으로만 나누는 일이 생깁니다. 원장 데이터를 그대로 이어받아 건마다 이행활동 판단과 갱신 권리로 인식기간을 다시 정하고, 기대 수익인식 누계와 계약부채를 원장 금액과 나란히 놓는 과정을 OpenUI5 화면으로 확장했습니다. 실제 구동 화면 6종을 함께 공개합니다.
| 항목 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) |
| 관련 기준서 | IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) — 비환불 선수수수료 |
| Namespace | zui5.upfrontfee |
| 셸 구조 | 단일 페이지 + 5개 탭 |
| 화면 수 | 메인 1 · 상세 다이얼로그 1 |
| SAP 표준 T-code | FBL5N · FAGLL03 · FB03 |
| 데이터 연동 방식 | OData V2 (조회조건 전부 $filter) |
| 성격 | 조회·대사·점검형 |
| 테마 | sap_horizon · 한국어 |
| 요약 | 내용 |
|---|---|
| 점검 대상 | 수수료 건별 이행활동 판단·갱신 실질적 권리·예상 갱신기간, 수익인식 누계와 계약부채의 기대 금액과 원장 금액 |
| 핵심 산식 | 기대 수익인식 누계 = 별도 이전 배분액 + (수령 수수료 − 배분액) × 경과 개월 ÷ 인식기간 · 인식기간 = 계약기간 + 예상 갱신기간(실질적 권리가 있을 때) |
| 결과 표시 | 정상 / 점검 필요 / 확인 필요 |
실제 화면 6종 둘러보기






사용 방법
- 회계연도를 넣고, 회사와 수수료 유형(가입비·개통수수료·설치비·입회금)은 필요할 때만 고릅니다. 비워 두면(전체) 전체가 조회됩니다.
- 조회 버튼은 조회조건 입력 필드 줄의 가장 오른쪽에 있습니다. 회계연도 입력란에서 Enter 키를 눌러도 같은 조회가 실행됩니다. 화면을 열면 기본 조건으로 자동 조회됩니다.
- 요약 줄에서 수수료 건수, 점검·확인 필요 건수, 수령 수수료, 기대·원장 수익인식 누계, 원장-기대 차이 절대값을 먼저 확인합니다.
- 탭을 옮겨 가며 수수료 건별 판정 → 연도별 인식 스케줄 → 수수료 유형별 집계 → 결과 구분별 집계 → 정합성 대사 순으로 좁혀 봅니다.
- 건별 판정 탭에서 행을 누르면 계약 조건과 산식, 원장 대사, 단계별 결과, 연도별 스케줄이 상세 다이얼로그로 열립니다.
- 각 탭의 CSV 내려받기(UTF-8 BOM)로 결과를 저장할 수 있습니다.
선수수수료를 언제 수익으로 옮기나 — 네 갈래 판정
건마다 이행활동과 갱신 권리를 차례로 보고 인식기간을 정한 뒤 원장과 비교합니다.
| 판정 조건 | 처리 방식(결과 상태) | 사용자 조치 |
|---|---|---|
| 이행활동이 고객에게 재화·용역을 이전하지 않음 | 수수료 전액을 선급으로 보고 인식기간 동안 안분 | 원장이 받은 달 일시 인식이면 안분 방식으로 재검토 |
| 이행활동이 별도 재화·용역을 이전함 | 배분액은 이전 시점에 인식, 나머지는 선급으로 안분 | 배분 근거 자료를 함께 확인 |
| 갱신 시 수수료를 다시 받지 않음(실질적 권리) | 인식기간 = 계약기간 + 예상 갱신기간 | 예상 갱신기간 근거 확인 |
| 갱신 시 수수료를 다시 받음 | 인식기간 = 계약기간 | - |
| 원장 안분기간이 기대 인식기간과 다르거나 원장이 일시 인식 | 점검 필요 | 인식 방식·기간과 차이 금액의 전표 확인 |
| 이행활동 판단 자료 또는 예상 갱신기간 근거가 없음 | 확인 필요 (기대값 산출 불가) | 자료를 받은 뒤 다시 조회 |
| 원장 수익·계약부채가 기대 금액과 일치 | 정상 | - |
인식 방식과 예상 갱신기간은 회사의 회계정책과 계약 조건에 따라 달라질 수 있으며, 판정 결과는 확인 대상을 알리는 표시입니다. 최종 판단은 회사와 감사인이 합니다.
수령 수수료에서 계약부채까지 산출·대사 7단계
- 수령 수수료와 배분액 — 이행활동이 별도 재화·용역을 이전하면
배분액 = 수령 수수료 × 배분율, 아니면 0 - 이연 대상 —
수령 수수료 − 배분액 - 인식기간 —
계약기간 + 예상 갱신기간(갱신 실질적 권리가 있을 때만 더함) - 경과 개월 — 계약 개시월부터 결산 연도 12월까지의 개월 수(개시월 포함), 인식기간을 넘지 않음
- 기대 수익인식 누계 —
배분액 + 이연 대상 × 경과 개월 ÷ 인식기간 - 기대 계약부채 —
수령 수수료 − 기대 수익인식 누계 - 원장 대사 —
원장 − 기대 = 0(수익·계약부채 각각). 0 이 아닌 건은 점검 필요, 기대값을 산출할 수 없는 건은 대사에서 제외
금액 단위는 원이며, 연도별 인식 예정액의 합은 수령 수수료와 같아야 합니다.
조회조건
| 조회조건 | 필수 | 설명 |
|---|---|---|
| 회계연도 | 필수 | 기본 2026 |
| 회사 | 선택 | 전체 선택 시 조건 없이 조회 |
| 수수료 유형 | 선택 | 가입비 · 개통수수료 · 설치비 · 입회금, 전체 선택 시 조건 없이 조회 |
| 점검 결과 | 선택 | 건별 판정 탭 — 전체 / 정상 / 점검 필요 / 확인 필요 |
결과 컬럼
| 영역 | 내용 |
|---|---|
| 요약 | 수수료 건수 · 점검·확인 필요 건수 · 수령 수수료 합계 · 기대·원장 수익인식 누계 · 원장-기대 차이 절대값 |
| 수수료 건별 판정 | 수수료 건 · 유형 · 고객 구분 · 점검 결과 · 계약 개시일 · 계약기간 · 이행활동 이전 여부 · 갱신 실질적 권리 · 예상 갱신기간 · 인식기간 · 경과 개월 · 수령 수수료 · 배분액 · 기대/원장 수익인식 누계 · 수익 차이 · 기대/원장 계약부채 · 원장 인식 방식 · ①~④ 단계 · 판정 근거·설명 |
| 연도별 인식 스케줄 | 인식 연도 · 당해 인식 개월 · 인식 예정액 · 인식 누계 · 기말 계약부채 · 원장 수익인식 누계 · 차이 |
| 수수료 유형별 집계 | 유형별 건수 · 수령 수수료 · 기대/원장 수익인식 누계 · 기대/원장 계약부채 · 차이 절대값 |
| 결과 구분별 집계 | 정상·점검 필요·확인 필요별 건수 · 수령 수수료 · 기대/원장 금액 · 차이 절대값 |
| 정합성 대사 | 대사식 · 산식 · 검사 건수 · 차이 건수 · 최대 차이 금액 · 의도적 예외 건수 |
SAP 표준 기능 매핑
- 원장 — 수익·계약부채 계정 금액(
ACDOCA), 전표 헤더·항목(BKPF·BSEG), 판매계약 조건(VBAK·VBAP), 고객 마스터(KNA1)를 사용해 집계 - 표준 화면 — 고객 개별 항목(FBL5N) · G/L 개별 항목(FAGLL03) · 전표 조회(FB03)
| T-code | 이름 | 쓰임 |
|---|---|---|
FBL5N | 고객 개별항목 조회 | 수수료 청구·수금 항목을 확인합니다 |
FAGLL03 | G/L 계정 개별항목 | 수익·계약부채 계정의 원장 금액을 확인합니다 |
FB03 | 전표 조회 | 차이가 나는 전표를 열어 확인합니다 |
| 기준서 | 요구사항 | 화면 반영 |
|---|---|---|
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 비환불 선수수수료: 이행활동이 재화·용역을 이전하는지 판단 | 이행활동 판단 단계 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 별도 수행의무가 아니면 수수료를 미래 재화·용역의 선급으로 보아 이전 시점에 수익 인식 | 안분 방식과 기대 수익인식 누계 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 갱신 시 수수료를 다시 받지 않으면 실질적 권리(material right)가 있을 수 있어 인식기간이 계약기간을 넘을 수 있음 | 갱신 권리·인식기간 단계 |
| IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) | 받았으나 아직 이전하지 않은 부분은 계약부채로 표시 | 계약부채 산출·원장 대사 |
참고 CDS 뷰
define view UpfrontFeeCheck as select from vbak
inner join vbap on vbap.vbeln = vbak.vbeln
inner join kna1 on kna1.kunnr = vbak.kunnr
{
key vbak.vbeln as FeeId,
vbak.vbegdat as StartDate,
kna1.ktokd as CustType,
// 수령 수수료·원장 수익·계약부채는 ACDOCA 계정별 집계 뷰와 결합
// 기대 수익인식 누계 = 배분액 + (수령 수수료 − 배분액) * 경과 개월 / 인식기간
vbap.netwr as FeeAmt
}뷰 이름과 계정 매핑은 스케치이며, 이행활동 이전 여부·갱신 권리·예상 갱신기간은 표준 필드가 없어 계약 조건 입력 자료가 필요합니다(확인 필요).
OpenUI5 구성
| 구성 | 내용 |
|---|---|
| 업무 영역 | 재무회계(FI) |
| 화면 구성 | 조회조건 영역(우측 조회) + 요약 줄 + 수수료 건별 판정·연도별 인식 스케줄·수수료 유형별 집계·결과 구분별 집계·정합성 대사 5개 탭, 상세 Dialog |
| 데이터 모델 | OData V2 모델을 앱 설정(manifest)에서 선언하고, 표마다 해당 엔티티셋에 직접 바인딩 |
| 조회조건 처리 | 필터 객체로 만들어 서버 조회 조건($filter)으로 전달하며 "전체"는 조건을 만들지 않음 |
| 정렬 | 정렬 객체를 통해 서버 정렬($orderby)로 처리 |
| 집계 | 요약 값은 컨트롤러 한 곳에서 계산하고 금액 문자열은 숫자로 변환해 합산 |
| 실패 안내 | 서비스 연결 실패와 요청 실패, 빈 응답을 구분해 사용자 메시지로 안내 |
| 테마 | sap_horizon · 한국어 |
파일 구성
| 구분 | 내용 |
|---|---|
| 앱 본체 | index.html · manifest.json · Component.js · controller · view · model · i18n · css |
| 데이터 서비스 | OData 서비스 정의와 엔티티셋별 데이터 |
| 검증 전용 | 앱 본체와 분리된 검증용 샘플 데이터 구성 |
| 설명서 | readme.html (13개 절) |
검증 결과
화면 구성에 쓴 검증용 샘플 데이터는 가상 회사 2곳의 수수료 24건(연도별 스케줄 81줄)을 기준으로 수령 수수료·수익인식·계약부채가 원 단위로 맞물리도록 구성했습니다.
| 대사식 | 검사 | 결과 | 의도적 예외 |
|---|---|---|---|
| 수령 수수료 = 원장 수익 + 원장 계약부채 | 24 | 일치 | 0 |
| 수령 수수료 = 기대 수익 + 기대 계약부채 | 20 | 일치 | 0 |
| Σ 연도별 인식 예정액 = 수령 수수료 | 20 | 일치 | 0 |
| 원장 − 기대 = 수익 차이 | 20 | 차이 0건, 의도적 예외 7건 분리 기록 | 7 |
| 결과 구분별 건수 합 = 전체 건수 | 2 | 일치 | 0 |
| 유형별 수수료 합 = 건별 수수료 합 | 2 | 일치 | 0 |
일시 인식이나 갱신 기간 미반영 등 원장 차이 7건과 판단 자료 미수령 4건은 점검 화면의 동작을 보이기 위해 의도적으로 구성한 케이스입니다. 기대 수익인식 누계는 별도 스크립트로 처음부터 다시 계산해 20건이 전수 일치했고, 화면 요약의 수령 수수료 19,444,000, 기대 수익인식 누계 4,707,666, 원장 수익인식 누계 8,120,166, 원장-기대 차이 절대값 3,412,500은 검증 스크립트 합계와 같습니다.
자주 묻는 질문
이 화면의 판정이 곧 기준서 충족 여부인가요?
아닙니다. 이 화면은 수수료 건마다 인식 방식을 분류하고 원장 금액과 대사해 살펴볼 건을 가려내는 점검 도구입니다. 비환불 선수수수료를 언제 얼마나 수익으로 인식할지의 최종 판단은 기준서 원문과 회사의 회계정책에 따라 회사와 감사인이 합니다.
적용 시기와 범위는 어떻게 되나요?
이 화면은 IFRS 15 고객과의 계약에서 생기는 수익(K-IFRS 제1115호) 가운데 비환불 선수수수료의 이행활동 판단, 실질적 권리와 인식기간, 계약부채 표시 요구사항명을 대상으로 합니다. 이미 시행 중인 기준서이며, 문단번호와 경과규정은 원문으로 확인하지 못해 확인 필요로 남겼습니다.
예상 갱신기간은 화면이 정해 주나요?
아닙니다. 예상 갱신기간은 갱신 이력과 계약 조건을 근거로 회사가 판단해 입력하는 값입니다. 화면은 입력된 값으로 인식기간을 계산할 뿐이며, 그 값의 타당성 판단은 회사와 감사인이 합니다.
점검 필요와 확인 필요는 무엇이 다른가요?
점검 필요는 원장의 인식 방식·기간이 기대와 다르거나 원장 금액이 기대 금액과 다른 건이고, 확인 필요는 이행활동 판단 자료나 예상 갱신기간 근거가 없어 기대 금액을 산출하지 못한 건입니다. 두 표기 모두 원인을 단정하지 않고 살펴볼 후보를 뜻합니다.
가입비·개통비, 결산 전에 인식기간부터 나눠 보세요
건마다 엑셀로 안분표를 다시 만드는 대신, 화면에서 이행활동과 갱신 권리, 원장 계상액을 미리 대사해 두면 결산과 감사 대응이 한결 가벼워집니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.