> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Testing Process

> Complete guide to testing your Dodo Payments integration with test cards, UPI IDs, BNPL data, and digital wallets.

<Frame>
  <iframe className="w-full aspect-video rounded-md" src="https://www.youtube.com/embed/5CcUSE4L_cg" title="Test Transaction | Dodo Payments" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

## Overview

Test mode lets you simulate payments without processing real transactions. All test credentials only work in test mode — never use them in production.

<CardGroup cols={3}>
  <Card title="No Real Charges" icon="shield-check">
    Test transactions don't process actual payments or affect real accounts.
  </Card>

  <Card title="Full API Access" icon="code">
    All API endpoints work identically in test and live modes.
  </Card>

  <Card title="Webhook Testing" icon="webhook">
    Webhooks fire for test transactions just like production.
  </Card>
</CardGroup>

<Warning>
  Test credentials only work in test mode. Attempting to use them in live mode will result in payment failures.
</Warning>

## Test Cards

Use these card numbers to simulate successful and declined payments across different regions.

<Tabs>
  <Tab title="Successful Payments">
    | Region | Brand      | Card Number        | Expiry | CVV |
    | :----- | :--------- | :----------------- | :----- | :-- |
    | US     | Visa       | `4242424242424242` | 06/32  | 123 |
    | US     | Mastercard | `5555555555554444` | 06/32  | 123 |
    | India  | Visa       | `4576238912771450` | 06/32  | 123 |
    | India  | Mastercard | `5409162669381034` | 06/32  | 123 |
  </Tab>

  <Tab title="Declined Payments">
    | Region | Marke      | Kartennummer       | Szenario             | Resultierender `error_code` |
    | :----- | :--------- | :----------------- | :------------------- | :-------------------------- |
    | US     | Visa       | `4000000000000002` | Generische Ablehnung | `GENERIC_DECLINE`           |
    | US     | Mastercard | `4000000000009995` | Unzureichende Mittel | `INSUFFICIENT_FUNDS`        |
    | Indien | Visa       | `4706131211212123` | Generische Ablehnung | `GENERIC_DECLINE`           |
    | Indien | Mastercard | `5105105105105100` | Generische Ablehnung | `GENERIC_DECLINE`           |

    Wenn eine dieser Karten abgelehnt wird, spiegeln der Zahlungsvorgang's `error_code` und `error_message` das oben genannte Szenario wider. Suchen Sie jeden Code in der [Transaction Failures](/api-reference/transaction-failures) Referenz, um seine Bedeutung und empfohlene Aktion zu verstehen, und sehen Sie [Zahlungsfehler handhaben](/developer-resources/handle-payment-failures), um Abweisungen in Ihrer Integration zu behandeln.
  </Tab>

  <Tab title="Subscription Failure Testing (Renewal/Upgrade/Downgrade)">
    | Kartennummer          | Ablaufdatum | CVC |
    | :-------------------- | :---------- | :-- |
    | `4000 0000 0000 0341` | 12/34       | 123 |

    Verwenden Sie diese Karte, um Szenarien für das Scheitern, die Erneuerung, das Upgrade und das Downgrade des Abonnements zu testen.
  </Tab>
</Tabs>

<Info>
  Für alle Testkarten verwenden Sie das Ablaufdatum **06/32** (oder **12/34**) und CVV **123**.
</Info>

### Wie man Erneuerungsausfälle testet

