주문·배송

취소 요청 철회

대기 상태일 때만 철회돼요. 이미 승인·거절된 요청은 못 되돌려요.

결제 취소 요청을 무효 처리하는 API예요. 취소 요청이 승인 또는 거절되기 전에만 철회가 가능해요.

API 엔드포인트

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

취소 요청이 '대기' 상태(status: cancel_requested)일 때만 철회가 가능해요. 이미 승인/거절된 요청은 철회할 수 없어요.

Bootpay-User-JWT 또는 secretKey 인증의 user_id를 지정하면 해당 회원 주문의 요청만 철회할 수 있어요. 같은 동작의 DELETE /v1/order/cancel/:id도 있어요. 요청·오류 전체는 주문 처리 API를 확인해요.

요청 파라미터

파라미터 타입 필수 설명
:id (경로) String 필수 취소 요청 고유 번호. URL 경로에 넣어요 — 본문 파라미터가 아니에요
user_id String 선택 철회할 주문의 회원 ID (쿼리 또는 본문). secretKey 인증에서만 지정할 수 있어요
SDK 마다 파라미터 이름이 달라요

HTTP 로는 취소 요청 ID 가 경로​​에 들어가요. 아래 예제에서 언어별로 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.withdraw({
    order_cancel_request_history_id: '687a1b2c3d4e5f6789012345'
});
console.log(response);javascript

응답

{
  "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_withdrawn",
    "withdrawn_at": "2025-07-11T03:30:00Z",
    "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 취소 요청 정보가 없어요. 경로의 :id 를 확인해요
ORDER_CANCEL_REQUEST_WITHDRAW_UNABLE 취소 요청 철회가 불가능해요. 요청이 아직 cancel_requested 인지 확인해요
ORDER_CANCEL_REQUEST_WITHDRAW_CRITICAL_ERROR 취소 요청 철회 중 오류가 발생했어요. 관리자에 문의해요

취소 요청 고유 번호는 주문 취소 응답이나 취소 요청 목록의 order_cancellation_request_id 로 확인할 수 있어요.