Zum Hauptinhalt springen

Overview

Inline checkout lets you create fully integrated checkout experiences that blend seamlessly with your website or application. Unlike the overlay checkout, which opens as a modal on top of your page, inline checkout embeds the payment form directly into your page layout. Using inline checkout, you can:
  • Create checkout experiences that are fully integrated with your app or website
  • Let Dodo Payments securely capture customer and payment information in an optimized checkout frame
  • Display items, totals, and other information from Dodo Payments on your page
  • Use SDK methods and events to build advanced checkout experiences
Inline Checkout Cover Image

How It Works

Inline checkout works by embedding a secure Dodo Payments frame into your website or app. The checkout frame handles collecting customer information and capturing payment details. Your page displays the items list, totals, and options for changing what’s on the checkout. The SDK lets your page and the checkout frame interact with each other. Dodo Payments automatically creates a subscription when a checkout completes, ready for you to provision.
The inline checkout frame securely handles all sensitive payment information, ensuring PCI compliance without additional certification on your end.

What Makes a Good Inline Checkout?

It’s important that customers know who they’re buying from, what they’re buying, and how much they’re paying. To build an inline checkout that’s compliant and optimized for conversion, your implementation must include:
Inline checkout example with required elements labeled

Example inline checkout layout showing required elements

  1. Recurring information: If recurring, how often it recurs and the total to pay on renewal. If a trial, how long the trial lasts.
  2. Item descriptions: A description of what’s being purchased.
  3. Transaction totals: Transaction totals, including subtotal, total tax, and grand total. Be sure to include the currency too.
  4. Dodo Payments footer: The full inline checkout frame, including the checkout footer that has information about Dodo Payments, our terms of sale, and our privacy policy.
  5. Refund policy: A link to your refund policy, if it differs from the Dodo Payments standard refund policy.
Always display the complete inline checkout frame, including the footer. Removing or hiding legal information violates compliance requirements.

Customer Journey

The checkout flow is determined by your checkout session configuration. Depending on how you configure the checkout session, customers will experience a checkout that may present all information on a single page or across multiple steps.
1

Customer opens checkout

Sie können den Inline-Checkout öffnen, indem Sie Artikel oder eine bestehende Transaktion übergeben. Verwenden Sie das SDK, um Informationen auf der Seite anzuzeigen und zu aktualisieren, und SDK-Methoden, um Artikel basierend auf der Kundeninteraktion zu aktualisieren.Initial checkout page with items list and payment form
2

Customer enters their details

Inline checkout first asks customers to enter their email address, select their country, and (where required) enter their ZIP or postal code. This step gathers all necessary information to determine taxes and available payment options.You can prefill customer details and present saved addresses to streamline the experience.
3

Customer selects payment method

After entering their details, customers are presented with available payment methods and the payment form. Options may include credit or debit card, PayPal, Apple Pay, Google Pay, and other local payment methods based on their location.Display saved payment methods if available to speed up checkout.Available payment methods and card details form
4

Checkout completed

Dodo Payments routes every payment to the best acquirer for that sale to get the best possible chance of success. Customers enter a success workflow that you can build.Success screen with confirmation checkmark
5

Dodo Payments creates subscription

Dodo Payments automatically creates a subscription for the customer, ready for you to provision. The payment method the customer used is held on file for renewals or subscription changes.Subscription created with webhook notification

Quick Start

Get started with the Dodo Payments Inline Checkout in just a few lines of code:
Ensure you have a container element with the corresponding id on your page: <div id="dodo-inline-checkout"></div>.

Step-by-Step Integration Guide

1

Install the SDK

Install the Dodo Payments Checkout SDK:
2

Initialize the SDK for Inline Display

Initialize the SDK and specify displayType: 'inline'. You should also listen for the checkout.breakdown event to update your UI with real-time tax and total calculations.
3

Create a Container Element

Add an element to your HTML where the checkout frame will be injected:
4

Open the Checkout

Call DodoPayments.Checkout.open() with the checkoutUrl and the elementId of your container:
5

Test Your Integration

  1. Start your development server:
  1. Test the checkout flow:
    • Enter your email and address details in the inline frame.
    • Verify that your custom order summary updates in real-time.
    • Test the payment flow using test credentials.
    • Confirm redirects work correctly.