<Steps>
  <Step title="Create a test subscription">
    Erstellen Sie ein Abonnement mit Ihren Test-API-Schlüsseln unter Verwendung einer **erfolgreichen** Testkarte (zum Beispiel, `4242 4242 4242 4242`). Die anfängliche Belastung sollte gelingen und das Abonnement sollte aktiv werden.
  </Step>

  <Step title="Swap in the failure card via Customer Portal">
    Öffnen Sie das [Kundenportal](/features/customer-portal), finden Sie das Abonnement, das Sie gerade erstellt haben, und klicken Sie auf **Zahlungsmethode aktualisieren**. Geben Sie die Fehlertestkarte `4000 0000 0000 0341` ein (Ablaufdatum: `12/34`, CVC: `123`) und speichern Sie sie als Zahlungsart des Abonnements.
  </Step>

  <Step title="Advance the next billing date (optional)">
    Um die Erneuerung sofort auszuführen, anstatt auf den natürlichen Abrechnungszyklus zu warten, verwenden Sie die Update Subscription API, um `next_billing_date` auf die aktuelle UTC-Zeit einzustellen. Der Wert muss einen ISO 8601 / RFC 3339 UTC-Zeitstempel (der `Z` Suffix ist erforderlich) enthalten.

    ```http theme={null}
    PATCH /subscriptions/{subscription_id}
    {
      "next_billing_date": "2026-05-03T00:00:00Z"
    }
    ```

    Siehe die [Update Subscription API Referenz](/api-reference/subscriptions/patch-subscriptions#body-next-billing-date-one-of-0) für Details.
  </Step>

  <Step title="Verify the failure">
    Beim nächsten Abrechnungsversuch:

    * Die Erneuerungsbelastung wird auf der Fehlerkarte abgelehnt
    * Das Abonnement wechselt in den Status **On-Hold**
    * Ein `payment.failed` Webhook-Ereignis wird gesendet
    * Der Kunde kann zum Kundenportal zurückkehren, um die Zahlungsmethode zu aktualisieren und es erneut zu versuchen
  </Step>
</Steps>

<Warning>
  Diese Karte ist speziell zum Testen von Erneuerungsausfällen gedacht. Die Belastung wird am nächsten Abrechnungsdatum abgelehnt, sodass Sie die Zahlungswiederholungslogik, Kundenbenachrichtigungen und das Fehlermanagement testen können.
</Warning>

## UPI testen

UPI-Tests verwenden spezielle VPA (Virtual Payment Address) Kennungen, die verschiedene Zahlungsergebnisse simulieren.

| Status | UPI ID        |
| :----- | :------------ |
| Erfolg | `success@upi` |
| Fehler | `failure@upi` |

### Anforderungen für UPI-Tests

* Das Abrechnungsland muss auf `IN` eingestellt sein
* Die Währung muss `INR` sein
* Für Nicht-Indische Händler: Adaptive Currency muss aktiviert sein

Für vollständige UPI-Dokumentation, einschließlich der RBI-Mandatstests für Abonnements, siehe die Seite [Indische Zahlungsmethoden](/features/payment-methods/india).

## BNPL testen

Buy Now Pay Later-Anbieter haben spezifische Testdatenanforderungen.

### Klarna Testdaten

Verwenden Sie diese Details, um Klarna-Zahlungen im Testmodus zu simulieren:

| Feld             | Genehmigt                                     | Abgelehnt                                                   |
| :--------------- | :-------------------------------------------- | :---------------------------------------------------------- |
| **Geburtsdatum** | 07-10-1970                                    | 07-10-1970                                                  |
| **Vorname**      | Test                                          | Test                                                        |
| **Nachname**     | Person-us                                     | Person-us                                                   |
| **E-Mail**       | [customer@email.us](mailto:customer@email.us) | [customer+denied@email.us](mailto:customer+denied@email.us) |
| **Straße**       | Amsterdam Ave                                 | Amsterdam Ave                                               |
| **Hausnummer**   | 509                                           | 509                                                         |
| **Stadt**        | New York                                      | New York                                                    |
| **Bundesland**   | New York                                      | New York                                                    |
| **Postleitzahl** | 10024-3941                                    | 10024-3941                                                  |
| **Telefon**      | +13106683312                                  | +13106354386                                                |

<Note>
  Klarna verlangt eine Mindesttransaktionssumme von **\$50.01**, um als Zahlungsoption angezeigt zu werden.
</Note>

### Afterpay Testing

<Steps>
  <Step title="Select Afterpay">
    Wählen Sie Afterpay als Zahlungsmethode im Checkout und klicken Sie auf Bezahlen.
  </Step>

  <Step title="Test successful payment">
    Verwenden Sie eine gültige E-Mail-Adresse und Versandadresse für erfolgreiche Zahlungen.
  </Step>

  <Step title="Test failed authentication">
    Um einen Ausfall zu simulieren, schließen Sie das Afterpay-Modalfenster auf der Weiterleitungsseite. Die Zahlung wechselt von `requires_action` zu `requires_payment_method`.
  </Step>
</Steps>

<Note>
  Afterpay verlangt eine Mindesttransaktionssumme von **\$50.01**, um als Zahlungsoption angezeigt zu werden.
</Note>

### Sunbit Testing

<Steps>
  <Step title="Set billing country and currency">
    Stellen Sie sicher, dass `billing_address.country` `US` ist und `billing_currency` `USD` ist.
  </Step>

  <Step title="Use a qualifying amount">
    Setzen Sie den Transaktionsbetrag zwischen **$60.00 und $19,999.00**.
  </Step>

  <Step title="Complete the Sunbit flow">
    Wählen Sie Sunbit beim Checkout und vervollständigen Sie die Finanzierungsanwendung im Sunbit-Modal.
  </Step>

  <Step title="Test failure">
    Schließen Sie das Sunbit-Modal, bevor der Ablauf abgeschlossen ist, um eine abgelehnte Anwendung zu simulieren. Die Zahlung wechselt zu `requires_payment_method`.
  </Step>
</Steps>

<Note>
  Sunbit erscheint nur für US-Kunden, die in USD mit einem Betrag zwischen **$60.00** und **$19,999.00** zahlen.
</Note>

Für vollständige BNPL-Dokumentation, einschließlich Billie B2B-Tests, siehe die Seite [Buy Now Pay Later](/features/payment-methods/bnpl).

## Digitale Wallets testen

### Apple Pay

<Steps>
  <Step title="Enable test mode">
    Verwenden Sie Ihre Dodo Payments Test-API-Schlüssel.
  </Step>

  <Step title="Add a card to Apple Wallet">
    Fügen Sie eine echte Karte zu Ihrem Apple Wallet hinzu. Im Testmodus wird die Karte nicht belastet.
  </Step>

  <Step title="Complete test purchase">
    Öffnen Sie den Checkout auf einem Apple-Gerät und führen Sie den Apple Pay-Ablauf durch.
  </Step>
</Steps>

<Warning>
  Apple Pay erfordert HTTPS. Es wird nicht auf `localhost` ohne ordnungsgemäße SSL-Einrichtung angezeigt. Die Domain-Überprüfung muss ebenfalls abgeschlossen sein.
</Warning>

### Google Pay

<Steps>
  <Step title="Join the test card group">
    [Treten Sie der Google Pay Testkarten-Gruppe bei](https://groups.google.com/g/googlepay-test-mode-stub-data), um Testkarten automatisch zu Ihrem Wallet hinzuzufügen.
  </Step>

  <Step title="Enable test mode">
    Verwenden Sie Ihre Dodo Payments Test-API-Schlüssel.
  </Step>

  <Step title="Complete test purchase">
    Wählen Sie eine der Testkarten in Google Pay, um die Transaktion abzuschließen.
  </Step>
</Steps>

### Amazon Pay, Cash App Pay & RevolutPay

Verwenden Sie Ihre Test-API-Schlüssel und folgen Sie dem Standard-Checkout-Ablauf. Testtransaktionen werden simuliert, ohne dass tatsächliche Gebühren erhoben werden.

Für vollständige Dokumentation zu digitalen Wallets, einschließlich der Domain-Verifizierung für Apple Pay, siehe die Seite [Digitale Wallets](/features/payment-methods/digital-wallets).

## Europäische Methoden testen

Europäische Zahlungsmethoden (iDEAL, Bancontact, EPS, Multibanco) können im Sandboxmodus getestet werden.

<Steps>
  <Step title="Enable test mode">
    Verwenden Sie Ihre Dodo Payments Test-API-Schlüssel.
  </Step>

  <Step title="Set billing address">
    Setzen Sie das Land der Rechnungsadresse so, dass es zur Zahlungsmethode passt:

    * `NL` für iDEAL
    * `BE` für Bancontact
    * `AT` für EPS
    * `PT` für Multibanco
  </Step>

  <Step title="Set currency">
    Europäische Methoden erfordern EUR als Währung.
  </Step>

  <Step title="Complete test flow">
    Befolgen Sie den simulierten Bankauthentifizierungsablauf in der Testumgebung.
  </Step>
</Steps>

Für vollständige Dokumentation zu europäischen Zahlungsmethoden, siehe die Seite [Europa](/features/payment-methods/europe).

## Testen Sie Best Practices

<AccordionGroup>
  <Accordion title="Test all payment scenarios">
    Testen Sie nicht nur erfolgreiche Zahlungen. Testen Sie Ablehnungen, Stornierungen und Grenzfälle wie unzureichende Mittel.
  </Accordion>

  <Accordion title="Verify webhook handling">
    Stellen Sie sicher, dass Ihre Webhook-Endpunkte alle Ereignistypen korrekt verarbeiten, insbesondere `payment.succeeded`, `payment.failed` und Abonnementereignisse.

    Verwenden Sie das [Dodo Payments CLI](/developer-resources/sdks/cli#webhook-testing), um Webhooks lokal zu testen:

    * `dodo wh listen` leitet Live-Test-Webhooks an Ihren lokalen Server weiter
    * `dodo wh trigger` sendet Mock-Payloads für alle 22 Ereignistypen
  </Accordion>

  <Accordion title="Test on real devices">
    Für Apple Pay und Google Pay testen Sie auf tatsächlichen iOS- und Android-Geräten. Simulatoren replizieren das Wallet-Verhalten nicht vollständig.
  </Accordion>

  <Accordion title="Test regional methods with correct addresses">
    Regionale Zahlungsmethoden (UPI, iDEAL, etc.) erfordern übereinstimmende Rechnungsadressen. Eine US-Rechnungsadresse zeigt iDEAL nicht an.
  </Accordion>

  <Accordion title="Verify minimum amounts">
    BNPL-Methoden erfordern \$50.01 Minimum. Testen Sie, dass sie korrekt angezeigt/versteckt werden basierend auf dem Gesamtwert des Warenkorbs.
  </Accordion>
</AccordionGroup>

## Verwandte Seiten

<CardGroup cols={2}>
  <Card title="Cards" icon="credit-card" href="/features/payment-methods/cards">
    Kartentest, 3D Secure und gespeicherte Zahlungsmethoden.
  </Card>

  <Card title="Digital Wallets" icon="wallet" href="/features/payment-methods/digital-wallets">
    Apple Pay, Google Pay, Amazon Pay Tests.
  </Card>

  <Card title="BNPL" icon="calendar-days" href="/features/payment-methods/bnpl">
    Klarna, Afterpay und Billie Tests.
  </Card>

  <Card title="India" icon="indian-rupee-sign" href="/features/payment-methods/india">
    UPI- und RBI-Mandatstests.
  </Card>

  <Card title="Europe" icon="euro-sign" href="/features/payment-methods/europe">
    iDEAL, Bancontact, EPS, Multibanco Tests.
  </Card>

  <Card title="Webhooks" icon="webhook" href="/developer-resources/webhooks">
    Richten Sie Webhooks für Testereignisse ein.
  </Card>

  <Card title="CLI Webhook Testing" icon="terminal" href="/developer-resources/sdks/cli#webhook-testing">
    Testen Sie Webhooks lokal mit dem Dodo Payments CLI.
  </Card>
</CardGroup>
