> ## 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.

# Test Mode vs Live Mode

> Test mode simulates payments without real charges; live mode processes real transactions. Learn what works in each and how to switch.

Test mode lets you build and test your integration without processing real payments. Live mode accepts real transactions from customers. Each mode has its own API keys, products, and webhooks.

## Feature Availability

| Feature | Test Mode | Live Mode | Environment Dependent |
| :- | :-: | :-: | :-: |
| Create products | Yes | Yes | Yes |
| Generate payment links | Yes | Yes | Yes |
| Simulate payments | Yes | No | Yes |
| Process real payments | No | Yes | Yes |
| Issue refunds | Yes (simulated) | Yes (real) | Yes |
| View transaction history | Yes (simulated) | Yes (real) | Yes |
| Download invoices | Yes (simulated) | Yes (real) | Yes |
| Link bank account | Yes | Yes | No |
| Payouts to bank account | No | Yes | Yes |
| Simulate failed transactions | Yes | No | Yes |
| View analytics | Yes (simulated) | Yes (real) | Yes |
| View detailed reports | Yes (simulated) | Yes (real) | Yes |
| Customize invoice templates | Yes | Yes | No |
| Generate API keys | Yes | Yes | Yes |
| Real-time fraud detection | No | Yes | Yes |
| Access support | Yes | Yes | No |
| Create webhooks | Yes | Yes | Yes |
| Business profile | Yes | Yes | No |
| Account settings | Yes | Yes | No |
| Create multiple businesses | Yes | Yes | No |
| Payout compliance | Yes | Yes | No |
| Send customer emails | Yes (limited, see [Emails in Test Mode](#emails-in-test-mode)) | Yes | Yes |

### Environment Dependent vs Independent

**Environment dependent** features keep separate data in each mode. A change in one mode doesn't affect the other.

**Environment independent** features share one set of data across both modes. Your account settings, business profile, bank account, and verification documents are the same in test and live mode, so a change in either mode applies to both.

## API Endpoints

Use these hostnames to route requests to the correct environment:

* **Test Mode:** `https://test.dodopayments.com`
* **Live Mode:** `https://live.dodopayments.com`

Most SDKs select the environment with a client option instead of a base URL, for example `environment: 'test_mode'` in TypeScript. The C# SDK takes the test mode base URL instead. See [SDKs](/developer-resources/dodo-payments-sdks).

## How Modes Work

In test mode, every transaction is simulated and no money moves. Use the test cards, UPI IDs, and other credentials in [Testing Process](/miscellaneous/testing-process) to simulate successful and failed payments. That page also has a video of a complete test payment. Test credentials work only in test mode.

Live mode is available as soon as you sign up. Live payments and payouts turn on after your account passes [Account Verification](/miscellaneous/verification-process).

Products, API keys, and webhooks belong to the mode you create them in. To reuse a product, open it in test mode and copy it to live mode. The copy keeps the product's details. A test mode API key doesn't authenticate against `live.dodopayments.com`, and a live key doesn't authenticate against `test.dodopayments.com`.

To receive test mode webhooks on your local machine while you develop, forward them with the [CLI webhook listener](/developer-resources/sdks/cli#listen-for-webhooks) (`dodo wh listen`).

## Subscriptions in Test Mode

Test mode subscriptions renew on their billing schedule, the same way live subscriptions do. Each renewal creates a simulated payment and delivers webhooks to your test mode endpoints. It can also send `[TEST MODE]` customer emails. No money moves.

Renewals continue after you finish testing. As a result, new test mode payments can appear weeks after your last test, even when nobody on your team has signed in. If you see a test mode payment that you don't recognize, check its `subscription_id`. A payment that belongs to a subscription you created during earlier testing is a renewal.

To stop these renewals, cancel each test subscription that you no longer need. With your test mode API key, call [Update Subscription](/api-reference/subscriptions/patch-subscriptions) and set `status` to `cancelled`.

## Emails in Test Mode

Test mode sends real customer emails to the real recipient address, so use addresses you control. Each test mode subject starts with `[TEST MODE]`. A business can send up to 100 test mode emails per week.

To stop test mode customer emails, turn off **Test Mode Emails** in **Settings → Communication → Email**. Live mode emails are not affected. See [Test Mode Emails](/features/communication-preferences#test-mode-emails) and [Customer Email Logs](/features/email-logs#test-mode).

## Switching Between Modes

To switch modes, use the **Live Mode** switch in the dashboard sidebar. Use the API keys that belong to the mode you're working in.

## Next Steps

<CardGroup cols={2}>
  <Card title="Testing Process" icon="flask" href="/miscellaneous/testing-process">
    Test cards, UPI, BNPL, wallets, and bank debits.
  </Card>

  <Card title="Account Verification" icon="circle-check" href="/miscellaneous/verification-process">
    Enable live payments and payouts.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.