Zahlungen per Sofort akzeptieren
So akzeptieren Sie Zahlungen per Sofort, einer gängigen Zahlungsmethode in Europa.
Achtung
SOFORT has been discontinued as of March 31, 2025. For more information, read our support page.
Vorsicht
Wir empfehlen Ihnen, den Leitfaden Zahlung akzeptieren zu befolgen, es sei denn, Sie müssen eine manuelle serverseitige Bestätigung verwenden oder Ihre Integration erfordert die separate Angabe von Zahlungsmethoden. Wenn Sie Elements bereits integriert haben, lesen Sie den Migrationsleitfaden für Payment Element.
Bei Sofort handelt es sich um eine Zahlungsmethode für die einmalige Nutzung mit verzögerter Benachrichtigung, bei der Kundinnen und Kunden ihre Zahlungen authentifizieren müssen. Kundinnen und Kunden zahlen mit Sofort, indem sie von Ihrer Website auf das Portal ihrer Bank weitergeleitet werden, um die Zahlung zu authentifizieren. Eine Benachrichtigung über den Erfolg oder das Fehlschlagen der Zahlung erfolgt in der Regel innerhalb von 2 bis 14 Tagen.
Notiz
Bei der Annahme von Sofort-Zahlungen gelten die Nutzungsbedingungen für Sofort.
Stripe einrichtenServerseitigClientseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Serverseitig
Diese Integration erfordert Endpoints auf Ihrem Server, die mit der Stripe-API kommunizieren können. Nutzen Sie die offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:
Clientseitig
Das Stripe iOS SDK ist Open Source, vollständig dokumentiert und kompatibel mit Apps, die iOS 13 oder höher unterstützen.
Notiz
For details on the latest SDK release and past versions, see the Releases page on GitHub. To receive notifications when a new release is published, watch releases for the repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe, um es beim Start der App auszuführen. Dadurch kann Ihre App Anfragen an die Stripe-API senden.
PaymentIntent erstellenServerseitig
Ein PaymentIntent stellt Ihre Absicht dar, Zahlungen von Kundinnen und Kunden einzuziehen, und dokumentiert den gesamten Zahlungsvorgang.
Serverseitig
Erstellen Sie eine PaymentIntent
auf Ihrem Server und geben Sie den einzuziehenden amount
und die Währung eur
an (Sofort unterstützt keine anderen Währungen). Wenn Sie über eine bestehende Payment Intents-Integration verfügen, fügen Sie sofort
der Liste der Arten der Zahlungsmethoden hinzu.
Bevorzugte Sprache ändern
Die Autorisierungsseite für Sofort zeigt Stripe standardmäßig in der Sprache an, die dem angegebenen Ländercode entspricht. Sie können diese Spracheinstellung an die bevorzugte Sprache der Kundin/des Kunden anpssen, indem Sie sie in der Anfrage übermitteln und den Wert der Eigenschaft preferred_
ändern. Die unterstützten Werte sind de
, en
, es
, it
, fr
, nl
und pl
.
Statt das gesamte PaymentIntent-Objekt an Ihre App zu übergeben, übergeben Sie nur das Client-Geheimnis. Das Client-Geheimnis des PaymentIntent ist ein eindeutiger Schlüssel, mit dem Sie die Zahlung bestätigen und Zahlungsdetails auf dem Client aktualisieren können, ohne dass eine Manipulation vertraulicher Daten, wie beispielsweise des Zahlungsbetrags, möglich ist.
Clientseitig
Fordern Sie auf dem Client einen PaymentIntent von Ihrem Server an und speichern Sie sein Client-Geheimnis.
Zahlung an Stripe sendenClientseitig
Wenn ein Kunde auf „Zahlung mit Sofort“ klickt, bestätigen Sie die PaymentIntent
, um die Zahlung abzuschließen. Konfigurieren Sie ein STPPaymentIntentParams Objekt mit dem Client-Geheimnis PaymentIntent
von Ihrem Server. Sofort verlangt, dass Sie den Ländercode der Bank Ihrer Kundin/Ihres Kunden erfassen und in STPPaymentMethodSofortParams
übergeben.
Anstatt das gesamte PaymentIntent
-Objekt an den Client zu senden, wird die Verwendung des Client-Geheimnisses empfohlen. Dies unterscheidet sich von Ihren API-Schlüsseln, die Stripe-API-Anfragen authentifizieren. Das Client-Geheimnis ist eine Zeichenkette, mit der Ihre App auf wichtige Felder aus dem PaymentIntent zugreifen kann (z. B. status
), während sensible Felder verborgen bleiben (z. B. customer
).
Rückgabe-URL einrichten
Das iOS SDK kann zur Durchführung einer Zahlung per Sofort eine Webansicht in Ihrer App anzeigen. Wenn die Authentifizierung abgeschlossen ist, muss Ihre Kundin/Ihr Kunde sie nicht schließen, sondern dies geschieht automatisch. Um dieses Verhalten zu aktivieren, konfigurieren Sie ein benutzerdefiniertes URL-Schema oder einen Universal-Link und richten Sie Ihre App so ein, dass die URL an das SDK weitergeleitet wird.
Rufen Sie STPPaymentHandler confirmPayment auf, um die Zahlung abzuschließen.
Ereignisse nach Zahlung verarbeiten
As Sofort is a delayed notification payment method, the PaymentIntent’s status remains in a payment_intent.processing state for up to 14 days from its creation (also known as the cutoff date). In a sandbox, the PaymentIntent’s status remains in the processing state for three minutes to simulate this.
- Stripe empfiehlt, Bestellungen während des Verarbeitungszustands abzuwickeln. Im Durchschnitt können Sie davon ausgehen, dass etwa 0,2 % der Sofort-Zahlungsversuche nach dem Wechsel in den Verarbeitungszustand fehlschlagen. Dies gilt nur für Sofort-Zahlungen aufgrund der geringen Fehlerquote und nicht für andere Zahlungsmethoden mit verzögerter Benachrichtigung.
- Möglicherweise ziehen Sie es vor, Bestellungen erst nach Erhalt des payment_intent.succeeded-Ereignisses auszuführen. Stripe sendet dieses Ereignis, nachdem der Zahlungsversuch bestätigt wurde und die Gelder garantiert sind.
- Falls eine Kundin/ein Kunde nicht bezahlt, sendet Stripe das payment_intent.failed-Ereignis, und der PaymentIntent wechselt wieder in den Status
requires_
.payment_ method
Verwenden Sie das Dashboard, einen benutzerdefinierten Webhook oder eine Partnerlösung, um diese Ereignisse zu empfangen und Aktionen, wie das Versenden einer Bestellbestätigung per E-Mail, das Erfassen des Verkaufs in einer Datenbank oder das Initiieren eines Versandworkflows, auszuführen.
Manuell
Im Stripe-Dashboard können Sie alle Stripe-Zahlungen anzeigen, Zahlungsbelege per E-Mail versenden, Auszahlungen abwickeln oder fehlgeschlagene Zahlungen erneut durchführen.
Benutzerdefinierter Code
Erstellen Sie einen Webhook-Handler, um Ereignisse zu überwachen und benutzerdefinierte asynchrone Zahlungsabläufe zu erstellen. Mit der Stripe-CLI können Sie Ihre Webhook-Integration lokal testen und Fehler beheben.
Vorgefertigte Apps
Verarbeiten Sie häufige Geschäftsereignisse, wie Automatisierung oder Marketing und Vertrieb durch Integration einer Partneranwendung.
Angefochtene Zahlungen
Das Risiko von Betrug oder Zahlungen, die nicht zugeordnet werden können, ist gering, da Kund/innen jede Zahlung bei ihrer Bank authentifizieren müssen. Dadurch kommt es nicht zu Zahlungsanfechtungen, die Rückbuchungen und damit eine Abbuchung von Ihrem Stripe-Konto nach sich ziehen können.
Fehlgeschlagene Versuche
Wenn ein Zahlungsversuch nicht innerhalb der Frist bestätigt wurde, wechselt der Status des PaymentIntent-Objekts automatisch von processing
zu requires_
. Zudem erhalten Kundinnen und Kunden automatisch eine Rückerstattung, wenn die Gelder nach der Zahlungsfrist eingehen.
Im Durchschnitt schlagen etwa 0,2 % der Zahlungsversuche mit Sofort fehl. Das kann je nach Branche oder Kundenstamm variieren. Unter Umständen empfiehlt es sich, abhängig von Ihrem durchschnittlichen Zahlungsbetrag, der Art der angebotenen Produkte und Dienstleistungen und dem individuellen Risiko Ihres Unternehmens, Bestellungen erst abzuwickeln, nachdem Sie das Ereignis payment_
erhalten haben.
Rückerstattungen
Sofort akzeptiert Rückerstattungsanfragen nur innerhalb von 180 Tagen nach dem Zahlungsdatum. Nach 180 Tagen ist eine Rückerstattung nicht mehr möglich.
Für ausstehende, noch nicht bestätigte Zahlungen können Sie eine Rückerstattung senden. Falls Sie eine vollständige oder teilweise Rückerstattung erstellen, wenn der Status einer PaymentIntent processing
ist, erfolgt die Rückerstattung erst, wenn der Status der PaymentIntent succeeded
ist. Falls der der Status der PaymentIntent nach einem fehlgeschlagenen Zahlungsversuch requires_
ist, werden vollständige und teilweise Rückerstattungen als storniert gekennzeichnet, da das Geld zu keinem Zeitpunkt vom Bankkonto der Kundinnen/Kunden abgegangen ist.