View the Project on GitHub PineapplePayments/pineapple-developer-center
The Transax idTech Augusta solution allows you to easily integrate secure card present payments using a desktop card reader that connects to your point of sale or comptuer via USB. This guide provides you with information on how to integrate the Augusta with your solution.
The idTech Augusta integration assumes you have already integrated your solution to Transax for some previous use case, specifically using the Rox Transaction API. The idTech Augusta is an incremental option to add card present payments to that integration.
The idTech Augusta is an EMV (chip) and MSR (magnetic stripe) capable card reader. The device encrypts card data at the point of interaction, ensuring your environment never sees sensitive cardholder data.
The device emulates a keyboard to output an encrypted card data string from the device, just as if you’d typed text in using your keyboard. Your solution will then manipulate the string to meet API needs before passing the final string as a single API parameter.
idTech Augusta devices ordered at http://shop.pymts.net/ come pre-configured with the encryption key and settings (Keyboard Mode, Quickchip) needed for Transax. Devices not ordered on this site cannot be used with Transax. Settings of the device should not be modified by your solution.
Once plugged in, your solution should look for data from the device as if it were a keyboard. Velocity checks can be used to differentiate data from the device vs. from a user with a keyboard.
Then, your application will need to parse, manipulate, and re-encode the data in the string from the device. Details on the necessary formats can be found in the API Reference documentation.
Transax has developed a JavaScript library that does this string manipulation for you. Simply pass this library the raw string output from the device, and the library’s event handler will provide you errors or the cleaned payload to send to the Transax API EmvData
parameter. You can use this library directly, or use it as a pattern for writing your own parsing functionality in whatever language is necessary.
The JavaScript library contains an HTML example to guide you; however be aware that it makes a few key assumptions to consider when designing your user experience:
Once you obtain a string in the proper format, you should form a payload to send to the API. This is described in further detail in the API Reference documentation; a sample payload could look as follows:
{
"params": {
"TransactionType": "sale",
"GatewayUserName": "mdmerchant",
"GatewayPassword": "traE#W@e3w2",
"PaymentType": "creditcard",
"Amount": "1.00",
"EmvData": "5720C7374F360785F20860435211EEE534CA584BC45A8DC5093A895B66E8A5BAFF30820218008408A00000000310100195058000008000DFEE25020203DFEE260222019F4005F000F0A0019F02060000000000009F03060000000000009F0607A00000000310109F36022A109F34035E00009F3901059F33036028C89F1A0208409F3501215F2A0208409A032004219B0268009F21031812309C01009F3704689D24D75F2D02656E5F340101DFEF5D104761CCCCCCCC0176D2412201CCCCCCCCDFEF5B084761CCCCCCCC01765A10323B726AC54296785DA928E5C7CDB6B15F200E4341524430332F555344454249549F160F3030303838373030303030303231379F1C0837353032393536399F2608DC4189BC3A0F9E3A9F2701809F100706011203A00000DFEF5720494420544543482041756775737461205553422D4B422056312E30332E303135DFEEEF000101DFEEEF010A6299490151002C2001F9",
"Terminal_ID": "71234567"
}
}