# Set up a test environment with Revolut Sandbox

:::warning
The Sandbox and Production accounts are **not connected** in any way, make sure you use the appropriate credentials and API keys for each.
:::

When preparing to integrate your services with your Revolut Merchant account, it's crucial to conduct thorough testing before going live.

The [Revolut Business Sandbox environment](https://sandbox-business.revolut.com/) is designed specifically for this purpose, offering a safe, isolated space where you can simulate transactions and integrations without affecting your live operations.

## Create a Sandbox account

The Sandbox environment operates independently of the Production environment. This means **you cannot use your existing production credentials** to log in or perform tests in sandbox environment. Instead, you'll need to create a dedicated Sandbox account.

:::warning
**We don't send confirmation emails or SMS in Sandbox environment.**

Instead, the Sandbox environment offers **helper buttons** to let you proceed when approval or confirmation is needed.
:::

Here's how to get started:

1. **Register:** Visit the [Revolut Business Sandbox sign-up page](https://sandbox-business.revolut.com/signup) and register a new account.
1. **Provide details:** Fill in the necessary details to create your account.
   - If you're unsure about which option to choose as **Legal business type**, select **Public Limited Company**. Freelancer accounts are not supported in Revolut Business.
   - When you see the pop-up about verification email, click the **Skip email verification** button in the top right corner.
   - When asked for a confirmation code, click the **Autofill code** button above the input field.

1. **Automatic approval:** Unlike the Production environment, where account verification and approval might take some time, Sandbox account approvals are automatic. This lets you jump straight into testing without any delays.
1. **Log in:** Once the registration is complete, you can start using your account. These account credentials are unique to the Sandbox environment and cannot be used in the Production environment.

![Sandbox registration](/img/accept-payments/get-started/sandbox-registration.mp4)

### Get Sandbox API keys

To test payment methods and API calls in the Sandbox environment, you have to get the appropriate API keys linked to your Sandbox Merchant account.

:::warning
**We don't send confirmation emails or SMS in Sandbox environment.**

Instead, the Sandbox environment offers **helper buttons** to let you proceed when approval or confirmation is needed.
:::

Here's how to do it:

1. **Log in to your Revolut Sandbox account:** Access the [Revolut Business Sandbox log in page](https://sandbox-business.revolut.com/signin) and enter your credentials.
1. **Confirm your login attempt:** Click **Skip email verification** in the top right corner of the pop-up window.
1. **Navigate to Merchant API settings:** Go to the **:Cart: Merchant** overview, click **:Ellipsis:**, and select [**:16/Code: Merchant API**](https://sandbox-business.revolut.com/settings/apis?tab=merchant-api). Here you can access your **Sandbox API keys** (Public, Secret) specific to your Merchant account.
1. **Generate API keys:** To generate your **Sandbox API Secret key**, click the **Generate** button.
1. **Save API keys:** Use the :Copy: button copy and paste your API keys where you want to use them.

![Sandbox API Keys](/img/accept-payments/get-started/sandbox-api-keys.mp4)

:::tip
If you encounter any issues during Sandbox registration, we advise you try to create another account.
:::

## Point your integration at Sandbox

:::info
Only [**test cards**](/docs/guides/merchant/test-and-go-live/testing/test-cards) will work in the Sandbox environment. For full payment-flow test scenarios (Revolut Pay, Google Pay, and error cases), see [Test payment flows](/docs/guides/merchant/test-and-go-live/testing/test-flows).
:::

### Using the plugins

If you have installed one of our plugins, you can test payments by changing the mode of the plugin to **Sandbox mode** (or **Test mode** in some cases) and providing your **Sandbox API Secret key** in the configuration. To configure each of our plugins, see:

- [Configuration of the WooCommerce plugin](/docs/guides/merchant/accept-payments/no-code/plugins/woocommerce/configuration)
- [Configuration of the Prestashop plugin](/docs/guides/merchant/accept-payments/no-code/plugins/prestashop/configuration)
- [Configuration of the Adobe Commerce (Magento 2) plugin](/docs/guides/merchant/accept-payments/no-code/plugins/magento/configuration)
- [Configuration of the OpenCart plugin](/docs/guides/merchant/accept-payments/no-code/plugins/opencart/configuration)
- [Configuration of the Shopify plugin](/docs/guides/merchant/accept-payments/no-code/plugins/shopify/configuration)

### Using the API

:::info
[Apple Pay](/docs/guides/merchant/accept-payments/online-payments/apple-pay-google-pay/introduction) is not available in the Sandbox environment.
:::

If you are using your custom implementation or wish to test our APIs, just follow these 2 steps:

1. Change the address of the endpoints that you want to test from `https://merchant.revolut.com/` to `https://sandbox-merchant.revolut.com/`.
1. Set the `mode` parameter to `sandbox` in the options of [Token-based initialisation](/docs/sdks/merchant-web-sdk/initialisation/token-based) or [Payments module](/docs/sdks/merchant-web-sdk/initialisation/payments-module).

Here is what it should look like:

- ![Revolut Checkout]

  ```ts
  type RevolutCheckout = (token: string, mode: "sandbox") => Promise<Instance>;
  ```

- ![RevolutCheckout.payments]

  ```ts
  type RevolutCheckout.payments = ({
    publicToken: string,
    mode: 'sandbox'
  }) => Promise<Instance>;
  ```

## What's next

- [Learn more about Test cards](/docs/guides/merchant/test-and-go-live/testing/test-cards)
- [Learn more about testing your implementation](/docs/guides/merchant/test-and-go-live/testing/implementation-checklists)
- [Learn more about Revolut Pay](/docs/guides/merchant/accept-payments/online-payments/revolut-pay/introduction)
- [Learn more about accepting card payments](/docs/guides/merchant/accept-payments/online-payments/card-payments/introduction)
- [Learn more about our no-code plugins](/docs/guides/merchant/accept-payments/no-code/plugins/introduction)
- [Learn more about the Merchant API](/docs/api/merchant)