予約済み。一部の API では支払いの問題に使われます。
使いどころ
プランの上限に達したか、支払いに失敗しました。
よくある原因と対処法
402 は将来の使用のために予約されたまま標準化されなかったため、意味は API によって異なります。Stripe はカードが拒否されたり請求が失敗したりしたときに 402 を返し、理由はエラーのボディに含まれます。Shopify は未払いでストアが凍結されたときに返します。他の SaaS の API は、試用期間の終了時やプランの上限に達したときに使います。ステータスだけでなく、ボディ内のエラーコードを読んでください。
402 を自動で再試行してはいけません。誰かが支払い情報を更新するかプランをアップグレードするまで解消しないので、課金ページへのリンクを付けて人間に知らせてください。API を設計する場合、402 は課金によるブロックに適した選択肢で、権限の 403 やレート制限の 429 とも区別できますが、ドキュメントに明記しましょう。汎用的なクライアントは、単に未知の 4xx エラーとして扱うからです。
クライアントエラー (4xx)
4xx はクライアントエラーです。リクエスト自体が誤っている、認証されていない、または存在しないものを指しています。同じリクエストを再試行しても解決しません。
レスポンスでの表示
HTTP/1.1 402 Payment Required返し方
| Node.js / Express | res.status(402).end() |
|---|---|
| Python / Flask | return '', 402 |
| nginx | return 402; |
確認方法
curl -s -o /dev/null -w "%{http_code}\n" https://example.com/