402 Payment Required

予約済み。一部の API では支払いの問題に使われます。

使いどころ

プランの上限に達したか、支払いに失敗しました。

よくある原因と対処法

402 は将来の使用のために予約されたまま標準化されなかったため、意味は API によって異なります。Stripe はカードが拒否されたり請求が失敗したりしたときに 402 を返し、理由はエラーのボディに含まれます。Shopify は未払いでストアが凍結されたときに返します。他の SaaS の API は、試用期間の終了時やプランの上限に達したときに使います。ステータスだけでなく、ボディ内のエラーコードを読んでください。

402 を自動で再試行してはいけません。誰かが支払い情報を更新するかプランをアップグレードするまで解消しないので、課金ページへのリンクを付けて人間に知らせてください。API を設計する場合、402 は課金によるブロックに適した選択肢で、権限の 403 やレート制限の 429 とも区別できますが、ドキュメントに明記しましょう。汎用的なクライアントは、単に未知の 4xx エラーとして扱うからです。

クライアントエラー (4xx)

4xx はクライアントエラーです。リクエスト自体が誤っている、認証されていない、または存在しないものを指しています。同じリクエストを再試行しても解決しません。

レスポンスでの表示

HTTP/1.1 402 Payment Required

返し方

Node.js / Expressres.status(402).end()
Python / Flaskreturn '', 402
nginxreturn 402;

確認方法

curl -s -o /dev/null -w "%{http_code}\n" https://example.com/

HTTP ステータスコードを開く