예약결제

예약 취소

실행 전 예약을 취소해 원치 않는 결제를 막아요.

이 문서는 아직 실행되지 않은 예약결제를 reserve_id로 취소하는 방법을 설명해요. 예약 취소는 “미래 결제 예약을 제거하는 작업”이에요. 이미 결제가 실행된 뒤에는 예약 취소가 아니라 receipt_id 기준 결제 취소를 호출해야 해요.

핵심 요약

  • 예약 취소는 아직 실행되지 않은 예약만 제거해요.
  • 결제가 이미 실행됐다면 reserve_id가 아니라 receipt_id결제 취소를 호출해야 해요.
  • 결제수단 해지나 탈퇴 처리에서는 예약 취소를 먼저 하고, 그 다음 필요하면 빌링키를 삭제해요.
  • 취소 성공 후 내부 DB의 예약 상태를 cancelled로 바꿔 중복 취소를 막아요.

취소 판단 흐름

예약 취소와 결제 취소의 차이

상황 사용 API 설명
예약 시간이 아직 오지 않음 예약 취소 API 대기 중인 예약을 제거해요
예약 실행 여부가 불확실함 예약 조회 상태를 확인한 뒤 취소 방식을 정해요
이미 결제가 실행됨 결제 취소 receipt_id 기준으로 결제를 취소/환불해요
빌링키 삭제보다 예약 취소가 먼저예요

고객이 결제수단을 해지하거나 탈퇴하더라도 빌링키 삭제만으로 예약결제가 취소된다고 가정하면 안 돼요. 대기 중인 예약을 먼저 취소하고, 그 다음 필요하면 빌링키 삭제를 처리해야 해요.

API 엔드포인트

DELETEhttps://api.bootpay.co.kr/v2/subscribe/payment/reserve/:reserve_idBasic Auth

이미 실행된 예약 결제는 예약 취소 API로 취소할 수 없어요. 실행 후에는 receipt_id결제 취소를 호출해야 해요.

요청 파라미터

파라미터 타입 필수 설명
reserve_id String 필수 예약 결제 ID (URL 파라미터)

코드 예제

import { Bootpay } from '@bootpay/backend-js'

Bootpay.setConfiguration({
    client_key: '[ Client Key ]',
    secret_key: '[ Secret Key ]'
})

try {
    const response = await Bootpay.cancelSubscribeReserve(
        '6261104e1fc19202e6f9420e'
    )
    console.log(response)
} catch (e) {
    console.log(e)
}javascript

응답

성공 응답

{
  "reserve_id": "6261104e1fc19202e6f9420e",
  "success": true
}json

응답 파라미터

파라미터 타입 설명
reserve_id String 취소된 예약 번호
success Boolean 취소 성공 여부

에러 코드

공통 에러

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

코드 메시지 대처 방법
BS_NOT_FOUND (2504) 예약결제 정보를 찾지 못했다 reserve_id가 올바른지 확인해요
BS_UNAUTHORIZED (2509) 예약결제 접근 권한 없음 해당 예약의 소유자 계정으로 요청해요
BS_NOT_READY (2505) 예약결제 대기 상태가 아니다 이미 실행되었거나 취소된 예약이에요. 예약 상태를 조회해요

다음 단계