Tracking
배송/회수 트래킹을 Vendor에서 전송하는 API 입니다.
- API 호출 방향 : Vendor -> Coupang
- URL : /v1/3pfl/tracking
- Interface Style : Restful API
- HTTP Protocol : HTTPS
- Method : POST
Request Body
| Property Name | Parent Object | Data Type | Size | Mandatory | Description |
| orderNumber | Root | Long | Y | 주문번호 | |
| shipmentId | Root | Long | Y | ||
| invoiceNumber | Root | String | Y | 상품 송장 번호 | |
| uniqueCode | Root | String | Y | 송장 번호를 보완하기 위한 unique key | |
| vendorItemId | Root | Long | Y | 주문 아이템의 모델 코드 (한 송장에 하나의 아이템만 있어야 합니다) | |
| promisedDate | Root |
LocalDate |
Y | 배송(또는 회수) 예정일 (yyyy-MM-dd) | |
| shippingCompanyId | Root | String | Y | 배송(또는 회수) 업체 아이디 | |
| invoiceType | Root | String | Y |
송장 타입(배송인지 회수인지 구분) DELIVERY("배송") COLLECTING("회수") |
|
| coupangStatusCode | Root | String | Y |
쿠팡 배송(또는 회수) 상태 코드 삽입 [배송] [회수] |
|
| statusCode | Root | String | Y | 벤더의 배송(또는 회수) 상태 코드 | |
| statusMessage | Root | String | Y | 벤더의 배송(또는 회수) 상태명 | |
| detailReasonCode | Root | String | N | 상세사유 코드 | |
| detailReasonMessage | Root | String | N | 상세사유 메시지 | |
| locationCode | Root | String | Y | 스캔 장소 코드 | |
| locationName | Root | String | Y | 스캔 장소 이름 | |
| scannedAt | Root |
LocalDateTime |
Y |
스캔한 시간 |
|
| workerId | Root | String | Y | 배송(또는 회수) 작업자 아이디 | |
| workerName | Root | String | Y | 배송(또는 회수) 작업자 이름 | |
| workerMobile | Root | String | Y | 배송(또는 회수) 작업자 전화번호(또는 대표번호) |
Request Example
{
"orderNumber": 10012345678,
"shipmentId": 150000000001,
"invoiceNumber": 1234567890,
"uniqueCode": "VENDOR1234567890",
"vendorItemId": 88000001,
"promisedDate": "2020-09-01",
"shippingCompanyId": "SHIPPING_COMPANY",
"invoiceType": "DELIVERY",
"coupangStatusCode": "IN_TRANSIT",
"statusCode": "37",
"statusMessage": "배송중",
"locationCode": "1",
"locationName": "현재 위치",
"scannedAt": "2020-09-01 12:23:45",
"workerId": "worker001",
"workerName": "배송자",
"workerMobile": "",
"detailReasonCode": null,
"detailReasonMessage": null
}
Response
| Property Name | Data Type | Size | Mandatory | Description |
| code | String | 20 | N | 결과값
|
| message | String | 100 | N | 에러 사유 |
| data | String/Object | - | N | Response Data |
Response Example
{
"code": "0",
"message": null,
“data”: null
}
유의사항
- uniqueCode는 송장번호와 기본적으로 단위가 같습니다. 송장번호가 완전히 unique하지 않기 때문에 key로 사용할 수가 없어서, 이를 보완하기 위해 만들어진 값입니다.
- 배송은 택배사 + 송장번호를 uniqueCode로 사용합니다.
- 회수는 회수연동 시에 보내드린 uniqueCode를 쿠팡쪽으로 다시 보내주시면 됩니다.
- 하나의 송장 번호에 하나의 아이템만 들어있어야 합니다.
- 한 모델을 두 개 주문할 경우, 서로 다른 송장으로 발송해야 합니다.
- 업체에서 지원하는 필드 정보 확인이 필요합니다.
- 업체 정보가 부족한 경우 협의하여 임의 정보로 채워야 합니다.
- 출고 정보는 FO로부터 전달받기 때문에, "출발", "설치중(가능하면)", "배송완료" 등의 정보를 받아야 합니다.
- 특정 사유로 인해서 지연배송(출발했으나 고객의 요청으로 다음에 배송하는 경우. 반품과 다릅니다)의 경우 별도 상태를 받아야 합니다. 또한, promisedDate가 변경되어야 합니다.
- promisedDate 필드로 업체에서 PDD(배송예정일) 변경 시 쿠팡 PDD 변경도 진행해야 합니다.
트래킹 코드 설명
[ 배 송 ]
- IN_TRANSIT : 배송중. 배송완료 이전의 모든 트래킹 상태에 해당합니다.
- DELIVERED : 배송완료. 고객의 집에 상품이 정상적으로 전달된 상태만을 의미합니다.
- 따라서, 배송 트래킹의 경우, 배송완료 전까지는 무조건 배송중으로 매핑해서 보내주시면 됩니다. 배송완료 트래킹 정보는 정상적인 배송 처리를 위해서 반드시 필요합니다.
[ 회 수 ]
- COLLECTING : 회수중. 배송기사가 상품 회수를 위해 고객의 집으로 이동중인 상태를 의미합니다.
- COLLECTING_COMPLETE : 상품회수완료. 배송기사가 고객의 집에서 상품을 픽업한 생태를 의미합니다.
- DELIVERY_COMPLETE : 상품전달완료. 배송기사가 회수한 상품을 쿠팡으로 전달완료한 상태를 의미합니다.
- 여기서 COLLECTING_COMPLETE와 DELIVERY_COMPLETE 트래킹 정보는 정상적인 반품 처리를 위해서 반드시 필요합니다.
배송/반품 트래킹 중 예외에 대한 트래킹이 따로 있으시면 저희쪽으로 문의 부탁드립니다. (ex. 수취거부 등)