소개

<aside> 💬 SVMP API를 사용하면 SVMP 내에서 제공하는 선박 및 화물의 위치 추적 및 과거, 미래 예측 항적 등 다양한 데이터를 활용할 수 있습니다. 이 문서에서는 각 API를 호출하기 위한 매개 변수 및 반환되는 개체의 속성에 대해 설명합니다. 질문이 있으시면 [email protected] 으로 연락 주시기 바랍니다.

</aside>

1. API

1) 사용자 인증

<aside> 🔑 SVMP API 에서는 API 사용자 인증을 Basic Auth(계정/비밀번호) 인증 방식을 사용하고 있습니다. 발급 받으신 사용자 계정과 비밀번호를 Request Header에 함께 전송해주시면 바로 사용하실 수 있습니다.

</aside>

2) Ship Tracking(선박 위치 추적)

3) Cargo Tracking(화물 위치 추적)

4) Alarm Cargo (화물 도착 지연 알림)

<aside> 💡 등록한 화물(M-B/L기준)의 예상 도착 시간(ETA) 대비 예측 도착 시간(PTA)의 차이가 설정한 기준 시간 이상인 화물들의 정보를 한번에 가져올 수 있습니다. 단, 선박의 움직임이 실시간으로 바뀌고 있으나 PTA 계산의 경우 일정 시간에 이루어 지기 때문에 실제와는 일부 차이가 발생할 수 있습니다.

</aside>

Request URL

GET /v1/alarm/cargo

Response body

{
    "code": 200,
    "message": "OK",
    "error": false,
    "timestamp": "2021-12-10T07:08:47Z",
    "response": [{
            "mblV2DTO": {
                "documentId": "{SVMP Key}",
                "carrierCode": "MAEU",
                "bookingNo": null,
                "mblNo": "{master bl No}",
                "bookingRegno": "",
                "srNo": "",
                "blStatus": "ON",
                "locations": [{
                        "documentId": "{SVMP Key}",
                        "partialSeq": 0,
                        "locationSeq": 0,
                        "locationId": null,
                        "locationCode": "",
                        "locationName": "Busan, Korea, South",
                        "locationType": "POR",
                        "terminalId": null,
                        "terminalName": "Busan new port terminal Co.ltd",
                        "eta": null,
                        "ata": null,
												"carrierAta": null,
												"etb": null,
												"atb": null,
												"carrierAtb": null,
                        "etd": "2021-11-03 14:19",
                        "atd": null,
												"carrierAtd": null,
                        "pta": null,
                        "imoNo": null,
                        "shipName": "",
                        "voyageNo": "",
                        "shipData": null,
                        "portData": null
                    },
	                    { // 선적지 정보
                        "documentId": "{SVMP Key}",
                        "partialSeq": 0,
                        "locationSeq": 1,
                        "locationId": "dc822048-5534-11e9-a747-54802853d888",
                        "locationCode": "",
                        "locationName": "Busan, Korea, South",
                        "locationType": "POL",
                        "terminalId": "d20f5180-bbcc-11ea-b607-049226dae5ce",
                        "terminalName": "Busan new port terminal Co.ltd",
                        "eta": null,
                        "ata": "2021-11-05 17:38",
												"carrierAta": "2021-11-05 17:40",
												"etb": null,
												"atb": null,
												"carrierAtb": null,
                        "etd": "2021-11-06 11:32",
                        "atd": "2021-11-06 22:52",
												"carrierAtd": "2021-11-06 22:54",
                        "pta": null,
                        "imoNo": "9260445",
                        "shipName": "ARTHUR MAERSK",
                        "voyageNo": "142E",
                        "shipData": {
                            // Ship Deatil Data
                            }
                        },
                        "portData": {
                            // Port Detail Data
                        }
                    },
                    { // 양하지 정보
                        "documentId": "{SVMP Key}",
                        "partialSeq": 0,
                        "locationSeq": 2,
                        "locationId": "aa925038-e0c8-11e9-a622-54802853d888",
                        "locationCode": "",
                        "locationName": "Savannah, United States",
                        "locationType": "POD",
                        "terminalId": "d2188e9e-bbcc-11ea-b607-049226dae5ce",
                        "terminalName": "Savannah Garden City Terminal L738",
                        "eta": "2021-12-08 05:17",
                        "ata": null,
												"carrierAta": null,
												"etb": null,
												"atb": null,
												"carrierAtb": null,
                        "etd": null,
                        "atd": null,
												"carrierAtd": null,
                        "pta": "2021-12-10 15:55",
                        "imoNo": "9260445",
                        "shipName": "ARTHUR MAERSK",
                        "voyageNo": "142E",
                        "shipData": {
                            // Ship Detail Data
                            }
                        },
                        "portData": {
                            // Port Detail Data
                        }
                    }
                ],
                "hbls": [{
                    "documentId": "{SVMP Key}",
                    "hblNo": "SVH.214348845",
                    "ciNo": "",
                    "shipperCode": "",
                    "shipperName": "",
                    "consigneeCode": "",
                    "consigneeName": "",
                    "ownerCode": null,
                    "ownerName": null,
                    "containers": [{
                        "documentId": "{SVMP Key}",
                        "containerNo": "{Container No}",
                        "hblNo": "SVH.214348845",
                        "partialSeq": 0,
                        "size": "40",
                        "type": "Dry",
                        "commodify": "",
                        "hscode": "",
                        "qty": null,
                        "gw": null,
                        "sealNo1": "",
                        "sealNo2": "",
                        "sealNo3": "",
                        "trackings": [{
                                "documentId": "{SVMP Key}",
                                "containerNo": "{Container NO}",
                                "trackingSeq": 0,
                                "eventCode": null,
                                "eventTime": "202110281407",
                                "eventStatus": "Actual",
                                "eventDesc1": "GATE-OUT-EMPTY",
                                "eventDesc2": "",
                                "locationName": "Busan new port terminal Co.ltd, Busan, Korea, South",
                                "imoNo": null,
                                "shipName": null,
                                "voyageNo": null
                            }
                        ]
                    }]
                }]
            }

        },
        "diffHour": 58 //ETA 대비 PTA 지연 시간 정보
    }]
}

2. SVMP 화면 연동(Map View Embed)

1) 사용자 인증

<aside> 🔑 화면 연동을 위한 사용자 인증의 경우 URL에 인증 토큰(Auth Token)을 넘기는 방식이기 때문에 해당 URL이 외부에 노출 됨으로 인한 피해를 줄이기 위해 인증 토큰이 일정 시간 후 만료 됩니다. 따라서 화면을 연동하는 시스템에서 토큰 만료전에 새로운 토큰을 발급 받아서 연동되도록 시스템을 구성하기를 권장합니다.

</aside>

- 인증 토큰 발급

Request URL

GET /api/v1/user/authToken  

Response body

{
  "code": 200,
  "message": "OK",
  "error": false,
  "timestamp": "2021-12-09T06:52:33Z",
  "response": [
    {
			"userId": "{user-account-email}",
      "tokenId": "{your-user-token}",
      "registDt": "2021-09-29T20:02:31Z",
      "expiredDt": "2022-11-14T05:03:50Z"
    }
  ]
}

2) Ship Tracking

<aside> 🔑 현재 시점 기준 선박의 마지막 추적 위치 및 과거 항적, 예상 항적등을 화면으로 볼 수 있습니다.

</aside>