주문·배송

취소 요청 거절

사유를 남겨 거절해요. supervisor 권한이 필요해요.

고객 또는 외부 시스템에서 요청한 결제 취소 요청을 관리자가 거절하는 API예요. 취소 요청이 내부 정책, 거래 조건, 결제 상태 등의 사유로 승인될 수 없는 경우 사유와 함께 거절 처리해요.

API 엔드포인트

PUThttps://api.bootapi.com/v1/order/cancel/:id/rejectBasic Auth

기본 scope는 supervisor:order_cancel_request_history_reject예요. Bootpay-Role 헤더를 보내지 않으면 역할을 supervisor로 보고, 보내면 그 역할의 scope를 검사해요. 회원 JWT는 필요 없어요. 주문 처리 API 원문을 확인해요.

요청 파라미터

파라미터 타입 필수 설명
:id (경로) String 필수 취소 요청 고유 번호. URL 경로에 넣어요 — 본문 파라미터가 아니에요
message String 선택 반려 사유. 응답의 action_message로 남아요

반려 사유를 action_message에 남기려면 message를 보내요.

SDK 마다 파라미터 이름이 달라요

HTTP 로는 취소 요청 ID 가 경로​​에 들어가고 본문에는 message 만 보내요. 아래 예제에서 언어별로 order_cancellation_request_id · order_cancel_request_history_id 처럼 이름이 다른 것은 각 SDK 가 그 값을 경로로 옮겨 주기 때문이에요. 직접 HTTP 를 호출한다면 경로에 넣으세요.

코드 예제

const { BootpayCommerce } = require('@bootpay/backend-js');

const commerce = new BootpayCommerce({
    client_key: '{client_key}',
    secret_key: '{secret_key}'
});

const response = await commerce.orderCancel.reject({
    order_cancel_request_history_id: '687a1b2c3d4e5f6789012345',
    message: '환불 정책에 따라 취소가 불가합니다.'
});
console.log(response);javascript

응답

성공 응답

주문 취소 응답과 같은 모양이에요 — 주문 필드에 order_cancellation_request_history 가 붙어 와요. 거절 메시지와 시각은 action_message·action_at 이에요.

{
  "order_number": "25071182085082524116",
  "status": "payment_completed",
  "order_cancellation_request_history": {
    "order_cancellation_request_history_id": "687a1b2c3d4e5f6789012345",
    "order_cancellation_request_id": "687a1b2c3d4e5f6789012345",
    "cancel_price": 10000,
    "status": "cancel_rejected",
    "action_at": "2025-07-11T03:30:00Z",
    "action_message": "환불 정책에 따라 취소가 불가합니다.",
    "created_at": "2025-07-11T02:52:09Z"
  }
}json

취소 요청 상태 (status)

키 값 설명
cancel_calculated 0 취소 예상 금액만 계산된 상태
cancel_requested 1 취소 요청이 접수되어 승인 대기 중
cancel_approved 2 관리자가 취소 요청을 승인함
cancel_rejected -10 관리자가 취소 요청을 거절함
cancel_withdrawn -11 사용자가 취소 요청을 철회함

전체 값은 커머스 Enum에 있어요.

에러 코드

공통 에러

인증·권한 관련 에러는 에러 코드표를 참고해요.

코드 메시지 대처 방법
ORDER_CANCEL_REQUEST_NOT_FOUND 취소 요청 정보가 없어요. cancel_request_id를 확인해요
ORDER_CANCEL_NOT_REQUESTED 취소 요청 상태가 아니에요. 요청이 아직 cancel_requested 인지 확인해요
ORDER_CANCEL_REQUEST_REJECT_UNABLE 이미 취소가 처리 되었거나 혹은 다른 상태로 변경되어 취소 요청 철회가 불가능한 요청이에요. 요청 상태를 확인해요
ORDER_CANCEL_REQUEST_REJECT_CRITICAL_ERROR 중대한 오류로 인해 취소 철회요청을 하지 못했어요. 부트페이 관리자에서 주문 정보에서 확인해요. 관리자에 문의해요