전화는 새벽 2시에 울렸다. 창고 IT 책임자였고 목소리는 쉬어 있었다. "ASN은 보냈어. 리테일러 시스템은 받지 못했다고 해. 트럭은 벌써 DC 게이트에 있고, 우리 예약 시간은 여섯 시간 후에 닫혀."
나는 그런 밤을 여러 번 겪었다. 미국의 대형 리테일러에 납품한다면 EDI 연동은 우회할 수 없는 통행료 부스다. 구매 주문은 850으로 들어오고, 사전 출하 통지(ASN)는 856으로 돌아가고, 인보이스는 810으로 뒤따른다. 이 세 문서 중 어느 하나라도 막히면 화물은 들어가지 못하고 돈은 돌아오지 않는다. 이십 년 전 누군가가 내게 건네주었으면 했던 실전 가이드다.
세 문서가 실제로 말하는 것
미국 리테일 EDI는 ASC X12 표준으로 돌아가고, 대부분의 대형 리테일러는 여전히 버전 4010이나 5010에 있다. 알파벳 수프는 잠시 잊자. 머리에 넣어야 할 숫자는 딱 네 개다. 850은 구매 주문, 856은 사전 출하 통지(모두 그냥 ASN이라 부른다), 810은 인보이스, 그리고 997은 기능적 수신 확인, 즉 상대방이 돌려보내는 "받았다" 영수증이다.
850은 리테일러에서 당신에게 온다. 무게를 짊어지는 세그먼트는 세 개다. BIG은 PO 번호와 날짜를 담고, N1은 출하지와 청구지를 식별하고, PO1은 품목 행, 수량, 단가를 담는다. 하나 조심할 것. 대부분의 리테일러는 850에 당신 SKU가 아니라 자사 품번을 넣는다. 출하 전에 반드시 상호 참조 테이블을 만들어라. 캘리포니아 온타리오의 한 3PL이 두 개 품목 행이 매핑되지 않아 DC 게이트에서 하루 종일 발이 묶인 것을 본 적이 있다.
856은 당신이 그들에게 보내는 것이고, 사람들을 태우는 문서다. 구조는 트리다. HL 세그먼트가 Shipment에서 Order, Pack(카톤 또는 팔레트), Item으로 단계적으로 내려간다. BSN은 ASN 번호를, MAN은 SSCC 팔레트 코드를 담는다. SSCC-18은 GS1 표준으로 팔레트당 하나의 코드이며 UCC-128 라벨에 인쇄된다. DC가 입고 시 그 라벨을 스캔하면 시스템이 ASN을 실물 화물과 자동으로 매칭한다. 라벨이 스캔되지 않거나, ASN의 팔레트 수가 트레일러 실물과 다르면? 최선은 적재 거부, 최악은 리테일러 라우팅 가이드에 따른 차지백이다. 해당 숫자는 자주 바뀌니 현재 정책은 리테일러 자체 사이트에서 확인하라.
810은 인보이스다. IT1은 품목 행을, TDS는 총액을 담는다. 세 방향으로 맞아야 한다. 850 단가와 실제 출하 수량에 대해서다. 맞지 않으면 상대 시스템이 인보이스를 걷어차고, 재무팀은 고고학을 하게 된다.
997을 건너뛰지 마라. 문서를 보낼 때마다 상대방은 도착했다는 997을 돌려준다. 997이 없다는 것은 받지 못했다는 뜻이다. 다음 문서를 보내지 말고 먼저 파이프를 확인하라.

