How Authorize.net test cards work
The Authorize.net sandbox is a separate environment with its own API login ID and transaction key. If you mix sandbox and production credentials you get response reason code 13. The sandbox only simulates the card networks, so no real payment is ever processed.
Keep the sandbox account in Live Mode. In Test Mode, transactions are not stored and come back with a transaction ID of 0, so you can’t test refunds, voids or reporting.
Use any expiration date after today. If a card code is required, any three digits work (four for American Express). Results are triggered by the billing ZIP code and the card code, not by the card number.
ZIP codes that trigger declines and AVS responses
Send one of these billing ZIP codes with any test card. ZIP 46282 returns a general bank decline (response code 2, “This transaction has been declined”).
| Billing ZIP | AVS response |
|---|---|
| 46203 | E (AVS data provided is invalid or AVS is not allowed for the card type that was used) |
| 46207 | R (The AVS system was unavailable at the time of processing) |
| 46204 | G (The card issuing bank is of non-U.S. origin and does not support AVS) — not applicable to American Express |
| 46209 | U (The address information for the cardholder is unavailable) |
| 46208 | S (The U.S. card issuing bank does not support AVS) |
| 46205 | N (Address: No Match, ZIP Code: No Match) |
| 46201 | A (Address: Match, ZIP Code: No Match) |
| 46217 | Z (Address: No Match, ZIP Code: Match) |
| 46211 | W (Address: No Match, ZIP Code: Matched 9 digits) — not applicable to American Express |
| 46214 | X (Address: Match, ZIP Code: Matched 9 digits) — not applicable to Visa or American Express |
Card codes and partial authorizations
- Card code
900→ M (match) ·901→ N (does not match) ·902→ S (should be on card) ·903→ U (issuer not certified) ·904→ P (not processed). - ZIP
46225→ partial authorization of $1.23 ·46226→ prepaid card, full amount authorized, remaining balance $1.23 ·46228→ prepaid card, remaining balance $0. - eCheck.Net: any valid routing number with any account number; amounts under $100 are accepted and over $100 declined.
Testing Authorize.net payments step by step
- Create a sandbox account and copy its API login ID and transaction key.
- Submit an authorization with
4111 1111 1111 1111and any future expiry date to test approval. - Set the billing ZIP to
46282to get a general bank decline (response code 2). - Use the AVS ZIP codes and card codes 900–904 to test your AVS and CVV handling.
- Test refunds and voids with the transaction IDs from Live Mode sandbox transactions.
Common errors and fixes
- Response reason code 13
- Production credentials used against the sandbox, or the other way around.
- Transaction ID is 0
- The sandbox account is in Test Mode. Switch it to Live Mode.
- Amount triggers ($70.xx) don’t work
- They were deprecated in 2011 and may stop working without notice. Use the ZIP code triggers.
- No 3D Secure test cards
- The testing guide doesn’t document 3DS cards for the sandbox.
Sources
Every number on this page was copied from Authorize.net’s official documentation and passes the Luhn check. Checked October 2026; gateways change their test data from time to time, so if a number stops working, check the source:
Frequently asked questions
How do I test CVV responses?
Send card code 900 for a match (M), 901 for no match (N), 902 for S, 903 for U and 904 for not processed (P).
Can I use these test cards on another gateway?
Usually not. Each gateway only recognises its own documented test numbers in its own sandbox. Some numbers, such as 4111 1111 1111 1111, appear in several lists, but the results they trigger differ. For format-only testing on your own forms, use our card generator.