솔루션 홈
사채 결산

SAP 사채 할인(할증)발행차금 상각 현황 — 발행가액과 액면금액의 차이를 만기까지 녹이기

회사채를 할인·할증으로 발행하면 그 차액은 만기까지 유효이자율법으로 상각됩니다. 사채별 월별 상각 스케줄과 장부가액(유동/비유동)을 기준월 시점으로 확인하는 화면입니다.

사채를 액면금액 그대로 발행하는 경우는 오히려 드뭅니다. 표시이자율이 시장 상황과 다르면 할인 또는 할증으로 발행되고, 그 차액(발행차금)은 만기까지 유효이자율법으로 상각하며 장부가액을 액면금액에 맞춰 갑니다. 문제는 이 상각액이 매월 손익에 영향을 주는데도, 실무에서는 발행 시점에 만든 엑셀 스케줄표를 만기까지 그대로 참조하는 경우가 많다는 점입니다.

SAP 표준 데이터 구조를 그대로 이어받아 사채별 월별 상각 스케줄과 장부가액(유동/비유동 재분류 포함)을 기준월 시점으로 조회하고, 잔여 현금흐름의 현재가치로 장부가액 정합성까지 그 자리에서 검증하도록 OpenUI5 화면으로 확장한 것이 이 화면입니다. 실제 구동 화면 5종을 함께 공개합니다.

SAP 표준 기능을 그대로 이어받은 부분

  • 거래 원천 — Treasury and Risk Management 사채 클래스 거래(VTBFHA) 구조를 그대로 참조
  • 상각 Run — TPM44/TBB1 Position 상각·발생 실행 결과 체계를 그대로 이어받음
  • 전기 구조 — BSEG/ACDOCA 차대일치 원칙, 계정 마스터(SKB1)
  • 회계기준 — K-IFRS 유동성 배분 기준(잔여만기 12개월)을 그대로 적용
항목내용
업무 영역재무회계(FI) · Treasury · 사채(회사채) 결산
Namespacezui5.bond
셸 구조조회조건 영역(우측 조회) + 사채별 결과 테이블 + 상세(월별 상각 스케줄·전표) Dialog
화면 수조회 화면 1개 + 상세 다이얼로그
대응 T-codeFTR_CREATE(사채 클래스 거래 등록) · TPM44/TBB1(Position 상각·발생 Run)
성격조회·검증형 — 사채 등록과 상각 Run 실행은 Treasury and Risk Management(TRM) 표준 트랜잭션이 담당
UI 테마sap_horizon 단일 적용

실제 화면 5종 둘러보기

회사코드·기준년월·사채구분을 넣고 조회하면 사채별 장부가액·상각 현황이 목록으로 뜹니다 → 사채명 입력 후 Enter 키로도 바로 조회되고 → 상세에서 월별 상각 스케줄과 관련 전표를 확인합니다.

아래는 실제로 앱을 실행해 기능을 눌러 가며 캡처한 화면입니다. 이미지를 클릭하면 원본 크기로 확대됩니다.