You should see checkout.breakdown events logged in your browser console if you added a console log in the onEvent callback.
6

Go Live

When you’re ready for production:
  1. Change the mode to 'live':
  1. Update your checkout URLs to use live checkout sessions from your backend.
  2. Test the complete flow in production.

Complete React Example

This example demonstrates how to implement a custom order summary alongside the inline checkout, keeping them in sync using the checkout.breakdown event.

API Reference

Configuration

Initialize Options

Checkout Options

Methods

Open Checkout

Opens the checkout frame in the specified container.
You can also pass additional options to customize the checkout behavior:

Checkout-Schließen

Entfernt das Checkout-Frame programmgesteuert und bereinigt Ereignislistener.

Status überprüfen

Gibt zurück, ob das Checkout-Frame derzeit injiziert ist.

Ereignisse

Das SDK bietet Echtzeit-Ereignisse über den onEvent-Rückruf. Für den Inline-Checkout ist checkout.breakdown besonders nützlich für die Synchronisierung Ihrer Benutzeroberfläche.

Checkout-Breakdown-Daten

Das checkout.breakdown-Ereignis liefert die folgenden Daten:

Verständnis des Breakdown-Ereignisses

Das checkout.breakdown-Ereignis ist der Hauptweg, um die Benutzeroberfläche Ihrer Anwendung mit dem Dodo Payments Checkout-Status zu synchronisieren. Wann es ausgelöst wird:
  • Bei der Initialisierung: Unmittelbar nachdem das Checkout-Frame geladen und bereit ist.
  • Bei Adressänderung: Jedes Mal, wenn der Kunde ein Land auswählt oder eine Postleitzahl eingibt, die eine Steuerneuberechnung zur Folge hat.
Felddetails: Wichtige Integrationstipps:
  1. Währungsformatierung: Preise werden immer als ganze Zahlen in der kleinsten Währungseinheit zurückgegeben (z.B. Cent für USD, Yen für JPY). Um sie anzuzeigen, dividieren Sie durch 100 (oder die entsprechende Zehnerpotenz) oder verwenden Sie eine Formatbibliothek wie Intl.NumberFormat.
  2. Umgang mit Anfangszuständen: Wenn der Checkout zum ersten Mal geladen wird, können tax und discount 0 oder null sein, bis der Benutzer seine Rechnungsinformationen bereitstellt oder einen Code anwendet. Ihre Benutzeroberfläche sollte diese Zustände elegant behandeln (z.B. ein Strich zeigen oder die Zeile ausblenden).
  3. Der “endgültige Gesamtbetrag” vs. “Gesamtbetrag”: Während total Ihnen die Standardpreiskalkulation gibt, ist finalTotal die Quelle der Wahrheit für die Transaktion. Wenn finalTotal vorhanden ist, spiegelt es genau wider, was der Karte des Kunden belastet wird, einschließlich aller dynamischen Anpassungen.
  4. Echtzeitrückmeldung: Verwenden Sie das Feld tax, um den Benutzern anzuzeigen, dass Steuern in Echtzeit berechnet werden. Dies vermittelt ein “Live”-Gefühl zu Ihrer Checkout-Seite und reduziert Reibungen während des Adresseingabeschritts.

Implementierungsoptionen

Paketmanager-Installation

Installieren Sie über npm, yarn oder pnpm wie im Schritt-für-Schritt-Integrationsleitfaden gezeigt.

CDN-Implementierung

Für schnelle Integration ohne Build-Schritt, können Sie unser CDN verwenden:

Zahlungsart aktualisieren

Inline-Checkout unterstützt Updates der Zahlungsmethode für Abonnements. Wenn ein Kunde seine Zahlungsmethode aktualisieren muss - sei es für ein aktives Abonnement oder um ein pausiertes Abonnement zu reaktivieren - können Sie den Aktualisierungsablauf direkt in Ihrem Seitenlayout rendern.

So funktioniert’s

  1. Rufen Sie die Update Payment Method API auf, um eine payment_link zu erhalten:
  1. Geben Sie das zurückgegebene payment_link als checkoutUrl weiter, um den Inline-Checkout zu öffnen:
