해당 주문에 대한 결제 취소 요청 내역을 조회해요. 조회된 요청은 승인, 거절, 철회 등의 처리에 활용돼요.
API 엔드포인트
취소 요청 상태 (status)
| 키 | 값 | 설명 |
|---|---|---|
cancel_requested |
1 |
취소 요청이 접수되어 승인 대기 중 |
cancel_approved |
2 |
관리자가 취소 요청을 승인함 |
cancel_rejected |
-10 |
관리자가 취소 요청을 거절함 |
cancel_withdrawn |
-11 |
사용자가 취소 요청을 철회함 |
요청 파라미터
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
order_id |
String | 선택 | 주문 문서 ID (24자리 ObjectId) |
order_number |
String | 선택 | 부트페이가 채번한 주문 고유번호 (예: 25071182085082524116) |
user_id |
String | 선택 | 조회할 회원 ID. secretKey 인증에서 지정하면 그 회원 주문의 취소 요청만 조회해요 |
order_id 또는 order_number 중 하나를 필수로 지정해야 해요. 최신 요청부터 최대 20건이 와요.
주문 지정은 필수예요
order_id·order_number를 둘 다 빼면 404예요. Bootpay-User-JWT 또는 secretKey 인증의 user_id를 지정하면 그 회원의 주문만 볼 수 있어요. 주문 처리 API 원문을 확인해요.
코드 예제
const { BootpayCommerce } = require('@bootpay/backend-js');
const commerce = new BootpayCommerce({
client_key: '{client_key}',
secret_key: '{secret_key}'
});
const response = await commerce.orderCancel.list({
order_number: '25071182085082524116'
});
console.log(response);javascriptfrom bootpay_backend.commerce import BootpayCommerce
commerce = BootpayCommerce('{client_key}', '{secret_key}')
response = commerce.order_cancel.list({
'order_number': '25071182085082524116'
})
print(response)pythonuse Bootpay\ServerPhp\BootpayCommerceApi;
$commerce = new BootpayCommerceApi('{client_key}', '{secret_key}');
$response = $commerce->orderCancel->list([
'order_number' => '25071182085082524116'
]);
print_r($response);phpimport kr.co.bootpay.store.BootpayStore;
import kr.co.bootpay.store.model.request.TokenPayload;
import kr.co.bootpay.store.model.request.order.cancel.OrderCancelListParams;
import kr.co.bootpay.store.model.response.BootpayStoreResponse;
TokenPayload tp = new TokenPayload("{client_key}", "{secret_key}");
BootpayStore commerce = new BootpayStore(tp).withToken();
OrderCancelListParams params = new OrderCancelListParams();
params.orderNumber = "25071182085082524116";
BootpayStoreResponse response = commerce.orderCancel.list(params);
System.out.println(response);javarequire 'bootpay'
commerce = BootpayStore::RestClient.new(client_key: '{client_key}', secret_key: '{secret_key}')
response = commerce.order_cancel_list(
order_number: '25071182085082524116'
)
puts responserubyimport "github.com/bootpay/backend-go/v2"
commerce := bootpay.NewCommerceApi("{client_key}", "{secret_key}")
response, err := commerce.OrderCancel.List(bootpay.OrderCancelListParams{
OrderNumber: "25071182085082524116",
})
fmt.Println(response)gousing Bootpay.Commerce;
var commerce = new BootpayCommerceApi("{client_key}", "{secret_key}");
var response = await commerce.OrderCancel.List(new {
order_number = "25071182085082524116"
});
Console.WriteLine(response);csharp응답
성공 응답
{
"count": 2,
"list": [
{
"order_cancellation_request_history_id": "687a1b2c3d4e5f6789012345",
"order_cancellation_request_id": "687a1b2c3d4e5f6789012345",
"cancel_id": "CANCEL_001",
"cancel_price": 10000,
"cancel_message": "고객 요청에 의한 취소",
"cancel_requester": "홍길동",
"status": "cancel_requested",
"created_at": "2025-07-11T02:52:09Z"
},
{
"order_cancellation_request_history_id": "687a1b2c3d4e5f6789012346",
"order_cancellation_request_id": "687a1b2c3d4e5f6789012346",
"cancel_id": "CANCEL_002",
"cancel_price": 5000,
"cancel_message": "상품 불량",
"cancel_requester": "김철수",
"status": "cancel_approved",
"action_at": "2025-07-11T03:30:00Z",
"created_at": "2025-07-11T03:00:00Z"
}
]
}json승인·거절 메시지와 시각은 action_message·action_at, 철회 시각은 withdrawn_at 이에요. 상품 단위 취소면 cancel_products 가 함께 와요. 승인·거절·철회 경로의 :id 에는 order_cancellation_request_id 를 넣어요.
에러 코드
공통 에러
인증·권한 관련 에러는 에러 코드표를 참고해요.
| 코드 | 메시지 | 대처 방법 |
|---|---|---|
ORDER_NOT_FOUND |
주문내역을 찾지 못했어요. | order_id를 확인해요 |
