Testing

NeonPay provides sandbox environments to integration partners for use during application development.

The Sandbox and Production environments are nearly identical, with a handful of minor differences. 

Testing Credit Card Charges

The sandbox environment is not capable of processing real payments. It can, however, simulate most payment scenarios encountered in production.

Successful charges can be tested by creating a token using NeonPay.JS, then submitting the charge using the NeonPay API.

A number of charge failure scenarios can be tested by sending one of the following strings as the payment token instead.

Token Bank Code Error Type Error Alert
fail_call_issuer call_issuer Processor error. Declined. The processor has declined the Transaction.
fail_card_not_supported card_not_supported Processor error. Declined. The processor has declined the Transaction.
fail_declined declined Processor error. Declined. The processor has declined the Transaction.
fail_do_not_honor do_not_honor Processor error. Declined. The processor has declined the Transaction.
fail_duplicate_transaction duplicate_transaction Processor error. Declined. The processor has declined the Transaction.
fail_expired_card expired_card Processor error. Declined. The processor has declined the Transaction.
fail_generic_decline generic_decline Processor error. Declined. The processor has declined the Transaction.
fail_incorrect_cvv incorrect_cvv Processor error. Declined. The processor has declined the Transaction.
fail_incorrect_pin incorrect_pin Processor error. Declined. The processor has declined the Transaction.
fail_insufficient_funds insufficient_funds Processor error. Declined. The processor has declined the Transaction.
fail_invalid_account invalid_account Processor error. Declined. The processor has declined the Transaction.
fail_invalid_amount invalid_amount Processor error. Declined. The processor has declined the Transaction.
fail_invalid_cvv invalid_cvv Processor error. Declined. The processor has declined the Transaction.
fail_invalid_pin invalid_pin Processor error. Declined. The processor has declined the Transaction.
fail_issuer_not_available issuer_not_available Processor error. Declined. The processor has declined the Transaction.
fail_lost_card lost_card Processor error. Declined. The processor has declined the Transaction.
fail_message_format_error message_format_error Processor error. Declined. The processor has declined the Transaction.
fail_missing_to_account missing_to_account Processor error. Declined. The processor has declined the Transaction.
fail_not_permitted not_permitted Processor error. Declined. The processor has declined the Transaction.
fail_nsf nsf Processor error. Declined. The processor has declined the Transaction.
fail_pickup_card pickup_card Processor error. Declined. The processor has declined the Transaction.
fail_pin_try_exceeded pin_try_exceeded Processor error. Declined. The processor has declined the Transaction.
fail_processing_error processing_error Processor error. Declined. The processor has declined the Transaction.
fail_restricted_card restricted_card Processor error. Declined. The processor has declined the Transaction.
fail_revocation_of_authorization revocation_of_authorization Processor error. Declined. The processor has declined the Transaction.
fail_security_violation security_violation Processor error. Declined. The processor has declined the Transaction.
fail_service_not_allowed service_not_allowed Processor error. Declined. The processor has declined the Transaction.
fail_stolen_card stolen_card Processor error. Declined. The processor has declined the Transaction.
fail_ticket_limit_exceeded ticket_limit_exceeded Processor error. Declined. The processor has declined the Transaction.
fail_transaction_not_allowed transaction_not_allowed Processor error. Declined. The processor has declined the Transaction.
fail_unauthorized unauthorized Processor error. Declined. The processor has declined the Transaction.
fail_unavailable unavailable Processor error. Declined. The processor has declined the Transaction.
fail_withdrawal_limit_exceeded withdrawal_limit_exceeded Processor error. Declined. The processor has declined the Transaction.
fail_match match CVV matching alert. The supplied CVV code matches.
fail_invalid_not_present invalid_not_present CVV matching alert. The supplied CVV code does not match.
fail_mismatch mismatch CVV matching alert. The supplied CVV code does not match.
fail_mismatch mismatch AVS check alert. The supplied CVV code does not match.
fail_address_match_zip_mismatch address_match_zip_mismatch AVS check alert. The ZIP code in the Transaction data does not match the customer details held by the card issuer.
fail_zip_match_address_mismatch zip_match_address_mismatch AVS check alert. The address in the Transaction data does not match the customer details held by the card issuer.
fail_not_processed not_processed CVV matching alert. Information about the customer was not found in the Transaction data.
fail_not_supported not_supported CVV matching alert. Information about the customer was not found in the Transaction data.
fail_not_performed not_performed AVS check alert. Information about the customer was not found in the Transaction data.
fail_zip_match_address_mismatch zip_match_address_mismatch AVS check alert. The Address in the Transaction data was not verified.
fail_zip_match_address_not_verified zip_match_address_not_verified AVS check alert. The Address in the Transaction data was not verified.
fail_3ds_authentication_successful 3ds_authentication_successful 3DS check alert. 3DS authentication passed.
fail_3ds_authentication_invalid 3ds_authentication_invalid 3DS check alert. 3DS authentication is invalid.
fail_3ds_authentication_failed 3ds_authentication_failed 3DS check alert. 3DS authentication failed.
fail_3ds_authentication_not_validated 3ds_authentication_not_validated 3DS check alert. 3DS authentication was not validated.
fail_unspecified_bank_code unspecified_bank_code Alert type unknown. Alert details unknown.

Testing ACH Charges

In sandbox environments, ACH failures can be tested by manipulating the charge amount:

Amount Result Description
500.01 Failed Exceeds Approval Amount Limit

Testing Payouts

Payouts occur automatically. The process for payouts differs slightly between sandbox and production environments. The following differences apply:

  • In sandbox, all payouts will finish with a failed status. They will never appear as processed.

Testing Fees

Fees function the same in sandbox and production environments. These are automatically applied at each fee's appropriate circumstance.

Testing Merchant Onboarding

Merchant onboarding is nearly the same in the sandbox as it is in production environments.

You can use fake data for most fields when boarding test accounts in the sandbox. The following fields do require valid data:

  • IP Address - Can be any valid IP address.
  • Routing Number - We recommend using 123123123 for testing.

Testing Disputes

It is not currently possible to simulate disputes in a sandbox environment. This is a known deficiency that our team is working to resolve.

Load Testing

The sandbox environment does not accurately simulate the performance of the production environment. As such, it is not suitable for load testing. If you plan to load test an application that relies on NeonPay, please contact the NeonPay team.

Launching to Production

The following changes will need to be made to switch your application from Sandbox to Production:

  • Update your API endpoint URLs to the Production endpoint
  • Generate new API keys in the Production merchant portal
  • Create new webhook subscriptions in the Production merchant portal
  • Update your App ID to match your Production App ID
  • Update your Public API Key to use the one generated by the Production environment