HTTP 402 Payment Required — Meaning, Causes & How to Fix
Reserved for future use; sometimes used by APIs to signal a payment or quota requirement.
- Code
- 402
- Name
- Payment Required
- Class
- 4xx Client Error
- Specification
- RFC 9110 §15.5.3
- Cacheable by default
- Only with explicit Cache-Control / Expires
What HTTP 402 means
402 Payment Required is reserved for future use in the HTTP standard — it has no defined semantics. Some APIs and SaaS platforms use it anyway to say a subscription lapsed, a card was declined or a paid plan is needed.
Common causes
- An API account ran out of credits or its subscription expired.
- A payment provider signalling a failed charge.
How to fix it
For site owners
- If you use 402, document it and include a machine-readable reason in the body.
- For simple rate limits, 429 is the standard code.
For visitors & developers
- Check the billing status of your account with the API provider.
SEO impact
Pages that return 402 are not indexed. For paywalled articles, Google recommends serving 200 with paywall structured data rather than an error code.
Example 402 response
HTTP/1.1 402 Payment Required
Content-Type: application/json
{"error":"subscription_inactive"}
Related status codes
Check or look up another code
Search and filter every code in the HTTP Status Codes tool, browse the full list by class, or read HTTP status codes explained: the complete developer guide.
Open HTTP Status Codes tool →All status codesFrequently asked questions
What does HTTP 402 mean?
HTTP 402 Payment Required is a 4xx Client Error status code. Reserved for future use; sometimes used by APIs to signal a payment or quota requirement.
Is 402 an official status code?
It is registered and listed in RFC 9110, but marked “reserved for future use”, so its meaning is defined by each API that uses it.
Which specification defines 402?
It is defined in RFC 9110 §15.5.3.
Is a 402 response cacheable?
Not by default. A 402 response is only stored by caches when it carries explicit freshness information such as Cache-Control: max-age or Expires.