HTTPQUERY
Español

402 Payment Required

Uso

Cuando llega un error 402 Payment Required, el cliente entiende que en este momento no se concede el acceso al recurso solicitado.

Estado reservado

402 Payment Required está reservado para un uso futuro. Actualmente su comportamiento no es estándar y varía según la implementación.

Al tratarse de una respuesta no estándar, distintos proveedores han utilizado el estado de formas diferentes. Por ejemplo, la API de Shopify devuelve 402 Payment Required para indicar que la tienda en línea está congelada y que el administrador de la tienda debe abonar un saldo pendiente para restaurar el acceso.

La API de Stripe devuelve 402 Payment Required cuando un intento de pago falla, por ejemplo con una tarjeta rechazada o por fondos insuficientes.

Impacto en SEO

Los motores de búsqueda como Google no indexan una URL que devuelve un estado 402 Payment Required. Las URLs indexadas previamente que devuelven este código de estado se eliminan de los resultados de búsqueda.

Ejemplo

El cliente solicita un recurso y el servidor responde con 402 Payment Required para indicar que el acceso está bloqueado hasta que se realice el pago. El cuerpo de la respuesta explica el motivo y ofrece un enlace para resolver el problema.

Solicitud

GET /tech-news HTTP/1.1
Host: example.com

Respuesta

HTTP/1.1 402 Payment Required
Content-Type: text/html
Content-Length: 187

<html>
  <head>
    <title>Payment Required</title>
  </head>
  <body>
    <p>Access to this resource requires an active
    subscription. Renew at /account/billing.</p>
  </body>
</html>

Cómo solucionarlo

Un 402 Payment Required significa que el servicio espera un pago o una suscripción activa antes de conceder el acceso. Como este estado no es estándar, la solución depende del servicio concreto que devuelve el error.

Compruebe el estado del pago y de la suscripción. Inicie sesión en el panel del servicio y verifique que la cuenta está activa. Una prueba caducada, una suscripción vencida o un saldo pendiente desencadenan este estado. Shopify devuelve 402 cuando una tienda está congelada por facturas impagadas. Stripe devuelve 402 cuando un cargo falla (tarjeta rechazada, fondos insuficientes).

Verifique que los datos de facturación estén actualizados. Una tarjeta de crédito caducada, un cargo fallido o un método de pago eliminado bloquean el acceso. Actualice los datos de pago en el portal de facturación del proveedor. Compruebe si hay retenciones o bloqueos por fraude en el método de pago poniéndose en contacto con el emisor de la tarjeta.

Revise los límites del plan de la API. Algunos servicios devuelven 402 cuando el uso supera el nivel del plan actual. Consulte el panel de uso del proveedor para ver el consumo de la cuota. Mejore el plan o espere a que se reinicie el ciclo de facturación.

Inspeccione el cuerpo de la respuesta para obtener detalles de la resolución. La mayoría de los proveedores incluyen un mensaje de error específico, un código de error o un enlace a una página de facturación en el cuerpo de la respuesta 402. Las respuestas de Stripe incluyen un campo decline_code (insufficient_funds, card_declined, expired_card) que identifica con precisión el motivo del fallo.

Reintente con un método de pago alternativo. Cuando falla una tarjeta o una cuenta bancaria concreta, cambie a otro método de pago y vuelva a enviar la operación. Algunos proveedores permiten configurar de antemano fuentes de pago de reserva.

Póngase en contacto con el proveedor de la API o con el administrador del servicio. Como el comportamiento del 402 no es estándar, la documentación del proveedor define los pasos exactos de resolución. Si el cuerpo de la respuesta carece de detalles, abra un ticket de soporte con el identificador de la solicitud y la marca de tiempo.

Referencias de código

.NET

HttpStatusCode.PaymentRequired

Rust

http::StatusCode::PAYMENT_REQUIRED

Rails

:payment_required

Go

http.StatusPaymentRequired

Symfony

Response::HTTP_PAYMENT_REQUIRED

Python3.5+

http.HTTPStatus.PAYMENT_REQUIRED

Java

java.net.HttpURLConnection.HTTP_PAYMENT_REQUIRED

Apache HttpComponents Core

org.apache.hc.core5.http.HttpStatus.SC_PAYMENT_REQUIRED

Angular

@angular/common/http/HttpStatusCode.PaymentRequired