안녕하세요, 아는형입니다.
오늘은 받을어음 전기처리 로직을 수정하다가 F5008 오류를 만난 이야기를 해볼까 합니다. 회사 합병으로 신규 회사코드가 생기면서, 기존에 쓰던 프로그램을 이 회사코드에서도 같이 쓸 수 있게 손보던 중에 터진 케이스인데요. 원인을 찾아가는 과정이 꽤 재밌었어서(?) 기록으로 남겨둡니다.
신규 회사코드에서만 받을어음 전기가 막히다
기존 회사에 신규 회사를 합병하게 되면서 신규 회사코드가 만들어졌습니다. 기존에 쓰던 받을어음 프로그램을 그대로 가져다가 이 회사코드에서도 돌아가게 수정하는 작업이었고, 로직상으로는 다 맞게 고친 것 같았습니다. 그런데 막상 전기처리를 돌리니 이런 오류가 뜨더군요.
“F5008 – 계정유형 D 특별GL지시자 W 조정계정 11301010에 대한 특별 G/L 계정을 정의하지 않았습니다.”


순간 “이게 뭐지” 싶었습니다. 분명 기존 회사코드에서는 멀쩡히 돌아가던 로직인데, 신규 회사코드에서만 이런 에러가 나니까요.
혹시 이 에러 보신 분 계신가요? 신규 회사코드나 신규 고객을 세팅할 때 종종 마주치는 유형이라, 한번 정리해두면 나중에 또 써먹을 일이 있을 것 같습니다.
잠깐, 받을어음부터 짚고 가겠습니다
받을어음이 뭔가요
받을어음(Bills of Exchange Receivable)은 회사가 상품이나 서비스를 판매하고 돈을 바로 받는 대신, 고객으로부터 “정해진 날짜에 이 금액을 지급하겠습니다”라는 어음을 받아 보유하고 있는 것입니다.
예를 들어 (주)아는형이 고객 A사에 제품을 1,000만원에 판매했다고 해보겠습니다. 처음에는 A사에게 받을 돈 1,000만원, 즉 외상매출금이 잡혀 있는 상태죠.
그런데 A사가 이렇게 말합니다.
“지금 현금은 없고, 3개월 뒤인 12월 31일에 1,000만원을 지급하는 어음을 드리겠습니다.”
회사가 이 어음을 받으면 외상매출금 → 받을어음으로 채권의 성격이 바뀝니다. 아주 단순하게 보면 매출 → 외상매출금 → 받을어음 → 현금이라는 흐름인 셈입니다.
SAP에서도 받을어음은 일반 매출채권과 별도로 관리할 필요가 있기 때문에 Special G/L 거래로 관리합니다. SAP 공식 문서에서도 Bills of Exchange Receivable을 Special G/L 방식으로 관리한다고 설명하고 있고요.
외상매출금과 받을어음, 뭐가 다른가
둘 다 회사 입장에서는 자산입니다. 앞으로 받을 돈이니까요. 하지만 채권의 성격이 다릅니다.
| 구분 | 외상매출금 | 받을어음 |
|---|---|---|
| 의미 | 고객에게 받을 일반적인 판매대금 | 고객에게 받은 어음 |
| 현금 수령 | 아직 안 함 | 아직 안 함 |
| 지급 약속 | 일반적인 채권 | 어음이라는 별도의 지급증서 존재 |
| 만기 | 지급조건에 따라 관리 | 어음 자체에 만기일 존재 |
| 회계 분류 | 매출채권 | 받을어음 |
| SAP | 일반 Customer 미결항목 | Customer Special G/L |
| 특징 | 일반적인 채권 | 은행에 추심·할인 가능 |
여기서 가장 중요한 건 어음을 받았다고 현금을 받은 것이 아니라는 점입니다.
받을어음 ≠ 현금
다만 기존의 일반 외상매출금보다 지급일과 금액이 명확한, 별도의 지급수단을 받은 상태라고 이해하시면 됩니다.
자 그러면 F5008 메시지, 정확히 무슨 뜻일까
배경을 깔았으니 이제 에러 메시지를 찬찬히 뜯어보겠습니다. 읽어보면 이렇게 해석됩니다.
전기 키(Posting Key) 09를 써서 전표를 입력하는 상황인데, 09는 고객(계정유형 D) 대변, 그것도 특별G/L(Special G/L) 거래 전용 전기 키입니다. 여기에 특별G/L지시자(SGL Indicator) W가 붙어 있고, 이 전표가 걸린 고객의 조정계정(Reconciliation Account)이 11301010이라는 겁니다.
결국 메시지가 하고 싶은 말은 하나입니다. “조정계정 11301010 + 특별G/L지시자 W” 조합에 대해 실제로 전기될 대체 계정(특별G/L 계정)이 매핑되어 있지 않다는 것이죠.
왜 ‘대체’ 조정계정이라는 게 따로 필요한가
이 부분이 이해가 안 되면 에러 자체도 감이 잘 안 오실 텐데, 잠깐 짚고 넘어가겠습니다.
고객 마스터에 조정계정이 110000(외상매출금)으로 잡혀 있다고 해보죠. 일반 매출 전표를 발생시키면 이렇게 입력됩니다.
| 차/대 | 계정 | 금액 |
|---|---|---|
| Dr. | 고객 C1000 | 10,000,000 |
| Cr. | 매출 | 10,000,000 |
그리고 G/L에서는 고객계정에 걸린 조정계정 덕분에 자동으로 이렇게 대체되어 들어가죠.
| 차/대 | 계정 | 금액 |
|---|---|---|
| Dr. | 110000 외상매출금 | 10,000,000 |
| Cr. | 매출 | 10,000,000 |
그런데 고객이 “현금으로 나중에 갚을게”가 아니라 어음을 발행해서 지급했다면 얘기가 달라집니다. 회계적으로 더 이상 일반 외상매출금과 똑같이 취급할 수가 없거든요.
그래서 SAP은 받을어음을 Special G/L Transaction으로 따로 분리해서 관리합니다. 고객 마스터에 걸린 일반 조정계정을 그대로 쓰는 게 아니라, 받을어음 전용 대체 조정계정(Alternative Reconciliation Account)으로 자동 전기하는 방식이죠.
정리하면 이렇게 갈라지는 겁니다.
- 일반 매출채권 → 일반 고객 조정계정
- 받을어음 → 받을어음 대체 조정계정
그리고 이 “조정계정별로 어떤 대체 계정을 쓸지”를 정의해두는 게 바로 IMG의 대체조정계정 설정 화면입니다.
IMG 경로를 찾아 헤맨 시간
일단 어디를 봐야 하는지부터 고민을 했습니다. 특별G/L 거래의 대체조정계정을 다루는 설정이니, 가장 먼저 떠오른 건 이쪽이었습니다.
SPRO → SAP Reference IMG → 재무회계(Financial Accounting)
→ 채권 및 채무 회계(Accounts Receivable and Accounts Payable)
→ 비즈니스 트랜잭션(Business Transactions)
→ 선수금 수령(Down Payments Received)
→ 조정계정 정의(Define Reconciliation Accounts)
관련 트랜잭션 코드는 OBXR입니다. (SGL Indicator의 용도에 따라 정확한 T-code는 달라질 수 있습니다.)
그런데 이 화면을 들어가서 확인해보니 오잉, 특별 G/L 지시자 W 매핑이 없었습니다. 여기서 한 번 막혔지요. 다음과 같이 들어갔는데 W에 대한 정의는 보이지 않았습니다.