Der Inline-Frame rendert nur das Erfassungsformular für die Zahlungsmethode. Kunden können neue Kartendetails eingeben oder eine gespeicherte Zahlungsmethode auswählen, ohne Ihre Seite zu verlassen.

Für pausierte Abonnements

Wenn Sie die Zahlungsmethode für ein Abonnement im on_hold-Status aktualisieren, erstellt Dodo Payments automatisch eine Belastung für alle ausstehenden Beträge. Überwachen Sie die payment.succeeded und subscription.active Webhooks, um die Reaktivierung zu bestätigen.
Sie können auch eine vorhandene gespeicherte Zahlungsmethode verwenden, anstatt neue Details zu erfassen, indem Sie type: 'existing' mit einer payment_method_id an die Update Payment Method API übergeben.

Fehlerbehandlung

Das SDK bietet detaillierte Fehlerinformationen über das Ereignissystem. Implementieren Sie immer eine ordnungsgemäße Fehlerbehandlung in Ihrem onEvent-Rückruf:
Immer das checkout.error-Ereignis behandeln, um eine gute Benutzererfahrung bei Problemen zu bieten.

Best Practices

  1. Responsives Design: Stellen Sie sicher, dass Ihr Containerelement genügend Breite und Höhe hat. Das iFrame wird typischerweise seine Containergröße ausfüllen.
  2. Synchronisation: Verwenden Sie das checkout.breakdown-Ereignis, um Ihre benutzerdefinierte Bestellübersicht oder Preistabellen mit dem, was der Benutzer im Checkout-Frame sieht, synchron zu halten.
  3. Zustände des Skeletts: Zeigen Sie einen Ladeindikator in Ihrem Container, bis das checkout.opened-Ereignis ausgelöst wird.
  4. Bereinigung: Rufen Sie DodoPayments.Checkout.close() auf, wenn Ihre Komponente demontiert wird, um das iFrame und die Ereignislistener zu bereinigen.
Für Implementierungen im Dunkelmodus wird empfohlen, #0d0d0d als Hintergrundfarbe zu verwenden, um eine optimale visuelle Integration mit dem Inline-Checkout-Frame zu gewährleisten.

Zahlungsstatusüberprüfung

Verlassen Sie sich nicht ausschließlich auf Inline-Checkout-Ereignisse, um Zahlungserfolg oder -fehler zu bestimmen. Implementieren Sie immer serverseitige Validierung mit Webhooks und/oder Polling.

Warum serverseitige Validierung unerlässlich ist

Obwohl Inline-Checkout-Ereignisse Echtzeit-Feedback bieten, sollten sie nicht Ihre einzige Wahrheitsquelle für den Zahlungsstatus sein. Netzwerkprobleme, Browserabstürze oder das Schließen der Seite durch Benutzer können dazu führen, dass Ereignisse verpasst werden. Um eine zuverlässige Zahlungsvalidierung sicherzustellen:
  1. Ihr Server sollte Webhook-Ereignisse abhören - Dodo Payments sendet Webhooks für Zahlungsstatusänderungen
  2. Implementieren Sie einen Polling-Mechanismus - Ihr Frontend sollte Ihren Server auf Statusaktualisierungen abfragen
  3. Kombinieren Sie beide Ansätze - Verwenden Sie Webhooks als primäre Quelle und Polling als Fallback

Empfohlene Architektur

Implementierungsschritte

1. Zuhören nach Checkout-Ereignissen - Wenn der Benutzer auf Bezahlen klickt, beginnen Sie mit der Vorbereitung zur Statusüberprüfung:
2. Ihren Server abfragen - Erstellen Sie einen Endpunkt, der Ihre Datenbank auf den Zahlungsstatus überprüft (aktualisiert durch Webhooks):
3. Webhooks serverseitig behandeln - Aktualisieren Sie Ihre Datenbank, wenn Dodo payment.succeeded oder payment.failed Webhooks sendet. Siehe unsere Webhooks-Dokumentation für Details.

