HTTPQUERY
Deutsch

402 Payment Required

Verwendung

Trifft ein 402-Payment-Required-Fehler ein, weiß der Client, dass der Zugriff auf die angeforderte Ressource derzeit nicht gewährt wird.

Reservierter Status

402 Payment Required ist für die künftige Verwendung reserviert. Derzeit ist sein Verhalten nicht standardisiert und unterscheidet sich je nach Implementierung.

Da es sich um eine nicht standardisierte Antwort handelt, haben verschiedene Anbieter den Status auf unterschiedliche Weise eingesetzt. So gibt die Shopify API 402 Payment Required zurück, um anzuzeigen, dass der Online-Shop eingefroren ist und der Shop-Administrator einen offenen Betrag begleichen muss, um den Zugriff wiederherzustellen.

Die Stripe API gibt 402 Payment Required zurück, wenn ein Zahlungsversuch fehlschlägt, etwa bei einer abgelehnten Karte oder unzureichender Deckung.

SEO-Auswirkung

Suchmaschinen wie Google indexieren keine URL, die den Status 402 Payment Required zurückgibt. Zuvor indexierte URLs, die diesen Statuscode zurückgeben, werden aus den Suchergebnissen entfernt.

Beispiel

Der Client fordert eine Ressource an und der Server antwortet mit 402 Payment Required, um anzuzeigen, dass der Zugriff bis zur Zahlung blockiert ist. Der Antwortrumpf erläutert den Grund und stellt einen Link zur Lösung des Problems bereit.

Anfrage

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

Antwort

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>

Behebung

Ein 402 Payment Required bedeutet, dass der Dienst eine Zahlung oder ein aktives Abonnement erwartet, bevor er Zugriff gewährt. Da dieser Status nicht standardisiert ist, hängt die Behebung vom konkreten Dienst ab, der den Fehler zurückgibt.

Prüfen Sie den Zahlungs- und Abonnementstatus. Melden Sie sich im Dashboard des Dienstes an und stellen Sie sicher, dass das Konto aktiv ist. Eine abgelaufene Testphase, ein ausgelaufenes Abonnement oder ein offener Betrag lösen diesen Status aus. Shopify gibt 402 zurück, wenn ein Shop wegen unbezahlter Rechnungen eingefroren ist. Stripe gibt 402 zurück, wenn eine Abbuchung fehlschlägt (abgelehnte Karte, unzureichende Deckung).

Stellen Sie sicher, dass die Rechnungsdaten aktuell sind. Eine abgelaufene Kreditkarte, eine fehlgeschlagene Abbuchung oder eine entfernte Zahlungsmethode blockieren den Zugriff. Aktualisieren Sie die Zahlungsdaten über das Rechnungsportal des Anbieters. Prüfen Sie durch Kontaktaufnahme mit dem Kartenherausgeber, ob auf der Zahlungsmethode Sperren oder Betrugsblockaden liegen.

Überprüfen Sie die Limits des API-Tarifs. Manche Dienste geben 402 zurück, wenn die Nutzung die aktuelle Tarifstufe überschreitet. Sehen Sie im Nutzungs-Dashboard des Anbieters nach, wie viel vom Kontingent verbraucht ist. Führen Sie ein Upgrade des Tarifs durch oder warten Sie auf das Zurücksetzen des Abrechnungszyklus.

Untersuchen Sie den Antwortrumpf auf Hinweise zur Lösung. Die meisten Anbieter nehmen eine konkrete Fehlermeldung, einen Fehlercode oder einen Link zu einer Rechnungsseite in den Rumpf der 402-Antwort auf. Stripe-Antworten enthalten ein Feld decline_code (insufficient_funds, card_declined, expired_card), das den Grund des Fehlschlags genau benennt.

Versuchen Sie es erneut mit einer anderen Zahlungsmethode. Wenn eine bestimmte Karte oder ein bestimmtes Bankkonto fehlschlägt, wechseln Sie zu einer anderen Zahlungsmethode und senden Sie erneut ab. Manche Anbieter erlauben vorab konfigurierte Ersatz-Zahlungsquellen.

Wenden Sie sich an den API-Anbieter oder den Dienstadministrator. Da das Verhalten von 402 nicht standardisiert ist, legt die Dokumentation des Anbieters die genauen Lösungsschritte fest. Fehlen im Antwortrumpf Details, eröffnen Sie ein Support-Ticket mit Anfrage-ID und Zeitstempel.

Code-Referenzen

.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