KYB testing은 계정을 만드는 사람이 아니라 그 뒤에 있는 기업 주체를 확인하는 절차를 시험하는 일입니다. 개인 확인보다 단계가 많고, 서류가 여러 겹으로 얽히며, 반려가 정상 흐름의 일부로 들어옵니다. 이 글은 무엇을 확인해야 하는지, 어디에서 시험이 새는지, 그리고 시험용 자료를 어떻게 다뤄야 하는지를 체크리스트 형태로 정리합니다.
KYB는 무엇을 확인하나요?
기업 실사는 크게 다섯 갈래를 봅니다. 그 주체가 실제로 등록되어 있는지, 세무 목적의 번호가 있는지, 어디에 자리하고 있는지, 누가 실질적으로 통제하는지, 그리고 어떤 사업을 할 자격이 있는지입니다.
이 다섯 갈래가 서로 맞물린다는 점이 개인 확인과 다릅니다. 주소 증명이 등록 주소와 어긋나면 다른 서류도 함께 다시 보게 됩니다. 통제자 정보가 등록 서류의 임원과 다르면 추가 설명을 요구하게 됩니다. 그래서 심사는 한 항목씩 통과하는 목록이 아니라, 서로를 검증하는 그물에 가깝습니다.
시험 관점에서 중요한 결론은 하나입니다. 각 항목을 따로 시험하면 실제 심사 경로를 절반만 덮습니다. 항목 사이의 불일치를 만들어 보는 시나리오가 반드시 필요합니다.
개인 확인과 무엇이 다른가요?
개인 확인은 대상이 한 사람이고, 그 사람이 제출한 신분 자료와 본인이 일치하는지를 봅니다. 기업 실사는 대상이 하나의 조직인데, 그 조직을 대표하는 사람과 그 조직을 소유한 사람이 따로 있습니다.
그래서 같은 요청 안에 서로 다른 사람이 여러 명 등장합니다. 대표자, 서명 권한자, 지분을 가진 사람, 필요하면 그 지분을 다시 소유한 상위 주체까지 이어집니다. 이 사슬이 길어질수록 서류 요구도 길어지고, 중간에 한 단계가 비면 심사가 멈춥니다.
또 하나의 차이는 서류의 출처입니다. 개인 자료는 본인이 발급받아 제출하는 경우가 많지만, 기업 자료는 제3의 기관이 발급합니다. 발급 기관의 확인 창구가 언제 응답하느냐에 따라 처리 시간이 흔들리고, 시험에서는 이 지연을 반드시 흉내 내야 합니다.
시험할 때 필요한 서류 항목은 무엇인가요?
- 등록 사실을 보여 주는 증명. 등록 기관이 발급한 서류이며, 발급 시점이 오래되면 다시 요구될 수 있습니다.
- 세무 목적의 번호. 나라에 따라 이름과 체계가 다르고, 부가가치세 번호처럼 별도 번호를 쓰는 곳도 있습니다.
- 등록 주소를 보여 주는 자료. 실제 사무실 주소와 등록 주소가 다를 수 있으므로 두 값을 구분해 다룹니다.
- 실질적 통제자 정보. 조직을 최종적으로 지배하는 사람이나 주체를 밝히는 항목입니다.
- 사업 자격을 보여 주는 자료. 업종에 따라 별도 허가가 필요한 경우가 있습니다.
시험 설계에서는 각 항목에 대해 최소 세 가지 상태를 만듭니다. 제출됨, 누락됨, 그리고 제출되었지만 요구와 어긋남입니다. 세 번째 상태를 빼먹으면 반려 경로가 시험되지 않습니다.
심사 상태는 어떻게 흘러가나요?
| 상태 | 뜻 | 다음 행동 |
|---|---|---|
| 미제출 | 자료를 받지 못함 | 안내 문구 노출 |
| 심사 중 | 담당자 또는 자동 절차가 확인 중 | 대기 표시, 재제출 잠금 |
| 보완 요청 | 일부 항목이 부족하거나 어긋남 | 해당 항목만 다시 받음 |
| 승인 | 확인이 끝남 | 권한 부여, 결과 기록 |
| 반려 | 확인을 마칠 수 없음 | 사유 표시, 재신청 경로 |
상태가 다섯 갈래라는 사실 자체가 시험 항목입니다. “심사 중”에서 “보완 요청”으로 돌아가는 경로, “보완 요청”에서 다시 “심사 중”으로 가는 경로, 그리고 반려 뒤 재신청이 새 건으로 시작되는지 이어지는지를 각각 확인해야 합니다.
특히 위험한 것은 재제출 잠금입니다. 심사 중에 사용자가 같은 서류를 다시 올리면 사본이 쌓이고, 담당자가 어느 것을 봐야 하는지 알 수 없게 됩니다. 시험에서 같은 자료를 두 번 올려 이 상태를 확인해 두세요.
반려와 재제출은 어떻게 다뤄야 하나요?
반려는 실패가 아니라 정상적인 분기입니다. 그래서 반려 화면에서 사용자가 다음에 무엇을 해야 하는지 알 수 있어야 합니다. “서류가 부족합니다”만 보여 주면 사용자는 같은 서류를 다시 올리고, 같은 결과를 받습니다.
사유는 항목 단위로 나눠야 합니다. 주소 불일치, 통제자 정보 누락, 등록 증명 만료처럼 서로 다른 원인을 서로 다른 문구로 알려 주고, 각 원인에 어떤 자료가 필요한지 함께 적어 줍니다.
재제출이 가능한 반려와 불가능한 반려도 구분해야 합니다. 요건을 채우면 다시 진행할 수 있는 경우와, 같은 주체로는 다시 신청할 수 없는 경우가 있습니다. 이 구분이 코드에 없으면 사용자는 영원히 재제출을 시도합니다.
기업 식별자처럼 외부에서 조회하는 항목은 조회 실패와 실제 불일치를 반드시 나눠 표시하세요. 조회 창구가 답하지 않은 것을 “기업이 존재하지 않음”으로 보여 주면, 정상 기업이 반려됩니다.
시험용 자료에도 경계가 있습니다. 가상 회사 데이터는 시험, 화면 시연, 샌드박스 연동, 서류 흐름 연습을 위해 존재합니다. 실제 계좌 개설이나 자격 취득을 받아 내기 위해, 다른 기업의 이름을 빌려 쓰기 위해, 또는 심사를 피해 가기 위해 쓰면 안 됩니다. 시험 환경에서 쓴 자료가 실제 심사 창구로 전달되는 일은 어떤 경우에도 없어야 합니다.
시험 자료에는 세 가지가 함께 있어야 합니다. 이름만 봐도 예시임이 드러나는 표기, 실제로 존재하지 않는 주소, 그리고 문서용으로 남겨 둔 예시 도메인입니다. 이 세 가지가 갖춰지면 사고의 대부분이 막힙니다.
이 사이트의 도구에서는 어떻게 준비하나요?
테스트용 회사 정보 생성기에서 기업 한 건을 만들면 회사명, 업종, 규모, 법인 형태, 등기 주소, 등록번호와 부가가치세 번호가 한 세트로 나옵니다. 같은 입력에서 같은 결과가 나오므로, 심사 시나리오를 반복 실행하거나 담당자에게 재현 절차를 넘길 때 편합니다. 영국 국가 페이지처럼 나라별 주소 형식을 확인한 뒤, 그 형식에 맞는 시험 입력을 만들어 쓰면 화면이 실제와 가까워집니다.
개발자를 위한 메모: 상태 기계와 격리
- 상태를 명시적인 값으로 관리합니다. 미제출, 심사 중, 보완 요청, 승인, 반려를 문자열로 흩어 두면 전이 규칙이 코드 곳곳에 흩어집니다.
- 허용된 전이만 통과시킵니다. 승인에서 심사 중으로 되돌아가는 경로는 재심사라는 별도 사건이지, 아무 코드나 호출할 수 있는 전이가 아닙니다.
- 모든 전이에 사유와 시각을 남깁니다. 나중에 “왜 반려되었는가”를 설명할 수 있어야 합니다.
- 반려 사유를 열거형으로 두고 사용자 문구와 분리합니다. 같은 코드에 여러 문구를 붙일 수 있어야 번역과 문구 개선이 쉬워집니다.
- 자료의 만료 시점을 데이터로 다룹니다. 만료를 코드에 고정하면 제도가 바뀔 때 배포가 필요합니다.
- 시험 환경에서 위험 통제를 끄지 않습니다. 통제를 우회하는 대신 시험용 판정 값을 주입하는 경로를 따로 만듭니다.
- 시험 자료와 실제 자료를 저장 단계에서 분리합니다. 한 저장소에 섞이면 나중에 어느 것이 시험용인지 구분할 수 없습니다.
- 시험 자료에는 생성 시각과 용도를 함께 기록합니다. 언제 만든 자료인지 모르면 회수 대상에서 빠집니다.
다음 단계
지금 심사 흐름에서 위의 다섯 상태가 모두 실제로 도달 가능한지 확인하고, 도달하지 못하는 상태가 있다면 그것이 설계상 없는 것인지 시험하지 않은 것인지 구분해 보세요. 그다음 같은 요청을 두 번 보내고, 반려 뒤 재제출을 실행해 보면 상태 기계의 구멍이 드러납니다.
이 안내는 기업 실사 흐름을 시험하고 설계하는 일을 돕기 위한 것이며, 법률이나 규제 준수에 관한 자문이 아닙니다. 실제 심사 기준은 각 심사 기관과 해당 법역의 규정이 정합니다.