다시 곰곰이 생각해보니, 이건 일반적인 특별G/L 거래가 아니라 받을어음(Bill of Exchange Receivable)이라는 좀 더 구체적인 거래 유형이었습니다. 예전에 타 프로젝트에서 FBZP 세팅을 하면서 관련 설정을 찾아봤던 기억도 떠올랐고요. 그래서 방향을 바꿔 어음거래 쪽 IMG를 따로 파고들어갔고, 거기서 진짜 설정 화면을 찾았습니다.
재무회계 → 은행회계 → 비즈니스 트랜잭션 → 어음거래
→ 받을어음 → 받을어음 전기 → 받을어음에 대한 대체조정계정 정의
Financial Accounting → Bank Accounting → Business Transactions
→ Bill of Exchange Transactions → Bill of Exchange Receivable
→ Post Bill of Exchange Receivable
→ Define Alternative Reconciliation Accounts for Bills of Exchange Receivable
이 설정 화면을 열어보니 그제야 원인이 딱 보이더군요. 계정유형 D, 특별G/L지시자 W 조합에서 조정계정 11301020, 11302020에 대해서만 대체 계정 매핑이 되어 있었습니다.
유레카. 여기에 설정된 내역을 보니 해당 고객의 조정계정이 의심스러워 확인해보게 됐습니다. 즉 고객의 조정계정 정보에 11301020이나 11302020 값이 있어야만 전기처리 시 11301050으로 대체되어 전기가 가능하다는 설정이었던 거죠.
여기서 대체 계정인
11301050도 해당 회사코드에 확장이 되어 있어야 함은 덤입니다. 신규 회사코드 셋업 때 이거 빠뜨리면 또 다른 에러로 되돌아옵니다.
진짜 원인은 고객 마스터 조정계정 값이었다
그래서 FD02로 들어가 해당 고객의 마스터를 열어봤습니다. 여기서 원인이 확실해졌습니다. 조정계정 필드에 11301010이 들어가 있었던 겁니다.
IMG에는 11301020만 매핑되어 있는데 고객 마스터는 11301010을 물고 있었으니, 당연히 F5008이 날 수밖에 없었던 거죠.
여기서 선택지는 두 가지였습니다.
- IMG에
11301010에 대한 매핑을 새로 추가한다 - 고객 마스터의 조정계정 값을 이미 매핑되어 있는
11301020으로 맞춘다
이번 케이스는 신규로 셋업하는 고객이었고, 기존 매핑 체계를 유지하는 Concept이었기에 그대로 따라가는 게 맞다고 판단했습니다. 그래서 FD02에서 고객의 조정계정 값을 11301010에서 11301020으로 변경하는 쪽으로 처리했습니다.
그렇게 하고 나니 전기가 정상적으로 돌아갔습니다.
정리하며
F5008 에러는 메시지만 보면 뭔가 복잡한 설정 문제처럼 보이는데, 결국 따라가보면 “고객 마스터의 조정계정”과 “IMG에 매핑된 대체 조정계정”이 서로 안 맞아서 생기는 문제인 경우가 많습니다.
신규 회사코드나 신규 고객을 셋업할 때는 특히 조심하셔야 합니다. 기존에 잘 돌아가던 로직을 그대로 복붙했다고 안심하지 마시고, 이 두 군데를 꼭 같이 확인해보시길 권합니다.
전자어음 관련해서 결제조건이나 AP 프로세스 쪽 이슈는 전자어음 AP 및 지급전표 생성 원리를 이해하자에서 다룬 적이 있으니 참고하셔도 좋을 것 같습니다.
다음에는 또 다른 재미있는 내용으로 찾아뵙겠습니다.