Fehlerbehebung

  • Überprüfen Sie, dass elementId mit dem id eines tatsächlich im DOM vorhandenen div übereinstimmt.
  • Stellen Sie sicher, dass displayType: 'inline' an Initialize übergeben wurde.
  • Überprüfen Sie, ob das checkoutUrl gültig ist.
  • Stellen Sie sicher, dass Sie das checkout.breakdown-Ereignis anhören.
  • Steuern werden nur berechnet, nachdem der Benutzer ein gültiges Land und eine Postleitzahl im Checkout-Frame eingegeben hat.

Digitale Geldbörsen aktivieren

Für detaillierte Informationen zum Einrichten von Apple Pay, Google Pay und anderen digitalen Geldbörsen, siehe die Seite Digitale Geldbörsen.

Schnellsetup für Apple Pay

Die Domänenüberprüfung ist nur für Inline-Checkout (eingebettet) erforderlich. Overlay-Checkout, gehosteter Checkout und Zahlungslinks benötigen dies nicht.
Apple Pay wird pro Domäne über das Dashboard verifiziert.
1

Open Wallet domains

Gehen Sie zu Einstellungen → Zahlungsmethoden und klicken Sie in der Zeile Apple Pay auf Domänen verwalten.
Schaltfläche 'Domänen verwalten' in den Apple Pay-Zahlungsmethodeinstellungen

Open Wallet domains from the Apple Pay row

2

Download the domain association file

Laden Sie die Zuordnungsdatei aus dem Wallet-Domänen-Panel herunter.
Wallet-Domänen-Panel mit der Schaltfläche 'Datei herunterladen'

Download the Apple Pay domain association file

3

Register your domain

Klicken Sie auf Domäne registrieren und geben Sie die Domäne ein, in die Sie den Inline-Checkout einbetten (z.B. shop.example.com), dann Weiter.
Domänenregistrierungsformular mit eingetragener Domäne

Register the domain where you embed inline checkout

4

Host the file on your domain

Hosten Sie es bei:
Es muss über HTTPS bereitgestellt werden, ohne Umleitungen erreichbar sein und mit Content-Type: application/octet-stream oder text/plain bedient werden.
5

Verify the domain

Klicken Sie auf Domäne verifizieren. Dodo Payments bestätigt, dass die Datei aktiv ist, und übermittelt Ihre Domäne an Apple.
Domainverifizierung-Bildschirm mit Pfad zur Zuordnungsdatei und Schaltfläche 'Domäne verifizieren'

Verify the hosted association file

6

Confirm it's active

Wenn der Status Aktiv anzeigt, ist Apple Pay für diese Domäne aktiviert. Verwenden Sie den Aktiviert-Schalter, um es pro Domäne ein- oder auszuschalten.
Wallet-Domänenliste, die Domänen mit aktivem Apple Pay-Status und aktivierten Schaltern zeigt

Verified domains show an Active status

7

Test the integration

  1. Öffnen Sie den Checkout auf einem Apple-Gerät
  2. Verifizieren Sie, dass die Apple Pay-Taste erscheint
  3. Führen Sie eine Testtransaktion durch

Browserunterstützung

Das Dodo Payments Checkout SDK unterstützt die folgenden Browser:
  • Chrome (neueste)
  • Firefox (neueste)
  • Safari (neueste)
  • Edge (neueste)
  • IE11+

Inline vs Overlay Checkout

Wählen Sie den passenden Checkout-Typ für Ihren Anwendungsfall:
Verwenden Sie Inline-Checkout, wenn Sie maximale Kontrolle über das Checkout-Erlebnis und nahtloses Branding wünschen. Verwenden Sie Overlay-Checkout für schnellere Integration mit minimalen Änderungen an Ihren bestehenden Seiten.

Verwandte Ressourcen

Overlay Checkout

Verwenden Sie den Overlay-Checkout für eine schnelle, modalbasierte Integration.

Checkout Sessions API

Erstellen Sie Checkout-Sessions, um Ihre Checkout-Erlebnisse zu unterstützen.

Webhooks

Bearbeiten Sie Zahlungsvorgänge serverseitig mit Webhooks.

Integration Guide

Umfassender Leitfaden zur Integration von Dodo Payments.
Für weitere Hilfe besuchen Sie unsere Discord-Community oder kontaktieren Sie unser Entwickler-Support-Team.
Zuletzt geändert am 9. Juli 2026