결제 취소
POST/payments/:payment_id/cancel
PENDING 결제만 취소 가능하다. PROCESSING 결제는 외부 PG 의 통제 영역이라 우리가 단독으로 취소하면 PG 의 PAID 확정과 race 가 발생하므로 409 INVALID_PAYMENT_STATE 으로 거부된다. PAID / EXPIRED / CANCELLED / *_REFUNDED 도 동일하게 409 를 반환한다. Buyer 가 PROCESSING 중 이탈하면 expiry 워커가 TTL 만료 시 EXPIRED 로 종결하거나, PG webhook 이 FAILED 로 종료한다.
Idempotency-Key 헤더는 optional. 동일 키로 재시도하면 첫 응답을 그대로 돌려준다 (24h TTL, Redis 캐시).
Request
Responses
- 200
- 401
- 404
- 409
결제 취소 성공
인증 실패
리소스 없음
유효하지 않은 상태 전이. PROCESSING / PAID / EXPIRED / CANCELLED / PARTIALLY_REFUNDED / REFUNDED 결제는 취소할 수 없다.