Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Entwickler-Tools
Jetzt starten
Zahlungen
Finanzautomatisierung
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenZahlungen verwalten
Payment Links verwenden
Bezahlseite erstellen
Erweiterte Integration erstellen
In-App-Integration erstellen
Zahlungsmethoden
Zahlungsmethoden hinzufügen
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsschnittstellen
Payment Links
Checkout
Web Elements
In-App-Elements
Zahlungsszenarien
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
Orchestrierung
Präsenzzahlungen
Terminal
    Übersicht
    Persönliche Zahlungen akzeptieren
    Integrationsdesign
    Wählen Sie Ihr Lesegerät aus
    Konzipieren einer Integration
    Quickstart
    Beispielanwendungen
    Tests
    Terminal einrichten
    Integration einrichten
    Mit einem Lesegerät verbinden
    Zahlung annehmen
    Kartenzahlungen einziehen
    Weitere Zahlungsmethoden
    Offline-Zahlungen annehmen
    Versand-/Telefonbezahlung
    Regionale Aspekte
    Während des Bezahlvorgangs
    Trinkgelder einziehen
    Zahlungsdetails erfassen und für die zukünftige Verwendung speichern
      Direkt speichern, ohne die Karte zu belasten
      Nach Zahlung speichern
    Flexible Autorisierungen
    Nach dem Bezahlen
    Transaktionen zurückerstatten
    Belege zur Verfügung stellen
    Checkout anpassen
    Anzeige des Warenkorbs
    Eingaben auf dem Bildschirm erfassen
    Ausgelesene Daten erfassen
    Erfassen von Daten durch Tippen für NFC-Geräte
    Apps auf Geräten
    Lesegeräte verwalten
    Lesegeräte anfordern, zurückgeben, ersetzen
    Lesegerät registrieren
    Standorte und Zonen verwalten
    Lesegeräte konfigurieren
    Verschlüsselung
    Quellen
    API-Referenzen
    Mobile Lesegeräte
    Intelligente Lesegeräte
    SDK-Migrationsleitfaden
    Bereitstellungscheckliste
    Produktdatenblätter für Lesegeräte von Stripe Terminal
Andere Stripe-Produkte
Financial Connections
Krypto
Climate
StartseiteZahlungenTerminalCollect and save payment details for future use

Notiz

Bis jetzt ist diese Seite noch nicht in dieser Sprache verfügbar. Wir arbeiten aber verstärkt daran, unsere Dokumentation in weiteren Sprachen bereitzustellen, und werden die Übersetzung sofort anzeigen, sobald diese verfügbar ist.

Save directly without charging

Collect details of a present card and save them for online use.

Seite kopieren

Use SetupIntents to collect card or mobile wallet details without charging the card. A SetupIntent can’t save a card_present PaymentMethod directly, but in most cases you can create a reusable generated_card PaymentMethod that represents the same card. From your customer’s perspective, they’re the same payment method.

You can use SetupIntents to collect card details on Visa, Mastercard, American Express, Discover, and co-branded Interac, eftpos, and girocard cards. SetupIntents don’t support single-branded Interac, eftpos, and girocard cards.

Saving cards with Stripe Terminal using SetupIntents requires you to:

  1. Create or retrieve a Customer object.
  2. Create a SetupIntent object to track the process.
  3. Collect a payment method after collecting the customer’s consent.
  4. Submit the payment method details to Stripe.

Notiz

We’ve changed the customer consent model of this feature to require the allow_redisplay parameter instead of the legacy customer_consent_collected parameter. If your integration uses customer_consent_collected, you must update your integration to use allow_redisplay. This update became mandatory on March 31, 2025 for non-React Native users, and is mandatory for React Native users on September 30, 2025. For guidance, see the changelog entry.

Notiz

The server-driven-based SetupIntents API is compatible with BBPOS WisePOS E and Stripe Reader S700.

Create or retrieve a customer

To charge a card saved with Stripe, you must attach it to a Customer.

When you include a customer in your SetupIntent before confirming, Stripe automatically attaches the generated card payment method to the Customer object you provide.

Include the following code on your server to create a new Customer.

Command Line
cURL
curl -X POST https://api.stripe.com/v1/customers \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Create a SetupIntent

Notiz

We recommend providing a customer ID while creating a SetupIntent—doing so attaches the card payment method to the Customer upon successful setup. If you don’t provide a customer ID, you must attach the payment method in a separate call.

A SetupIntent is an object that represents your intent to set up a customer’s payment method for future payments. The SetupIntent tracks the steps of this setup process. For Terminal, this includes collecting and recording cardholder consent.

API Reference

  • Create a SetupIntent

You must create the SetupIntent on your server and include card_present on the payment_method_types parameter. Specify usage=on_session if you only intend to reuse the payment method when the customer is in your checkout flow.

The SetupIntent contains a client secret, which is a key that’s unique to the individual SetupIntent. You must obtain the client secret from the SetupIntent on your server and pass it to the client side.

