# Test cards

To test your various payment flows for a variety of scenarios, you can use the following test card numbers that Revolut provides.

:::info
Test cards will only work in the **Sandbox environment**.
:::

## Test for successful payments

Use the following test cards to simulate successful payments in the Sandbox environment. You can also use them to test the use case of [charging a customer's saved payment method](/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method).

Use any 3-digit `CVV` and any future `expiry date` (MM/YY).

| Card PAN         | Brand      |
| ---------------- | ---------- |
| 4929420573595709 | VISA       |
| 5281438801804148 | MASTERCARD |

## Test for error cases

Use the following test cards to create payments that produce error codes in the Sandbox environment. This is useful when you want to:

- See how different errors are shown to your customers.
- Implement custom error handling.

Use any 3-digit `CVV` and any future `expiry date` (MM/YY).

:::note [Pre-authorisation behaviour]
When testing payments with `authorisation_type: pre_authorisation`, error test cards behave differently.

All cards including the error test cards listed - result in `authorised` payment state in the Sandbox environment. The normal declined/failed outcomes are bypassed at both the authorisation and capture steps.

For more information on testing incremental authorisation in Sandbox, see: [Incremental authorisation](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/incremental-authorisation).
:::

The table lists test cards for error cases and their associated scenarios, including decline reasons and payment states.

| Card PAN         | Case                                                                                                                                                                                                                                                                                                                                                                                                                              | Decline reason                                  | Payment state           |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- | ----------------------- |
| 4242424242424242 | Payment failed due to 3DS verification error. <br/><br/>_Note: Orders with an amount less than £25.00 (for GBP) or the equivalent of €30.00 (for other currencies) are exempt from 3DS verification, resulting in successful payments. To test the error case and simulate a 3DS verification failure, use orders with an `amount` of at least `2500` for `GBP`, `3000` for `EUR`, or the equivalent amount in other currencies._ | `customer_challenge_failed`                     | `failed`                |
| 4929573638125985 | Payment declined due to insufficient funds.                                                                                                                                                                                                                                                                                                                                                                                       | `insufficient_funds`                            | `declined`              |
| 4532336743874205 | Payment declined due to card being expired.                                                                                                                                                                                                                                                                                                                                                                                       | `expired_card`                                  | `declined`              |
| 2720998837779594 | Payment declined due to Do Not Honour. <br/><br/>This error happens when your customer's bank declines the transaction due to internal reasons. For example, their fraud rules might have been triggered, or a temporary hold may have been applied to this card.                                                                                                                                                                 | `do_not_honour`                                 | `declined`              |
| 5215674115127070 | Payment failed due to the issuing bank needing additional verification. A message is returned from your bank that should be displayed to the cardholder.                                                                                                                                                                                                                                                                          | `customer_challenge_failed`                     | `failed`                |
| 2223000010479399 | Order and payment stuck in processing state. <br></br><br></br>This card is useful to test what would happen with your implementation if the order took longer than expected to complete.                                                                                                                                                                                                                                         | No `decline_reason` returned on payment details | `authorisation_started` |