현금영수증 API 테스트, 이것만 확인하세요
등록부터 취소, 재처리까지 현금영수증 API의 필수 테스트 케이스와 검증 포인트를 알아봅니다.

현금영수증 연동, 제대로 테스트하고 계신가요?
"현금영수증 발행은 잘 되는데, 취소는 테스트 안 해봤어요."
QA 단계에서 자주 듣는 얘기예요. 현금영수증은 정상 발행만 테스트하고 넘어가기 쉬운데요, 실제 운영에서는 취소, 재처리, 오류 조회 같은 예외 상황이 더 많이 발생해요.
이번 글에서는 현금영수증 API의 필수 테스트 시나리오 17가지를 소개할게요. 실무에서 바로 활용할 수 있도록 요청값, 기대 결과, 검증 포인트까지 정리했어요.
1. 등록 테스트
등록 CASE 1: 일반 과세 발행
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| assort | 0 | 발행/취소 구분 (0: 발행) |
| taxTn | N | 과세 유형 (N: 일반과세) |
| amt | 9090 | 공급가액 |
| vat | 910 | 부가세 |
기대 결과: resultCd: 0000 - 정상 발행
등록 CASE 2: 면세 발행
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| taxYn | Y | 과세 유형 (Y: 면세) |
| amt | 10000 | 거래 금액 |
기대 결과: resultCd: 0000 - 면세 발행 성공
등록 CASE 3: 복합과세 발행
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| taxYn | G | 과세 유형 (G: 복합과세) |
| amt | 15000 | 공급가액 |
| vat | 500 | 부가세 |
기대 결과: resultCd: 0000 - 복합과세 성공
등록 CASE 4: 자동 과세 판정
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| taxYn | (공백) | 과세 유형 미입력 |
| amt | 10000 | 거래 금액 |
기대 결과: resultCd: 0000 - 자동과세 판정 성공
2. 등록 실패 검증
검증 CASE 1: 금액 올림 체크
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| amt | 올림된 값 | 소수점 포함된 금액 |
| vat | 올림된 값 | 소수점 포함된 부가세 |
기대 결과: resultCd: 1010 - 금액검증로직 확인
검증 CASE 2: 필수값 누락
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| transNo | (공백) | 거래번호 미입력 |
기대 결과: resultCd: 1112 - 필수값 제공
검증 CASE 3: 중복 등록 차단
전제 조건: 등록 CASE 1 성공 후
API: 현금영수증 등록
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| transNo | 등록 CASE 1과 동일 | 중복된 거래번호 |
기대 결과: resultCd: 1115 - 중복등록
3. 취소 테스트
취소 CASE 1: 전체 취소
전제 조건: 정상발행건 존재
API: 현금영수증 취소
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| assort | 1 | 발행/취소 구분 (1: 취소) |
| authNo | 원거래 authNo | 원거래 승인번호 |
| orgTrOt | 원거래 정보 | 원거래 일시 |
기대 결과: resultCd: 0000 - 전체취소 성공
취소 CASE 2: 부분 취소
전제 조건: 정상발행건 존재
API: 현금영수증 취소
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| assort | 1 | 발행/취소 구분 (1: 취소) |
| amt | 부분금액 | 원거래보다 작은 금액 |
기대 결과: resultCd: 0000 - 취소 확인 성공
취소 CASE 3: 취소 금액 초과
전제 조건: 부분취소 누적
API: 현금영수증 취소
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| amt | 초과 금액 | 원거래 금액보다 큰 금액 |
기대 결과: resultCd: 1116 - 취소금액 초과
4. 상태 조회
상태 조회 CASE 1: 정상 조회
API: 현금영수증 발급상태 조회
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| trDt | 20250312100000 | 발행 요청일시 (YYYYMMDDHHmmss) |
| assort | 0 | 발행/취소 구분 (0: 발행) |
기대 결과
resultCd:0001또는0021- 검증 포인트: 상태확인
상태 조회 CASE 2: 존재하지 않는 거래
API: 현금영수증 발급상태 조회
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| trDt | 임의값 | 존재하지 않는 일시 |
기대 결과: resultCd: 1113 - 거래내역 없음, trDt 검증실패 확인
5. 오류 조회
오류 조회 CASE 1: D+1 조회
전제 조건: D+1 13시 이후
API: 현금영수증 발급오류내역 조회
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| trDtGb | 1 | 조회 구분 (1: 거래일자) |
| trDt1 | 20250312 | 조회 시작일 (YYYYMMDD) |
기대 결과
resultCd:CSV또는2000- 검증 포인트: 오류목록 또는 없음
오류 조회 CASE 2: 시간 제약
전제 조건: D+ 이전 시간
API: 현금영수증 발급오류내역 조회
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| trDt1 | D+ 이전 날짜 | 조회 불가 시간대 |
기대 결과: resultCd: 2001 - 결과없음
6. 재처리
재처리 CASE 1: 정상 재처리
전제 조건: 오류건 존재
API: 현금영수증 재처리
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| reYn | Y | 재처리 여부 |
| reTrDt | 원거래 일시 | 원거래 발행일시 |
| reAuthNo | 원거래 authNo | 원거래 승인번호 |
기대 결과: resultCd: 0000 - 재처리 성공
재처리 CASE 2: 원거래 없음
API: 현금영수증 재처리
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| reYn | Y | 재처리 여부 |
| reAuthNo | 잘못된 authNo | 존재하지 않는 승인번호 |
기대 결과: resultCd: 1118 - 원거래없음
재처리 CASE 3: 결과 조회
전제 조건: 재처리요청 완료
API: 현금영수증 재처리 결과조회
핵심 파라미터:
| 파라미터 | 값 | 설명 |
|---|---|---|
| searGb | 1 | 조회 구분 |
기대 결과: resultCd: CSV - 결과조회, 00/09/99 확인
7. 테스트 체크리스트
필수 테스트 (Must Have)
- 등록 CASE 1: 일반 과세 발행
- 등록 CASE 2: 면세 발행
- 등록 CASE 3: 복합과세 발행
- 취소 CASE 1: 전체 취소
- 검증 CASE 3: 중복 등록 차단
- 상태 조회 CASE 1: 정상 조회
권장 테스트 (Should Have)
- 등록 CASE 4: 자동 과세 판정
- 검증 CASE 1: 금액 올림 체크
- 검증 CASE 2: 필수값 누락
- 취소 CASE 2: 부분 취소
- 취소 CASE 3: 취소 금액 초과
- 오류 조회 CASE 1: D+1 조회
- 재처리 CASE 1: 정상 재처리
선택 테스트 (Nice to Have)
- 상태 조회 CASE 2: 존재하지 않는 거래
- 오류 조회 CASE 2: 시간 제약
- 재처리 CASE 2: 원거래 없음
- 재처리 CASE 3: 결과 조회
마치며
현금영수증 API는 정상 케이스보다 예외 케이스가 더 많아요. 운영 중에는 취소, 재처리, 오류 조회가 빈번하게 발생하기 때문에 이런 시나리오를 미리 테스트하는 게 중요해요.
이번 글에서 소개한 17가지 테스트 케이스를 체크리스트로 활용하면, 안정적인 현금영수증 연동을 구현할 수 있어요.
