El código de estado HTTP 402 Payment Required es un código de respuesta del cliente que, según la especificación HTTP/1.1 (RFC 2616), está reservado para uso futuro. Su propósito original era indicar que el cliente debe realizar un pago para completar la solicitud. A diferencia de otros códigos 4xx que señalan errores del cliente (como 400 Bad Request o 404 Not Found), el 402 implica una condición de negocio relacionada con la monetización o el acceso a recursos premium, donde la acción correctiva es un pago.
En la práctica, el HTTP 402 no ha sido ampliamente adoptado ni estandarizado para un uso generalizado en la web. Sin embargo, algunos sistemas y APIs lo implementan de forma propietaria o específica para sus modelos de negocio. Por ejemplo, plataformas de pago como Stripe o PayPal pueden utilizarlo internamente o en sus SDKs para indicar que una transacción requiere autenticación adicional o que la cuenta del usuario no tiene fondos suficientes. También puede verse en APIs de servicios premium o de contenido bajo suscripción, donde el acceso a un recurso específico está condicionado a un pago o una suscripción activa, aunque es más común usar 403 Forbidden con un mensaje explicativo.
Para un arquitecto de sistemas, la relevancia del HTTP 402 radica en su potencial para diseñar APIs y servicios con modelos de monetización complejos. Si bien su falta de estandarización general significa que no debe ser la primera opción para errores de pago, un arquitecto podría considerarlo en APIs internas o en sistemas cerrados donde el control sobre el cliente es total. La alternativa más común es usar 403 Forbidden o 401 Unauthorized, acompañados de un cuerpo de respuesta JSON que detalle la razón del error (ej. 'payment_required', 'insufficient_funds'). La decisión clave es si se desea comunicar explícitamente la necesidad de un pago a través del código de estado HTTP, o si es preferible manejar esta lógica en la capa de aplicación con códigos más genéricos y mensajes descriptivos, lo que a menudo ofrece mayor flexibilidad y compatibilidad con clientes HTTP estándar.