Sandbox

What is the Sandbox?

The Sandbox functions as a simulator of our production environment. You send your transactions to our sandbox environment the exact same way you'd send them to our certification or production systems. The sandbox validates the transaction format and approves it if it matches our requirements. The Sandbox server makes it easy to get started using our SDKs. There are no forms to fill out, no credentials required, and no special access needed!

For now the Sandbox only supports online transactions and needs at least version 8. It has no state and doesn't actually tie the transactions with one another, but it does simulate responses for tied transactions. To test your batch transactions you'll need access to our prelive environment.

How does it work

The sandbox uses the request to calculate the response. This is done so that any response that our systems can generate can be retrieved through the sandbox as well. For sale and auth, the last 3 digits of the credit card will be used for the response reason code. Some sample numbers/responses include:

Desired Response Credit Card Number
000: Approved 4470330769941000
010: Partially Approved 4658512425423010
100: Processing Network Unavailable 4886883711815100
101: Issuer Unavailable 4215176886320101
110: Insufficient Funds 4488282659650110

Other numbers in the credit card can be used to simulate a variety of features, including AVS, CVV, Auto AU, etc. To identify the feature, characters 2-4 are used and depending on the feature, other characters will be used. The following shows how we count the characters from the card number and highlighted in red are the three feature identifiers.

A simple example is the following card number:

Characters: 01 234 567 89012 345
            41 002 801 90123 000
                

The green characters specify the feature (in this case Vault). The red characters specify the token response code. The blue digits specify the response reason code, as explained above.

Available Features

The following table shows all the features available and the meaning for the special characters. You can try with different values for each one of them and check what are the responses that you get back.

Example Card Number Feature Identification Feature Other characters
4100117890123000 001 Account Updater Nothing needed, new randomly generated card number will be returned
4100280140123000 002 Vault/Tokenization 5-7 - Token response code
4100322311199000 003 Enhanced Authorizations 5 - Funding Source Type
6 - Reloadable
7 - Prepaid card type
8 - Affluence
9 - Issuer Country
4200410886320101 004 Address Verification (AVS) 5-7 - AVS response code
4100521234567000 005 Card Security Code Validation Card validation result
0 - 'M'
1 - 'N'
2 - 'P'
3 - 'S'
4 - 'U'
4100811234567000 008 Merchant Category Code Validation MCC validation result is in message tag
0 - Approved
1 - Submitted MCC not allowed

eCheck

Use 3-digit amount, or last 3 of the amount, to specify the desired responses, Some sample numbers/responses include:

Desired Response Credit Card Number
000: Approved 12000
368: Invalid Check Number 12368
900: Invalid Bank Routing Number 12900

Applepay

Use 3-digit amount to specify the desired responses, Some sample numbers/responses include:

Desired Response Transaction Amount
000: Approved 000
010: Partially Approved 010
100: Processing Network Unavailable 100
101: Issuer Unavailable 101
110: Insufficient Funds 110

For Applepay, when the amount is not in this table or not a 3-digit number, the transaction will automatically be approved and return '000' as the response code, 'Approved' as the response message.

Androidpay

Use 3-digit amount to specify the desired responses, Some sample numbers/responses include:

Desired Response Transaction Amount
000: Approved 000
010: Partially Approved 010
100: Processing Network Unavailable 100
101: Issuer Unavailable 101
110: Insufficient Funds 110

For Androidpay, when the amount is not in this table or not a 3-digit number, the transaction will automatically be approved and return '000' as the response code, 'Approved' as the response message.

Standalone Fraud Check

Use the first three customAttribute tags to dictate the desired responses.

Response Attribute Desired Response Custom Attribute Number Attribute Value
deviceReviewStatus pass customAttribute1 pass
deviceReputationScore 42 customAttribute2 42
triggeredRule 1 to 11 customAttribute3 number of triggeredRule tags returned

For standalone fraud checks the customAttribute3 tag is used to dictate the number of triggeredRule tags returned in the response. One triggeredRule tag will always be returned by default from the Sandbox and a maximum of 11 triggeredRule tags will be returned.


eProtect

Use 3-digit amount to specify the desired responses, Some sample numbers/responses include:

Desired Response Transaction Amount
000: Approved 000
010: Partially Approved 010
100: Processing Network Unavailable 100
101: Issuer Unavailable 101
110: Insufficient Funds 110

Getting started

The URL to send your transactions to our Sandbox is the following:

Sandbox URL
https://www.testvantivcnp.com/sandbox/communicator/online

NOTE: Requests made to the Sandbox environment require the connection be TLS 1.2

You can test with any tool that can generate HTTP requests, curl is one example. To start you can save the following in an xml file:

And then send the file to Sandbox using your HTTP tool. You need to add the header Content-Type: text/xml so that we know you're requesting an XML. The following would be the curl command to submit the previous XML:

Please check that you don't have a proxy setup. If you do have a proxy setup, the command to submit the previous XML with Proxy:

Response code to Response Message Mapping

