A dummy CVV is a placeholder security code that a payment provider accepts in sandbox mode, letting you test a checkout flow without touching real card data. In practice, dummy CVV usage in testing means pairing a published test card number with any format-valid code, such as 123 or 000, and letting the provider's simulator decide whether the transaction approves or declines.

Dummy CVV in Virtual Card Creation: What to Buy and What to Avoid

What counts as a dummy CVV

A dummy CVV is not a real card verification value. It is simply a value that satisfies the validation rules of a test environment. Those rules mirror production in format only:

Dummy CVV for Payment Gateway Testing: Test Values That Work in Sandbox

  • Three digits for Visa, Mastercard, Discover, and most other brands
  • Four digits for American Express
  • Numeric characters only, with no letters or symbols
  • Digits placed in the correct field of the payment form, not appended to the card number

The CVV itself is never checked against an issuing bank in test mode, because no bank is involved. The simulator behind the sandbox decides the result.

read more

Where test card numbers and CVV values come from

Every major processor publishes its own list of test card numbers in its developer documentation. Stripe, PayPal, Adyen, Braintree, and Worldpay all maintain sandbox card sets with known behavior. That documentation is the only legitimate source of test payment data, and it is free to use.

how to create a dummy cvv

Real card numbers and real CVVs have no place in a test environment. Using them breaks PCI DSS requirements and exposes live accounts to unnecessary risk. If you see anyone offering genuine card data for testing, that is a sign to walk away, not a shortcut.

Common test card patterns

The best known example is Stripe's test card, 4242 4242 4242 4242, which approves any CVC value in test mode. Most processors follow a similar pattern where one card always approves, another always declines, and others trigger specific error codes.

  • Approval cards: accept any three or four digit CVV
  • Decline cards: reject regardless of the CVV entered
  • CVV mismatch cards: return an incorrect CVC or CVV error even when the code is valid in format
  • Processing error cards: simulate gateway or issuer timeouts

Because the exact numbers change between processors, always pull the current list from the provider's own docs rather than copying a list from a blog post.

Why sandboxes accept almost any CVV

In test mode, the gateway skips the step where it would send the CVV to the card network for verification. There is nothing to verify. The result instead comes from the test card number you entered, the amount, or in some sandboxes a specific CVV value reserved for failure testing.

This is why a code like 123 almost always works in a sandbox and almost never matters in production. Your test is confirming that your form collects the CVV, validates its length, and passes it to the gateway correctly. It is not confirming that the code is genuine.

How to test CVC failure paths

A checkout integration is not finished until the error path works. Most processors provide dedicated test cards that force a CVV failure. Use them to confirm that your application:

  1. Receives the decline response and maps it to the correct error message
  2. Shows the customer a clear prompt to re-enter the code
  3. Does not store the CVV in logs, databases, or analytics events
  4. Does not retry the same declined transaction repeatedly

Rules for handling dummy CVV data safely

The fact that the data is fake does not remove the need for discipline. Keep test and production credentials in separate environments, and keep them clearly labeled so no one points a test key at a live endpoint.

  • Never log CVV values, in test or in production
  • Never store a CVV after authorization, which PCI DSS prohibits
  • Never reuse production API keys in a sandbox
  • Never assume sandbox and production behave the same, since decline logic differs
  • Never let test card rules leak into production validation code

Mistakes that show up in code review

Three problems appear again and again. First, hardcoding a check for the value 123, which will reject every real customer in production. Second, testing only a Visa number, which hides bugs in the four digit Amex path. Third, treating a sandbox approval as proof that the integration is finished, when fraud rules, 3D Secure, and AVS checks have not been exercised at all.

Quick checklist

  1. Pull the current test card list from your processor's docs
  2. Pair each card with a valid dummy CVV such as 123
  3. Run an approval, a decline, and a CVV mismatch case
  4. Confirm nothing sensitive is written to logs
  5. Verify the same flow works with a four digit Amex code

Dummy CVV usage in testing is a small part of a payment build, but it catches real errors early. Treat the test data as a tool for validating your own code, never as a stand-in for actual card information.