zui5.bond — 초기 화면 — 조회조건
초기 화면 — 조회조건
초기 화면 — 조회조건 — 화면을 열면 회사코드 1000·기준년월 2026.09·사채상태 전체 조건이 기본으로 채워집니다. 조회 버튼은 조회조건 영역 오른쪽 끝에 있고, 아직 조회 전이라 결과 영역은 안내 문구만 보여줍니다.
zui5.bond — 사채명 입력 후 Enter 키 조회
사채명 입력 후 Enter 키 조회
사채명 입력 후 Enter 키 조회 — 사채명 입력필드에 "공모"를 입력하고 Enter 키를 누르면 버튼을 누르지 않아도 바로 조회됩니다. 무보증공모사채 5건, 장부가액 합계 22,338,475,882원이 초록색 메시지스트립과 함께 표시됩니다.
zui5.bond — 조건 초기화 후 전체 조회 결과
조건 초기화 후 전체 조회 결과
조건 초기화 후 전체 조회 결과 — 초기화로 조건을 되돌리고 다시 조회하면 회사코드 1000 소속 8건이 장부가액 내림차순으로 나열됩니다. 발행구분 배지가 할인발행(주황)·할증발행(파랑)·액면발행(회색)으로 구분되고, 만기 1년 이내 2건(잔여기간 0·4개월)은 왼쪽 강조선이 붙습니다.
zui5.bond — 상세 다이얼로그 — 사채 정보와 상각 스케줄 상단
상세 다이얼로그 — 사채 정보와 상각 스케줄 상단
상세 다이얼로그 — 사채 정보와 상각 스케줄 상단 — 행의 상세 버튼을 누르면 다이얼로그가 열립니다. 위쪽 ObjectHeader에 액면금액·발행가액·발행차금 구분/금액·유동성/비유동 구분·잔여PV 검증 결과가 모이고, 아래 월별 상각 스케줄 표는 발행월부터 1회차씩 유효이자·표시이자·상각액·기말장부가액을 보여줍니다.
zui5.bond — 상세 다이얼로그 — 상각 스케줄 하단과 관련 전표
상세 다이얼로그 — 상각 스케줄 하단과 관련 전표
상세 다이얼로그 — 상각 스케줄 하단과 관련 전표 — 다이얼로그를 아래로 내리면 이자지급월(반기 6개월 주기)에 이자지급액이 찍히는 행과, 그 아래 실제 분개(이자비용/미지급비용/사채할인발행차금)가 차대 일치된 상태로 나열됩니다.

조작 방법

  1. 회사코드 · 기준년월은 필수 조건입니다. 기준년월은 오늘(2026년 9월) 기준 최근월이 기본값으로 채워집니다.
  2. 사채구분(무보증공모·무보증사모·보증사채) · 담당부서 · 사채상태(정상/만기임박/상환완료)로 범위를 좁힐 수 있습니다.
  3. 사채번호 · 사채명은 부분일치 검색이며, 두 필드 모두 Enter 키로 바로 조회됩니다. 콤보/체크박스를 바꿀 때도 이미 한 번 조회한 뒤라면 즉시 재조회됩니다.
  4. 표시옵션의 "할인발행 사채만" 체크박스로 할인발행 사채만 따로 모아볼 수 있습니다.
  5. 결과 목록에서 만기임박(잔여 6개월 이하) 건은 노란 경고 배지, 잔여현금흐름 현재가치 검증에서 오차가 난 건은 빨간 하이라이트로 표시됩니다.
  6. 행의 상세 버튼(또는 행 클릭)으로 그 사채의 월별 상각 스케줄 전체와 관련 전표를 확인합니다.
  7. 목록·상세 스케줄 모두 CSV 다운로드로 내려받습니다. UTF-8 BOM 이 붙어 엑셀에서 한글이 깨지지 않습니다.

할인·할증발행차금 상각액 산정 로직

사채는 발행가액과 액면금액이 다를 수 있습니다. 표시이자율(쿠폰)이 발행 시점의 유효이자율(시장이자율)보다 낮으면 할인발행, 높으면 할증발행이 되고, 그 차액(발행차금)을 만기까지 유효이자율법으로 상각해 장부가액을 액면금액에 수렴시킵니다. 이 화면은 그 산정 로직을 월할(月割)로 적용합니다.

항목산식
당월 유효이자기초 장부가액 × (유효이자율 ÷ 12)
당월 표시이자액면금액 × (표시이자율 ÷ 12) — 실제 지급 여부와 무관하게 매월 발생 인식
당월 상각액당월 유효이자 − 당월 표시이자 (할인발행: 양수, 할증발행: 음수, 액면발행: 항상 0)
기말 장부가액기초 장부가액 + 당월 상각액
유동성사채잔여상환기간 ≤ 12개월이면 기말 장부가액 전액(불릿상환이므로 원금 분할 없음)
잔여PV 검증잔여 표시이자(매월) + 만기 액면금액을 유효이자율로 할인한 현재가치 = 기말 장부가액

발행가액은 어떻게 정해지나요

발행 시점(0회차 이전)의 현재가치, 즉 "매월 표시이자 상당액을 만기까지 유효이자율로 할인한 값의 합 + 만기 액면금액의 현재가치"가 발행가액입니다. 이 화면의 검증 데이터도 같은 산식으로 발행가액을 역산해, 상각 스케줄을 끝까지 전개했을 때 마지막 회차의 기말 장부가액이 액면금액과 정확히 일치하도록(반올림 오차는 마지막 회차에 흡수) 만들었습니다.