실제로 동작하는 연동 순서
내가 고집하는 순서는 이렇다. 먼저 테스트 환경에서 세 문서를 돌려라. 850을 받고, 856을 돌려보내고, 810을 발행하고, 각각에 대해 997이 돌아오는 것을 확인하라. 그 다음 리테일러의 전체 테스트 스크립트를 돌려라. 보통 표준 시나리오 세트를 건넨다. 정상 주문, 주문 변경, 분할 출하, 부분 출하. 부분 출하 케이스를 건너뛰지 마라. 실생활에서 가장 흔한 시나리오이자 깨진 HL 계층을 드러낼 가능성이 가장 높은 경우다.
그 다음 필요하기 전에 문제 해결 지휘 체계를 만들어라. 뭔가 깨졌다? 이 순서로 확인하라. 먼저, 997이 돌아왔는가? 안 돌아왔다면 전송 문제다. VAN이나 직접 연결을 보라. 돌아왔는데 업무 검증이 실패했다면? 그들이 보낸 오류 문서를 읽고, 가리키는 세그먼트와 엘리먼트를 찾아라. 열 번 중 아홉 번은 ISA/GS 봉투의 송신자/수신자 ID 오류이거나, 그들이 지원하지 않는 X12 버전을 썼기 때문이다. 검증은 통과했는데 DC가 화물 불일치를 주장한다면, 856의 HL 트리와 SSCC로 돌아가 레벨별로 내려가라.
첫 실 출하에 대한 조언 하나. 작은 것을 골라 처음부터 끝까지 지켜봐라. 세 개의 타임스탬프를 기록하라. ASN이 나간 시각, 트럭의 예약 시각, DC가 서명한 시각. 내가 본 첫 출하 재앙의 대부분은 타이밍 문제로 귀결됐다. ASN보다 트럭이 먼저 도착했고, 리테일러 시스템에 그 적재에 대한 기록이 없었다. 게이트에 섰다.
비싼 세 가지 실수
실수 하나. ASN이 실물 화물과 맞지 않는다. 적재 팀이 카톤을 하나 더 넣거나 팔레트를 하나 빼고 "대충 맞겠지"라고 생각했다. 시스템은 "대충"을 모른다. DC는 ASN 기준으로 입고하고, 불일치는 패널티 조항을 발동시킨다. 해결책은 민망할 정도로 로테크다. 트레일러 문이 닫히기 전에 ASN 수량을 적재 명세와 한 줄씩 대조하고 서명 두 개를 받아라. 로테크. 먹힌다.
실수 둘. 810 금액이 맞지 않는다. 보통 850 단가에 숨어 있는 프로모 가격이나, 무상 행이 정가로 청구된 경우다. 볼륨이 있으면 인보이스가 거부될 때까지 재무는 모른다. 릴리스 전에 시스템에 삼자 매칭을 시켜라. 850 가격, 실제 출하 수량, 810 행 금액. 세 개가 모두 맞아야 인보이스가 나간다.
실수 셋. EDI를 "IT 쪽 일"로 취급하는 것. 연동 내내 빠져 있던 운영 매니저들이, 깨졌을 때 건물 안에 856의 HL 계층을 이해하는 사람이 아무도 없다는 것을 뒤늦게 깨닫는 것을 본 적이 있다. 연동 전체 기간 동안 비즈니스를 아는 사람을 최소 한 명은 방 안에 두어라. 그 문서들의 모든 필드는 결국 창고 안의 물리적 작업에 매핑되기 때문이다.
고라이브 체크리스트
- 850 품번 상호 참조 테이블 완성, 누락 행 없음
- 856 HL 계층이 실제 포장 구조와 일치(Shipment → Order → Pack → Item)
- 팔레트당 SSCC-18 하나, UCC-128 라벨이 도크에서 깨끗이 스캔됨
- 트럭 예약 시간 전에 ASN 전송, 리테일러 시스템에서 확인 가능
- 보낸 모든 문서에 대해 997 수신 확인
- 810 행 단가가 850과 일치, TDS 합계가 실제 출하 수량과 일치
- 테스트 환경에서 분할 출하 및 부분 출하 시나리오 테스트 완료
- X12 버전(4010/5010)이 리테일러 요구사항과 일치
- ISA/GS 봉투 송신자/수신자 ID가 테스트에서 인증된 것과 일치
- 첫 실 출하는 작은 것으로, 세 개의 타임스탬프 모두 기록
영어판 번역본입니다. 내용이 다를 경우 영어판을 우선합니다.







