Cargo Insight Webhook은 관련 화물 추적 정보가 업데이트될 때마다 최신 데이터를 고객사가 설정한 Endpoint로 자동 전송합니다. 이를 통해 Cargo Insight API를 반복적으로 호출하지 않고도 내부 시스템에 최신 화물 데이터를 동기화하고, 후속 업무 프로세스를 자동화할 수 있습니다.
Webhook 요청의 인증 방식은 고객사의 연동 요구사항에 따라 Basic Authentication 또는 HMAC-SHA256을 사용할 수 있습니다.
Webhook 기능은 별도 요청을 통해 이용할 수 있습니다. Webhook 이용 신청 및 연동 절차에 대한 문의는 sales@seavantage.com으로 연락해 주시기 바랍니다.
Webhook 연동 Flow
Cargo Insight의 화물 추적 정보가 업데이트되면, SeaVantage는 고객사가 등록한 Endpoint로 업데이트된 데이터를 HTTP POST 요청을 통해 전송합니다.
Endpoint 요구사항
수신 Endpoint는 다음 요구사항을 충족해야 합니다.
1.
HTTPS POST 요청을 수신할 수 있어야 합니다.
2.
설정된 인증 방식에 따라 Basic Authentication 또는 HMAC-SHA256을 사용하여 요청을 인증해야 합니다.
3.
Request Body에 포함된 JSON Payload를 처리해야 합니다.
4.
Seavantage-Event-Id를 확인하여 동일한 Webhook 이벤트가 중복 처리되지 않도록 해야 합니다.
5.
Webhook 요청이 정상적으로 처리된 경우 HTTP 2xx Status Code를 반환해야 합니다.
Webhook 연동 설정
1. 인증 방식 선택
Webhook 요청을 수신하는 시스템에서 SeaVantage가 전송한 요청임을 확인할 수 있도록 인증 설정이 필요합니다. Webhook 연동 설정을 진행하기 전에 SeaVantage와 고객사는 다음 인증 방식 중 하나를 선택합니다.
Option A: Basic Authentication | Option B: HMAC-SHA256 |
SeaVantage는 고객사가 제공한 Username과 Password를 사용하여 각 요청에 대한 표준 HTTP Authorization Header를 생성합니다. 고객사의 수신 시스템은 Webhook 요청을 수신하고 처리하기 전에 해당 인증 정보를 검증합니다. | SeaVantage는 HMAC-SHA256과 공유 Secret을 사용하여 각 웹훅 요청에 서명합니다. 고객사 시스템은 동일한 서명을 계산한 후 Seavantage-Signature 헤더와 비교하여 요청과 서명된 데이터의 무결성을 검증합니다. |
2. 연동 설정 요구사항
Webhook 연동 설정을 위해 SeaVantage는 고객사의 수신 시스템 정보 및 선택한 인증 방식에 대한 정보를 필요로 합니다. 설정에 필요한 모든 연동 정보는 sales@seavantage.com으로 전달해 주시기 바랍니다.
2.1 필수 정보
Webhook 설정을 위해 다음 정보를 제공해 주시기 바랍니다.
항목 | 설명 |
회사명 | Webhook을 수신하는 회사명 |
기술 담당자 | Webhook 연동을 담당하는 담당자의 이름 및 이메일 주소 |
Endpoint URL | Webhook 요청을 수신할 수 있도록 외부에서 접근 가능한 HTTPS URL
참고사항: Endpoint는 HTTP POST 요청을 지원해야 합니다. |
인증 방식 | 다음 중 사용할 인증 방식을 선택합니다.
1. Basic Authentication
2. HMAC-SHA256 |
2.2 Basic Authentication 설정 정보
인증 방식으로 Basic Authentication을 선택한 경우, 고객사는 SeaVantage가 Webhook Endpoint로 요청을 전송할 때 사용할 인증 정보를 생성하고 안전한 방식으로 제공해야 합니다. 다음 정보를 제공해 주시기 바랍니다.
항목 | 설명 |
인증 정보 전달 방식 | SeaVantage에 인증 정보를 안전하게 전달하기 위한 승인된 보안 채널 |
Username | 고객사가 SeaVantage의 Webhook 요청 인증을 위해 생성한 Username |
Password | 해당 Username에 설정된 Password |
2.3 HMAC-SHA256 설정 정보
인증 방식으로 HMAC-SHA256을 선택한 경우, SeaVantage는 Webhook Signature 생성 및 검증에 사용되는 Shared Secret을 생성합니다. 고객사는 Shared Secret을 수신할 담당자와 안전한 전달 방식을 지정해야 합니다. 다음 정보를 제공해 주시기 바랍니다.
항목 | 설명 |
인증 정보 전달 방식 | SeaVantage가 Shared Secret을 안전하게 전달하기 위해 사용할 보안 채널 |
수신 담당자 | Shared Secret 수신 권한이 있는 담당자의 이름 및 이메일 주소
참고사항: 별도 협의가 없는 경우, Shared Secret는 SeaVantage가 생성하여 협의된 보안 전달 방식을 통해 수신 담당자에게 직접 전달합니다. |
2.4 선택 정보
다음 정보는 선택 사항이며, 고객사의 Endpoint 또는 Webhook 전송에 별도 설정이 필요한 경우에만 제공해 주시기 바랍니다.
항목 | 설명 |
엔드포인트 호출 수 제한 | 고객사의 Endpoint에서 분당 또는 시간당 수신할 수 있는 최대 요청 수 |
재시도 횟수 | Webhook 전송 실패 시 재시도 횟수
참고: 별도의 Retry 설정이 없는 경우, SeaVantage의 기본 설정인 3회가 적용됩니다. |
재시도 간격 | 각 재시도 사이의 시간 간격
참고: 별도의 Retry 설정이 없는 경우, SeaVantage의 기본 설정인 10분이 적용됩니다. |
Custom Headers | SeaVantage가 고객사의 Endpoint로 Webhook 요청을 전송할 때 포함해야 하는 추가 HTTP Header |
3. 네트워크 접근 설정
Webhook 연동 설정 과정에서 SeaVantage는 Webhook 요청 전송에 사용되는 Outbound IP Address를 제공합니다.
SeaVantage에서 전송하는 Webhook 요청을 정상적으로 수신할 수 있도록 해당 IP Address를 고객사 수신 시스템의 Allowlist에 추가해 주시기 바랍니다.
Webhook Request
1. 요청 사양
모든 Webhook 요청은 다음 사양에 따라 전송됩니다.
항목 | 값 |
HTTP Method | POST |
Payload Format | JSON |
Transport Security | HTTPS |
Event ID Format | UUID |
2. Request Headers
Webhook 요청에 포함되는 Header는 설정된 인증 방식에 따라 달라질 수 있습니다. 다음 Header가 Webhook 요청에 포함될 수 있습니다.
항목 | 값 |
Content-Type | application/json |
Accept | application/json |
User-Agent | seavantage-webhook/1.0 |
Webhook-Source | 항상 SeaVantage로 설정 |
Seavantage-Event-Id | Webhook 이벤트의 고유 UUID 식별자로, 중복 처리를 방지하는 데 사용 |
Seavantage-Timestamp | HMAC-SHA256 인증 사용 시 포함 |
Seavantage-Signature | HMAC-SHA256 인증 사용 시 생성된 HMAC Signature 포함 |
Authorization | Basic Authentication 사용 시 포함 |
3. Request Header 예시
3.1 Basic Authentication
Basic Authentication이 설정된 경우, SeaVantage는 각 Webhook 요청에 Authorization Header를 포함하여 전송합니다.
POST /webhooks/cargo?version=1 HTTP/1.1
Host: customer.example.com
Content-Type: application/json
Accept: application/json
User-Agent: seavantage-webhook/1.0
Authorization: Basic base64(username:password)
Webhook-Source: SeaVantage
Seavantage-Event-Id: <event-uuid>
{
"documentId": "...",
"containerNo": "..."
}
JSON
복사
3.2 HMAC-SHA256
HMAC-SHA256이 설정된 경우, SeaVantage는 Shared Secret을 사용하여 각 Webhook 요청에 대한 Signature를 생성합니다. 고객사의 시스템은 수신한 요청을 기반으로 Signature를 생성한 후 Seavantage-Signature Header의 값과 비교합니다.
두 Signature가 일치하면 해당 요청이 Shared Secret을 사용하여 생성되었으며, 서명된 요청 데이터가 변경되지 않았음을 확인할 수 있습니다.
Content-Type: application/json
Accept: application/json
User-Agent: seavantage-webhook/1.0
Webhook-Source: SeaVantage
Seavantage-Event-Id: <event-uuid>
Seavantage-Timestamp: 2026-07-15T01:23:45Z
Seavantage-Signature: v1=<base64-hmac-sha256>
JSON
복사
항목 | 값 |
Algorithm | HMAC-SHA256 |
Signature encoding | Standard Base64 |
Signature format | v1=<base64-signature> |
Canonical String encoding | UTF-8 |
4. Canonical String (for HMAC-SHA256 only)
Canonical String은 HMAC Signature를 생성하고 검증하는 데 사용되는 정확한 문자열입니다. Canonical String은 별도의 Request Header 또는 Payload Field로 전송되지 않으며, 고객사의 시스템에서 수신한 HTTP 요청을 기반으로 직접 구성해야 합니다.
4.1 Canonical String 형식
다음 형식에 따라 Canonical String을 구성합니다.
HTTP_METHOD + "\n" +
RAW_PATH_AND_QUERY + "\n" +
TIMESTAMP + "\n" +
EVENT_ID + "\n" +
RAW_BODY
JSON
복사
각 값은 하나의 LF 문자 (\n)로 구분해야 하며, 반드시 위에 명시된 순서대로 구성해야 합니다.
4.2 Canonical 구성 요소
항목 | 설명 |
HTTP_METHOD | HTTP 요청 Method. 일반적으로 POST 사용 |
RAW_PATH_AND_QUERY | Scheme 및 Host를 제외한 Request Path와 Query String |
TIMESTAMP | Seavantage-Timestamp Request Header의 값을 그대로 사용 |
EVENT_ID | Seavantage-Event-Id Request Header의 값을 그대로 사용 |
RAW_BODY | 수신한 원본 Request Body를 수정하지 않고 그대로 사용 |
4.3 Canonical String 예시
요청 예시 (Example Request)
POST /webhooks/cargo?version=1 HTTP/1.1
Host: customer.example.com
Content-Type: application/json
Accept: application/json
User-Agent: seavantage-webhook/1.0
Webhook-Source: SeaVantage
Seavantage-Event-Id: 123e4567-e89b-12d3-a456-426614174000
Seavantage-Timestamp: 2026-07-15T01:23:45Z
Seavantage-Signature: v1=<base64-hmac-sha256>
{"status":"ARRIVED","containerNo":"SEGU1234567"}
JSON
복사
Canonical String
POST
/webhooks/cargo?version=1
2026-07-15T01:23:45Z
123e4567-e89b-12d3-a456-426614174000
{"status":"ARRIVED","containerNo":"SEGU1234567"}
JSON
복사
이스케이프 문자열 표기
POST\n/webhooks/cargo?version=1\n2026-07-15T01:23:45Z\n123e4567-e89b-12d3-a456-426614174000\n{"status":"ARRIVED","containerNo":"SEGU1234567"}
JSON
복사
4.4 Raw Body Handling
Canonical String을 구성하고 HMAC Signature를 검증할 때는 수신한 원본 Request Body를 그대로 사용해야 합니다.
Signature 검증 전에 Request Body를 수정하지 마세요. 특히 다음과 같은 변경을 하지 않아야 합니다.
•
JSON을 Parsing한 후 다시 Serialize하지 마세요.
•
JSON Field의 순서를 변경하지 마세요.
•
공백을 추가하거나 제거하지 마세요.
•
줄바꿈을 변경하지 마세요.
•
Request Body를 다른 문자 Encoding으로 변환하지 마세요.
예를 들어, 다음 Payload는 동일한 데이터를 포함하고 있지만 Raw Body 표현 방식이 다르기 때문에 서로 다른 HMAC Signature가 생성됩니다.
{"status":"ARRIVED","containerNo":"SEGU1234567"}
JSON
복사
{
"containerNo": "SEGU1234567",
"status": "ARRIVED"
}
JSON
복사
4.5 Raw Path and Query Handling
Canonical String의 RAW_PATH_AND_QUERY 구성 요소를 생성할 때는 원본 Request Path와 Query String만 사용해야 합니다.
전체 URL (Full URL)
<https://customer.example.com/webhooks/cargo?version=1>
JSON
복사
Canonical String에 포함되는 값
/webhooks/cargo?version=1
JSON
복사
URL의 Scheme 또는 Host는 포함하지 마세요.
<https://customer.example.com>
JSON
복사
5. Signature 검증 (HMAC-SHA256 전용)
고객사의 수신 시스템은 Webhook Payload를 처리하기 전에 HMAC Signature를 검증해야 합니다.
다음 순서에 따라 Signature를 검증합니다.
1.
원본 Request Body를 읽고 수정하지 않은 상태로 유지합니다.
2.
HTTP Request Method와 Raw Path 및 Query String을 확인합니다.
3.
Seavantage-Timestamp Header 값을 확인합니다.
4.
Seavantage-Event-Id Header 값을 확인합니다.
5.
문서에 명시된 순서에 따라 Canonical String을 구성합니다.
6.
완성된 Canonical String을 UTF-8 Byte로 변환합니다.
7.
Shared Secret을 사용하여 HMAC-SHA256 Digest를 생성합니다.
8.
생성된 Digest를 Standard Base64로 Encoding합니다.
9.
v1= Prefix를 추가하여 검증에 사용할 Signature를 생성합니다.
10.
생성한 Signature와 Seavantage-Signature Header의 값을 비교합니다.
Pseudocode
canonicalString =
httpMethod + "\n" +
rawPathAndQuery + "\n" +
timestamp + "\n" +
eventId + "\n" +
rawBody
digest = HMAC_SHA256(
key = sharedSecret,
message = UTF8(canonicalString)
)
expectedSignature = "v1=" + STANDARD_BASE64(digest)
JSON
복사
보안 권장사항: Seavantage-Signature Header가 없거나 Signature 검증에 실패한 경우, Webhook Payload를 처리하지 마세요.
6. Response 처리
SeaVantage는 고객사의 수신 시스템에서 반환하는 HTTP Response를 기준으로 Webhook 전송 성공 여부를 판단합니다.
HTTP Response | 설명 |
HTTP 2xx | Webhook 전송이 성공한 것으로 처리됩니다. |
HTTP 2xx 이외의 응답 |
7. 중복 이벤트 처리
각 Webhook 이벤트에는 Seavantage-Event-Id Request Header에 고유한 UUID가 포함됩니다. 중복 이벤트 처리가 필요한 경우, 고객사의 수신 시스템에서 해당 값을 사용하여 동일한 Webhook 이벤트를 식별하고 중복 처리를 방지할 수 있습니다.
8. Webhook Payload
각 Webhook 요청에는 Webhook 이벤트가 생성된 시점의 단일 화물 건에 대한 추적 정보가 포함됩니다.
Webhook Payload는 GET /cargo/search API의 Response와 동일한 데이터 구조를 사용하므로, API와 Webhook 연동 시 동일한 Field 정의 및 데이터 모델을 적용할 수 있습니다.
8.1 Webhook Payload 예시
{
"documentId": "string",
"referenceType": "string",
"carrierCode": "string",
"bookingNo": "string",
"mblNo": "string",
"containerNo": "string",
"blStatus": "string",
"initialEtd": "2025-05-14 02:06",
"initialEta": "2025-05-14 02:06",
"bookingRegno": "string",
"srNo": "string",
"customColumn1": "string",
"customColumn2": "string",
"customColumn3": "string",
"locations": [
{
"locationSeq": 0,
"locationType": "string",
"carrierLocationCode": "string",
"carrierLocationName": "string",
"carrierTerminalName": "string",
"carrierEta": "2025-05-14 02:06",
"carrierEtb": "2025-05-14 02:06",
"carrierEtd": "2025-05-14 02:06",
"carrierAta": "2025-05-14 02:06",
"carrierAtb": "2025-05-14 02:06",
"carrierAtd": "2025-05-14 02:06",
"carrierShipName": "string",
"carrierVoyageNo": "string",
"ata": "2025-05-14 02:06",
"atb": "2025-05-14 02:06",
"atd": "2025-05-14 02:06",
"pta": "2025-05-14 02:06",
"imoNo": "string",
"port": {
"portId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"portName": "string",
"unlocode": "string",
"nationCode": "string"
"timezone": "string"
}
}
],
"hbls": [
{
"hblNo": "string",
"ciNo": "1234567890",
"shipperCode": "string",
"shipperName": "string",
"consigneeCode": "string",
"consigneeName": "string",
"ownerCode": "string",
"ownerName": "string",
"containers": [
{
"containerNo": "string",
"hblNo": "string",
"size": "string",
"type": "string",
"commodity": "string",
"hscode": "string",
"qty": 0,
"gw": 0,
"sealNo1": "string",
"sealNo2": "string",
"sealNo3": "string",
"trackings": [
{
"shipName": "string",
"imoNo": "string",
"trackingSeq": 0,
"eventCode": "string",
"svEventDescription": "Empty Equipment Dispatched",
"eventStatus": "string",
"eventDescription1": "string",
"eventDescription2": "string",
"carrierEventTime": "string",
"carrierLocationName": "string",
"unlocode": "string",
"locationType": "POR"
}
]
}
]
}
JavaScript
복사
8.2 Payload 상세 설명
Depth 1 필드 설명 (response 객체)
필드명 | 예시 값 | 설명 | 데이터 타입 |
documentId | 6ebec210-a072-43ef-a6d1-874fddbc4b36 | 내부적으로 사용하는 화물 구분 식별자 | varchar(36) |
carrierCode | CMAL | SCAC 4자리 선사 코드 | varchar(10) |
referenceType | MBL | 화물 추적을 어떤 값으로 등록 했는지 나타내는 값
CONTAINER: 최초 등록시 Container 번호로 등록
BOOKING: 최초 등록시 Booking 번호로 등록
MBL: 최초 등록시 Master B/L 번호로 등록 | varchar(16) |
bookingNo | SHZ5400465 | Booking 번호 | varchar(512) |
mblNo | SHZ5400465 | Master B/L 번호 | varchar(128) |
containerNo | BEAU2789169 | Container 번호 | varchar(64) |
blStatus | END | PROCESSING:
추적 요청 후 화물 추적이 진행 중인 상태
BEFORE:
POL에서 선박이 출항 전인 상태 (ATD 발생 이전)
ON:
POL에서 선박이 출항했고 POD에 입항 전 상태
END:
POD에 ATA 발생 (선박이 POD에 도착, POD에 입항)
PENDING:
Location data가 없는 경우
NOT_FOUND:
화물 추적에 실패 한 경우
CLOSED:
POD 도착 후 컨테이너 이벤트 추적이 종료된 경우
EXPIRED:
컨테이너 화물 추적이 지속적으로 실패한 경우 | varchar(10) |
initialEtd | 2025-01-01 00:00 | 화물 등록 후 최초 수집된 ETD | timestamp |
initialEta | 2025-01-01 00:00 | 화물 등록 후 최초 수집된 ETA | timestamp |
bookingRegno | null | Booking confirm 번호 | varchar(20) |
srNo | null | Shipping request 번호 | varchar(20) |
customColumn1 | null | 고객 정의 필드 1 | text |
customColumn2 | null | 고객 정의 필드 2 | text |
customColumn3 | null | 고객 정의 필드 3 | text |
locations | [object Object] | Depth 2 → location 객체 참고 | |
hbls | [object Object] | Depth 3 → hbls 객체 참고 |
Depth 2 필드 설명 (locations 객체)
locations는 화물이 경유하는 각 항만(Location)의 정보를 나타냅니다. Location 종류(POL, POD 등) 별로 ETA/ETD, ATA/ATD등의 시간 정보도 함께 확인 할 수 있습니다.
필드명 | 예시 값 | 설명 | 데이터 타입 |
locationSeq | 0 | Partial 별 Location 순번 | smallint |
locationType | POL | POR: Place of Receipt
POL: Port of Loading
TSD: Transshipment Discharging
TSL: Transshipment Loading
POD: Port of Discharging
PVY: Place of Delivery | varchar(20) |
carrierLocationCode | CNSHK | 선사에서 수집된 위치 코드 | varchar(5) |
carrierLocationName | SHEKOU | 선사에서 수집된 위치명 | varchar(200) |
carrierTerminalName | CMA CGM PSA LION TERMINAL | 선사에서 수집된 터미널명 | varchar(200) |
carrierEta | 2025-01-01 00:00 | 선사에서 수집된
Estimated Time of Arrival | timestamp |
carrierEtb | 2025-01-01 00:00 | 선사에서 수집된
Estimated Time of Berthing | timestamp |
carrierEtd | 2025-01-01 00:00 | 선사에서 수집된
Estimated Time of Departure | timestamp |
carrierAta | 2025-01-01 00:00 | 선사에서 수집된
Actual Time of Arrival | timestamp |
carrierAtb | 2025-01-01 00:00 | 선사에서 수집된
Actual Time of Berthing | timestamp |
carrierAtd | 2025-01-01 00:00 | 선사에서 수집된
Actual Time of Departure | timestamp |
carrierShipName | ANL WANGARATTA | 선사에서 수집된 선박명 | varchar(128) |
carrierVoyageNo | 0WWE9W1MA | 선사에서 수집된 항차 | varchar(32) |
ata | 2025-01-01 00:00 | 씨벤티지 포트콜 데이터로 생성된
Actual Time of Arrival | timestamp |
atb | 2025-01-01 00:00 | 씨벤티지 포트콜 데이터로 생성된
Actual Time of Berthing | timestamp |
atd | 2025-01-01 00:00 | 씨벤티지 포트콜 데이터로 생성된
Actual Time of Departure | timestamp |
pta | 2025-01-01 00:00 | Predicted Time of Arrival (씨벤티지) | timestamp |
imoNo | 9334167 | IMO Number | varchar(10) |
port | [object Object] | Depth 3 → port 객체 참고 |
Depth 3 필드 설명 (port 객체)
필드명 | 예시 값 | 설명 | 데이터 타입 |
portId | 47941f60-13b8-4718-bead-aa7c3c61d530 | 내부적으로 사용하는 Port 구분 값 | varchar(36) - UUID |
portName | Busan | 항구명 | varchar(255) |
unlocode | KRPUS | 항구 UN/LOCODE | varchar(36) |
nationCode | KR | 국가 코드 | varchar(36) |
timezone | +09:00 | 항구 타임존 | varchar(36) |
Depth 4 필드 설명 (hbls 객체)
hbls는 House B/L 단위의 화물 정보를 담는 객체이며, 하나의 Master B/L에 여러 개의 hbls가 포함될 수 있으며 하나도 입력하지 않을 경우 임의로 생성됩니다.
필드명 | 예시 값 | 설명 | 데이터 타입 |
hblNo | SVH.SHZ5400465 | House B/L 번호
(임의로 생성된 값은 SVH. 로 값이 시작됩니다.) | varchar(38) |
ciNo | null | Commercial Invoice 번호 | varchar(50) |
shipperCode | null | 송하인 코드 | varchar(20) |
shipperName | null | 송하인 이름 | varchar(128) |
consigneeCode | null | 수하인 코드 | varchar(20) |
consigneeName | null | 수하인 이름 | varchar(128) |
ownerCode | null | 실화주 코드 | varchar(20) |
ownerName | null | 실화주 이름 | varchar(128) |
containers | [object Object] | Depth 5 → containers 객체 참고 |
Depth 5 필드 설명 (containers 객체)
containers는 각 House B/L에 포함된 컨테이너별 상세 정보를 담는 객체입니다.
필드명 | 예시 값 | 설명 | 데이터 타입 |
containerNo | BEAU2789169 | 컨테이너 번호 | varchar(30) |
hblNo | SVH.SHZ5400465 | House B/L 번호 | varchar(38) |
size | 22 | 컨테이너 사이즈 | varchar(16) |
type | G1 | 컨테이너 타입 코드 | varchar(64) |
commodity | null | 화물 종류 | varchar(128) |
hscode | null | 상품분류코드 (국제표준) | varchar(20) |
qty | null | 개수 (수량) | numeric(14,3) |
gw | null | 총 중량 (Gross Weight) | numeric(14,3) |
sealNo1 | null | 봉인번호#1 | varchar(64) |
sealNo2 | null | 봉인번호#2 | varchar(64) |
sealNo3 | null | 봉인번호#3 | varchar(64) |
trackings | [object Object] | Depth 6 → trackings 객체 참고 |
Depth 6 필드 설명 (trackings 객체)
trackings는 컨테이너에 발생한 이벤트 이력을 나타내며, 각 객체는 하나의 이벤트를 의미합니다.
필드명 | 예시 값 | 설명 | 데이터 타입 |
shipName | MSC CORDELIA III | 선박의 공식 등록 명칭 | varchar(100) |
imoNo | 9253014 | 선박의 7자리 국제해사기구(IMO) 등록 번호 | varchar(10) |
trackingSeq | 0 | 컨테이너별 이벤트 순번 | smallint |
eventCode | EE | 이벤트 코드
(아래 별도 이벤트 코드표 참조) | varchar(12) |
svEventDescription | Empty Equipment Dispatched | SeaVantage 표준 이벤트 설명
(아래 별도 이벤트 코드표 참조) | varchar(128) |
eventStatus | Actual | 이벤트 상태 (Actual, Estimate) | varchar(20) |
eventDescription1 | EmptyDeliveredToShipper | 이벤트 상세 설명 1 | varchar(512) |
eventDescription2 | TRUCK | 이벤트 상세 설명 2 | varchar(512) |
carrierEventTime | 2025-01-01 00:00 | 이벤트 발생 시각 | varchar(20) |
carrierLocationName | SHEKOU | 이벤트 발생 지역명 | varchar(512) |
unlocode | CNSHK | 이벤트 발생 항구의 UN/LOCODE | varchar(36) |
locationType | POL | 이벤트 발생 위치 유형
POL: Port of Loading
TS: Transshipment
POD: Port of Discharging | varchar(20) |
부록
컨테이너 이벤트 코드 종류
이벤트 코드는 컨테이너의 이벤트 상태, 위치, 예상 시간, 실제 시간 등을 나타냅니다.
이벤트 코드 | 설명 |
EE | Empty Equipment Dispatched |
I | In gate |
AE | Loaded on vessel |
VD | Vessel departure |
VA | Vessel arrival |
VB | Vessel berthing |
UV | Unloaded from vessel |
OA | Out gate |
D | Delivered to the consignee |
RD | Empty container returned |
A | Arrived |
AD | Appointment date/Time for delivery |
AG | ETA Changed |
AL | Loaded on rail |
AM | Loaded on truck |
AP | Loaded on feeder vessel |
AR | Rail arrival at destination intermodal ramp |
AV | Available for delivery |
CO | Cargo received at contractual place of receipt |
CR | Carrier release |
CT | Customs released |
CU | Carrier and customs released |
FT | Free time expired |
MT | Empty returned to CY |
P | Full container issued |
PA | Us customs hold |
RL | Rail departure from original intermodal ramp |
UR | Unloaded from rail |
VE | Estimated vessel arrival |
VT | Estimated vessel departure |
X2 | ETA at consignee location |
C | Estimated to depart terminal location |
CI | Passing |
X6 | En route to delivery location |
R | Received from prior carrier |
NO | Ocean charges paid |
AW | Awaiting export |
U | Unloading |




