# Serverseitige Integration Richten Sie Ihre Stripe-Backend-Integration ein. Um eine optimale Backend-Integration einzurichten, müssen Sie sich bei Stripe authentifizieren, die Best Practices für API-Anfragen kennenlernen und Ihre Webhooks entsprechend konfigurieren. ## Authentifizierung bei Stripe Stripe ermöglicht die Authentifizierung über einen API-Schlüssel. Sie können auch [Schlüssel für den eingeschränkten Zugriff](https://docs.stripe.com/keys-best-practices.md#limit-access) erstellen, um den Zugriff auf bestimmte Ressourcen weitergehend zu kontrollieren. Sie können die [geheimen und veröffentlichbaren API-Schlüssel](https://docs.stripe.com/keys.md#obtain-api-keys) verwenden, um Token zu erstellen, benötigen jedoch geheime Schlüssel für jede serverseitige Authentifizierung. Nachfolgend finden Sie ein Beispiel für einen API-Aufruf: ```curl curl https://api.stripe.com/v1/balance \ -u "<>:" ``` ## Best Practices für API-Anfragen Stripe empfiehlt, für alle POST-Anfragen einen [Idempotenz-Schlüssel](https://docs.stripe.com/api/idempotent_requests.md) hinzuzufügen. Stellen Sie sicher, dass es sich bei dem Schlüssel um eine eindeutige Kennung handelt, wie einen Universally Unique Identifier (UUID) oder eine Kombination aus Kunden- und Bestell-ID. Mit diesen Schlüsseln sollte es Ihnen möglich sein, Wiederholungsanfragen bei Auftreten von Netzwerkfehlern auf sichere Weise auszuführen. ### Customer-Objekte: Zahlungsdetails werden gespeichert Um *PaymentMethods* (PaymentMethods represent your customer's payment instruments, used with the Payment Intents or Setup Intents APIs) zu speichern und wiederzuverwenden, müssen Sie sie an [Customer-Objekte](https://docs.stripe.com/payments/save-and-reuse.md) anhängen. Speichern Sie nach dem Anhängen der PaymentMethod an eine Kundin/einen Kunden die [Customer-ID](https://docs.stripe.com/api/customers/object.md#customer_object-id) und [PaymentMethod-ID](https://docs.stripe.com/api/payment_methods/object.md#payment_method_object-id) in Ihrem System, um sie für zukünftige Zahlungen zu verwenden. Da ein Customer-Objekt eine [Liste mit mehreren Zahlungsmethoden](https://docs.stripe.com/api/payment_methods/list.md) haben kann, müssen Sie sowohl die Customer-ID als auch die PaymentMethod-ID angeben, wenn Sie später eine Zahlung erstellen. Nachfolgend finden Sie ein Beispiel für das Erstellen eines Customer-Objekts und die Zuordnung einer PaymentMethod: ```curl curl https://api.stripe.com/v1/customers \ -u "<>:" \ -d name="Jenny Rosen" \ --data-urlencode email="jenny.rosen@stripe.com" \ -d payment_method={PAYMENT_METHOD_ID} ``` ### Rückerstattungen Rückerstattungen werden mithilfe der [Refunds](https://docs.stripe.com/api/refunds.md) API verwaltet und können entweder als vollständiger Betrag oder als Teilbetrag erfolgen. Um eine Transaktion mit Stripe zurückzuerstatten, benötigen Sie entweder die PaymentIntent-ID oder die Zahlungs-ID für die Transaktion, bei der die Rückerstattung durchgeführt werden soll. Rückerstattungen verwenden Ihr *verfügbares* Stripe-Guthaben. Sie können nicht auf Ihr noch ausstehendes Guthaben zugreifen. Wenn Ihr verfügbares Guthaben nicht ausreicht, um den Rückerstattungsbetrag zu decken, bucht Stripe den Restbetrag von Ihrem Bankkonto ab. Sie können Teilrückerstattungen, vollständige Rückerstattungen und mehr als eine Rückerstattung gegen eine Gebühr vornehmen, aber Sie können keinen Gesamtbetrag zurückerstatten, der den ursprünglichen Zahlungsbetrag übersteigt. Sie können Rückerstattungen mithilfe der [API](https://docs.stripe.com/api.md) oder über das [Dashboard](https://dashboard.stripe.com/test/dashboard) ausstellen. Eine Rückerstattung kann nach Ausstellung nicht mehr storniert werden. Es dauert [5 bis 10 Werktage](https://support.stripe.com/questions/customer-refund-processing-time), bis die Rückerstattung auf der Kundenabrechnung erscheint. Wenn Kundinnen/Kunden nach dem Status ihrer Rückerstattung fragen, können Sie diesen die [ARN mitteilen](https://support.stripe.com/questions/acquirer-reference-number-\(arn\)-for-refunds), damit diese bei ihrer Bank nachfragen können. Nachfolgend finden Sie ein Beispiel für eine Rückerstattung für einen PaymentIntent: ```curl curl https://api.stripe.com/v1/refunds \ -u "<>:" \ -d payment_intent={PAYMENT_INTENT_ID} ``` Sehen Sie sich das nachfolgende Beispiel für eine teilweise Rückerstattung mit einem angegebenen Betrag an: ```curl curl https://api.stripe.com/v1/refunds \ -u "<>:" \ -d payment_intent={PAYMENT_INTENT_ID} \ -d amount=1000 ``` ### Zahlungsanfechtungen und Rückbuchungen Ihr Unternehmen ist für den Umgang mit [Zahlungsanfechtungen (auch als Rückbuchungen bezeichnet)](https://docs.stripe.com/disputes.md) verantwortlich. Wir empfehlen Ihnen, Zahlungsanfechtungen aktiv zu beobachten und Belege zu sammeln und einzureichen, um die Gültigkeit von Zahlungen gegebenenfalls belegen zu können. Wir halten angefochtene Gelder zurück und ziehen den Betrag von Ihrem Stripe-Guthaben ab, sobald eine Entscheidung getroffen wurde. Wenn die Zahlungsanfechtung zu Ihren Gunsten entschieden wird, erstatten wir Ihnen das Geld zurück. Sie haben zwei Möglichkeiten, angefochtene Zahlungen zu beobachten: - Verwenden Sie das Stripe-Dashboard und die E-Mail-Benachrichtigungen, die Sie in Ihren Einstellungen für [Angaben zur Person](https://dashboard.stripe.com/settings/user) konfigurieren können. - Über die [Disputes](https://docs.stripe.com/api/disputes.md) API können Sie die Antwort auf eine angefochtene Zahlung und die Übermittlung von Beweisen vollständig automatisieren. ## Webhooks konfigurieren Mithilfe von *Webhooks* (A webhook is a real-time push notification sent to your application as a JSON payload through HTTPS requests) können Sie Ereignisse erfassen, die in Ihrem Konto auftreten (z. B. Auszahlungen auf Ihr Bankkonto, Rückerstattungen, Zahlungen usw.). Sie sind hilfreich bei der Verarbeitung von asynchronen Stripe-[Ereignissen](https://docs.stripe.com/api/events.md) oder bei Ereignissen, für die Sie zusätzliche Aktionen auslösen möchten. ![](https://b.stripecdn.com/docs-statics-srv/assets/webhooks-endpoints.871d5a30be8e59762e191fa45b0421a2.png) Sehen Sie sich unseren empfohlenen Webhook für jeden Typ an: | **Webhook-Typ** | **Empfohlene Webhooks** | | -------------------------- | ---------------------------------------------------------------------------------------------- | | **Abbuchungen** | - `charge.succeeded` - `charge.failed` - `charge.refunded` | | **Rückerstattungen** | - `refund.created` - `refund.failed` | | **Auszahlungen** | - `payout.created` - `payout.paid` - `payout.failed` | | **Payment-Intents** | - `payment_intent.succeeded` - `payment_intent.payment_failed` - `payment_intent.canceled` | | **Angefochtene Zahlungen** | - `radar.early_fraud_warning.created` - `charge.dispute.created` - `charge.dispute.closed` | Verwenden Sie die folgenden Ressourcen, um Ihre Webhooks einzurichten und zu überprüfen, ob sie korrekt konfiguriert wurden. - [Webhooks](https://docs.stripe.com/webhooks.md) - [Webhook-Signaturen überprüfen](https://docs.stripe.com/webhooks.md#verify-events) - [Ereignistypen](https://docs.stripe.com/api/events/types.md) - [Best Practices für die Verwendung von Webhooks](https://docs.stripe.com/webhooks.md#best-practices) - [Webhook-Konfigurationen prüfen](https://dashboard.stripe.com/account/webhooks)