Response Code Response Message
000 Approved
010 Partially Approved
100 Processing Network Unavailable
101 Issuer Unavailable
102 Re-submit Transaction
110 Insufficient Funds
111 Authorization amount has already been depleted
120 Call Issuer
121 Call AMEX
122 Call Diners Club
123 Call Discover
124 Call JBS
125 Call Visa/MasterCard
126 Call Issuer - Update Cardholder Data
127 Exceeds Approval Amount Limit
130 Call Indicated Number
140 Update Cardholder Data
191 The merchant is not registered in the update program
301 Invalid Account Number
302 Account Number Does Not Match Payment Type
303 Pick Up Card
304 Lost/Stolen Card
305 Expired Card
306 Authorization has expired; no need to reverse
307 Restricted Card
308 Restricted Card - Chargeback
310 Invalid Track Data
311 Deposit already referenced by a chargeback
312 Restricted Card - International Card Filtering Service
315 Restricted Card - Auth Fraud Velocity Filtering Service
316 Automatic Refund Already Issued
318 Restricted Card - Auth Fraud Advice Filtering Service
319 Restricted Card - Fraud AVS Filtering Service
320 Invalid Expiration Date
321 Invalid Merchant
322 Invalid Transaction
323 No such issuer
324 Invalid Pin
325 Transaction not allowed at terminal
326 Exceeds number of PIN entries
327 Cardholder transaction not permitted
328 Cardholder requested that recurring or installment payment be stopped
330 Invalid Payment Type
335 This method of payment does not support authorization reversals
336 Reversal amount does not match Authorization amount
340 Invalid Amount
341 Invalid Healthcare Amounts
346 Invalid billing descriptor prefix
347 Invalid billing descriptor
348 Invalid Report Group
349 Do Not Honor
350 Generic Decline
351 Decline - Request Positive ID
352 Decline CVV2/CID Fail
353 Merchant requested decline due to AVS result
354 3-D Secure transaction not supported by merchant
355 Failed velocity check
356 Invalid purchase level III the transaction contained bad or missing data
357 Missing healthcareIIAS tag for an FSA transaction
358 Restricted by Litle due to security code mismatch
360 No transaction found with specified litleTxnId
361 Authorization no longer available
362 Transaction Not Voided - Already Settled
363 Auto-void on refund
364 Invalid Account Number - original or NOC updated eCheck account required
365 Total credit amount exceeds capture amount
366 Exceed the threshold for sending redeposits
367 Deposit has not been returned for insufficient/non-sufficient funds
368 Invalid check number
369 Redeposit against invalid transaction type
370 Internal System Error - Call Litle
372 Soft Decline - Auto Recycling In pProgress
373 Hard Decline - Auto Recycling Complete
401 Invalid E-mail
500 The account number was changed
501 The account was closed
502 The expiration date was changed
503 The issuing bank does not participate in the update program
504 Contact the cardholder for updated information
505 No match found
506 No chagnes found
601 Soft Decline - Primary Funding Source Failed
602 Soft Decline - Buyer has alternate funding source
610 Hard Decline - Invalid Billing Agreement Id
611 Hard Decline - Primary Funding Source Failed
612 Hard Decline - Issue with Paypal Account
613 Hard Decline - PayPal authorization ID missing
614 Hard Decline - confirmed email address is not available
615 Hard Decline - PayPal buyer account declined
616 Hard Decline - PayPal buyer account restricted
617 Hard Decline - PayPal order has been voided expired or completed
618 Hard Decline - issue with PayPal refund
619 Hard Decline - PayPal credential issue
620 Hard Decline - PayPal authorization voided or expired
621 Hard Decline - required PayPal parameter missing
622 Hard Decline - PayPal transaction ID or auth ID is invalid
623 Hard Decline - Exceeded maximum number of PayPal authorization attempts
624 Hard Decline - Transaction amount exceeds merchants PayPal account limit
625 Hard Decline - PayPal funding sources unavailable
626 Hard Decline - issue with PayPal primary funding source
627 Hard Decline - PayPal profile does not allow this transaction type
628 Internal System Error with PayPal - Contact Litle
629 Hard Decline - Contact PayPal consumer for another payment method
701 Under 18 years old
702 Bill to outside USA
703 Bill to address is not equal to ship to address
704 Declined foreign currency must be USD
705 On negative file
706 Blocked agreement
707 Insufficient buying power
708 Invalid Data
709 Invalid Data - data elements missing
710 Invalid Data - data format error
711 Invalid Data - Invalid T&C version
712 Duplicate transaction
713 Verify billing address
714 Invalid Account
716 Invalid Auth
717 Authorization already exists for the order
801 Account number was successfully registered
802 Account number was previously registered
803 Valid Token
805 Card validation number updated
820 Credit card number was invalid
821 Merchant is not authorized for tokens
822 Token was not found
850 Tax Billing only allowed for MCC 9311
877 Invalid Pay Page Registration Id
878 Expired Pay Page Registration Id
879 Merchant is not authorized for Pay Page
898 Generic token registration error
899 Generic token use error
900 Invalid Bank Routing Number
940 This Funding Instruction results in a negative account balance
941 Account balance information unavailable at this time
950 Decline - Negative Information on File
951 Absolute Decline
952 The Merchant Profile dos not allow the requested operation
953 The account cannot accept ACH transactions
954 The account cannot accept ACH transactions or site drafts
955 Amount greater than limit specified in the Merchant Profile
956 Merchant is not authorized to perform eCheck Verification transactions
957 First Name and Last Name required for eCheck Verifications
958 Company Name required for corporate account for eCheck Verifications
959 Phone number required for eCheck Verifications

Sandbox Docker Image

We have also provided a Docker image of Sandbox for developers that can be run locally for testing

Steps to Setup CNP Sandbox locally using Docker

*This is currently only available on devices that support Docker Desktop, Docker CE or Docker Toolbox.

1. Install Docker CE (Ubuntu) or Docker Desktop (Mac).

2. Download the Sandbox Docker Image from DockerHub from the link or using the command:

    docker pull vantivsdk/sandbox

3. Run it using: docker run -p 8888:8888 sandbox

Now the Sandbox is hosted at http://localhost:8888/communicator/online on your machine.

4. Replace/Add links to point to the local url instead of the old one in your SDK.