coupang
POST/v2/providers/openapi/apis/api/v5/vendors/{vendorId}/orders/{orderId}/cancelv1

주문 상품 취소 처리

# 01

요약

API 적용 가능한 구매자 사용자 지역 : 한국 , 대만 [결제완료] 또는 [상품준비중] 상태에 있는 상품을 취소하기 위한 API 입니다. (나머지 상태에 적용 시 에러 발생) [결제완료] 상태에 있는 상품에 대해서는 즉시 취소로 작동하며, [상품준비중] 상태의 상품에 대해서는 출고중지를 시킵니다. 하나의 주문번호 안에 서로 다른 묶음배송번호(shipmentBoxId)가 존재하는 경우 shipmentBoxId 별로 각각 취소요청해야 정상적으로 처리가 됩니다.

# 02

상세

API 적용 가능한 구매자 사용자 지역: 한국, 대만

[결제완료] 또는 [상품준비중] 상태에 있는 상품을 취소하기 위한 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/cancel

Request 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
주문상품 취소 사유 중 중분류 사유 코드
  • CCTTER // 재고 연동 오류 : 재고 문제로 취소가 발생하는 경우
  • CCPNER // 제휴사이트 오류 : 주소 문제로 고객 배송지 생성 불가시 취소 되는 오류
  • CCPRER // 가격등재오류 : 양사간 상품 가격오류 발생시 취소 되는 오류
상품준비중 상태의 상품 취소(출고중지완료) 시에는 입력값과 상관없이 사유 카테고리가 각각 "배송불만", "품절"로 고정됩니다.
취소 상세 사유는 "파트너 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