[결제완료] 또는 [상품준비중] 상태에 있는 상품을 취소하기 위한 API 입니다. (나머지 상태에 적용 시 에러 발생)
[결제완료] 상태에 있는 상품에 대해서는 즉시 취소로 작동하며, [상품준비중] 상태의 상품에 대해서는 출고중지를 시킵니다.
[결제완료] 상태에 있는 상품에 대해서는 즉시 취소로 작동하며, [상품준비중] 상태의 상품에 대해서는 출고중지를 시킵니다.
하나의 주문번호 안에 서로 다른 묶음배송번호(shipmentBoxId)가 존재하는 경우 shipmentBoxId 별로 각각 취소요청해야 정상적으로 처리가 됩니다.
※ 주문 상품 취소 처리 API의 사용은 판매자 점수(주문이행)를 하락시키게 되므로, 재고와 가격 관리를 통해 사용을 지양해주시기 바랍니다.
Path
POST/v2/providers/openapi/apis/api/v5/vendors/{vendorId}/orders/{orderId}/cancel
Example Endpoint
https://api-gateway.coupang.com/v2/providers/openapi/apis/api/v5/vendors/A00012345/orders/2000006593044/cancelRequest Parameters
Path Segment Parameter
Name | Required | Type | Description | ||||
---|---|---|---|---|---|---|---|
vendorId | O | String |
판매자 ID
쿠팡에서 업체에게 발급한 고유 코드
예) A00012345
|
||||
orderId | O | Number |
주문 번호
예) 2000006593044
|
Body Parameter
Name | Required | Type | Description | ||||
---|---|---|---|---|---|---|---|
orderId | O | Number |
주문 번호
path variable로도 입력해야 함
|
||||
vendorItemIds | O | Array |
취소할 상품의 옵션 ID(vendorItemId) 배열
receiptCounts 와 쌍으로 입력
|
||||
receiptCounts | O | Array |
취소할 상품 개수 배열, 값은 항상 0보다 큼
vendorItemIds 와 쌍으로 입력
|
||||
bigCancelCode | O | String |
주문상품 취소 사유 중 대분류 사유 코드
CANERR
|
||||
middleCancelCode | O | String |
주문상품 취소 사유 중 중분류 사유 코드
상품준비중 상태의 상품 취소(출고중지완료) 시에는 입력값과 상관없이 사유 카테고리가 각각 "배송불만", "품절"로 고정됩니다.
취소 상세 사유는 "파트너 API 강제 취소"로 기록됩니다. |
||||
vendorId | O | String |
업체 ID, path variable로도 입력해야함
|
||||
userId | O | String |
업체의 쿠팡 Wing 로그인 ID
|
Request Example
{
"orderId": 2000006593044,
"vendorItemIds": [
3145181064,
3145181065,
3145181067
],
"receiptCounts": [
1,
2,
1
],
"bigCancelCode": "CANERR",
"middleCancelCode": "CCTTER",
"userId": "wing_login_id_123",
"vendorId": "A00123456"
}
Response Message
Name | Type | Description | ||||
---|---|---|---|---|---|---|
code | String |
응답 코드
200 - 전체/부분 취소 성공, 400 - 취소 실패
|
||||
message | String |
실패 사유 및 에러 메세지
|
||||
data | CancelResponse |
성공 및 실패한 취소건에 대한 상세 정보
|
||||
ReceiptMap | Object |
|
||||
receiptId | Number |
접수 ID
|
||||
receiptType | String |
CANCEL일 경우 즉시취소 접수 아이디,
STOP_SHIPMENT 일 경우 출고중지완료 접수 번호 |
||||
vendorItemIds | Array |
해당 접수 ID로 취소한 상품 번호 목록
|
||||
totalCount | Number |
해당 접수 ID로 취소한 총 상품 개수
|
||||
orderId | Number |
주문번호
|
||||
failedItemIds | Array |
취소에 실패한 vendorItemId
|
Response Example 1
{
"code": "200",
"message": "[요청번호] 43b97579-bcb5-4260-84cb-9a4a9063db71 \\r\\n",
"data": {
"receiptMap": {
"181627233": {
"receiptId": 181627233,
"receiptType": "CANCEL",
"vendorItemIds": [
70071284034
],
"totalCount": 1
}
},
"orderId": 23000059824637,
"failedVendorItemIds": [
]
}
}
}
Response Example 2
{
"code": "200",
"message": "[요청번호] cdea5b4b-34e9-4bec-bbd9-061e358e46a0 \\r\\n[3145181064]<= 취소 가능한 개수보다 요청한 개수가 더 많습니다.",
"data": {
"receiptMap": {
"44698107": {
"receiptId": 44698107,
"receiptType": "STOP_SHIPMENT",
"vendorItemIds": [
3145181065,
3145181067
],
"totalCount": 3
}
},
"orderId": 2000006593044,
"failedVendorItemIds": [
3145181064
]
}
}
Response Example 3
{
"code": "400",
"message": "[요청번호] 5d803ea1-e61d-44bd-a56d-44f3528f5136 \\r\\n [3145181067, 3145181065, 3145181064]<= 취소 가능한 개수보다 요청한 개수가 더 많습니다",
"data": {
"receiptMap": {
},
"orderId": 23000059824637,
"failedVendorItemIds": [
3145181067,
3145181065,
3145181064
]
}
}
}
Error Spec
HTTP 상태 코드(오류 유형) | 오류 메시지 | 해결 방법 |
---|---|---|
400 (요청변수확인) | 주문 ID를 입력해 주세요. | 주문번호(orderId)를 올바로 입력했는지 확인합니다. |
400 (요청변수확인) |
취소할 벤더아이템 아이디 목록을 입력해주세요. |
상품 번호 목록(vendorItemIds)에 값을 올바로 입력했는지 확인합니다. |
400 (요청변수확인) | 취소할 아이템 개수 목록을 입력해주세요. | 취소할 상품 개수 배열(receiptCounts)에 값을 올바로 입력했는지 확인합니다. |
400 (요청변수확인) | 요청한 상품 개수와 취소 개수를 확인해주세요. | 상품 번호 목록(vendorItemIds)에 있는 옵션 개수 와 상품 취소 개수 목록의 개수가 일치하는지 확인합니다. |
400 (요청변수확인) | 취소사유 대분류 코드를 입력해주세요. | 취소 사유 중 대분류 코드(bigCancelCode)를 "CANERR"로 입력했는지 확인합니다. |
400 (요청변수확인) | 취소사유 중분류 코드를 입력해주세요. | 취소 사유 중 중분류 코드(middleCancelCode)를 "CCTTER", "CCPNER", "CCPRER" 중 하나로 입력했는지 확인합니다. |
400 (요청변수확인) | 업체 ID를 입력해주세요. | 판매자 ID(vendorId) 를 올바로 입력했는지 확인합니다. |
400 (요청변수확인) | 업체 ID에 맞는 올바른 유저 ID를 입력해주세요. | 판매자 ID에 속한 올바른 Wing의 유저ID를 입력했는지 확인합니다. |
400 (요청변수확인) | 주문 정보가 없습니다. | 요청한 주문번호(orderId)와 상품번호상품 번호에 대한 지불 정보가 하나도 존재하지 않을 경우 발생합니다. 주문번호 각 상품에 대한 상태를 확인합니다. |
400 (요청변수확인) | 취소 가능한 개수보다 요청한 개수가 더 많습니다. | 특정 옵션상품의 취소가능개수(주문 개수 - 취소진행중 개수 - 취소완료 개수) 보다 더 많은 개수를 요청 했는지 확인합니다. |
400 (요청변수확인) | 해당 벤더아이템이 결제완료/상품지시 중 상태가 아닙니다. | 주문취소를 요청한 상품이 결제완료 혹은 상품준비중 상태가 아닌지 확인합니다. |
400 (요청변수확인) | 요청한 업체의 상품이 아닙니다. | 주문취소를 요청한 상품이 해당 업체의 상품이 아닌지 확인합니다. |
400 (요청변수확인) | 취소요청 중 오류가 발생하였습니다. | 요청한 상품 중 결제완료 상태인 상품에 대해 취소처리 실패가 발생했습니다. 결제완료 단계에서 해당 주문의 상태를 재확인합니다. |
400 (요청변수확인) | 부분 취소는 불가능합니다. | 부분 취소 시 실패가 발생한 케이스 입니다. 상품 번호 목록(vendorItemIds)에 있는 옵션 개수 와 상품 취소 개수 목록의 개수가 올바른지 확인합니다. |
400 (요청변수확인) | 출고정지 완료 처리에 실패했습니다. | 취소 요청한 상품중 상품준비중 상태인 상품에 대해 출고 정지 완료 처리에 실패한 경우 입니다.해당 옵션의 주문상태를 확인하고 해당 옵션에 대해 중복해서 취소 요청을 했는지 확인합니다. |
400 (요청변수확인) | 출고 정지 요청 롤백에 실패했습니다[접수 아이디] | 취소 요청한 상품중 상품준비중 상태인 상품에 대해 출고 정지 요청 완료에 실패하고, 출고정지요청 롤백도 실패한 경우입니다. 옵션 상품의 처리 상태를 확인합니다. |
400 (요청변수확인) | 내부 오류가 발생하였습니다. 쿠팡으로 문의하세요. 에러번호 : %s | 입력한 값들을 재확인하여 일정시간 이후 재요청합니다. |
URL API Name
CANCEL_ORDER_PROCESSING