월별 상각 처리 6단계

결산 담당자가 한 사채의 한 달치를 처리한다고 하면, 화면 뒤에서는 아래 6단계가 순서대로 계산됩니다.

단계처리내용
기초 장부가액 확정전월 기말 장부가액을 그대로 당월 기초로 가져온다(발행월은 발행가액)
당월 유효이자 계산기초 장부가액 × 유효이자율/12
당월 표시이자 발생 인식액면금액 × 표시이자율/12 — 지급월이 아니어도 매월 비용을 인식해 미지급비용을 쌓는다
상각액 산정유효이자 − 표시이자. 할인발행이면 장부가액이 늘고, 할증발행이면 줄어드는 방향으로 반영된다
기말 장부가액 갱신기초 장부가액 + 상각액 → 다음달 기초로 이어진다
이자지급월 · 만기월 정산이자지급주기가 돌아오면 그동안 쌓인 미지급이자를 현금으로 정산하고, 만기월에는 액면금액을 일시상환한다

①~⑤는 지급주기와 무관하게 매월 반복되고, ⑥만 사채별 이자지급주기(분기·반기·연 1회)에 맞춰 그 달에만 추가로 실행됩니다. 그래서 지급주기가 서로 다른 사채도 같은 월별 표에서 나란히 비교할 수 있습니다.

조회조건

필드필수설명
회사코드필수대상 회사코드(부가통화는 회사코드에 종속)
기준년월필수이 시점의 장부가액·상각액을 조회. 기본값은 최근월
사채구분선택무보증공모사채 · 무보증사모사채 · 보증사채
사채번호 · 사채명선택부분일치, Enter 키로 즉시 조회
담당부서선택코스트센터 기준 담당 부서
사채상태선택정상 · 만기임박(6개월 이하) · 상환완료
표시옵션선택할인발행 사채만 보기

결과 컬럼

사채별 결과 테이블

컬럼의미 · 표시
사채번호 · 사채명 · 사채구분 · 담당부서사채 기본 정보
발행기간발행일 ~ 만기일
잔여기간기준월부터 만기까지 남은 개월 수
발행구분할인발행(주황) · 할증발행(파랑) · 액면발행(회색) 배지
표시이자율 · 유효이자율연율(%) 기준
당월 유효이자 · 당월 상각액우측정렬, 천단위 콤마
사채 장부가액ObjectNumber로 강조 표시
유동성사채(1년내) · 비유동사채잔여기간 12개월 기준 재분류 결과
사채상태 · 잔여PV 검증정상/만기임박/상환완료, 정합/차이 배지

상세 — 월별 상각 스케줄

컬럼의미 · 표시
회계기간 · 회차발행월을 1회차로 하는 순번
기초 장부가액 · 기말 장부가액유효이자율법 상각 전후 장부가
당월 유효이자 · 당월 표시이자 · 상각액산정 로직 3요소
이자지급액이자지급월에만 표시, 그 외 월은 0
이벤트이자지급 · 만기상환 배지

상세 — 관련 전표

컬럼의미 · 표시
회계기간 · 전표번호 · 전기일 · 전표유형전표 식별 정보
계정 · 차대 · 금액이자비용 / 미지급비용 / 사채할인(할증)발행차금 / 보통예금
적요사채명과 회계기간을 붙여 자동 생성

SAP 표준 기능 매핑

이 화면은 사채 등록이나 상각 전기를 대체하지 않습니다. 표준 실행은 Treasury and Risk Management(TRM)의 거래 등록(FTR_CREATE)과 Position 상각·발생 Run(TPM44 · TBB1)이 담당하고, 이 화면은 그 결과를 기준월 스냅샷으로 모아 장부가액·유동성 분류·잔여현금흐름 정합성을 조회·검증하는 관점을 더한 것입니다.

테이블 · 오브젝트역할
VTBFHATreasury 거래 마스터 — 사채 클래스 거래 헤더(발행일·만기일·액면금액·표시이자율)
VTBFHAPOS거래 조건(이자지급주기·유효이자율 산정 기초)
TPM44 Run 결과기간별 상각액·발생액 — 이 화면의 유효이자/표시이자/상각액에 대응
BSEG / ACDOCA사채·발행차금·미지급비용·이자비용 전표 라인
SKB1 · T001계정 마스터, 회사코드 텍스트

