402

개요

402 Payment Required는 원래 미래 사용을 위해 예약(reserved)된 코드로, HTTP 표준에서 공식적으로 확정된 용법은 없습니다. 그럼에도 일부 API·SaaS는 유료 결제나 크레딧 충전이 필요함을 알리는 용도로 실용적으로 사용합니다.

무료 플랜의 할당량 소진, 크레딧 부족, 구독 만료 등 "돈을 내야 계속 쓸 수 있다"는 상황을 표현할 때 채택됩니다. 표준화된 헤더 규약이 없으므로 구체적 안내는 보통 응답 본문에 담습니다.

언제 발생하나

요청 / 응답 예시

요청
POST /api/v1/generate HTTP/1.1
Host: api.example.com
Authorization: Bearer sk_live_...
응답
HTTP/1.1 402 Payment Required
Content-Type: application/json

{"error":"quota_exceeded","message":"Free tier limit reached","upgrade_url":"/billing"}

코드로 보기

app.use('/api', (req, res, next) => {
  if (account.creditsLeft <= 0)
    return res.status(402).json({ error: 'quota_exceeded', upgrade_url: '/billing' });
  next();
});

흔한 원인

해결 방법

실무 참고

관련 상태코드

관련 헤더

스펙 근거