Command Line
cURL
# Request curl https://api.stripe.com/v1/setup_intents \ -u "sk_test_26PHem9AhJZvU623DfE1x4sd:" \ -d "payment_method_types[]"=card # Response { "id": "seti_1234567890abcdefghijklmn", "object": "setup_intent", "client_secret": "seti_1234567890abcdefghijklmn_secret_5678901234opqrstuvwxyz", ... # other SetupIntent fields } # Your server endpoint response { "id": "seti_1234567890abcdefghijklmn", "client_secret": "seti_1234567890abcdefghijklmn_secret_5678901234opqrstuvwxyz" }

Collect a payment method for saving

API Reference

  • process_setup_intent

After you create a SetupIntent, you need to collect a payment method and collect customer consent. Pass allow_redisplay as always or limited, indicating the degree to which a payment method can be shown in a customer checkout flow.

After you create a SetupIntent, you need to collect a payment method and collect customer consent. If the customer provides the required form of agreement or consent, set the customer_consent_collected Boolean to true.

Notiz

Collect customer consent verbally or with a checkbox in your application. You must comply with all applicable laws, rules, and regulations in your region.

You must call the process_setup_intent endpoint, which handles both collecting and confirming the SetupIntent. If the customer provides consent, set allow_redisplay to either always or limited.

Command Line
cURL
curl https://api.stripe.com/v1/terminal/readers/{{READER_ID}}/process_setup_intent \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d setup_intent={{SETUP_INTENT_ID}} \ -d allow_redisplay=always

This method collects encrypted payment method data using the connected card reader, and associates the encrypted data with the SetupIntent.

Vorsicht

Collecting a payment method happens locally and requires no authorization or updates to the SetupIntent object until the next step.

Cancel collection

Programmatic cancellation

API Reference

  • cancel_action

You can cancel collecting a payment method by calling cancel_action.

Submit the payment method details to Stripe

Your previous call to process_setup_intent handles the confirm for you, so no further action is necessary.

A successful setup returns a succeeded value for the SetupIntent’s status property, along with a SetupAttempt.payment_method_details.card_present.generated_card, which is a reusable card payment method you can use for online payments.

Notiz

The SetupIntent.payment_method is a card_present PaymentMethod that represents the tokenization of the physically present card and isn’t chargeable online. Future payments use the generated card instead. From the customer’s perspective, they’re the same payment method.

The generated_card payment method automatically attaches to the customer you provided during SetupIntent creation. You can retrieve the generated_card payment method by expanding the SetupIntent’s latest_attempt property. Always check for a generated_card value, because for payment methods that don’t allow generated cards, the value is empty.

Command Line
cURL
curl -G https://api.stripe.com/v1/setup_intents/
{{SETUP_INTENT_ID}}
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "expand[]"=latest_attempt

Alternatively, you can retrieve the attached payment method by fetching the list of payment methods that gets attached to the customer.

Command Line
cURL
curl -G https://api.stripe.com/v1/customers/
{{CUSTOMER_ID}}
/payment_methods
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d type=card

If you didn’t provide a customer during SetupIntent creation, you can attach the generated_card to a Customer object in a separate call.

Command Line
cURL
curl https://api.stripe.com/v1/payment_methods/
{{PAYMENT_METHOD_ID}}
/attach
\ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d customer=
{{CUSTOMER_ID}}

If the setup isn’t successful, inspect the returned error to determine the cause. For example, failing to collect and notify Stripe of customer consent results in an error.

Mobile wallets considerations

Saved mobile wallets is only for off_session payments such as future subscription or other payments you initiate on behalf of your customer. When you save a digital wallet payment method, the generated_card has allow_redisplay=limited, to indicate its specific usage considerations.

When you attempt to charge a mobile wallet, make sure to pass off_session=true during PaymentIntent confirmation. If the customer is present in your checkout flow, you will need to instead use the Apple Pay and Google Pay integrations to re-prompt for payment method presentment.

Compliance

You’re responsible for your compliance with all applicable laws, regulations, and network rules when saving a customer’s payment details. For example, the European Data Protection Board has issued guidance regarding saving payment details. These requirements generally apply if you want to save your customer’s payment method for future use, such as presenting a customer’s payment method to them in the checkout flow for a future purchase or charging them when they’re not actively using your website or app.

Add terms to your website or app that state how you plan to save payment method details and allow customers to opt in. If you plan to charge the customer while they’re offline, then at a minimum, make sure that your terms also cover the following:

  • The customer’s agreement to your initiating a payment or a series of payments on their behalf for specified transactions.
  • The anticipated timing and frequency of payments (for instance, whether charges are for scheduled installment or subscription payments, or for unscheduled top-ups).
  • How the payment amount is determined.
  • Your cancellation policy, if you’re setting up the payment method for a subscription service.

Make sure you keep a record of your customer’s written agreement to these terms.

When you save a payment method, it can only be used for the specific usage that you included in your terms. If you want to charge customers when they’re offline and also save the customer’s payment method to present to them as a saved payment method for future purchases, you must explicitly collect consent from the customer. One way to do so is with a “Save my payment method for future use” checkbox.

War diese Seite hilfreich?
JaNein
Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
Schauen Sie sich unser Änderungsprotokoll an.
Fragen? Sales-Team kontaktieren.
LLM? Lesen Sie llms.txt.
Unterstützt von Markdoc