Skip to main content

Test Cards

In sandbox environment, we offer generic merchant accounts that are useful for testing functional integration. Some processors behave slightly different depending on the settings on the live merchant, so we always advice a full end to end test on your live merchant account, before going live.

TypeNumberExpiryCVVAmountTest Case TypeNotes
Discover6011000993026909any200anyDECLINED05 = DECLINE
Discover6011000993026909any201anyDECLINED51 = Insufficient funds
Discover6011000993026909any202anySLOW APPROVALSync GTW_9999, later PURCHASED webhook (GTW_1000)
Discover6011000993026909anyanyanySUCCESS
VISA4012000098765439any200anyDECLINED05 = DECLINE
VISA4012000098765439any201anyDECLINED51 = Insufficient funds
VISA4012000098765439any202anySLOW APPROVALSync GTW_9999, later PURCHASED webhook (GTW_1000)
VISA4012000098765439anyanyanySUCCESS
MasterCard5105105105105100any200anyDECLINED05 = DECLINE
MasterCard5105105105105100any201anyDECLINED51 = Insufficient funds
MasterCard5105105105105100any202anySLOW APPROVALSync GTW_9999, later PURCHASED webhook (GTW_1000)
MasterCard5105105105105100anyanyanySUCCESS
Amex371449635392376any1200anyDECLINED05 = DECLINE
Amex371449635392376any1201anyDECLINED51 = Insufficient funds
Amex371449635392376any1202anySLOW APPROVALSync GTW_9999, later PURCHASED webhook (GTW_1000)
Amex371449635392376anyanyanySUCCESS
Matching Rules

Test cases are matched using a best match first approach. The system finds the rule that matches the most input fields:

  1. If both the card number and CVV match a specific rule, that rule is used.
  2. If the card number matches but the CVV does not match any specific rule, the catch-all (any) rule for that card is used instead.

For example, sending CVV 200 with the Visa card 4012000098765439 matches both the card number and CVV of a specific decline rule — so you get a decline. Sending CVV 123 matches only the card number, so the catch-all success rule applies.

Timeout / late-approval testing

CVV trigger code 202 (or 1202 on Amex) simulates a slow bank response — the acquirer takes longer than the gateway's internal timeout to reply, but eventually returns an APPROVED sale. Use it to verify that your webhook and reconciliation flow handle this correctly.

Synchronous response (returned immediately when the internal timeout fires):

  • HTTP 200 with responseCode: "GTW_9999", responseMessage: "Transaction Processing Error".
  • traceID is your correlation ID for the request — keep it, you'll need it to match the webhook.

Asynchronous webhook (fires once the bank eventually replies):

  • Event PURCHASED.
  • data.responseCode: "GTW_1000" (Transaction Approved), plus bankResponseCode, bankTransactionId, authCode, transactionId, amount, currency.
  • data.traceId matches the traceID from the sync response — join the two to close out the transaction.

Do not treat GTW_9999 as a final decline. The transaction is PENDING on our side and will resolve. Reconcile by waiting for the webhook, or by issuing an INQUIRY against the same traceID before assuming the payment failed.

Recurring (Rebill) Test Cards

To test failures on recurring transactions specifically, use the CVV trigger codes 300 and 301. Unlike 200/201, these approve the initial sale or authorization and only decline when the card is later rebilled — that is, on a subsequent transaction that references the original via the stored credential. This lets you simulate a subscription that activates successfully but fails on a later renewal.

TypeNumberExpiryCVVAmountInitial Sale / AuthRebill ResultNotes
Discover6011000993026909any300anyAPPROVEDDECLINED05 = DECLINE
Discover6011000993026909any301anyAPPROVEDDECLINED51 = Insufficient funds
VISA4012000098765439any300anyAPPROVEDDECLINED05 = DECLINE
VISA4012000098765439any301anyAPPROVEDDECLINED51 = Insufficient funds
MasterCard5105105105105100any300anyAPPROVEDDECLINED05 = DECLINE
MasterCard5105105105105100any301anyAPPROVEDDECLINED51 = Insufficient funds
Amex371449635392376any1300anyAPPROVEDDECLINED05 = DECLINE
Amex371449635392376any1301anyAPPROVEDDECLINED51 = Insufficient funds

3DS Testing

For 3ds testing, you can use the cards listed Netvalve 3DS Test Cards
These 3ds cards will work as well, the CVV code trigger the responses above