General
Q: What test cards are needed?
A: The US 21 card set is needed. Even for Canadian merchants, this set includes an Interac card which is the only card outside of the other cards that is needed to support Canadian certification.
Q: During swipe test we only have chip cards available, the terminal detects it as a chip and wont allow as a swipe transaction. What can we do about this?
A: If you only have EMV test cards, you can insert the card upside down several times (insert, wait for it to show an error, remove, then re-insert), until it prompts to swipe. This is a swipe-fallback and it should allow for swiping EMV cards.
Q: The terminal accepts fallback to swipe but not swipe. So when a card lacks an EVM chip, do I have to force users to insert the card, get a failure message, and then swipe the card? Is it possible to enable swipe mode?
A: If a non-EMV card is presented (one that does not have a chip built in), then it will accept just a SWIPE. The card brands force all EMV cards to be processed as such, because of the extra security. SWIPE should only be used when EMV isn’t available (lacking a chip, or the chip is damaged, or the sensor in the reader is damaged).
Q: According to B2 documentation, cards 4, 8, 14, & 16 lack chips. They also look like there is no chip. Swipe does not work for these cards.
A: Maybe that difference in region is why you don’t see the cards containing a chip. Encoding, within the
Magnetic Stripe, will contain data indicating the card contains a chip, which is why our terminals will force Insert/Tap. True MSR cards, that do not contain a chip, will not have this indicator and the terminal will allow SWIPE at the start.
Q: What are the supported card brands? Guessing support exists for Visa, MasterCard, American Express, Discover, and Interac, JCB, UnionPay
A: We support all of these card brands, but some can be optional.
Q: The terminal accepts the card not present (manual entry of the card number and expiry date). Is that for MOTO and terminals attached to websites and not the point of sale (card present) environment? Can and should it be turned off?
A: Manual Entry is on by default to allow merchants the ability to key in card numbers for various reasons. If you would like this disabled, we can update the file.
Q: Does the terminal allow fallback to manual mode? Should it be disabled? Are the steps that cause a fallback to manual?
A: There is no fallback to manual option.
Q: What about Chip Fallback to Manual and Card Not Present Manual?
A: This is an identifier field notating how the card was provided. If you Insert the card incorrectly 3
times then manually enter the card, it will have a Customer Card Entry Method of 5 (Chip Fallback to Manual). If you only enter the card manually, with no attempt at swipe/tap/insert, then it will have 3 (Manual Entry). Option 6 (Card Not Present Manual), would only be applicable for accounts setup as MOTO.
Q: Does chip transaction mean excludes swipe and fallback to swipe and include tap and insert?
A: Chip refers to Insert and Tap
Q: What integration method is best if I need to be able to tokenize card present transactions?
A: This is possible with CSDK. TSI does not support tokenization.
Q: We’re moving our application to be browser and app based right now. Removing the need to install
a Windows 10 box to run our software. Are Card Present transactions possible through that kind of interface. The use case would be staff using tablets or mobile phones to do the majority of work, is there a solution offered for this?
A: Raw TCP/IP sockets don't appear to be supported via any web browsers currently. There are several initiatives by web browsers giving developers access to raw sockets, but all have since been discontinued. If you are able to develop your own solution through Node.js, that may give you access to the needed sockets. Once you are able to develop a solution to relay via raw socket to terminal then it is possible to send commands from browser based solution (as well as mobile devices) to TSI devices, but you will not be able to do tokenization.
If tokenization is required, CSDK can work via iOS/Android by using dependencies/libraries, but if you need a browser based solution this will not work as you will need to run with CWS locally installed.
CSDK
Q: I get the following error on all my test card: transactionDidComplete: ECLTransactionResult_IssuerNeedsToBeContacted
A: This is a valid response but should not be on every test. If this is occurring on every transaction, it is likely card types need to updated in your demo account.
TSI
Q: Can TSI work with a Move 5000 4G sim card terminal?
A: TSI can't work with 4G, the terminal would need to be tethered to the devices WiFi or on a Comm Base that is connected via USB to the ECR/POS.
Q: The terminal flashes a red screen with EMV Keyload during a purchase. Should I worry about it?
A: Please follow these steps: # - Admin Menu , 8 - Host Management, 1- Key Load, 1- Key Load (non-print) .
Q: When the menu on the terminal times out, the terminal returns a EMV Key Load Required. This pops up during many different flows.
A: What happens when you complete the EMV Key Load? Does it succeed or fail? You should not receive the prompt unless device actually requires the EMV Key Load.
Q: Aren't terminals shipped with preloaded keys?
A: Devices are shipped with encryption keys, EMV key loads are used to sync cryptographic algorithms.
Q: What is the max number of transactions a terminal can hold?
A: The max limit for number of transactions a terminal can hold is 950.
Q; Does the DEMO TSI environment support Debit?
A: The DEMO environment for testing TSI integrations does not support Debit or Interac, that is why they would fail. This is on the roadmap to be added, but for certification of the solution we only need to test that your system can handle sending / receiving communication with the terminal. The card types, entry modes, etc..are not important as the terminals handle all of this.
Q: The TSI API documentation describes commands like pre-auth and completion, but they do not work.
A: The documentation is what is received by Ingenico, it shows everything their application supports. Elavon terminals do not support PreAuth and PreAuth Complete. When you send the command to the device, it should result in "Function Not Allowed Error". They do support Auth Only and Force.
Q: What is the technical difference between PreAuth vs Auth Only and Complete vs Force?
A: Auth Only - is supposed to be used for validating the card and to check if funds are available. The authorization is not expected to be captured.
Force - is supposed to be used when it was not possible to get an approval code via normal means and merchant must call Auth Center. With the TSI integration, in the request message, they will provide an amount, and the terminal will prompt for the card and an authorization code.
Pre Auth - is used for obtaining an authorization and placing a hold on card for specified amount of time.
Pre Auth Complete - is used to capture the Pre Auth hold.
Technically speaking it is reasonable to use the Auth Only as a way to place a hold on card and a force to convert the Auth Only to a sale as a workaround to not having the Pre Auth and Completion functions.
Q: When inserting the card, terminal responds with type 1 to agree. Window title is credit sale and the body of the message asks to confirm the dollar amount. Can the display just show the amount and not require user to read the display and press a button?
A: The amount confirmation prompt is not possible to remove. Cardholder should be able to press the green [Enter] button to move forward. This prompt is likely due to having tips enabled.
Q: The response to an approved purchase is "approved, press enter to continue," then there is a second screen with the approval code. Is it possible to only show the approval screen to the user.
A: Yes, the prompt can be removed. It is called DspRspDelay within the setup tab or HEM. The terminal file will need to be updated and a download complete to take effect. When going into production, each boarded account will need to specifically ask to remove the prompt. By removing the prompt, it should jump straight to sending data back to POS.
Q: Does the terminal have a network TCP Keep Alive option? Something to detect the connection with the POS is broken? Our current workaround is to reboot the terminal, which creates delays.
A: The closest thing to TCP Keep Alive option is the Heart beat (HEX 11) that you receive every 5 seconds while the ECR/POS is connected to the terminal. This is not relegated to TCP only, as it is something you would receive when connecting via USB to the device. If your ECR/POS does not have the Heart beat after 15 seconds, you can consider the connection broken. (Source page 16/83, section 5 - Heart Beat Method).
Q: Is it possible to shut off receipt error message going to the terminal printer?
A: In HEM (Transaction Tab), there is a checkbox for "Printer," we can try to disable the printer and do a terminal download to see if that stops the error.
Q: What is needed to get a boarded merchant set up for production using TSI?
A: The only thing needed is for us to enable semi-integrated mode on the terminal file, and add any custom parameters needed. All other TSI related configurations can be done on the terminal level (i.e. Port & Printer - ECR vs Terminal).
Q: Is a screen saver image supported.
A: It is not something we support.
Q: B2 test card 1 requires a PIN for $100 purchase using an insert (but not for a refund), but card 5 does not.
A: PIN prompt occurs based on card's CVM. If card 1 has a PIN listed on it that would explain the prompt for PIN, whereas card 5 does not. Refunds should not prompt for PIN because we do not have to validate the card with the Issuing Bank to give money back to a card.
Q: When refunding B2 test card 5 on an insert, it prompts for signature. I thought signatures are not required for EMV card present. Can this message be removed?
A: There is no prompt to remove signature. It is likely based on that card's CVM (PIN vs Signature) which is controlled by the card.
If an EMV is presented, then signature is not required, though not required, it is recommended to capture where possible.
Q: What is the difference between the terminal commands "delete batch online" and "delete batch"? Do these commands settle or purge the transactions?
A: Please, never use this command, unless the merchant service provider advises. It will not settle the
batch; only purge. The terminals use a Hybrid method of payment processing, where they will store the transactions in both Elavon's servers (HOST) and the terminal. When you settle the terminal, it will compare the info in both locations and determine if the batch is accurate. If there is a discrepancy, the response will be “RB Out of Balance” (RB = Rejected Batch). The difference between the calls is that online will validate the batch number on Elavon's end.
Q: Is the batch close (command 20/21) the same as one of these commands? Does the merchant initiate settlement from the merchant bank account, from the POS batch close command, does the merchant bank initiate? Do the terminals need to be online to settle?
A: Sending a Close Batch (20 – Settlement or 21 – Auto Settlement) is absolutely something you can use and it is encouraged. Terminal auto-settlement can be enabled so that the batch of transactions will be processed daily, but you don’t capture that information within your POS. If you send the batch close command, then you will be able to capture the data and store on your end. The terminal must be online in order to connect to Elavon and initiate settlement.
Q: What data does the terminal store after settling a batch? I can see the totals. Do I need to worry about the loss of memory after settling many batches? Is it normal or even possible for the POS to access older batches?
A: We recommend capturing the settlement data and storing on your side. If you ever lose data, you can contact us or pull up data manually through Payments Insider (online reporting tool). Nothing API related will be available to pull transaction/batch history.
Q: Ingenico document section 12.2 (ASCII command 30) provides detailed transactions. The command defiantly works.
A: Transaction Details, pulled via the Detailed Report command (30) is only going to work if the command was sent prior to settlement (the terminal has an open batch). If you send it post-settlement, then the response will show 0 transactions; an empty batch. It is not possible to request a batch report of transactions that have already been settled; i.e. a detailed batch report from the day/week/month before
Q: When the terminal returns ASCII '000', does that mean the terminal is done and will close the connection? That includes payments, refunds, void, last receipt, and various other commands in the 30 - 42 range.
A: Yes, ‘000’ is the transaction data, which is the final response from the terminal before it closes the connection. Be mindful to check the 3rd digit as that is the multi-transaction flag, so ‘000’ would be the final response but ‘001’ means you would receive another response immediately after.
Q: I am not seeing any commands to add/delete/update the clerk ID. Guessing that requires a manual entry for each clerk on each terminal?
A: Correct, adding Clerks would be a manual process directly into the terminal
Q: Trying to do a terminal download, it starts, but then it prints a download report that indicates a communication error.
A: If using a static IP, check to see if the IP entered in terminal is still valid and if they need to updated on our end.
Q: Is there an option to download static DNS settings?
A: There doesn’t appear to be a setting for Ethernet DNS. There is one for WiFi.
Q: Is there ability to programmatically get the serial number or MAC address from a terminal. I am looking for anything the POS can do to ensure the terminal has the correct configuration and detect physical tampering with the terminal
A: Unfortunately, no. This is something you would have to solve for through your solution. Past integrators have created ways of searching for the device on the network
Q: What is the hex code to get a detailed report (section 12.2) from the terminal? The idea is to reconcile the transactions on the terminal with the POS before issuing the settlement command to the terminal
A: ASCII 30 -> HEX 3330
Q: Wireshark trace sends the command sequence ASCII 300 to the terminal. Do the reporting commands not send the continuation flag ASCII 0 after the detailed report command ASCII 30?
A: You don’t have to send the multi-trans flag in your request to the device, so only send HEX 3330 instead of 333030. Detailed reports pass back receipt details (ASCII 99 / HEX 3939). If the receipt detail is larger than 1024 bytes, then it will have a non-zero multi-trans flag byte passed back (i.e. ASCII 991 / HEX 393931). To handle the detail report response, you will keep reading in 1024 bytes and check if the first 3 bytes of the data packet is either 99[0-9] or 00[0-9]. If 99, check the multi-trans flag and then determine if you need to send a print acknowledgment (ASCII 990 / HEX 393930). If 000, report complete.
Q: I submitted a purchase for $8.51, 8.54, and 8.61 expecting a decline with various error codes. They all got approved. How should the penny amount return codes work?
A: Those are the correct amounts that should decline. Appears NFC/TAP (Contactless) currently isn’t being handled by Elavon's simulator in the same way as the other entry methods. If you need a specific decline response, please Insert (Contact) the card.
Q: What are the antifraud options on the merchant account for payment terminals?
A: We can setup a duplicate transaction rule.
Q: Can max # of transactions per unit of time, dollar volume for transactions per unit of time, or max amount for single transaction be set up?
A: There are no options to limit based on timeframe or max amount limit.
Q: Do international cards work the same as the Canadian and US cards contained in the B2 test set?
A: The B2 US vs Canadian cards are not treated as regional specific, within the DEMO environment. The only thing checked is the card number against whitelist and then provide back a response based on the penny amount.
Q: Can I change the time and timezone on the terminal? (Seems like the terminal is in the Pacific Timezone)
A: The time zone of the device is based on the merchant account’s location. You can change it at the
terminal level, but I believe it will auto-revert upon download.
Q: In a response, what do the first 3 hex codes mean?
A: Section 10.3 (physical page 45 of the TSI Spec Doc) shows what the first 2 bytes (3030 -> 00) mean…Approved / Function Completed. The 3rd byte is the Multi-Transaction Flag (physical page 15 of the TSI Spec Doc)., which indicates whether there are more packets you need to read-in. The max message size is 1024 bytes (physical page 17 of the TSI Spec Doc).
Q: What is response 95?
A: Response 95 is a “Terminal Not Available” response (Section 6.2 page 12). To avoid this issue, you
should be able to enter the admin password into the terminal, when prompted, or the password requirement can be disabled.
Q: A purchase request returns lost communication to the host, then forces the printing of a sales receipt
with the same message.
A: We didn't see a response back to the terminal, from your ECR/POS, confirming you received the Receipt Data. That could throw a communication error message. Make sure you are sending back the acknowledgement back to the device. You only send the acknowledgement after the Receipt data has been received. This can be a true communication error between the terminal and host. Please verify the following: Main screen does not says "demo mode", check coms priority, check ethernet current setup (for wired terminals) especially the Pri Host IP / Name at the bottom .
Q: Serial communication, and not TCP, use STX, ETX, and LRC control characters?
A: Serial/USB uses STC/EXT/LRC; these are not used with TCP/IP messages
Q: There is nothing in between turning off receipt printing and electronically processing receipts?
A: By disabling receipt printing at the terminal level, it is expected that you would create/print your own
receipts via the ECR/POS. This is why you receive the receipt data response (ASCII 990 / HEX 393930), so that you will have all the necessary information to make the receipt with the required information (i.e. EMV data). You still want to get the settlement data for reconciliation, to make sure that every transaction you captured through the POS was settled via the terminal. You never know if a client switched the device to Stand-Alone mode, ran transactions, and then switched back to Semi-Integrated mode before settling; that would throw off any reports you generate.
Q: Can terminal do line item detail printing?
A: Unfortunately, the terminal cannot do line item detail printing. If you need those types of details, I
recommend we set Receipt Printing to ECR only, so that you can gather all necessary Credit/Debit Card Transaction receipt details, and then create your own custom receipts that you print externally (not through the terminal).
Q: What is the status of stopping the terminal from printing receipts?
A: Terminal would need to be set up for ECR for printing receipt then you just need to send 990 acknowledgement command when you receive the 990 response
Q: Can I turn off the standalone workflow on the terminal? The "pass terminal to the customer", "pass terminal to merchant", and other system error messages?
A: Pass terminal and confirm settle amount prompts can be disabled
Q: Do you have a list of the flows the terminal can go through?
A: There should be only 2 flows, Credit and Debit, when processing a payment
1) Welcome Screen
2) Prompt for Card Entry (Swipe/Tap/Insert/Key)
a. If Debit card is presented, it will prompt for the PIN
3) Approved/Declined Response is Displayed
4) Back to the Welcome Screen
Q: The terminal should not print or prompt the user to print when the ECR and terminal lose their TCP connection or do not understand each other.
A: It is not possible to prevent the printer from printing a receipt (aside from loading the paper incorrectly). The terminal will default to printing a receipt if the ECR loses connection or is unsuccessful in sending the receipt/print acknowledgement.
Q: Despite passing in all available filters for a void request, the terminal still pops up a window requesting filter criteria. Why is the terminal not accepting the passed-in filters? Did I do something
wrong? The title on screen is search menu and the terminal ignored the passed data.
A: It appears you are using the Data Tags associated with the response values, as opposed to the ones you send when creating a transaction (ECR Transaction Data). Page 36, Section 10.1 – Data List, breaks down each of the Data Tags into their respective category. Please update your data tags to reflect the 001 – 099 range, and that should bypass the search criteria prompt. It should only prompt you to confirm the amount presented
Unfortunately, there is no way to remove the “confirm amount” prompt from the process flow, so the merchant will need to manually press the green key to accept the void for the specified amount.
Q: When a customer uses a card expired card/ not have sufficient available funds in the card then payment is declined by the payment machine and our POS gets crashed. The only way to start it again is to reboot the system
A: Since is it the POS that crashes, You might be receiving back a response from the terminal that your
program doesn’t know how to handle. In general, most programmers will setup a “try/catch” exception handler so that in the event they encounter something they didn’t program for, it will ignore the failure and move on. Hopefully logs will help identify the particular issue.
Q: The batch number on the receipt does not come from the terminal when responding to the purchase. I assume the program needs to issue a separate call to get the Batch Number? Is there a
recommended call?
A: Data Tag (HEX/ASCII) “353030/500” is the batch number field. It is passed back in the Receipt Data packet (99 response). If you don’t capture the Receipt data, you can get the batch number from the SETTLE (ASCII 20) and AUTOSETTLE (ASCII 21) commands
Q: What is the trace number on the receipt? Is there a field number to use?
A: In the Receipt Data packet (99 response), data tag (HEX/ASCII) “343036/406” is the Trace Number field
Q: What is the "Trace 1" on the receipt?
A: This is a value created/stored on Elavon’s end. It is Data Tag: 406 in the transaction response. It is the transactions number position within the open batch, on Elavon’s end.
Q: What is the Ref number on the receipt? Is there a field number to use?
A: In both the Receipt Data packet (99 response) and Transaction Data packet (00 response), data tag (HEX/ASCII) “343132/412” is the Host Transaction Reference Number field
Q: Tap and insert are not returning AID, TVR, & TSI. Is there any reason why? (codes 311, 308, 309)
2 Not seeing code 312 for PIN verified when entering the PIN. It does return 306 indicating insert.
A: The information you are requesting should appear in the Receipt Data packet (99 response)
If you do not currently receive back the Receipt Data packet, enable it on the terminal:
- Admin
- Misc Options
- Semi-Integrated
- Receipt Options
- ECR
Q: Test matrix has three blocks for each test case: the stored date, cardholder data, merchant data. Is this good?
A: Make sure to notate the CVM result on all receipts, not just the PIN/Signature verified
Q: I assume card entry is insert, tap, swipe, not chip?
A: The exact responses we get for Card Entry Mode are numeric. Their corresponding values are in section 10.6 of the TSI Specification document.
Q: Do tap transactions need a "signature not required" statement on the receipt?
A: All transactions, including Tap, should pass back a CVM result (Data Tag: 312 in the transaction response), so you should display the CVM associated with the result.
Q: Can I test debit card logic on a test account for the United States (not Canada)?
A: A US demo unit would be needed, and tested if it supports testing debit.
Q: The attached image is a Wireshark trace of a void. I was expecting the original invoice back, not a 330. What am I missing?
A: The response you received was 300 (Transaction Status: 30 -> Invalid ECR Parameter, Multi-
Transactional Flag: 0). This is because you provided the Host Transaction Reference Number (captured in sale response under Data Tag: 412) instead of the Terminal/ECR Reference Number (captured in sale response under Data Tag: 112). So, an example payload to send for the Void request would be HEX: 30 35 1C 30 31 31 31 (ASCII: 05 – Void, 011 – ECR Reference Number with value 1, which refers to the first transaction the terminal has on record for this open batch). The response will contain the transaction type, date/time stamp, amount, Invoice Number, etc…
Q: How do I include invoice number?
A: You would need to let us know so we can have the terminal file updated.
Q: The DNS server settings were cleared when downloading the new file. Can that not happen?
A: There is no way to set the DNA on the terminal file so we cannot prevent it from updating upon download.