# Autorisierung in Echtzeit mit Issuing Informationen zu Autorisierungen in Echtzeit. Ihr synchroner Webhook wird nur für Autorisierungsanfragen verwendet. Alle weiteren Benachrichtigungen werden an Ihren regulären Webhook-Endpoint gesendet. [Überwachen Sie Ihre Webhook-Antworten](https://docs.stripe.com/issuing/controls/real-time-authorizations.md#monitor-your-webhook-responses), um die Integrität der Integration sicherzustellen. Mit dem synchronen Webhook können Sie Autorisierungsanfragen in Echtzeit genehmigen oder ablehnen. Ihr Webhook-Endpoint kann in Ihren [Einstellungen](https://dashboard.stripe.com/account/issuing) konfiguriert werden. Wenn eine Karte für einen Kauf verwendet wird, erstellt Stripe eine `issuing_authorization.request` und sendet sie zur Genehmigung an Ihren konfigurierten Endpoint. Beginnen Sie mit unserem [interaktiven Leitfaden für Echtzeitautorisierungen](https://docs.stripe.com/issuing/controls/real-time-authorizations/quickstart.md). ## Auf Autorisierungsanfragen reagieren Sie können auf Autorisierungsanfragen antworten, indem Sie direkt auf das Webhook-Ereignis reagieren. ### Direkt antworten Reagieren Sie direkt auf das Webhook-Ereignis `issuing_authorization.request`, um eine Autorisierung nach Erhalt entweder zu genehmigen oder abzulehnen. #### Webhook-Antwort Unser Webhook akzeptiert `JSON`-Antworten mit den folgenden Parametern: **Status-Code:** Geben Sie `200` zurück, um Erfolg anzuzeigen. **Titel:** | Feldname | erforderlich oder optional | Beschreibung | | ------------------ | -------------------------- | ---------------------------------------------------------------------------------------------------------------- | | **Stripe-Version** | erforderlich | Unterstützte Werte finden Sie unter [API Versioning](https://docs.stripe.com/api/versioning.md). | | **Inhaltstyp** | optional | Der einzige Inhaltstyp, der für Webhook-Antworten für die Autorisierung akzeptiert wird, ist `application/json`. | **Haupttext:** | Feldname | erforderlich oder optional | Typ | Beschreibung | | -------------------------------------------- | -------------------------- | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **genehmigt** | erforderlich | Boolesch | Legen Sie `true` fest, um eine Autorisierung zu genehmigen, und `false`, um sie abzulehnen. | | **Betrag** | optional | Ganzzahl | Wenn Eigenschaft `pending_request.is_amount_controllable` der Autorisierung `true` ist, können Sie diesen Wert angeben, um zu steuern, wie viel für die Autorisierung einbehalten werden soll. Der Betrag muss positiv sein. | | **Metadaten** | optional | Satz von [Schlüsselwertpaaren](https://docs.stripe.com/api/metadata.md) | Dies kann nützlich sein, um zusätzliche Informationen über das Objekt in einem strukturierten Format zu speichern. | | **send\_fraud\_challenges** (Public preview) | optional | Array von Strings | Sie können eine Betrugsanfrage für diese Autorisierung nur per SMS senden. Lassen Sie das Feld leer, wenn Sie keine Anfrage senden möchten. | #### Ruby ```ruby # Using Sinatra. require 'sinatra' require 'stripe' set :port, 4242 # Don't put any keys in code. See https://docs.stripe.com/keys-best-practices. # Find your keys at https://dashboard.stripe.com/apikeys. Stripe.api_key = '<>' # Replace with a real secret. You can find your endpoint's secret in your webhook settings. webhook_secret = 'whsec_...' post '/webhook' do payload = request.body.read sig_header = request.env['HTTP_STRIPE_SIGNATURE'] event = nil # Verify webhook signature and extract the event. begin event = Stripe::Webhook.construct_event( payload, sig_header, webhook_secret ) rescue JSON::ParserError => e # Invalid payload. status 400 return rescue Stripe::SignatureVerificationError => e # Invalid signature. status 400 return end if event['type'] == 'issuing_authorization.request' auth = event['data']['object'] # ... custom business logic status 200 header 'Stripe-Version' => '2025-03-31.basil', 'Content-Type' => 'application/json' data = { 'approved' => true } body data.to_json end # ...handle other cases end ``` Wenn Stripe nicht innerhalb von 2 Sekunden Ihre Antwort zur Genehmigung oder Ablehnung erhält, wird die `Authorization` basierend auf Ihren [Timeout-Einstellungen](https://dashboard.stripe.com/account/issuing) oder [Autopilot-Einstellungen (falls konfiguriert)](https://docs.stripe.com/issuing/controls/real-time-authorizations.md#autopilot) automatisch genehmigt oder abgelehnt… > Sollte Ihr Issuing-Guthaben nicht ausreichend sein, um die eingehende Autorisierung abzudecken, wird die Autorisierung abgelehnt und Ihr Webhook-Endpoint erhält kein `issuing_authorization.request`-Ereignis. Weitere Informationen zum Aufladen Ihres Issuing-Guthabens [finden Sie hier](https://docs.stripe.com/issuing/funding/balance.md). ## Autorisierungsanfragen Wenn eine Autorisierungsanfrage an Ihren Webhook gesendet wird, wird der angeforderte `amount` in `pending_request` gespeichert. ```json { "id": "iauth_1CmMk2IyNTgGDVfzFKlCm0gU", "object": "issuing_authorization", "approved": false, "amount": 0, "currency": "usd", "status": "pending", ... "pending_request": {"amount": 400, "currency": "usd", "merchant_amount": 360, "merchant_currency": "gbp" } } ``` Der oberste `amount` in der Anfrage wird auf 0 festgelegt und `approved` erhält den Wert „false“. Nachdem Sie auf die Anfrage reagiert haben, zeigt der oberste `amount` den genehmigten oder abgelehnten Gesamtbetrag an, das Feld `approved` wird aktualisiert und `pending_request` wird auf null festgelegt. ### Webhooks lokal testen Verwenden Sie die [Stripe-CLI](https://docs.stripe.com/stripe-cli.md), um Webhooks lokal zu testen. Nach der Installation können Sie Ereignisse an Ihren Server weiterleiten: ```bash stripe listen --forward-to localhost:4242/webhook Ready! Your webhook signing secret is '{{WEBHOOK_SIGNING_SECRET}}' (^C to quit) ``` In einem anderen Datenterminal können Sie dann `issuing_authorization.request`-Ereignisse über die CLI manuell auslösen, um das Testen zu vereinfachen. ```bash stripe trigger issuing_authorization.request ``` Erfahren Sie mehr über die [Einrichtung von Webhooks](https://docs.stripe.com/webhooks.md). ## Überwachen Sie Ihre Webhook-Antworten Überwachen Sie Ihre Webhook-Antworten auf Zeitüberschreitungen und Fehler, indem Sie die Webhook-Ereignisse `issuing_authorization.created` und `issuing_authorization.updated` abonnieren. Wenn die Eigenschaft [request_history.reason](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-request_history-reason) entweder `webhook_error` oder `webhook_timeout` ist, empfängt Stripe Ihre Antworten nicht. Verlassen Sie sich nicht auf `approved`, um den Integritätsstatus der Integration zu beurteilen, da Autopilot während einer Fehlerbedingung in Ihrem Namen genehmigen kann. Untersuchen Sie beispielsweise, ob eine Autorisierung `approved: true`, aber `request_history.reason: webhook_error` aufweist. Wir zeigen detaillierte Fehlermeldungen im Feld [request_history.reason_message](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-request_history-reason_message) an. ## Autopilot (Public preview) Autopilot bietet Ausweichoptionen, mit denen Sie weiterhin Autorisierungsentscheidungen in Echtzeit treffen können, wenn Ihre Systeme ausfallen, nicht auf eine Autorisierungsanfrage reagieren oder eine ungültige Antwort liefern. Autopilot trifft in Ihrem Namen eine Autorisierungsentscheidung auf der Grundlage eines vordefinierten Regelwerks. Wir erstellen `Authorization`-Objekte zur Übermittlung, um Autopilot-Transaktionen abzugleichen. Wenn Autopilot eine Autorisierung genehmigt oder ablehnt, ist die Eigenschaft [request_history.reason](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-request_history-reason) des Webhooks `issuing_authorization.created` entweder `webhook_error` oder `webhook_timeout`: - `webhook_error`, wenn Sie auf den Webhook für die Echtzeitautorisierung mit einer ungültigen [Stripe API-Version](https://docs.stripe.com/api/versioning.md) in den [Anfrage-Headern](https://docs.stripe.com/issuing/controls/real-time-authorizations.md#respond-directly) antworten oder wenn wir Ihre Antwort nicht verarbeiten können. - `webhook_timeout` für alle anderen Fehlermodi. Zur Konfiguration von Autopilot [kontaktieren Sie den Stripe-Support](https://support.stripe.com/contact/login) und [überwachen Sie](https://docs.stripe.com/issuing/controls/real-time-authorizations.md#monitor-your-webhook-responses) den Vorgang. ## Stripe Autopilot (Public preview) Nutzer/innen mit ihren eigenen Bank-Identifikationsnummern (BIN) kann Stripe Autopilot bei Autorisierungsentscheidungen helfen, wenn das Kartennetzwerk Stripe nicht erreichen kann. Wenn eine Autorisierung über Stripe Autopilot genehmigt oder abgelehnt wird, während Stripe nicht aktiv ist, ist die Eigenschaft [request_history.reason](https://docs.stripe.com/api/issuing/authorizations/object.md#issuing_authorization_object-request_history-reason) des Webhooks `issuing_authorization.created` `network_fallback`. Zur Konfiguration von Stripe Autopilot [kontaktieren Sie den Stripe-Support](https://support.stripe.com/contact/login) und [überwachen Sie](https://docs.stripe.com/issuing/controls/real-time-authorizations.md#monitor-your-webhook-responses) den Vorgang. ## Fraud Challenges durch Webhooks (Public preview) [Fraud Challenges](https://docs.stripe.com/issuing/controls/fraud-challenges.md) ermöglichen es Ihren Karteninhaber/innen, nicht-betrügerische Transaktionen zu wiederholen, die andernfalls blockiert worden wären. Fraud Challenges sind zwar allgemein verfügbar, doch die Möglichkeit, sie selbst durch Webhook-Antworten in Echtzeit auszulösen, befindet sich in der öffentlichen Vorschau. Passen Sie Ihre Antwort an den `issuing_authorization.request`-Webhook an, um die Regeln zu verwalten, die beim Senden einer Fraud Challenge festgelegt werden. Sie können Fraud Challenges in Szenarien auslösen, in denen Sie Ausgaben erkennen, die verdächtig erscheinen und eine zusätzliche Verifizierung wünschen (zum Beispiel wenn Karteninhaber/innen ihre Karte außerhalb des Landes verwenden). Lehnen Sie dazu den Webhook `issuing_authorization.request` ab und nehmen Sie das Feld `send_fraud_challenges` mit dem Wert `["sms"]` auf. Das Auslösen von Fraud Challenges durch Webhook-Antworten in Echtzeit ist derzeit auf Vorschau-Nutzer/innen beschränkt. Sie müssen eine Kundin oder ein Kunde von Issuing sein, um an der Vorschau teilzunehmen. Um Zugriff auf die Vorschau zu beantragen, melden Sie sich in Ihrem Stripe-Konto an und aktualisieren Sie die Seite. Für weitere Informationen [wenden Sie sich an Stripe](https://stripe.com/contact/sales).