결제 취소
완료된 결제를 취소(환불)합니다. 로그인 필요.
POST/payment/cancel
Request
Headers
| 이름 | 필수 | 설명 |
|---|---|---|
Content-Type | O | application/json |
Cookie | O | 세션 쿠키 (로그인 필요) |
Request Body
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
id | Long | O | 결제 ID (나의 결제내역에서 확인) |
cancelReason | String | O | 취소 사유 (최대 200자) |
가상계좌 입금 완료 후 취소
가상계좌 입금 완료 건을 취소할 경우 아래 추가 파라미터가 필수입니다:
| 파라미터 | 타입 | 필수 | 설명 |
|---|---|---|---|
refundReceiveAccountBank | String | O | 환불 은행 코드 (은행 코드 참고) |
refundReceiveAccountNumber | String | O | 환불 계좌번호 (- 없이 숫자만, 최대 20자) |
refundReceiveAccountHolderName | String | O | 예금주 (최대 60자) |
카드 결제 취소
{
"id": 142,
"cancelReason": "일정 변경"
}
가상계좌 환불
{
"id": 143,
"cancelReason": "일정 변경",
"refundReceiveAccountBank": "88",
"refundReceiveAccountNumber": "11012345678",
"refundReceiveAccountHolderName": "홍길동"
}
Response
- 200
- 400
- 401
- 403
- 410
- 그 외
200 OK — 취소/환불 성공
{
"status": "success",
"errorType": null,
"errorCode": null,
"message": null,
"data": null
}
400 Bad Request — 검증 실패
| 케이스 | errorType | message |
|---|---|---|
| 결제 ID 누락 | MethodArgumentNotValidException | id은(는) Null 일 수 없습니다. |
| 취소 사유 누락 | MethodArgumentNotValidException | 취소 사유은(는) Null 이거나 Blank 일 수 없습니다. |
| 취소 사유 200자 초과 | MethodArgumentNotValidException | 취소 사유은(는) 최대 200자 이하입니다. |
| 환불 계좌번호 20자 초과 | MethodArgumentNotValidException | 환불 계좌번호는 최대 20자 이하입니다. |
| 환불 예금주 60자 초과 | MethodArgumentNotValidException | 예금주는 최대 60자 이하입니다. |
| 가상계좌 환불 계좌정보 누락 | IllegalArguemntError | 가상계좌 입금 후 취소 요청시 반드시 환불받으실 계좌의 은행, 계좌번호, 예금주 정보를 입력해 주셔야 합니다. |
| 결제내역 미존재 | ResourceNotExistException | 해당하는 결제 진행정보가 존재하지 않습니다. |
| 은행코드 불일치 | TossBankCodeException | 은행코드({bankCode})와 매핑되는 은행명이 존재하지 않습니다. |
{
"status": "error",
"errorType": "IllegalArguemntError",
"errorCode": null,
"message": "가상계좌 입금 후 취소 요청시 반드시 환불받으실 계좌의 은행, 계좌번호, 예금주 정보를 입력해 주셔야 합니다.",
"data": null
}
401 Unauthorized — 로그인 필요
{
"status": "error",
"errorType": "LoginFailException",
"errorCode": null,
"message": "인증되지 않은 사용자입니다.",
"data": null
}
403 Forbidden — 본인 결제만 취소 가능
{
"status": "error",
"errorType": "AuthorizationException",
"errorCode": null,
"message": "당신은 취소하려고 하는 예약내역의 예약자가 아닙니다.",
"data": null
}
410 Gone — 취소 불가 (시간 초과)
{
"status": "error",
"errorType": "ResourceValidTimePassedException",
"errorCode": null,
"message": "결제 취소는 예약시작시각 30분전 까지만 가능합니다.",
"data": null
}
토스페이먼츠 결제 취소 오류
나비잠 서버와 토스페이먼츠 간 결제 취소 인터페이스에서 발생한 에러입니다. 토스 에러 코드가 errorType에, 에러 메시지 앞에 [결제 취소 요청 에러]가 붙어 반환됩니다.
{
"status": "error",
"errorType": "ALREADY_CANCELED_PAYMENT",
"errorCode": null,
"message": "[결제 취소 요청 에러]이미 취소된 결제 입니다.",
"data": null
}
발생 가능한 토스 에러 코드는 결제 취소 오류 코드를 참고하세요.
취소 조건
- 예약 시작 30분 전까지만 취소 가능합니다.
- 세션의
loginId와 결제자 정보(이메일/휴대폰)가 일치해야 합니다.