도입 시 확인이 필요한 부분

이자지급주기(분기·반기·연 1회)와 이자계산 관행(월할·일할)은 발행 조건에 따라 다르므로 실제 도입 시에는 거래 조건에 맞춰 조정합니다. 또 유동성 재분류 기준(만기까지 12개월)은 K-IFRS 표시 기준을 그대로 따른 것이며, 회사 내부 결산 일정에 맞춰 기준월을 잡는 방식은 별도로 정합니다.

참고 CDS 뷰

운영 서비스로 연결할 때는 사채 마스터와 상각 Run 결과를 기준월 단위로 결합한 뷰로 서빙하는 구성을 제안합니다.

@AbapCatalog.sqlViewName: 'ZCBONDAMORT'
@EndUserText.label: '사채 상각 현황 (Z)'
define view Z_C_BOND_AMORTIZATION
  as select from vtbfha as Bond
    inner join      /* TPM44 Run 결과 저장 테이블 */ ztbondsched as Sched
                                          on  Bond.rfha = Sched.rfha
    left outer join t001        as Company on  Bond.bukrs = Company.bukrs
{
  key Bond.rfha            as BondId,
      Bond.buchk_txt        as BondName,
      Bond.bukrs,
      Company.butxt,
      Bond.faevalue         as FaceValue,
      Bond.issue_price      as IssuePrice,
      Bond.coupon_rate      as CouponRate,
      Bond.effective_rate   as MarketRate,
  key Sched.fiscper         as Period,
      Sched.open_book       as OpenBook,
      Sched.eff_interest    as EffInterest,
      Sched.coupon_accrual  as CouponAccrual,
      // 상각액 = 유효이자 - 표시이자 (할인발행 양수 / 할증발행 음수)
      Sched.eff_interest - Sched.coupon_accrual as Amort,
      Sched.close_book      as CloseBook
}

매핑 이해를 돕기 위한 참고용 설계입니다. 실제 도입 시에는 TRM Position 관리 테이블 구조와 회사의 계정 체계에 맞춰 조정합니다.

OpenUI5 구성

기능사용 컨트롤
화면 골격sap.f.DynamicPage — 헤더(조회조건) + 콘텐츠(결과 테이블)
조회조건sap.ui.layout.form.Form + Select/Input/CheckBox — 오른쪽 끝 조회 버튼, Enter 키 제출
결과 테이블sap.ui.table.Table — 16개 컬럼, 행 하이라이트(만기임박/차이)
상세 다이얼로그sap.m.Dialog + ObjectHeader + sap.m.Table 2단(스케줄/전표)
다운로드공통 BaseController.downloadCsv (UTF-8 BOM)
포맷금액 · 이자율 · 발행구분 · 사채상태 · 검증결과 · 이벤트 · 차대 포맷터

파일 구성

