택배사마다 고유한 운송장 번호 형식을 사용합니다. 이 형식을 이해하면 택배사 자동 식별, 입력값 검증, 추적 문제 디버깅에 큰 도움이 됩니다. 이 가이드에서는 전 세계 주요 택배사의 운송장 번호 형식을 정리해 드리겠습니다.

운송장 번호 형식이 중요한 이유

고객이 운송장 번호를 입력했을 때, 애플리케이션은 다음 세 가지를 처리해야 합니다.

  1. 유효성 검사 — 올바른 운송장 번호인지, 오타가 아닌지 확인
  2. 택배사 식별 — 어떤 택배사에 조회 요청을 보낼지 판단
  3. 올바른 라우팅 — 국제 운송장의 경우 여러 택배사에 조회가 필요할 수 있음

이 모든 과정의 출발점이 바로 운송장 번호 형식입니다.

국제 표준: UPU S10 형식

만국우편연합(UPU)이 정의한 S10 표준은 국제 우편 추적에 사용되는 범용 형식입니다.

형식: AALNNNNNNNNLAA
      ││         │││
      ││         ││└─ 국가 코드 (영문 2자리)
      ││         │└── 검증 숫자 (숫자 1자리)
      ││         └─── 일련번호 (숫자 8자리)
      │└───────────── 서비스 구분 (영문 1자리)
      └────────────── 서비스 유형 (영문 1자리)

예시:

  • EA123456789KR — 한국 우체국 EMS
  • RR987654321JP — 일본우편 등기우편
  • CP111222333US — USPS 국제 소포

서비스 유형별 접두사:

접두사서비스
EA-EZEMS (국제특급우편)
RA-RZ등기우편
CA-CZ소포
LA-LZ통상우편

S10 형식은 전 세계 우정사업본부가 공통으로 사용하므로, 이 형식을 이해해 두면 대부분의 국제 우편을 추적할 수 있습니다.

한국 택배사

CJ대한통운

  • 형식: 숫자 10~12자리
  • 정규식: ^\\d{10,12}$
  • 예시: 1234567890, 123456789012

롯데택배

  • 형식: 숫자 12자리
  • 정규식: ^\\d{12}$
  • 예시: 123456789012

한진택배

  • 형식: 숫자 10자리 또는 12자리
  • 정규식: ^\\d{10}$|^\\d{12}$
  • 예시: 1234567890

우체국택배

  • 형식: 국내 13자리(숫자) 또는 국제 S10 형식
  • 정규식: ^\\d{13}$ 또는 S10 패턴
  • 예시: 1234567890123, EA123456789KR

한국 택배사의 경우 대부분 10~13자리 숫자로 구성되어 있어 자릿수만으로 어느 정도 구분이 가능합니다. 다만 CJ대한통운과 한진택배처럼 자릿수가 겹치는 경우가 있어, 정확한 식별에는 추가 로직이 필요합니다.

일본 택배사

야마토 운수 (ヤマト運輸)

  • 형식: 숫자 12자리, 특정 접두사로 시작
  • 정규식: ^\\d{12}$
  • 예시: 123456789012

사가와 익스프레스 (佐川急便)

  • 형식: 숫자 12자리
  • 정규식: ^\\d{12}$
  • 예시: 123456789012

일본우편 (日本郵便)

  • 형식: 국제는 S10 형식, 국내는 숫자 11~13자리
  • 예시: RR123456789JP, 12345678901

일본 택배사는 야마토와 사가와 모두 12자리 숫자를 사용하므로 번호만으로 구분하기 어렵습니다. 접두사 패턴이나 체크섬을 활용한 추가 검증이 필요합니다.

미국 택배사

USPS

  • 서비스별 형식이 다양합니다:
    • Priority Mail: 숫자 22자리 (9400...으로 시작)
    • Express Mail: 13자리 (S10 형식)
    • Tracking: 숫자 20~22자리

FedEx

  • 형식: 숫자 12자리, 15자리 또는 20자리
  • 정규식: ^\\d{12}$|^\\d{15}$|^\\d{20}$
  • 예시: 123456789012

UPS

  • 형식: 1Z로 시작하는 18자리(영문+숫자 조합)
  • 정규식: ^1Z[A-Z0-9]{16}$
  • 예시: 1Z12345E0205271688

UPS는 1Z 접두사 덕분에 식별이 매우 쉽습니다. 반면 USPS와 FedEx는 자릿수가 겹치는 경우가 있어 추가 검증이 필요합니다.

유럽 택배사

DHL

  • 형식: 숫자 10자리 또는 20자리, 특정 접두사로 시작하기도 함
  • 정규식: ^\\d{10}$|^\\d{20}$|^[A-Z]{3}\\d{7}$
  • 예시: 1234567890, JJD01234567890

Royal Mail (영국)

  • 형식: GB 국가 코드를 사용하는 S10 형식
  • 예시: RR123456789GB

WhereParcel 자동 감지 기능

위에서 살펴본 것처럼 택배사별 운송장 형식은 매우 다양하고, 직접 모든 패턴을 구현하려면 상당한 노력이 필요합니다. WhereParcel의 자동 감지 기능을 사용하면 이 과정을 간단하게 처리할 수 있습니다.

curl -X POST https://api.whereparcel.com/v2/track \
  -H "Authorization: Bearer YOUR_API_KEY:YOUR_SECRET_KEY" \
  -d '{"trackingItems": [{"carrier": "auto", "trackingNumber": "1Z12345E0205271688"}]}'

API가 운송장 번호 패턴을 분석하여 택배사를 자동으로 식별하고 결과를 반환합니다.

{
  "success": true,
  "data": {
    "carrier": "us.ups",
    "carrierName": "UPS",
    "trackingNumber": "1Z12345E0205271688",
    "status": "delivered"
  }
}

유효성 검사 팁

운송장 번호를 처리할 때 다음 사항을 미리 적용하면 인식률을 크게 높일 수 있습니다.

  1. 공백과 하이픈 제거 — 고객이 운송장 번호를 복사할 때 불필요한 공백이나 서식이 포함되는 경우가 많습니다
  2. 대문자 통일 — S10 형식의 영문 부분은 대문자로 정규화해야 합니다
  3. 자릿수 우선 확인 — 정규식 매칭 전에 길이를 먼저 검사하면 불필요한 연산을 줄일 수 있습니다
  4. 체크섬 검증 활용 — S10 형식에는 검증 숫자(Check Digit)가 포함되어 있어, 수학적으로 유효성을 확인할 수 있습니다
function cleanTrackingNumber(input) {
  return input
    .replace(/[\s\-\.]/g, '')  // 공백, 하이픈, 마침표 제거
    .toUpperCase()              // 대문자 변환
    .trim();
}

마무리

운송장 번호 형식을 이해하면 더 나은 배송 추적 경험을 만들 수 있습니다. 하지만 수백 개 택배사의 형식을 직접 관리하는 것은 현실적으로 어렵습니다. WhereParcel의 자동 감지 기능은 500개 이상의 택배사 형식을 지원하며 지속적으로 업데이트되고 있습니다.

한국 택배사에 대한 자세한 내용은 한국 택배사 연동 가이드를 참고하세요. 지원하는 택배사 전체 목록과 형식 정보는 택배사 페이지에서 확인하실 수 있습니다.