경로역할
index.htmlOpenUI5 부트스트랩 — sap_horizon · lodash · moment
Component.js디바이스 모델 초기화 · 라우터 기동
manifest.json앱 디스크립터 — 앱 ID(zui5.bond) · ko 로케일
view/Main.view.xml · view/fragments/*조회조건 · 결과 테이블 · 상세 다이얼로그 프래그먼트
controller/Main.controller.js집계·상각 검증 로직 · 조회 · 다운로드 · 상세 다이얼로그
model/ModelMain.js · ModelMainView.js업무데이터 모델 · 화면상태 모델
model/ModelMock.jslocaldata JSON 읽기(Promise 기반 OData 유사 인터페이스)
model/formatter.js금액 · 이자율 · 발행구분 · 상태 · 검증결과 포맷
i18n/i18n_ko.propertiesko 로케일 리소스
localdata/meta.json회사코드 · 기준년월 · 사채구분 · 담당부서 · 상태 헬프 데이터
localdata/bonds.json사채 마스터 10건(발행가액·발행차금 역산 포함)
localdata/schedules.json사채 396행 월별 상각 스케줄(유효이자율법 전개)
localdata/postings.json최근 구간 분개 592라인(차대일치 검증)

검증 결과

10건의 사채(할인발행 4건 · 할증발행 3건 · 액면발행 2건 · 이미 상환완료 1건)를 발행월부터 만기까지 월할로 전개해 396개 상각 스케줄 행과 592라인의 분개를 만들고, python·node 로 전수 검증했습니다.

검증 항목결과
매 회차 기초장부가액 + 상각액 = 기말장부가액통과
만기 회차의 기말장부가액 = 액면금액(반올림 오차는 마지막 회차에 흡수)통과
전체 상각액 합계 = 액면금액 − 발행가액(발행차금 총액)통과
전표 라인 차변 합계 = 대변 합계(사채 10건 × 최대 18개월, Belnr 단위)통과
잔여현금흐름(표시이자+만기액면) 현재가치 = 기말장부가액(허용오차 이내)통과 (669건 중 차이 0건)
유동성사채 + 비유동사채 = 사채장부가액(전 사채·전 기간)통과
조회조건 영역 오른쪽 끝 배치 · Enter 키 조회 실동작통과
적용 테마 sap_horizon 확인(부트스트랩 옵션 · 렌더링 화면)통과
화면 렌더링 — playwright 실브라우저 조회 → Enter 검색 → 상세 다이얼로그 실동작 후 캡처5/5

사채명·주관사·금액은 모두 검증용 데이터입니다.

자주 묻는 질문

유동성사채는 왜 원금 일부가 아니라 장부가 전액으로 재분류되나요?

리스나 대출과 달리 회사채는 대부분 만기 일시상환(불릿) 구조입니다. 매월 원금이 조금씩 줄지 않고 만기에 액면금액이 한 번에 상환되므로, 잔여기간이 1년 이하로 들어오면 그 시점의 장부가액 전액을 유동성사채로 재분류합니다. 이자지급으로 나가는 현금은 장부가액과 무관하게 별도 계정(미지급비용)에서 정산됩니다.

할증발행 사채는 왜 당월 상각액이 음수로 표시되나요?

할증발행은 발행가액이 액면금액보다 큰 경우입니다. 표시이자율이 유효이자율(시장이자율)보다 높아 매월 유효이자보다 표시이자가 더 크고, 그 차이만큼 장부가액이 액면금액 쪽으로 줄어듭니다. 상각액을 '유효이자 − 표시이자'로 정의했기 때문에 할증발행에서는 이 값이 음수로 나오고, 장부가액은 매월 감소해 만기에 정확히 액면금액에 도달합니다.

이자지급주기가 다른 사채(분기·반기·연 1회)를 같은 화면에서 봐도 되나요?

됩니다. 유효이자와 표시이자는 지급주기와 무관하게 매월 발생 기준으로 계산하고, 실제 현금이 나가는 이자지급월에만 그동안 쌓인 미지급이자를 정산합니다. 그래서 지급주기가 다른 사채도 같은 월별 스케줄 구조로 나란히 비교할 수 있습니다.

SAP Treasury and Risk Management(TRM)의 표준 상각 기능과는 어떻게 다른가요?

TRM은 사채(본드) 클래스 거래를 FTR_CREATE로 등록하고 TPM44/TBB1 같은 Position 관리 Run으로 상각·발생을 자동 계산·전기하는 표준 경로를 이미 제공합니다. 이 화면은 그 Run이 만든 결과(또는 Run 전 검증용 시뮬레이션)를 기준월 시점 스냅샷으로 모아, 사채 한 건 한 건의 장부가액·유동성 분류·잔여 현금흐름 현재가치 정합성을 결산 담당자가 빠르게 재확인할 수 있도록 조회·검증 관점을 더한 것입니다.

사채 상각, 지금 쓰는 SAP 위에서 검증해 보세요

발행 시점 엑셀 스케줄표에 의존하는 대신, 기준월마다 장부가액과 유동성 분류를 화면에서 바로 확인하고 검증할 수 있으면 결산 준비 시간이 줄어듭니다. 현재 SAP 환경 기준으로 어떻게 적용되는지 함께 확인해 드립니다.

사채할인발행차금할증발행차금유효이자율법VTBFHAOpenUI5