{"info":{"_postman_id":"a9afa7ed-e267-4239-a688-a54724dde0ff","name":"Paygistix Client Developer's Guide","description":"<html><head></head><body><p><a href=\"https://why.pay.link/images/LearningCenter/more/image_48.png\"><img src=\"https://why.pay.link/images/LearningCenter/more/image_48.png\"></a></p>\n<h1 id=\"about-this-guide\">About this guide</h1><h2>Intended Audience</h2>\n\n<p>This guide is intended for ISVs looking to integrate their application with a robust payment solution that:</p>\n<ul><li><p>Removes the POS application from the scope of PA-DSS compliance</p></li><li><p>Minimizes an end user’s or service provider’s scope of PCI DSS compliance</p></li><li><p>Provides a solution for EMV, NFC and other emerging payment technologies</p></li><li><p>Is backwards compatible with any integration (e.g. if there’s a new release of Paygistix Client, existing integrations will continue to function normally)</p></li><li><p>Offers value added technologies such as store-and-forward, signature capture, on-device tipping, digital<br>receipts, loyalty and more with minimal to no coding required</p></li><li><p>Allows users to use new hardware without requiring additional coding from the ISV</p></li></ul><h2>Associated Documentation</h2>\n\n<p>Calls to Paygistix Client (covered in this document), Paygistix Gateway web services (covered in the Paygistix Core API Guide and associated SDK kits), Paygistix Web (covered in the Paygistix Web SDK), Paygistix Cloud (covered in the Paygistix Cloud Developers Guide and associated SDK kits), and PayLink (Covered covered in the PayLink API requirements document, are compatible and may be interchanged where appropriate. In other words, all transactions ultimately connect up to the Paygistix Gateway and tokens (referred to as PNRef) supplied in responses from any one of our integration technologies can be subsequently used to make calls with any other of our integration technologies.</p>\n<h2>Supported Platforms</h2>\n\n<p>Paygistix Client can be installed on the following Microsoft Operating Systems:</p>\n<ul><li><p>Windows 7 or higher</p></li><li><p>Windows Server 2012 R2 or higher</p></li></ul>\n\n<p>In addition to the operating system, the following software needs to also be installed:</p>\n<ul><li><p>Windows Script Host</p></li><li><p>Microsoft .NET Framework 4.5 or higher</p></li><li><p>Microsoft MSXML component</p></li></ul><h2>Windows Scripting</h2>\n\n<p>Throughout this document we will be using the Microsoft Windows Script host to demonstrate sample code. If you would like a primer on Windows Scripting the following link can provide some valuable information: <a href=\"http://www.microsoft.com/technet/scriptcenter/topics/beginner/firststeps.mspx/\">http://www.microsoft.com/technet/scriptcenter/topics/beginner/firststeps.mspx/</a></p>\n<p>The Windows Script Host utility can launch small programs written in VBScript; which is a subset of the Microsoft Visual Basic programming language.</p>\n<h2>MSXML Requirements</h2>\n\n<p>Most of the scripts discussed in this document include some level of XML input and output. For these scripts to run and make the necessary internet requests, we will be utilizing MSXML which is a library of functions found in most installations of Windows.</p>\n<p>It is likely that the example code included in this integration kit will work with the version of MSXML you have already installed. If you need further information on installing this library, please see the following link for help: <a href=\"http://support.microsoft.com/kb/324460/\">http://support.microsoft.com/kb/324460/</a></p>\n<h1 id=\"installing-the-application\">Installing the Application</h1><h2>Prerequisites</h2>\n\n<p>Before running the installer you should ensure that you have Microsoft .NET Framework 4.5 or higher installed. This can be downloaded directly from Microsoft using the following link if required.<br><a href=\"http://www.microsoft.com/en-us/download/details.aspx?id=30653\">http://www.microsoft.com/en-us/download/details.aspx?id=30653/</a></p>\n<h2>Installing</h2><ol><li><p>Request a sandbox account here<a href=\"http://why.pay.link/developers\">http://why.pay.link/developers</a>.</p></li><li><p>A developer support representative will email you the installer package and an activation code</p></li><li><p>Run the install package as administrator.</p></li><li><p>Enter the activation Code. To request an additional activation code, contact developer support at 888-472-9564 or devsupport@paymentlogistics.com.</p></li></ol><h1 id=\"configuration-parameters\">Configuration Parameters</h1><p>The following are the main configuration parameters that will be configured on your behalf by Payment Logistics. To request a configuration change, contact contact developer support at 888-472-9564 or devsupport@paymentlogistics.com.</p><ul><li><p><b>HttpServerPort = 8080</b></p></li><p>The port number Client uses to listen for HTTP requests.</p><li><p><b>ServerDomainOrIP = 127.0.0.1</b></p></li><p>The IP address to listen on, which is normally set to 127.0.0.1, except when running on a server. See the Advanced Features section for more information.</p><li><p><b>Gateway = https://cert.paygistix.net</b></p></li><p>The URL of the Paygistix gateway. For certification and testing use https://cert.paygistix.net , for production use https://ipn3.paygistix.net.</p><li><p><b>HttpsServerPort = 8081</b></p></li><p>The port number to use when using a local SSL connection. Contact Payment Logistics about how to install a local certificate for SSL.</p><li><p><b>WatchFolder = “c:\\folder\\” or “\\\\UNCPath\\Folder”</b></p></li><p>When using the filedrop method (for legacy systems that do not want to support more modern HTTP communication methods), this folder is set to listen for file requests to trigger transactions. We recommend setting this value to a specific folder on the same machine that Paygistix Client is installed. Using UNC file paths are less efficient as they cause Paygistix Client to poll for files rather than use windows messaging which is trigger based.</p><li><p><b>SAFMode=Proactive|Auto</b></p></li><p><b>Proactive </b>= If Paygistix Client detects that a transaction cannot be run online, SAF will automatically be enabled.</p><p><b>Auto </b>= Paygistix Client reads the response from the Pax device and/or Gateway, and depending on the response, the cardholder will be prompted to run the transaction offline. Auto mode was created to cover scenarios not covered by proactive mode, and it can be enabled alongside proactive mode.</p><li><p><b>AllowOfflineVoid = ON | OFF</b></p></li><ul><li><p><b>ON </b>= Allow voids of offline transactions that have not yet been uploaded/</p></li><li><p><b>OFF </b>= Blocks the voiding of offline transactions that have not yet been uploaded/</p></li></ul><p></p><p></p><li><p><b>ReturnExtendedCardData = YES | NO</b></p></li><p>If this value is set to YES, additional response parameters are returned when calling transactions such as /pay/auth, /pay/repeatauth, /pay/sale, /pay/repeatsale, /pay/credit, and /pay/billcard. These additional response parameters are:</p><ul><li><p><b>Last4 </b>= last 4 digits of the credit or debit card account number used</p></li><li><p><b>Name </b>= cardholder’s name</p></li></ul><p></p><li><p><b>MinimizeOnStartup = YES | NO</b></p></li><p>When set to YES, the card BIN (Bank Identification Number) is returned in Paygistix Client’s response. This is useful for POS systems that need to categorize transactions by BIN.</p><li><p><b>ReformatName= YES | NO</b></p></li><p>Returns the cardholder’s name as LASTNAME/FIRSTNAME vs. the default FIRSTNAME LASTNAME. For POS systems that create bar tabs based on the cardholder’s name, enabling this setting puts the last name first, which is desirable for some bars.</p><li><p><b>Logging = YES | NO</b></p></li><p>When set to YES, this records local Paygistix Client events in a graphical interface. The interface records events live as they happen and is useful for troubleshooting. This interface appears on the same windows endpoint Paygistix Client is running on.</p><li><p><b>LogFullParams = YES | NO</b></p></li><p>When set to YES, the full request and response parameters are logged within the Paygistix Client Control Panel, which is accessible to Payment Logistics personnel. This setting is helpful for debugging, but it should not be left on in a production environment as it can create superfluous logs.</p><li><p><b>Trace = YES | NO</b></p></li><p>When set to YES, the full request and response parameters for PATT and PayLink are logged. This setting is helpful for debugging, but it should not be left on in a production environment as it can create superfluous logs.</p><li><p><b>ReturnExpDate = YES | NO</b></p></li><p>When set to YES, pay/auth and pay/sale transaction responses include the expiration date of the card. This applies to credit, debit, and EBT.</p><li><p><b>TipOnlySale = YES | NO</b></p></li><p>When set to YES, sales where the tip amount equals the amount paid are allowed.</p><li><p><b>EMVReceipt = YES | NO</b></p></li><p>When set to “yes,” EMV receipt data is returned in the transaction response for EMV transactions.</p><li><p><b>CaptureAllTenderType = CREDIT | DEBIT |EBT | ALL</b></p></li><p>When a CaptureAll request is sent to Paygistix Client, this setting determines whether only credit, debit, or EBT batches close, or whether all of them will be closed.</p><li><p><b>PAXMode = ON | SERVER</b></p></li><ul><li><p><b>ON</b> = Use a single PAX Device</p></li><li><p><b>SERVER</b> = Run Paygistix Client in server mode allowing for remote requests and multiple PAX devices.</p></li></ul><p></p><li><p><b>PAXDevice = “COM1, {deviceid},MT30” or “192.168.0.99:10009, {deviceid},MT30”</b></p></li><p>Either the Serial or TCP/IP connection for the PAX device; Payment Logistics will supply the deviceid relating to your specific PAX device. For TCP/IP you must supply the IP address followed by the port number. Can be setup as MT30, SP30, S80, D200, D210 or S300 depending on which PAX device you have. The PAXDevice configuration is intended for use where there is a single MT30, SP30, S80, D200, or D210 associated with the Paygistix Client when used with PAXMode=ON.</p><li><p><b>PAXUserMapping =User1,192.168.0.99:10009,{deviceid1},MT30|User2,192.168.0.98:10009,{deviceid2},MT30|{…}</b></p></li><p>Similar to the PAXDevice option above, but allows multiple devices to be bound to different Paygistix users when running in server mode. PAXUserMapping is ideally suited to a multilane environment where PAXMode=SERVER. You must choose either PAXUserMapping or PAXDevice, but not both.</p><li><p><b>SNMapping=Serial1,Token1,IPAddress:Port,TerminalType1| Serial2,Token2,IPAddress:Port,TerminalType2</b></p></li><p>Similar to the PAXUserMapping option above, but allows for the use of PAX IP Registration.</p><li><p><b>PAXCaptureSignature = YES | NO</b></p></li><p>Whether to cause a PAX device to prompt the cardholder for a signature by default. If set to “NO” this can be manually initiated by sending the optional “Signature = “YES” parameter when calling the /pay/auth or /pay/sale function. Please note, when the PAX device collects a signature from the cardholder during an Auth or Sale function, that signature is automatically sent to the Paygistix Gateway and archived along with the merchant’s copy of the receipt. To capture a signature without a transaction, use the getsignature function.</p><li><p><b>SignaturePath = “c:\\Signature{PNREF}.jpg”</b></p></li><p>The name of the file to write the signature file to. This will replace {PNREF} with the transaction reference returned from the /pay/sale or /pay/auth transaction. Please note, when a signature is captured as part of a /pay/auth or /pay/sale transaction, the signature is always sent to the Paygistix Gateway for archival. The SignaturePath configuration option allows an image of the signature to also be stored on the merchant’s local windows environment.</p><li><p><b>PAXSignStatus = YES | NO</b></p></li><p><br>When set to YES, a status variable is returned to indicate the nature of the capture or whether it succeeded or not. For SignStaus, the following responses are possible:<br></p><ol><li><p>The signature was captured and stored on the terminal but not uploaded</p></li><li><p>The signature screen was aborted</p></li><li><p>The signature screen timed out</p></li><li><p>A signature was not captured</p></li><li><p>The signature uploaded successfully</p></li><li><p>The signature failed to upload</p></li><li><p>The signature was captured after the transaction had ended</p></li></ol><p></p><li><p><b>PAXTipRequest = YES | NO</b></p></li><p>Whether to automatically support inline Tip’s on the PAX device. If set to NO this can be manually initiated using the “TipRequest = YES” parameter when calling the /pay/sale function.</p><li><p><b>PAXCreditDebitButtons = YES | NO</b></p></li><p>When set to YES, a call to the /pay/sale function prompts the cardholder to choose Credit or Debit on the payment device screen, after selection the cardholder is prompted to swipe their card. If set to “NO,” this can be manually initiated by sending the “PaxCreditDebitButtons=”YES” parameter when calling. Please note, when using this feature, you will not know what tender type is used prior to the transaction occurring since the cardholder can choose their tender type on the PAX device. As such you will need to parse the “CardType” response parameter to determine the tender type and account for the sale properly in your system where desired.</p><li><p><b>PAXAutoClearBatch = YES | NO | 0-23</b></p></li><p></p><p>When set to YES, at 2am local computer time the PAX device is cleared of stored transactions (Transactions are cleared since they serve no purpose due to the fact that they are batched by the Paygistix Gateway instead of the terminal). If an hour other than 2am is desired, a whole integer between 0-23 can be set (Ex: 0 is 12:00 AM, and 23 is 11:00 PM). If set to NO, the POS will be responsible for daily clearing of the transactions using the /pay/clearbatch function.</p><li><p><b>PAXTimeoutSeconds = Numeric Value</b></p></li><p></p><p>The number of seconds that Paygistix Client will wait for a transaction to complete on a PAX Terminal. The timer begins once the transaction is sent to the terminal. If not set, the default time is 300 seconds.</p><li><p><b>PaxButtons = CDEFCGL</b></p></li><p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. They are the letters: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p><li><p><b>TerminalResponse = YES | NO</b></p></li><p>Returns the result text from the payment device in the parameter “TerminalMessage.”</p><li><p><b>EMVReceipt = YES | NO</b></p></li><p>When set to YES, extra EMV data will be returned by Paygistix Client for Chip Card transactions. This is necessary for printing EMV receipts.</p><li><p><b>MinimizeOnStartup = YES | NO</b></p></li><p>When enabled, the Paygistix Client application window will minimize after starting up. This reduces occurrences where end users close the application window accidentally.</p><li><p><b>Note on SSL/TLS:</b></p></li><p>Beginning in Paygistix Client version 1.1.9, the server is also configured by default to listen on port 8081 for HTTPS (SSL/TLS encrypted) traffic however some additional configuration steps are required on each station. Please contact Payment Logistics for assistance with SSL/TLS configuration.</p></ul><p>Default Configuration upon installation:</p><ul><li><p>SERVERDOMAINORIP = 127.0.0.1</p></li><li><p>SERVERPORT = 8080</p></li><li><p>HTTPSSERVERPORT = 8081</p></li><li><p>GATEWAY = https://paygistixcert.paymentlogistics.net</p></li><li><p>PAXMODE = OFF</p></li></ul>\n\n<p>*Configuration settings are no longer within the PaygistixClient.exe.config file but are now contained within the settings.xml file. This new encrypted file can be configured away from its default settings with the help of your Payment Logistics support representative.</p>\n<h2>Launching Paygistix Client</h2>\n\n<p>The installer will add the Paygistix Client local server application to the Windows user “Startup” folder ensuring that the server automatically listens once the user logs in. Following installation, you can also manually start the server by selecting Paygistix Client from <strong>Start-&gt;All Programs-&gt;Payment Logistics.</strong></p>\n<p>Paygistix Client can be run as a Windows Service. This is desirable for environments where the Windows machine running Paygistix Client is not always logged in with a windows user. To run Paygistix Client as a service, after installing:</p>\n<ol><li><p>On the Windows machine, in the Windows Startup Folder, delete the Paygistix Client shortcut</p></li><li><p>Go to Windows services</p></li><li><p>ind “Paygistix Client Monitor Service”</p></li><li><p>Start the service</p></li><li><p>Set the Startup type to Automatic</p></li><li><p>Save</p></li></ol><h2>Paygistix Client Application Infrastructure</h2><p>The following graphics illustrate how Paygistix Client works in Client Mode and Server Mode.</p><p>Client Mode with Payment Terminal Option</p>\n\n<p><a href=\"https://why.pay.link/images/DeveloperCenter/client_mode.jpg\"><img src=\"https://why.pay.link/images/DeveloperCenter/client_mode.jpg\"></a></p>\n<p>Server Mode with Payment Terminal - Compatible with POS Systems Running on All Operating Systems</p>\n\n<p><a href=\"https://why.pay.link/images/DeveloperCenter/server_mode.jpg\"><img src=\"https://why.pay.link/images/DeveloperCenter/server_mode.jpg\"></a></p>\n<p>Paygistix Client runs as a local web server on a Windows endpoint. In Client mode it runs on the actual POS workstation and is designed to accept local requests. In Server mode, it runs on a networked Windows endpoint and is designed to accept requests from multiple other endpoints which could be POS workstations, POS servers, mobile endpoints web servers or a combination thereof. Your application connects directly to Paygistix Client via HTTP or HTTPS. All payment screens and integrated terminals are managed by Paygistix Client in separate memory space and Paygistix Client and its integrated terminals handle all connections to the Paygistix Gateway. An integration with Paygistix Client provides a secure means of transaction processing outside of your application, maintains the benefits of a fully integrated payment processing solution and eliminates many of the challenges faced by application developers which are associated with integrated payments.</p>\n<h1 id=\"advanced-features\">Advanced Features</h1>\n\n<p>In this section we will cover some additional more advanced features including running Paygistix Client on a server with multiple machines attaching to it as clients and a method to communicate via the file system rather than via HTTP/HTTPS.</p>\n<h2>Running Paygistix Client in Server Mode</h2><p>The main purpose for running Paygistix Client in server mode is if you have a number of POS devices and you want to centralize a single dedicated machine to handle the transaction routing for you, or you have a non-windows environment and want to require only a single windows endpoint to use Paygistix Client with. A change must be made to the Paygistix Client configuration settings to ensure the server is listening on a valid network IP address. This must be a static IP address too. You will need to supply the static IP address you wish to use to Payment Logistics to have the Paygistix Client configuration updated.</p><p>Your server firewall rules must allow machines on the network to connect via TCP/IP over the allocated port. The default port Paygistix Client listens on for HTTP traffic is 8080. The default port Paygistix Client listens on for HTTPS traffic is 8081.</p>\n\n<p><strong>Warning:</strong> When PAXMode is set to SERVER or ON, any functions called that involve interaction with the PAX device will use the “password” value that is pre-programmed in the PAX device and not the “password” sent in the call to the API.</p>\n<p><strong>Warning:</strong> Any functions called that DO NOT involve interaction with the PAX device will require the passing of the proper Paygistix username and password.</p>\n<h2>Calling Paygistix Client in Server Mode</h2>\n\n<p>When calling Paygistix Client in Server mode, you must use the IP address and port of the server. An example of a VB script to call a sale which will initiate a transaction on a PAX device is as follows:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    'Setup URI for sale. Use IP address of server rather than local IP\n    Dim URI: URI = \"http://192.168.0.2:8080/pay/sale/?\"\n    'Append Username &amp; Password (minimum requirements)\n    'set output type to XML for easy reading\n    URI = URI &amp; \"Username=payg2783&amp;Password=paylogtest&amp;Output=XML\" \n    'Use MSXML to call the local web service\n    Dim xmlHttp: Set xmlHttp = CreateObject(\"Msxml2.ServerXMLHTTP\")\n    'Disable any timeouts\n    xmlHttp.setTimeouts 0,0,0,0\n    'Open the connection and send the request\n    xmlHttp.open \"GET\", URI, false\n    xmlHttp.send \n    'Output the response\n    WScript.echo \"Sample Script: Sale response\" &amp; vbcrlf &amp; xmlHttp.ResponseText\n    Set xmlHttp = nothing\n\n\n</code></pre><p>Following the call to this function the PAX device will ask for a card to be swiped and on completion of the transaction the script will return the XML response to say if the transaction completed correctly or not.</p>\n<h2>Configuring multiple PAX devices when working in a networking environment</h2>\n\n<p>When working with multiple PAX devices on a network it is advisable to set each one up with a different username on Paygistix. This way you can account for and report on the individual terminals transactions.</p>\n<p>The configuration settings must have a PAXUserMapping parameter as follows <strong>“User1,192.168.0.99:10009,{deviceid1},MT30|User2,192.168.0.98:10009,{deviceid2},MT30|{…}”.</strong></p>\n<p>Please contact your Payment Logistics support representative to configure these settings on your behalf. When using PAXUserMapping, each PAX device should be configured with a static IP on the internal network.</p>\n<p>You can setup as many device / user combinations as you like; each one is separated with a pipe “|“ symbol. When initiating a transaction, simply send the appropriate username through in the calling function and this will determine which device will be targeted.</p>\n<p>Beginning with Paygistix Client version 2.2.3 release C, PAXUserMapping can be replaced with SNMapping. This allows PAX devices to be configured with dynamic IP addresses using DHCP. The PAX devices will automatically register their IP address with Paygistix which allows these devices to be plug and play. Anytime the device IP address changes, it is automatically updated in Paygistix in real-time.</p>\n<p>In the example below you can see the only change you need to make to target a specific device is the Username parameter.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    'Setup URI for sale. Use IP address of server rather than local IP\n    Dim URI: URI = \"http://192.168.0.2:8080/pay/sale/?\"\n    'Append Username &amp; Password (minimum requirements)\n    'set output type to XML for easy reading\n    URI = URI &amp; \"Username=User1&amp;Password=paylogtest&amp;Output=XML\" \n    'Use MSXML to call the local web service\n    Dim xmlHttp: Set xmlHttp = CreateObject(\"Msxml2.ServerXMLHTTP\")\n    'Disable any timeouts\n    xmlHttp.setTimeouts 0,0,0,0\n    'Open the connection and send the request\n    xmlHttp.open \"GET\", URI, false\n    xmlHttp.send \n    'Output the response\n    WScript.echo \"Sample Script: Sale response\" &amp; vbcrlf &amp; xmlHttp.ResponseText\n    Set xmlHttp = nothing\n\n\n</code></pre><h2>Communicating via File Drop rather than HTTP</h2>\n\n<p>Instead of using HTTP to communicate with Paygistix Client, you can set it up to work using files. This can come in handy when working with legacy systems that may have system limitations preventing HTTP(s) communication or are already accustomed to using a file drop method for payment integration.</p>\n<p><strong>WatchFolder = “c:\\folder\\” or “\\\\UNCPath\\Folder”</strong><br>When using filedrop method, this folder is set to listen for file requests to trigger transactions. See the Advanced Section later in this guide for more information regarding the file drop method. We recommend where possible to set this value to a specific folder on the same machine that Paygistix Client is installed. UNC file paths are less efficient as they have to poll for files rather than use windows messaging which is trigger based.</p>\n<p>Input files can be sent through as .TXT or .XML</p>\n<p>For .TXT you need to pass through the values as Name Value Pairs. So for instance if you wanted to call a SALE using the test account, you would have the following content in your file.</p>\n<p><b>Filename: c:\\drop files\\ABC123.TXT</b></p>\n\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>ServiceType=SALE\nUserName=payg2783\nPassword=paylogtest\nAmount=10\nInvoiceNumber=ABC123\nOutput=NVP\n\n</code></pre><p>If you wish to use XML then you should output the file in the following format.</p><p><b>Filename: c:\\drop files\\ABC123.XML</b></p>\n\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"\n    SALE\n    payg2783\n    paylogtest\n    10.00\n    ABC123\n    XML\n\n</code></pre><p>Paygistix Client monitors the watch folder for transaction files and when it sees a new one arrives it will consume the file and make the corresponding function call. Once the function has been processed, the result will be returned in a file with the same name as the input file but with the file extension .OUT. The response within the .out file will either be Name Value Pairs or XML depending on the format of the request.</p>\n<h1 id=\"digital-receipts\">Digital Receipts</h1><p>ISVs who integrate with Paygistix Client can easily add support for PayLink Digital Receipts.</p>\n\n<p><strong>What are Digital Receipts?</strong></p>\n<p>An online version of a receipt that customers receive via text message.</p>\n\n<p><strong>What's the big deal with Digital Receipts anyway?</strong></p>\n<p>PayLink Digital Receipts allow ISVs to enhance the value proposition of their POS by enabling their merchants to connect with their customers digitally. For example, merchants can embed an advertisement, promotion, links to social media, website links, etc... right on the receipt itself.</p><p>Merchants can also enable PayLink Ratings to get valuable feedback from customers. When enabled, customers rate their experience from 1 to 5 stars right on the Digital Receipt. Merchants can then access this information in the PayLink Portal, empowering them to make informed decisions to improve their customer experience.</p>\n\n<p><strong>How does a cardholder get their digital receipt?</strong></p>\n<p>When a cardholder is checking out through a Pax Device it will prompt them for their phone number. Then they'll complete their payment per usual (EMV, contactless, etc...). Afterwards they'll receive a text with a link to their digital receipt.</p>\n\n<p><strong>Does this work for ecommerce or Direct-to-Pax applications?</strong></p>\n<p>Yes, but we offer a separate API for this. Contact devsupport@paymentlogistics.com for more information.</p>\n\n<p><strong>Does this work for cash payments?</strong></p>\n<p>Not at this time.</p>\n\n<p><strong>What does it cost?</strong></p>\n<p>Digital Receipts require merchants to sign up for a PayLink plan on https://why.pay.link.</p>\n\n<p><strong>Specifications</strong></p>\n<p>Paygistix Client’s Digital Receipt feature offers customers the option of receiving a link to their receipt via text message. This works through a prompt on the payment device that asks the customer how they want to receive their receipt. The options are Print, SMS, or None. The result of the customer’s selection is returned in the payment response, and includes the customer’s phone number if applicable. The prompt is shown during the payment process when the transaction is being run on the terminal, and is not a separate request.</p><p><a href=\"https://why.pay.link/templates/rt_fluent/custom/images/Phones/Receipt.png\"><img src=\"https://why.pay.link/templates/rt_fluent/custom/images/Phones/Receipt.png\"></a></p>\n\n<p>The receipt is sent in the /pay/sale request, and is a Base64 Encoded string. The string should be 32 columns wide, with each column separated by the string “\\n”. At the end of the string, append the string “{BODY}”.</p>\n<p>Sample string:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>1 Avocado Toast            $9.00\\n* Lemon Slice                   \\n================================\\nTip                        $0.13\\nTotal                      $9.13\\n================================\\n{BODY}\n\n</code></pre><p>This string would then get Base64 Encoded, and become:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>MSBBdm9jYWRvIFRvYXN0ICAgICAgICAgICAgJDkuMDBcbiogTGVtb24gU2xpY2UgICAgICAgICAgICAgICAgICAgXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGlwICAgICAgICAgICAgICAgICAgICAgICAgJDAuMTNcblRvdGFsICAgICAgICAgICAgICAgICAgICAgICQ5LjEzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxue0JPRFl9\n\n</code></pre><p>Example Request for a /pay/sale, with included receipt data:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\"\n    payg2783\n    paylogtest\n    9.13\n    9.13\n    ABC123\n    XML\nMSBBdm9jYWRvIFRvYXN0ICAgICAgICAgICAgJDkuMDBcbiogTGVtb24gU2xpY2UgICAgICAgICAgICAgICAgICAgXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuVGlwICAgICAgICAgICAgICAgICAgICAgICAgJDAuMTNcblRvdGFsICAgICAgICAgICAgICAgICAgICAgICQ5LjEzXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxue0JPRFl9\n\n</code></pre><p>This generates the following receipt, and texts it to the customer automatically:<br><a href=\"https://dev.pay.link/mobile/cb200faa10894e13a285b4e4a0e2f51d\">https://dev.pay.link/mobile/cb200faa10894e13a285b4e4a0e2f51d</a></p>\n<p><a href=\"https://why.pay.link/images/PostmanAPIDocs/q25_Digital_Receipt_4.png\"><img src=\"https://why.pay.link/images/PostmanAPIDocs/q25_Digital_Receipt_4.png\"></a></p><p>The payment/transaction response will include additional fields:</p>\n\n<p><strong>ReceiptType:</strong></p>\n<ul><li><p>S for SMS Text</p></li><li><p>P for Print</p></li><li><p>N for No Receipt</p></li></ul><p>Since this field is not required, if it is not present in the response then use the default system behavior of the POS.</p>\n\n<p><strong>SMSTextNumber:</strong></p>\n<ul><li><p>This field should be present when ReceiptType=S.</p></li><li><p>The format of the SMSTextNumber is “+18885729564”.</p></li></ul><p>Below is an example response returned from a MasterCard transaction using /pay/sale/:</p>\n\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>    10.00\n    OK7156\n    Address Match + 5 Zip\n    MASTERCARD\n    1a4a1d44-d715-4d7c-a3e5-f612d843c20c\n    ABC123\n    0026\n    APPROVED\n    John Doe\n    35898\n    SALE\n    0\n    Match\n    Match\n    S\n    +18885729564\n\n</code></pre><p>Each merchant will need their own PayLink account. An account on our development servers will be provided for development, as well.</p>\n<h1 id=\"receipt-guidelines\">Receipt Guidelines</h1>\n\n<p>With the introduction of EMV transactions comes new requirements for EMV transaction receipts. The purpose of this section is to provide guidelines for printing receipts for EMV transactions.</p>\n<p>The following covers what new data will be included and how it will be returned in a Paygistix Client response. See below for examples of a typical transaction response and a paper receipt.</p>\n<p><strong>EMV Receipt Response Data</strong><br>Below is a list and brief description of the Paygistix Client response parameters which will be included in the response returned for sale transactions in which an EMV card was used to complete the transaction.</p>\n<table><tbody><tr><th>Parameter Name</th><th>Full Name</th><th>Description</th></tr><tr><td>Method</td><td>Entry Method</td><td>Method signifies the mode of entry used to collect the cardholder data. Possible values are: Manual | Swipe | Contactless | Scanner | Chip | Chip Fallback Swipe</td></tr><tr><td>TC</td><td>Transaction Certificate</td><td>A TC is a type of Application Cryptogram that is generated whenever a card approves a transaction during Card Action Analysis.</td></tr><tr><td>TVR</td><td>Terminal Verification Results</td><td>The TVR is a series of bits set by the terminal reading an EMV card, based on logical tests (for example has the card expired). This data object is used in the terminal's decision whether to accept, decline or go on-line for a payment transaction</td></tr><tr><td>AID</td><td>Application Identifier</td><td>An AID is used to uniquely identify each EMV application that a terminal supports, and every AID has an associated card scheme and parameters relating to how the application needs to be processed. A terminal may contain any number of such applications, and the list of each supported AID is used during Candidate List Creation to generate a list of applications that are mutually supported by both the terminal and the card.</td></tr><tr><td>TSI</td><td>Transaction Status Information</td><td>The TSI is a collection of indicators that the terminal will set to show what processing steps have been performed on the current transaction (e.g. Cardholder Verification, Data Authentication). Together with the TVR, this information enables the card and the host to manage risk and determine the correct outcome for the transaction.</td></tr><tr><td>ATC</td><td>Application Transaction Counter</td><td>A counter, maintained by the chip card application (incremented by the chip), that provides a sequential reference to each transaction. A duplicate ATC, a decrease in ATC or a large jump in ATC values may indicate data copying or other fraud to the issuer.</td></tr><tr><td>APPLAB</td><td>Application Label</td><td>Mnemonic associated with AID according to [ISO 7816-5]. Used in application selection. Application Label is optional in the File Control Information (FCI) of an Application Definition File (ADF) and optional in an ADF directory entry.</td></tr><tr><td>APPN</td><td>Application Preferred Name</td><td>EMV cards will often include an ‘application preferred name’, which is the name of the card application in the cardholder’s local language.</td></tr><tr><td>CVM</td><td>Cardholder Verification Method</td><td>Possible values are: PIN Verified | Signature | NotReq</td></tr><tr><td>PrintSigLine</td><td>Print Signature Line Indicator</td><td>This value indicates whether or not to print a signature line on a receipt.Possible values are: TRUE | FALSE =&gt; TRUE = Print Signature Line | FALSE = Don’t Print Signature Line</td></tr></tbody></table><h2>Example Paygistix Client EMV Transaction Response</h2>\n\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  10.00\n  OK9816\n  Address Match + 5 Zip\n  MASTERCARD\n  a687d6fe-1700-40f1-8be3-13bf14694dc5\n  ABC123\n  APPROVED\n  237122\n  TRUE\n  0\n     ***Example EMV Data***\n      Chip\n      9B45AB13C3101576\n      0200008000\n      A0000000041010\n      E800\n      0001\n      MasterCard\n      Signature\n\n</code></pre><h2>Example EMV Transaction Receipt</h2>\n\n<p>In the image below the EMV data is highlighted in pink. This example does not include the APPN as it’s not returned for every EMV transaction.</p>\n<p>Besides EMV data, other data that should be printed on both EMV and non EMV receipts are: Card Type, Last 4 of Card number, Authorization Code, Merchant Name, Date, PNRef Number, Response (known as “Message” in the Paygistix Client Developers Guide), Date, and Time. See the Paygistix Client Developers guide for more information on obtaining the above data. Please note, as you will see below, in most cases using abbreviations to describe the data title is acceptable so long the title is reasonably identifiable.</p>\n<p><a href=\"https://why.pay.link/images/DeveloperCenter/receipt_emv_1.png\"><img src=\"https://why.pay.link/images/DeveloperCenter/receipt_emv_1.png\"></a></p>\n<p><strong>Questions?</strong> Contact developer support at 888-472-9564</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"About this guide","slug":"about-this-guide"},{"content":"Installing the Application","slug":"installing-the-application"},{"content":"Configuration Parameters","slug":"configuration-parameters"},{"content":"Advanced Features","slug":"advanced-features"},{"content":"Digital Receipts","slug":"digital-receipts"},{"content":"Receipt Guidelines","slug":"receipt-guidelines"}],"owner":"3936658","collectionId":"a9afa7ed-e267-4239-a688-a54724dde0ff","publishedId":"TWDRqyxX","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"EBEBEB","highlight":"006fba"},"publishDate":"2021-10-13T20:27:38.000Z"},"item":[{"name":"Transaction Requests","item":[{"name":"Function pay/auth","id":"e43f9e9a-447e-4406-8b3a-aecae64b8a09","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required) </p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required) </p>\n","key":"Password","type":"text","value":""},{"description":"<p>Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction</p>\n<p>Type: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions: \nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FileName","type":"text","value":""},{"description":"<p>Options\nYES=the PAX device will request a signature</p>\n","key":"Signature","type":"text","value":""},{"key":"ReceiptTemplateBase64","value":"","description":"<p>The itemized receipt data as a Base64 Encoded string, 32 columns wide, and separated by the sting \"\\n\" with the string \"{BODY}\" appended to the end. (required)</p>\n","type":"text"}]},"url":"http://localhost:8080/pay/auth/","description":"<p>Use this function to request an authorization.</p>\n<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/auth/</p>\n<p>Example XML envelope with several optional parameters selected:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\"\n  &lt;Request&gt;\n    &lt;UserName&gt;payg2783&lt;/UserName&gt;\n    &lt;Password&gt;paylogtest&lt;/Password&gt;\n    &lt;Amount&gt;10.00&lt;/Amount&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Output&gt;XML&lt;/Output&gt;\n    &lt;FileName&gt;c:\\result.txt&lt;/FileName&gt;\n    &lt;ReceiptTemplateBase64&gt;&lt;/ReceiptTemplateBase64&gt;\n  &lt;/Request&gt; \n</code></pre><p>An example script calling the /pay/auth/ function with the same optional parameters selected:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;job id=\"Paygistix_Test\"&gt;\n&lt;script language=\"VBScript\"&gt;\n    'Setup a URI to the payment service \n    Const URI = http://localhost:8080/pay/auth/\n    'Create a Request envelope to send to the service\n    Dim sEnvelope\n    sEnvelope = \"&lt;?xml version=\"\"1.0\"\" encoding=\"\"utf-8\"\"?&gt;\"  &amp; _\n        \"&lt;Request&gt;\" &amp; _\n        \"   &lt;UserName&gt;payg2783&lt;/UserName&gt;\" &amp; _ \n        \"   &lt;Password&gt;paylogtest&lt;/Password&gt;\" &amp; _ \n        \"   &lt;Amount&gt;10.00&lt;/Amount&gt;\" &amp; _ \n        \"   &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\" &amp; _ \n        \"   &lt;Output&gt;XML&lt;/Output&gt;\" &amp; _ \n        \"   &lt;FileName&gt;c:\\result.txt&lt;/FileName&gt;\" &amp; _ \n        \"&lt;/Request&gt;\" \n    'Use MSXML to call the local web service\n    Dim xmlHttp: Set xmlHttp = CreateObject(\"Msxml2.ServerXMLHTTP\")\n    xmlHttp.open \"POST\", URI , false\n    xmlHttp.setRequestHeader \"Content-Type\",\"text/xml\"\n    xmlHttp.send sEnvelope \n    'output the response GUID\n    WScript.echo xmlHttp.ResponseText\n&lt;/script&gt;\n&lt;/job&gt;\n</code></pre><p>Because a Filename is passed when calling the function, the calling script will return a GUID only which is a unique identifier that can be used to validate the result file later. In our test case the value <strong>1c5137e1-c5f7-47a9-ab1f-7e58b0e9f177</strong> is returned.</p>\n<p>On completing a test transaction the file c:\\result.txt gets created with the following content.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Amount&gt;10.00&lt;/Amount&gt;\n    &lt;AuthCode&gt;OK160C&lt;/AuthCode&gt;\n    &lt;AVSResult&gt;Address Match + 5 Zip&lt;/AVSResult&gt;\n    &lt;CardType&gt;MASTERCARD&lt;/CardType&gt; \n    &lt;Guid&gt;1c5137e1-c5f7-47a9-ab1f-7e58b0e9f177&lt;/Guid&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Last4&gt;0026&lt;/Last4&gt;\n    &lt;Message&gt;APPROVED&lt;/Message&gt;\n           &lt;Name&gt;John Doe&lt;/Name&gt;\n    &lt;PNRef&gt;35898&lt;/PNRef&gt;\n    &lt;ServiceType&gt;AUTH&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n    &lt;StreetMatch&gt;Match&lt;/StreetMatch&gt;\n    &lt;ZipMatch&gt;Match&lt;/ZipMatch&gt;\n  &lt;/Response&gt;\n</code></pre>","urlObject":{"protocol":"http","path":["pay","auth",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"d88ae690-20ce-41d7-8fcb-91f8b74d7b19","name":"Function pay/auth","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required) ","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required) ","key":"Password","type":"text","value":""},{"description":"Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Invoice number associated with the transaction\n\nType: Alphanumeric (spaces and hyphens allowed)\n","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions: \nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""},{"description":"Options\nYES=the PAX device will request a signature","key":"Signature","type":"text","value":""}]},"url":"http://localhost:8080/pay/auth/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n  <Response>\n    <Amount>10.00</Amount>\n    <AuthCode>OK160C</AuthCode>\n    <AVSResult>Address Match + 5 Zip</AVSResult>\n    <CardType>MASTERCARD</CardType> \n    <Guid>1c5137e1-c5f7-47a9-ab1f-7e58b0e9f177</Guid>\n    <InvoiceNumber>ABC123</InvoiceNumber>\n    <Last4>0026</Last4>\n    <Message>APPROVED</Message>\n    <Name>John Doe</Name>\n    <PNRef>35898</PNRef>\n    <ServiceType>AUTH</ServiceType>\n    <Status>0</Status>\n    <StreetMatch>Match</StreetMatch>\n    <ZipMatch>Match</ZipMatch>\n  </Response>\n"}],"_postman_id":"e43f9e9a-447e-4406-8b3a-aecae64b8a09"},{"name":"Function pay/repeatauth","event":[{"listen":"test","script":{"id":"be561b6e-3b19-4b73-a33c-2b72fde9c743","exec":[""],"type":"text/javascript"}}],"id":"9be607df-d0d7-43e6-b0b7-bab4f37b52bc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*PNRef returned in a response from a previous transaction (required)</p>\n","key":"PNRef","type":"text","value":""},{"description":"<p>Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/repeatauth/","description":"<p>This function is used to authorize a card using a PNRef from a previous transaction. The repeatauth function has no user interface and requires no cardholder data be inputted. Instead, the PNRef serves as a token which references cardholder data that is securely stored in the Paygistix Gateway.</p>\n<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/repeatauth/</p>\n<p>An example XML envelope to be sent as a request with all parameters selected.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\"\n  &lt;Request&gt;\n    &lt;UserName&gt;payg2783&lt;/UserName&gt;\n    &lt;Password&gt;paylogtest&lt;/Password&gt;\n    &lt;PNRef&gt;240542&lt;/PNRef&gt;\n    &lt;Amount&gt;10.00&lt;/Amount&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Output&gt;XML&lt;/Output&gt;\n    &lt;FileName&gt;c:\\result.txt&lt;/FileName&gt;\n  &lt;/Request&gt; \n</code></pre><p>Example response returned from a call to /pay/repeatauth/. Notice how there is an OriginalPNRef response parameter in addition to the PNRef response parameter. The OriginalPNRef response parameter is the PNRef that was submitted in the request message. The PNRef parameter is the PNRef returned as a result of the repeat auth transaction.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Amount&gt;10.00&lt;/Amount&gt;\n    &lt;AuthCode&gt;OK7156&lt;/AuthCode&gt;\n    &lt;CardType&gt;MASTERCARD&lt;/CardType&gt;\n    &lt;Guid&gt;e6427238-3279-4370-ad6c-1a6a38cac985&lt;/Guid&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt; \n    &lt;Last4&gt;0026&lt;/Last4&gt;\n    &lt;Message&gt;APPROVED&lt;/Message&gt;\n    &lt;Name&gt;John Doe&lt;/Name&gt;\n    &lt;OriginalPNRef&gt;240542&lt;/OriginalPNRef&gt;\n    &lt;PNRef&gt;241840&lt;/PNRef&gt;\n    &lt;ServiceType&gt;REPEATAUTH&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","repeatauth",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"0747a101-a226-4143-bcaf-17abf4042ee4","name":"Function pay/repeatauth","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*PNRef returned in a response from a previous transaction (required)","key":"PNRef","type":"text","value":""},{"description":"Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/repeatauth/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <Amount>10.00</Amount>\r\n    <AuthCode>OK7156</AuthCode>\r\n    <CardType>MASTERCARD</CardType>\r\n    <Guid>e6427238-3279-4370-ad6c-1a6a38cac985</Guid>\r\n    <InvoiceNumber>ABC123</InvoiceNumber> \r\n    <Last4>0026</Last4>\r\n    <Message>APPROVED</Message>\r\n    <Name>John Doe</Name>\r\n    <OriginalPNRef>240542</OriginalPNRef>\r\n    <PNRef>241840</PNRef>\r\n    <ServiceType>REPEATAUTH</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"9be607df-d0d7-43e6-b0b7-bab4f37b52bc"},{"name":"Function pay/sale","event":[{"listen":"test","script":{"id":"3ca4e23a-03d3-4636-a3d9-032354a8009d","exec":[""],"type":"text/javascript"}}],"id":"fde8d159-c06a-41b2-9a40-f8a227af03ad","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>Can specify Credit, Debit, Gift, Loyalty or EBT. This sets the transaction type.  If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type.  If left blank, the customer will be prompted to perform a credit transaction.</p>\n<p>If it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).</p>\n","key":"TenderType","type":"text","value":""},{"description":"<p>Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).</p>\n","key":"TipAmount","type":"text","value":""},{"description":"<p>When set to YES, this will cause a PAX device to prompt for an inline tip (i.e. the payment device will prompt the cardholder to select a tip amount). This parameter can only be used when UseDevice=YES or PaxMode=ON or Server. When used in conjunction with the optional TipAmount parameter, this will prompt the cardholder to add a tip in addition to the mandatory gratuity supplied in the “TipAmount” parameter and the entire gratuity (TipAmount + any additional gratuity resulting from TipRequest) will be sent to Paygistix Gateway denoted as a gratuity. If a cardholder adds a tip, it will be returned in the response so the POS can add it to it’s records.</p>\n","key":"TipRequest","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FileName","type":"text","value":""},{"description":"<p>Options YES=the payment device will request a signature</p>\n","key":"Signature","type":"text","value":""},{"description":"<p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p>\n","key":"PaxButtons","type":"text","value":""},{"key":"ReceiptTemplateBase64","value":"","description":"<p>The itemized receipt data as a Base64 Encoded string, 32 columns wide, and separated by the sting \"\\n\" with the string \"{BODY}\" appended to the end. (required)</p>\n","type":"text"}]},"url":"http://localhost:8080/pay/sale/","description":"<p>Use this function to process a sale transaction.</p>\n<p>To call this function you need to request the service at http:// [IPAddressOfServer] :8080/pay/sale/</p>\n<p>Example response returned from an EBT transaction using /pay/sale/</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Amount&gt;10.00&lt;/Amount&gt;\n    &lt;AuthCode&gt;346549&lt;/AuthCode&gt;\n    &lt;Balance&gt;50.00&lt;/Balance&gt;\n    &lt;CardType&gt;EBT&lt;/CardType&gt;\n    &lt;Guid&gt;cf712d8e-6908-440e-bd07-71855cb51c46&lt;/Guid&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Last4&gt;0026&lt;/Last4&gt;\n    &lt;Message&gt;APPROVED&lt;/Message&gt;\n    &lt;Name&gt;John Doe&lt;/Name&gt;\n    &lt;PNRef&gt;10035718&lt;/PNRef&gt;\n    &lt;Requested_Amount&gt;10.00&lt;/Requested_Amount&gt;\n    &lt;ServiceType&gt;SALE&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n    &lt;Total_Amount&gt;10.00&lt;/Total_Amount&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","sale",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"3bd85eb8-128b-46c7-b6e9-9a60b411930b","name":"Function pay/sale","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"Can specify Credit, Debit, Gift, Loyalty, FoodStamp, CashBenefit, or EBT. This sets the transaction type.  If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type.  If left blank, the customer will be prompted to perform a credit transaction.\n\nIf it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).","key":"TenderType","type":"text","value":""},{"description":"Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).","key":"TipAmount","type":"text","value":""},{"description":"When set to YES, this will cause a PAX device to prompt for an inline tip (i.e. the payment device will prompt the cardholder to select a tip amount). This parameter can only be used when UseDevice=YES or PaxMode=ON or Server. When used in conjunction with the optional TipAmount parameter, this will prompt the cardholder to add a tip in addition to the mandatory gratuity supplied in the “TipAmount” parameter and the entire gratuity (TipAmount + any additional gratuity resulting from TipRequest) will be sent to Paygistix Gateway denoted as a gratuity. If a cardholder adds a tip, it will be returned in the response so the POS can add it to it’s records.","key":"TipRequest","type":"text","value":""},{"description":"Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":""},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""},{"description":"Options YES=the payment device will request a signature","key":"Signature","type":"text","value":""},{"description":"This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.","key":"PaxButtons","type":"text","value":""}]},"url":"http://localhost:8080/pay/sale/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <Amount>10.00</Amount>\r\n    <AuthCode>OK7156</AuthCode>\r\n    <AVSResult>Address Match + 5 Zip</AVSResult>\r\n    <CardType>MASTERCARD</CardType>\r\n    <Guid>1a4a1d44-d715-4d7c-a3e5-f612d843c20c</Guid>\r\n    <InvoiceNumber>ABC123</InvoiceNumber>\r\n    <Last4>0026</Last4>\r\n    <Message>APPROVED</Message>\r\n    <Name>John Doe</Name>\r\n    <PNRef>35898</PNRef>\r\n    <ServiceType>SALE</ServiceType>\r\n    <Status>0</Status>\r\n    <StreetMatch>Match</StreetMatch>\r\n    <ZipMatch>Match</ZipMatch>\r\n  </Response>\r\n"}],"_postman_id":"fde8d159-c06a-41b2-9a40-f8a227af03ad"},{"name":"Function pay/repeatsale","event":[{"listen":"test","script":{"id":"02713377-e44a-4c89-9584-6843091189e8","exec":[""],"type":"text/javascript"}}],"id":"b8cef079-f88d-4a3d-9893-f34ba2d43bfc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"key":"PNRef","value":"","description":"<p>*PNRef returned in a response from a previous transaction (required)</p>\n","type":"text"},{"description":"<p>*Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).</p>\n","key":"TipAmount","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/repeatsale/","description":"<p>This function is used to process a sale on a card using a PNRef from a previous transaction. The repeatsale function has no interface and requires no cardholder data be inputted. Instead, the PNRef serves as a token which references cardholder data that is securely stored in the Payment Logistics PCI DSS level 1 validated Paygistix Gateway environment. </p>\n<p>In the example response returned from a call to /pay/repeatsale/. Notice how there is an OriginalPNRef response parameter in addition to the PNRef response parameter. The OriginalPNRef response parameter is the PNRef that was submitted in the request message. The PNRef parameter is the PNRef returned as a result of the repeatsale transaction.</p>\n<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/repeatsale</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","repeatsale",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"8aaadad1-1285-4df3-8ac4-254d9a657e0d","name":"Function pay/repeatsale","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*PNRef returned in a response from a previous transaction (required)","key":"PNRef","type":"text","value":""},{"description":"*Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).","key":"TipAmount","type":"text","value":""},{"description":"Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":""},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/repeatsale/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <Amount>10.00</Amount>\r\n    <AuthCode>OK171C</AuthCode>\r\n    <CardType>VISA</CardType>\r\n    <Guid>07de9843-bb66-4db4-a913-50b3870b3f8c</Guid>\r\n    <InvoiceNumber>ABC123</InvoiceNumber><Last4>0026</Last4>\r\n    <Last4>0026</Last4>\r\n    <Message>APPROVED</Message>\r\n    <Name>John Doe</Name>\r\n    <OriginalPNRef>35905</OriginalPNRef>\r\n    <PNRef>241840</PNRef>\r\n    <ServiceType>REPEATSALE</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"b8cef079-f88d-4a3d-9893-f34ba2d43bfc"},{"name":"Function pay/force","event":[{"listen":"test","script":{"id":"224875c9-921f-4149-b22a-5841761332fd","exec":[""],"type":"text/javascript"}}],"id":"80902df0-fe22-4829-abfe-84a9c997fe38","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"key":"PNRef","value":"","description":"<p>*Transaction reference of an existing Auth transaction (required)</p>\n","type":"text"},{"description":"<p>*Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).</p>\n","key":"TipAmount","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/force/","description":"<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/force/ </p>\n<p>The Force function has no User Interface. You must pass a PNRef parameter to indicate which Auth transaction you wish to complete.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","force",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"d4db0cda-ae4e-4774-b3f9-671f06a9a01d","name":"Function pay/force","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"key":"PNRef","value":"","description":"*Transaction reference of an existing Auth transaction (required)","type":"text"},{"description":"*Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).","key":"TipAmount","type":"text","value":""},{"description":"Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":""},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/force/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <AuthCode>OK166C</AuthCode>\r\n    <Guid>35d05e55-5d0f-4478-b171-b762dcdd0eca</Guid>\r\n    <Message>APPROVAL</Message>\r\n    <PNRef>35908</PNRef>\r\n    <ServiceType>FORCE</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"80902df0-fe22-4829-abfe-84a9c997fe38"},{"name":"Function pay/void","event":[{"listen":"test","script":{"id":"20920d1d-cb80-4e5c-8f42-d0962ed72b94","exec":[""],"type":"text/javascript"}}],"id":"e6fefcb2-d153-41e8-95d2-9aa49940736f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Transaction reference of an Auth, Sale or Force transaction</p>\n","key":"PNRef","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/void/","description":"<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/void/ </p>\n<p>The Void function has no User Interface. You must pass a PNRef parameter to indicate which Auth, Sale or Force transaction you wish to void.</p>\n<p>Example response returned from a call to /pay/void/</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;AuthCode&gt;OK7226&lt;/AuthCode&gt;\n    &lt;Guid&gt;68db5179-cd5f-41ab-b842-7fe9e1988512&lt;/Guid&gt;\n    &lt;Message&gt;APPROVAL&lt;/Message&gt;\n    &lt;PNRef&gt;35910&lt;/PNRef&gt;\n    &lt;ServiceType&gt;VOID&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","void",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"3a30c2de-b719-4738-ae03-334ca4fb931c","name":"Function pay/void","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*Transaction reference of an Auth, Sale or Force transaction","key":"PNRef","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/void/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <AuthCode>OK7226</AuthCode>\r\n    <Guid>68db5179-cd5f-41ab-b842-7fe9e1988512</Guid>\r\n    <Message>APPROVAL</Message>\r\n    <PNRef>35910</PNRef>\r\n    <ServiceType>VOID</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"e6fefcb2-d153-41e8-95d2-9aa49940736f"},{"name":"Function pay/reversal","event":[{"listen":"test","script":{"id":"1dea1233-b3bc-4a3d-b0e2-0a7686d8a333","exec":[""],"type":"text/javascript"}}],"id":"4db75a93-f6d0-40a7-b258-420f135f73bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"key":"PNRef","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/reversal/","description":"<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/reversal/ </p>\n<p>The <b>Reversal</b> function has no User Interface. You must pass a PNRef parameter to indicate which Auth you wish to reverse. A reversal is similar to a void in that it removes a transaction from the batch and prevents it from being captured. In addition, a reversal sends a real-time request to the card issuer to release the authorization amount. Some processing networks automatically submit reversals when a transaction is voided while others do not. Reversals are not supported by every card issuing bank. Many Paygistix Client integrators choose to support /pay/reversal as opposed to /pay/void. Please discuss this with your Payment Logistics developer support representative to determine how best to accomplish your goals.</p>\n<p>Example response returned from a call to /pay/reversal/</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;AuthCode&gt;OK7226&lt;/AuthCode&gt;\n    &lt;Guid&gt;14293621-7496-43dc-acda-1b62262f6f95&lt;/Guid&gt;\n    &lt;Message&gt;APPROVED&lt;/Message&gt;\n    &lt;PNRef&gt;35913&lt;/PNRef&gt;\n    &lt;ServiceType&gt;REVERSAL&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","reversal",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"26d4627d-761c-44d7-9aeb-7d723127667c","name":"Function pay/reversal","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"key":"PNRef","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/reversal/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <AuthCode>OK7226</AuthCode>\r\n    <Guid>14293621-7496-43dc-acda-1b62262f6f95</Guid>\r\n    <Message>APPROVED</Message>\r\n    <PNRef>35913</PNRef>\r\n    <ServiceType>REVERSAL</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"4db75a93-f6d0-40a7-b258-420f135f73bd"},{"name":"Function pay/credit","event":[{"listen":"test","script":{"id":"d1224da1-cbfb-4bb6-b5eb-86817c09eb97","exec":[""],"type":"text/javascript"}}],"id":"77f97936-e700-4c66-8490-4b255be708ba","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"key":"PNRef","type":"text","value":""},{"description":"<p>Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Can specify Credit, Debit, Gift, Loyalty or EBT. This sets the transaction type. If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type. If left blank, the customer will be prompted to perform a credit transaction.</p>\n<p>If it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).</p>\n","key":"TenderType","type":"text","value":""},{"description":"<p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p>\n","key":"PaxButtons","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/credit/","description":"<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/credit/</p>\n<p>The Credit function serves to issue refunds back to a credit, debit, or ebt card. Foodstamp or Cashbenefit may be used in lieu of ebt.</p>\n<p>Example response returned from a call to /pay/credit/</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>\n  \n    OK7256\n    VISA\n    beb50179-6b2c-43d1-942b-1a36fc8b7826\n    ABC123\n    0026\n    APPROVAL\n    John Doe\n    241888\n    CREDIT\n    0\n  \n\n</code></pre><p>**Attention:**It is not possible to refund EBT CashBenefit accounts. It is only possible to refund EBT Foodstamp accounts.</p>\n<p>**Attention:**The pay/credit function with a PNREF can only be used with credit card transactions. All other card types require the terminal for pin entry.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","credit",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"ae8c812f-b3d0-4199-be65-41b8d09ac2c0","name":"Function pay/credit","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"If a PNRef is passed then no User Interface will be shown and the existing transaction will be credited. ","key":"PNRef","type":"text","value":""},{"description":"Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)","key":"InvoiceNumber","type":"text","value":""},{"description":"Can specify Credit, Debit, Gift, Loyalty, FoodStamp, CashBenefit, or EBT. This sets the transaction type. If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type. If left blank, the customer will be prompted to perform a credit transaction.\n\nIf it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).","key":"TenderType","type":"text","value":""},{"description":"This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.","key":"PaxButtons","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/credit/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <AuthCode>OK7256</AuthCode>\r\n    <CardType>VISA</CardType>\r\n    <Guid>beb50179-6b2c-43d1-942b-1a36fc8b7826</Guid>\r\n    <InvoiceNumber>ABC123</InvoiceNumber>\r\n    <Last4>0026</Last4>\r\n    <Message>APPROVAL</Message>\r\n    <Name>John Doe</Name>\r\n    <PNRef>241888</PNRef>\r\n    <ServiceType>CREDIT</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"77f97936-e700-4c66-8490-4b255be708ba"},{"name":"Function pay/forceapproval","event":[{"listen":"test","script":{"id":"7538d25c-e6f9-4c5b-852d-a5e7fc9f8afb","exec":[""],"type":"text/javascript"}}],"id":"d17c2377-bbd8-458c-ad70-90b21b4a9504","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/forceapproval/","description":"<p>If a /pay/auth, /pay/repeatauth, /pay/sale, or /pay/repeatsale transaction returns with the message REFERRAL CALL and Status code 12 or 13, the end user may be able to obtain an authorization by calling the voice authorization phone number provided by the merchant’s processor. Here is an example of a result from a sale for $21 (in the test system this figure triggers a Referral Call scenario).</p>\n<p>Typical response including a status 12  Referral Call message:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Amount&gt;21.00&lt;/Amount&gt;\n    &lt;CardType&gt;MASTERCARD&lt;/CardType&gt;\n    &lt;Guid&gt;84291e85-0edd-416f-95d2-b831d4b8a0d4&lt;/Guid&gt;\n    &lt;Message&gt;REFERRAL CALL&lt;/Message&gt;\n    &lt;PNRef&gt;241902&lt;/PNRef&gt;\n    &lt;Status&gt;12&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre><p>Once the end user has obtained a voice authorization, they will need to capture that voice authorization by making a request to the /pay/forceapproval/ function where they will need to re-enter the card number, amount and the six digit alpha numeric approval code that was issued by the voice authorization system. This will force the transaction through into the batch.</p>\n<p>Please note: The above scenario is not the only scenario in which a voice authorization might be made. Another example would be if the internet is down temporarily and the merchants calls the processor phone number for voice authorizations, so that sales can still take place without internet access.</p>\n<p>Expect to see the usual response</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Amount&gt;10.00&lt;/Amount&gt;\n    &lt;AuthCode&gt;98765&lt;/AuthCode&gt;\n    &lt;CardType&gt;VISA&lt;/CardType&gt;\n    &lt;Guid&gt;80bf17ce-90c0-4d2d-85d9-0e81e8723e3e&lt;/Guid&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Message&gt;APPROVAL&lt;/Message&gt;\n    &lt;PNRef&gt;35921&lt;/PNRef&gt;\n    &lt;ServiceType&gt;FORCEAPPROVAL&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre>","urlObject":{"protocol":"http","path":["pay","forceapproval",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"7d8801db-ae84-432b-b5f2-d6c19c6f2695","name":"Function pay/forceapproval","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99","key":"Amount","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/forceapproval/"},"_postman_previewlanguage":"xml","header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n  <Response>\n    <Amount>10.00</Amount>\n    <AuthCode>98765</AuthCode>\n    <CardType>VISA</CardType>\n    <Guid>80bf17ce-90c0-4d2d-85d9-0e81e8723e3e</Guid>\n    <InvoiceNumber>ABC123</InvoiceNumber>\n    <Message>APPROVAL</Message>\n    <PNRef>35921</PNRef>\n    <ServiceType>FORCEAPPROVAL</ServiceType>\n    <Status>0</Status>\n  </Response>\n"}],"_postman_id":"d17c2377-bbd8-458c-ad70-90b21b4a9504"},{"name":"Function pay/addtipnoui","event":[{"listen":"test","script":{"id":"fdf9ca99-5c98-491e-95f5-6193c05d3c0f","exec":[""],"type":"text/javascript"}}],"id":"30faef10-0831-4c54-85f3-7e570b4c5251","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p>*Reference to the original transaction being adjusted. (required)</p>\n","key":"PNRef","type":"text","value":""},{"description":"<p>*Total Sale Amount (including any tip) \nType: Numeric\nFormat: 0.00\nMax: 99999.99 (required)</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/addtipnoui/","description":"<p>To call this function you need to request the service at http://[IPAddressOfServer]:8080/pay/addtipnoui/. This function is most appropriate for environments where the POS system utilizes its own graphical user interface for inputting tip amounts. </p>\n<p>On a transaction that has already been adjusted, this function will update the tip amount to the latest amount.  For example, if the user runs a sale for $11.00, then an addtipnoui is run for a $1.00 tip, then that another addtipnoui is run for $2.00, the transaction will close for a total of $13.00 including the tip.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","addtipnoui",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"ca70c819-79f0-4f34-a3ae-8193021bc422","name":"Function pay/addtipnoui","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)","key":"Vendor","type":"text","value":""},{"description":"*Reference to the original transaction being adjusted. (required)","key":"PNRef","type":"text","value":""},{"description":"*Total Sale Amount (including any tip) \nType: Numeric\nFormat: 0.00\nMax: 99999.99 (required)","key":"Amount","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":""},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/addtipnoui/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<Response>\n<Guid>4779144f-bd6a-450e-9e9c-1376c39c4823</Guid>\n<Message>OK</Message>\n<ServiceType>GETCARDTRX</ServiceType>\n<Status>0</Status>\n<Transactions>\n <Transaction id=\"179527\">\n  <Amount>1.1000</Amount>\n  <AuthCode>OK333C</AuthCode>\n  <CardType>VISA</CardType>\n  <DateTime>2019-01-25T10:35:05.95-08:00</DateTime>\n  <InvoiceNumber>190125183429879</InvoiceNumber>\n  <Last4>0026</Last4>\n  <Message>APPROVED</Message>\n  <Name/>\n  <PNRef>179527</PNRef>\n  <ServiceType>SALE</ServiceType>\n  <Status>0</Status>\n </Transaction>\n <Transaction id=\"179526\">\n  <Amount>1.2000</Amount>\n  <AuthCode>OK331C</AuthCode>\n  <CardType>VISA</CardType>\n  <DateTime>2019-01-25T10:33:01.94-08:00</DateTime>\n  <InvoiceNumber>190125183238784</InvoiceNumber>\n  <Last4>0026</Last4>\n  <Message>APPROVED</Message>\n  <Name/>a\n  <PNRef>179526</PNRef>\n  <ServiceType>SALE</ServiceType>\n  <Status>0</Status>\n </Transaction>\n</Transactions>\n</Response>\n"}],"_postman_id":"30faef10-0831-4c54-85f3-7e570b4c5251"},{"name":"Function pay/getcardtrx","event":[{"listen":"test","script":{"id":"391038b9-efbc-4731-8b22-bd25efea5799","exec":[""],"type":"text/javascript"}}],"id":"e6dba038-cb1b-40ca-9fbd-0971c9516169","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p>mm/dd/yyyy</p>\n","key":"StartDate","type":"text","value":""},{"description":"<p>mm/dd/yyyy</p>\n","key":"EndDate","type":"text","value":""},{"description":"<p>From a previous transaction</p>\n","key":"PNRef","type":"text","value":""},{"description":"<p>From a previous transaction</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>HH:MM:SSAM/PM</p>\n","key":"StartTime","type":"text","value":""},{"description":"<p>HH:MM:SSAM/PM</p>\n","key":"EndTime","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/getcardtrx/","description":"<p>Call this function to retrieve the transaction details for transactions, from Paygistix Client, based on date, invoice number, and/or PNRef. This function is useful for checking the gateway for duplicate transactions.</p>\n<p>You will receive a response in an XML layout, and each transaction will have an id attribute based on the PNRef for uniqueness. Also included in the response is a DateTime parameter which indicates when the transaction was originally approved.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n<p>You will receive a response in an XML layout, and each transaction will have an id attribute based on the PNRef for uniqueness. Also included in the response is a DateTime parameter which indicates when the transaction was originally approved. Here’s an example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;Response&gt;\n    &lt;Guid&gt;4779144f-bd6a-450e-9e9c-1376c39c4823&lt;/Guid&gt;\n    &lt;Message&gt;OK&lt;/Message&gt;\n    &lt;ServiceType&gt;GETCARDTRX&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n    &lt;Transactions&gt;\n        &lt;Transaction id=\"179527\"&gt;\n            &lt;Amount&gt;1.1000&lt;/Amount&gt;\n            &lt;AuthCode&gt;OK333C&lt;/AuthCode&gt;\n            &lt;CardType&gt;VISA&lt;/CardType&gt;\n            &lt;DateTime&gt;2019-01-25T10:35:05.95-08:00&lt;/DateTime&gt;\n            &lt;InvoiceNumber&gt;190125183429879&lt;/InvoiceNumber&gt;\n            &lt;Last4&gt;0026&lt;/Last4&gt;\n            &lt;Message&gt;APPROVED&lt;/Message&gt;\n            &lt;Name/&gt;\n            &lt;PNRef&gt;179527&lt;/PNRef&gt;\n            &lt;ServiceType&gt;SALE&lt;/ServiceType&gt;\n            &lt;Status&gt;0&lt;/Status&gt;\n        &lt;/Transaction&gt;\n    &lt;/Transactions&gt;\n&lt;/Response&gt;\n\n</code></pre>","urlObject":{"protocol":"http","path":["pay","getcardtrx",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"e6dba038-cb1b-40ca-9fbd-0971c9516169"},{"name":"Function pay/addcardnoui","event":[{"listen":"test","script":{"id":"d6abe06a-a9c6-4803-8d0f-620a19a0bc8a","exec":[""],"type":"text/javascript"}}],"id":"54415420-878f-439e-a522-b3c1f54a9b05","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p><em>A unique identifier that you can use to refer to your customer.\n(Note: If an “</em>” is passed in as the CustomerID then the field will be automatically generated from a combination of the Cardholder name and Last4 digits. If a Cardholder name is not supplied then the auto-generation will be a combination of the date/time along with the last 4 card digits. In addition, the field will be read only in the GUI and the CustomerID will be automatically generated from a combination of the Cardholder name and Last4 digits of the card). (required)</p>\n","key":"CustomerID","type":"text","value":""},{"description":"<p>*The PAN or credit card number (required)</p>\n","key":"Cardnumber","type":"text","value":""},{"description":"<p>*The expiry date of the card in the format MMYY (required)</p>\n","key":"Expires","type":"text","value":""},{"description":"<p>*Cardholder name (required)</p>\n","key":"Name","type":"text","value":""},{"description":"<p>First line of the account holder’s address.</p>\n","key":"Address1","type":"text","value":""},{"description":"<p>Second line of the account holder’s address.</p>\n","key":"Address2","type":"text","value":""},{"description":"<p>City</p>\n","key":"City","type":"text","value":""},{"description":"<p>Two character notation of US State</p>\n","key":"State","type":"text","value":""},{"description":"<p>ZIP Code</p>\n","key":"ZIP","type":"text","value":""},{"description":"<p>Account holder’s Email address</p>\n","key":"Email","type":"text","value":""},{"description":"<p>Account Holder’s Telephone Number</p>\n","key":"Telephone","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/addcardnoui/","description":"<p>This function is for adding a customer and card combination for future billing.  It is intended for batch updates of the database.</p>\n<p><b>Attention!</b>\nThis function is only provided as a tool for application developers and their clients to offload sensitive cardholder data from their system to the Paygistix Gateway upon initial implementation of Paygistix Client. After utilizing this function, all sensitive cardholder data on the client’s system should be securely deleted. Incorporating ongoing use of this tool into your application may bring your application into the scope of PA DSS and negate many of the security benefits gained by using Paygistix Client. If you will be utilizing this function, it is highly recommended you incorporate it into a separate utility designed for one-time use to offload and then purge your client’s system of sensitive cardholder data.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","addcardnoui",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"54415420-878f-439e-a522-b3c1f54a9b05"},{"name":"Function pay/updatecard","event":[{"listen":"test","script":{"id":"4bd3ce0e-4e32-4d73-9425-aba9a59dcdb4","exec":[""],"type":"text/javascript"}}],"id":"9dc8dabb-4163-4c40-b290-0fa86d13e8e0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account.</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p>*An existing Customer ID returned from a previous AddCard call. (required)</p>\n","key":"CustomerKey","type":"text","value":""},{"description":"<p>*An existing Credit Card ID returned from a previous AddCard call. (required)</p>\n","key":"CCInfoKey","type":"text","value":""},{"description":"<p>The unique identifier you use to refer to your customer.</p>\n","key":"CustomerID","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/updatecard/","description":"<p>This function is for updating an already existing customer and card combination for future billing. </p>\n<p>You are advised to send through the CustomerID. However if you want to update this at the same time you can leave it to be entered via the User Interface which will override the CustomerID already stored.\nA typical response returned from this function can be seen below. </p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Cardholder&gt;JOHN DOE&lt;/Cardholder&gt;\n    &lt;CardType&gt;VISA&lt;/CardType&gt;\n    &lt;CcInfoKey&gt;34991&lt;/CcInfoKey&gt;\n    &lt;CustomerID&gt;PSC127&lt;/CustomerID&gt;\n    &lt;CustomerKey&gt;169&lt;/CustomerKey&gt;\n    &lt;Expires&gt;0416&lt;/Expires&gt;\n    &lt;Guid&gt;43e95900-d559-4c5b-b309-29539954b90e&lt;/Guid&gt;\n    &lt;Last4&gt;0026&lt;/Last4&gt;\n    &lt;Message&gt;SUCCESS&lt;/Message&gt;\n    &lt;ServiceType&gt;UPDATECARD&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n&lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","updatecard",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"9dc8dabb-4163-4c40-b290-0fa86d13e8e0"},{"name":"Function pay/updatecardexpdate","event":[{"listen":"test","script":{"id":"c90607cb-80ec-4939-9d0c-1f8c154d99fe","exec":[""],"type":"text/javascript"}}],"id":"af74532d-63ee-4eed-ad56-776ca398e938","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p>*An existing Customer ID returned from a previous AddCard call. (required)</p>\n","key":"CustomerKey","type":"text","value":""},{"description":"<p>*An existing Credit Card ID returned from a previous AddCard call. (required)</p>\n","key":"CCInfoKey","type":"text","value":""},{"description":"<p>*The new expiration date in the format of MMYY (required)</p>\n","key":"ExpDate","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/updatecardexpdate/","description":"<p>This function is used for updating the expiration date on a card that already exists in the system. </p>\n<p>A typical response returned from this function can be seen below. </p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Guid&gt;55c5c185-c721-40f5-a08e-c1461618cbc9&lt;/Guid&gt;\n    &lt;Message&gt;ExpDate Updated&lt;/Message&gt;\n    &lt;ServiceType&gt;UPDATECARDEXPDATE&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","updatecardexpdate",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"ce47f9af-4351-477e-8b24-cf6166e26731","name":"Function pay/updatecardexpdate","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)","key":"Vendor","type":"text","value":""},{"description":"*An existing Customer ID returned from a previous AddCard call. (required)","key":"CustomerKey","type":"text","value":""},{"description":"*An existing Credit Card ID returned from a previous AddCard call. (required)","key":"CCInfoKey","type":"text","value":""},{"description":"*The new expiration date in the format of MMYY (required)","key":"ExpDate","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":""},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/updatecardexpdate/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <Guid>55c5c185-c721-40f5-a08e-c1461618cbc9</Guid>\r\n    <Message>ExpDate Updated</Message>\r\n    <ServiceType>UPDATECARDEXPDATE</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"af74532d-63ee-4eed-ad56-776ca398e938"},{"name":"Function pay/getcardhistory","event":[{"listen":"test","script":{"id":"6ab6b26f-3236-4e73-946e-e6e58c716a9c","exec":[""],"type":"text/javascript"}}],"id":"e46c44d8-9242-4902-bc9f-d2127532525d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p>*An existing CcInfoKey returned from a previous /pay/addcard call. \n (required)</p>\n","key":"CCInfoKey","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/updatecardexpdate/","description":"<p>This function returns a report of transactions for a specific card. </p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","updatecardexpdate",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"e46c44d8-9242-4902-bc9f-d2127532525d"},{"name":"Function pay/getaccount","event":[{"listen":"test","script":{"id":"862ac71e-2364-4230-8842-13dfb82da498","exec":[""],"type":"text/javascript"}}],"id":"f942af40-44ac-4a31-a32f-3f7634250a65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":"","disabled":true},{"description":"<p>*An existing Customer ID returned from a previous AddCard call. (required)</p>\n","key":"CustomerKey","type":"text","value":"","disabled":true},{"description":"<p>*An existing CcInfoKey returned from a previous /pay/addcard call. \n (required)</p>\n","key":"CCInfoKey","type":"text","value":"","disabled":true},{"description":"<p>*The new expiration date in the format of MMYY (required)</p>\n","key":"ExpDate","type":"text","value":"","disabled":true},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":"","disabled":true},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""},{"description":"<p>Options YES=the payment device will request a signature</p>\n","key":"Signature","type":"text","value":"","disabled":true},{"description":"<p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p>\n","key":"PaxButtons","type":"text","value":"","disabled":true}]},"url":"http://localhost:8080/pay/getaccount/","description":"<p>This function is used to retrieve the last 4 digits of a card, Expiration Date, and Cardholder Nameby either swiping the card or manually entering it.  An example use case would be a restaurant or bar environment where a tab for a customer had been opened.  When they arrive, they open a tab by doing an authorization, and when they are ready to leave, they swipe or enter their card number when prompted by the pay/getaccount/ function, which then retrieves the Last4 and expiration date in order to identify the customer’s tab.  After identifying the customer, a force is run against their tab and the tab is closed.</p>\n<p>Warning: do not print expiration dates on receipts.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","getaccount",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"f942af40-44ac-4a31-a32f-3f7634250a65"},{"name":"Function pay/billcard","event":[{"listen":"test","script":{"id":"93393234-5bc1-4a0a-a486-e4124bfe8fc2","exec":[""],"type":"text/javascript"}}],"id":"b358d152-1184-4fa3-b1be-1676795dd338","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)</p>\n","key":"Vendor","type":"text","value":""},{"description":"<p>*An existing CcInfoKey returned from a previous /pay/addcard call. \n (required)</p>\n","key":"CCInfoKey","type":"text","value":""},{"description":"<p>*The amount of the transaction to bill for this sale. (required)</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/billcard/","description":"<p>When it comes time to bill one of the credit or debit cards stored on file, you can call this function to process a sale transaction. This is where you supply the CcInfoKey previously returned from the function /pay/addcard/.</p>\n<p>A typical response returned from this function can be seen below. </p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;AuthCode&gt;OK191C&lt;/AuthCode&gt;\n    &lt;CardType&gt;VISA&lt;/CardType&gt;\n    &lt;Guid&gt; fb63ae2f-9fc0-4f50-8d79-783032f9021c&lt;/Guid&gt;\n    &lt;Last4&gt;0026&lt;/Last4&gt;\n    &lt;Message&gt;APPROVED&lt;/Message&gt;\n    &lt;Name&gt;John Doe&lt;/Name&gt;\n    &lt;PNRef&gt;35934&lt;/PNRef&gt;\n    &lt;ServiceType&gt;BILLCARD&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","billcard",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"80ddd4b2-c0b9-42d9-a44c-96e90dcf165a","name":"Function pay/billcard","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*Your supplied Vendor ID which is sometimes referred to as the RP #. This is a static number assigned by the Paygistix Gateway to each particular gateway account. (required)","key":"Vendor","type":"text","value":""},{"description":"*An existing CcInfoKey returned from a previous /pay/addcard call. \n (required)","key":"CCInfoKey","type":"text","value":""},{"description":"*The amount of the transaction to bill for this sale. (required)","key":"Amount","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":""},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/billcard/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n  <Response>\r\n    <AuthCode>OK191C</AuthCode>\r\n    <CardType>VISA</CardType>\r\n    <Guid> fb63ae2f-9fc0-4f50-8d79-783032f9021c</Guid>\r\n    <Last4>0026</Last4>\r\n    <Message>APPROVED</Message>\r\n    <Name>John Doe</Name>\r\n    <PNRef>35934</PNRef>\r\n    <ServiceType>BILLCARD</ServiceType>\r\n    <Status>0</Status>\r\n  </Response>\r\n"}],"_postman_id":"b358d152-1184-4fa3-b1be-1676795dd338"},{"name":"Function pay/reload","event":[{"listen":"test","script":{"id":"29f1095d-ae3c-484f-8158-554cfabb8914","exec":["pm.test(\"Status code is 200\", function () {\r","  pm.response.to.have.status(200);\r","});"],"type":"text/javascript"}}],"id":"a3df76a7-acb3-4d06-b8e1-65d2fd03e782","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Gift or Loyalty (required)</p>\n","key":"TenderType","type":"text","value":""},{"description":"<p>*Amount to add to card. (required)</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Passing this will pre-populate the invoice input box and make it read only.</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/reload/","description":"<p>This function allows you to add money to a giftcard account or points to a loyalty card account.</p>\n<p>A typical response returned from this function can be seen below. </p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n&lt;Response&gt;\n    &lt;Amount&gt;1000&lt;/Amount&gt;\n    &lt;AuthCode&gt;346549&lt;/AuthCode&gt;\n    &lt;CardType&gt;LOYALTY&lt;/CardType&gt;\n    &lt;Guid&gt;cf712d8e-6908-440e-bd07-71855cb51c46&lt;/Guid&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Message&gt;USD=1503.00|Points=800.00&lt;/Message&gt;\n    &lt;PNRef&gt;10036171&lt;/PNRef&gt;\n    &lt;ServiceType&gt;RELOAD&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n&lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","reload",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"969815c8-7c41-4200-bce8-8ce0af7e664e","name":"Function pay/reload","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*Gift or Loyalty (required)","key":"TenderType","type":"text","value":""},{"description":"*Amount to add to card. (required)","key":"Amount","type":"text","value":""},{"description":"Passing this will pre-populate the invoice input box and make it read only.","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/reload/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Response>\n  <Amount>1000</Amount>\n  <AuthCode>346549</AuthCode>\n  <CardType>LOYALTY</CardType>\n  <Guid>cf712d8e-6908-440e-bd07-71855cb51c46</Guid>\n  <InvoiceNumber>ABC123</InvoiceNumber>\n  <Message>USD=1503.00|Points=800.00</Message>\n  <PNRef>10036171</PNRef>\n  <ServiceType>RELOAD</ServiceType>\n  <Status>0</Status>\n</Response>\n"}],"_postman_id":"a3df76a7-acb3-4d06-b8e1-65d2fd03e782"},{"name":"Function pay/inquire","event":[{"listen":"test","script":{"id":"775ee21f-bf69-473c-a0d0-2820fdebde11","exec":[""],"type":"text/javascript"}}],"id":"b8257452-fc63-4242-a2bc-c688c5f81486","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*EBT, FoodStamp, CashBenefit, Gift, or Loyalty (required)</p>\n","key":"TenderType","type":"text","value":""},{"description":"<p>Passing this will pre-populate the invoice input box and make it read only.</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/inquire/","description":"<p>The <strong>Inquire</strong> function checks the balance of a Gift account, FoodStamp, CashBenefit, EBT, or loyalty account.</p>\n<p>A typical response returned from this function can be seen below.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>  346549\n  50.00\n  cf712d8e-6908-440e-bd07-71855cb51c46\n   APPROVED \n  INQUIRE\n\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","inquire",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"d15e36f3-58e0-4b6e-b6ae-aae26d5a9414","name":"Function pay/inquire","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"*EBT, Gift or Loyalty (required)","key":"TenderType","type":"text","value":""},{"description":"Passing this will pre-populate the invoice input box and make it read only.","key":"InvoiceNumber","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/inquire/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<Response>\n  <AuthCode>346549</AuthCode>\n  <Balance>50.00</Balance>\n  <Guid>cf712d8e-6908-440e-bd07-71855cb51c46</Guid>\n  <Message > APPROVED </Message>\n  <ServiceType>INQUIRE</ServiceType>\n</Response>\n"}],"_postman_id":"b8257452-fc63-4242-a2bc-c688c5f81486"},{"name":"Function pay/captureall","event":[{"listen":"test","script":{"id":"1e651597-228b-4747-a517-79a356c3c3a3","exec":[""],"type":"text/javascript"}}],"id":"24a43570-e41a-4140-90fa-f25ef4609819","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>If this parameter is passed with a value of YES, then no confirmation will be required and the capture will happen immediately, otherwise a popup asks “Are you sure you wish to settle the current batch?”  Set to YES when using Paygistix Client with PaxMode=SERVER.</p>\n","key":"NoPrompt","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/captureall/","description":"<p>This function will settle the current batch of transactions on the Paygistix Gateway. All transactions run through a single Paygistix Gateway merchant account are combined into a single batch despite which Paygistix Gateway username assigned to the particular account was used to process the transactions. In other words, in a multi POS station environment, transactions from each station are entered into a single shared batch. This function may not be called again until it has been completed as it is synchronous in nature.</p>\n<p>The Paygistix Gateway can be configured to auto-settle the batch once per day at a predetermined time. When the batch is auto-settled, the Paygistix Gateway will send a batch report to the merchant’s designated email address on file.</p>\n<p>A typical response returned from this function can be seen below. </p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;  \n  &lt;Response&gt;  \n    &lt;AuthCode&gt;1018120004&lt;/AuthCode&gt;  \n    &lt;ExtData&gt;CardType=CREDIT…\n    &lt;Batch&gt;\n      &lt;Summary&gt;Net_Count=4,Net_Amount=22.00,Settle_DT=2012-10-18 11:14:56,Result=0&lt;/Summary&gt;\n      &lt;Detail&gt;Net_Count=4,Net_Amount=22.00,Settle_DT=2012-10-18 11:14:56,Result=0AuthCode=1018120004,Message=96900C&lt;/Detail&gt;\n    &lt;/Batch&gt;\n    &lt;BatchNum&gt;4&lt;/BatchNum&gt;\n    &lt;/ExtData&gt; \n    &lt;Guid&gt;ce08e533-e687-4022-81bd-79d15d285b59&lt;/Guid&gt;  \n    &lt;Message&gt;96900C&lt;/Message&gt;  \n    &lt;RespMsg&gt;Approved&lt;/RespMsg&gt;  \n    &lt;Status&gt;0&lt;/Status&gt;  \n    &lt;ServiceType&gt;CAPTUREALL&lt;/ServiceType&gt;\n  &lt;/Response&gt;\n</code></pre><p><b>Attention!</b>\nIn the case of an installation with multiple POS stations or PAX devices, a single call to /pay/captureall/ will capture all transactions across the system. Therefore you should not call /pay/captureall more than once despite having multiple POS stations or PAX devices.  It is however important that PAX devices are cleared of all transactions at regular intervals. This can be handled automatically by Paygistix Client using the PAXAutoClearBatch configurator option or this can be handled manually by calling the /pay/clearbatch/.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","captureall",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"ecdb7e7e-e7a8-41ce-89df-1b5742d14e49","name":"Function pay/captureall","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"*Your Paygistix Web Service Password (required)","key":"Password","type":"text","value":""},{"description":"If this parameter is passed with a value of YES, then no confirmation will be required and the capture will happen immediately, otherwise a popup asks “Are you sure you wish to settle the current batch?”  Set to YES when using Paygistix Client with PaxMode=SERVER.","key":"NoPrompt","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/captureall/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>  \n<Response>  \n <AuthCode>1018120004</AuthCode>  \n <ExtData>CardType=CREDIT…\n <Batch><Summary>Net_Count=4,Net_Amount=22.00,Settle_DT=2012-10-18 11:14:56,Result=0</Summary>\n  <Detail>Net_Count=4,Net_Amount=22.00,Settle_DT=2012-10-18 11:14:56,Result=0AuthCode=1018120004,Message=96900C</Detail>\n </Batch>\n <BatchNum>4</BatchNum>\n </ExtData> \n <Guid>ce08e533-e687-4022-81bd-79d15d285b59</Guid>  \n <Message>96900C</Message>  \n <RespMsg>Approved</RespMsg>  \n <Status>0</Status>  \n<ServiceType>CAPTUREALL</ServiceType>\n</Response>\n\n"}],"_postman_id":"24a43570-e41a-4140-90fa-f25ef4609819"},{"name":"Function pay/clearbatch","event":[{"listen":"test","script":{"id":"49647d9f-11c4-4e88-9479-29f00e2311e7","exec":[""],"type":"text/javascript"}}],"id":"7411867f-1afc-48f9-8539-3f18fda433ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":"XML"},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/sale/","description":"<p>This function is used to clear all transaction data from a PAX device (this will not clear SAF transactions). This function will not be required if you have the setting PAXAutoClearBatch turned ON as the device will be cleared periodically by Paygistix Client.</p>\n<p>Typical output from /pay/clearbatch/</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;  \n  &lt;Response&gt;  \n    &lt;Guid&gt;ce08e533-e687-4022-81bd-79d15d285b59&lt;/Guid&gt;  \n    &lt;Message&gt;96900C&lt;/Message&gt;  \n    &lt;Result&gt;0&lt;/Result&gt;  \n    &lt;ServiceType&gt;CLEARBATCH&lt;/ServiceType&gt;\n  &lt;/Response&gt;\n</code></pre><p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","sale",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[{"id":"9b4dd987-aba2-437d-a4a2-037c0dbf5087","name":"Function pay/clearbatch","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"*Your Paygistix Web Service User Name (required)","key":"Username","type":"text","value":""},{"description":"Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON","key":"Output","type":"text","value":"XML"},{"description":"A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/sale/"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"<?xml version=\"1.0\" encoding=\"utf-8\"?>  \r\n  <Response>  \r\n    <Guid>ce08e533-e687-4022-81bd-79d15d285b59</Guid>  \r\n    <Message>96900C</Message>  \r\n    <Result>0</Result>  \r\n    <ServiceType>CLEARBATCH</ServiceType>\r\n  </Response>\r\n"}],"_postman_id":"7411867f-1afc-48f9-8539-3f18fda433ed"},{"name":"Function pay/getsignature","event":[{"listen":"test","script":{"id":"c84d336f-10b6-415c-a1fc-a9db03139e82","exec":[""],"type":"text/javascript"}}],"id":"9a84f7cc-c43c-4920-b042-77841d7f3375","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>*Filename for image retrieval. The image format is determined from a list of valid extensions passed in, for example “signature.jpg” \nOptions:.\n.jpg or .jpeg\n.png\n.tif or .tiff\n.gif\n.bmp</p>\n<p>(required)</p>\n","key":"OutputImageFile","type":"text","value":""},{"description":"<p>*Width of the image in pixels (required)</p>\n","key":"Width","type":"text","value":""},{"description":"<p>*Height of the image in pixels (required)</p>\n","key":"Height","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":"XML"},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/getsignature/","description":"<p>This function retrieves the most recently captured signature from an MT30 and returns it as an image file.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","getsignature",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"9a84f7cc-c43c-4920-b042-77841d7f3375"},{"name":"Function pay/getsignature (Without a Transaction)","event":[{"listen":"test","script":{"id":"8085b136-8076-4b3c-998a-988764246f8d","exec":[""],"type":"text/javascript"}}],"id":"c9d0b5c3-ff86-4fbb-840f-f55685910e39","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"key":"FetchNew","value":"","description":"<p>*Set to YES (required)</p>\n","type":"text"},{"description":"<p>*Filename for image retrieval. The image format is determined from a list of valid extensions passed in, for example “signature.jpg” \nOptions:.\n.jpg or .jpeg\n.png\n.tif or .tiff\n.gif\n.bmp</p>\n<p>(required)</p>\n","key":"OutputImageFile","type":"text","value":""},{"description":"<p>*Width of the image in pixels (required)</p>\n","key":"Width","type":"text","value":""},{"description":"<p>*Height of the image in pixels (required)</p>\n","key":"Height","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/getsignature/","description":"<p>This function requests a new, on-screen signature from a PAX S300. The requested signature is stored locally as an image file.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","getsignature",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"c9d0b5c3-ff86-4fbb-840f-f55685910e39"},{"name":"Function pay/showmessage","event":[{"listen":"test","script":{"id":"d704e177-ca81-4994-bed9-a5b4abe56906","exec":[""],"type":"text/javascript"}}],"id":"a15d7bff-0802-48c9-b961-a61bc1b8bf68","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Message to be displayed (required)</p>\n","key":"Message","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""}]},"url":"http://localhost:8080/pay/showmessage/","description":"<p>This function can be used to display a one-line message on the MT30 screen.   If called more than once, the most recent line is displayed at the top, with any other lines displayed in descending order.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","showmessage",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"a15d7bff-0802-48c9-b961-a61bc1b8bf68"},{"name":"Function pay/clearmessage","event":[{"listen":"test","script":{"id":"1ac385ea-d4e8-4387-ab75-2db892809162","exec":[""],"type":"text/javascript"}}],"id":"160b04d7-b579-4144-9325-b9e2c32ca87a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""}]},"url":"http://localhost:8080/pay/clearmessage/","description":"<p>This function clears any and all messages on the PAX device screen. </p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","clearmessage",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"160b04d7-b579-4144-9325-b9e2c32ca87a"},{"name":"Function pay/cancel","event":[{"listen":"test","script":{"id":"59e20f40-f921-4dfd-970f-04bcce164513","exec":[""],"type":"text/javascript"}}],"id":"8ceafde5-9086-456b-8ff5-249b26bc1fdf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""}]},"url":"http://localhost:8080/pay/cancel/","description":"<p>This function cancels any command sent to the PAX device prior to any user supplied to the device to process the transaction. The other way to abort a transaction sent to a PAX device is to physically hit the cancel button on the device which will cause Paygistix Client to return a transaction aborted message. </p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","cancel",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"8ceafde5-9086-456b-8ff5-249b26bc1fdf"}],"id":"547d1575-90b6-42a5-8983-1bc15b178bad","description":"<h1>Calling Service via HTTP or HTTPS</h1>\n\n<p>Your application may send HTTP or HTTPS requests directly to the local server. In order to utilize HTTPS, you will need to contact Payment Logistics for configuration support. The URI always takes the form as follows: <b><a href=\"http://localhost:8080/pay/%7Bfunction%7D/\">http://localhost:8080/pay/{function}/</a></b>  The port number can be changed as mentioned in the configuration section.  Note: It is important to include the trailing ‘/’ in the URI; failure to include this will result in an error message being returned.</p>\n<h2>Request and Response Mechanisms</h2>\nWhen sending synchronous requests you must ensure that adequate timeout parameters are allowed for, as the response will not be returned until after the user has interacted with the payment terminal.\n\n<p>When calling the service asynchronously, timeout is not an issue as the results will be returned in a named file.  The response returned will include a GUID which can be used to verify against the eventual results returned in the file.</p>\n<p>Requests can be made using a HTTP GET verb and passing the parameters as Name Value pairs to the server or you can package the request into an XML envelope, not unlike a soap message would; in which case, the HTTP POST verb must be used to deliver the payload. In general there are some data security benefits for using the HTTP POST verb when compared to the HTTP GET verb, however in any case, when performing the integration, the calls should be scripted and not use a browser for communicating with Paygistix Client.</p>\n<p>The response will mirror the request, coming back as Name Value pairs, XML, or JSON depending on the method used to request the call. You can override the response and specifically choose to return XML, Name Value pairs, or JSON by using the Output parameter in the originating request.</p>\n<p>In addition you can call functions using the File Drop method and receive a response in a file also. </p>\n<h2>Example Request Using a Browser</h2>\nClick on the following link to demonstrate the simplicity of calling the server. This is only provided as an example. All integrations with Paygistix Client should be scripted.  Please note, if you have configured the server to run on a different port you will need to adjust the port number in this URL:\n\n<p><a href=\"http://localhost:8080/pay/sale/?Username=payg2783&amp;Password=paylogtest&amp;amount=1.00/\">http://localhost:8080/pay/sale/?Username=payg2783&amp;Password=paylogtest&amp;amount=1.00</a>.</p>\n<p>Clicking on the above link will trigger the Payment Device to prompt the cardholder to Insert(EMV), Swipe, or tap their card (note that for card not present transactions, the payment card number can also be key entered into the device manually). </p>\n<p>Note: Other commands in this document can also be sent via a browser.</p>\n<h2>Example Call Using VBScript</h2>\nIn this example we will call the <b>/pay/sale</b> function synchronously using the HTTP POST Verb in code. See the example code file titled <b>TestSaleSimpleHTTP.wsf</b>.  Double click the file to see the test, if you have your own account setup with Paygistix then please substitute the username and password credentials below.\n\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;job id=\"Paygistix_Test\"&gt;\n&lt;script language=\"VBScript\"&gt;\n    'Setup a URI to the payment service \n    Const URI = http://localhost:8080/pay/sale/\n    'Create a Request envelope to send to the service\n    Dim sEnvelope\n    sEnvelope = \"&lt;?xml version=\"\"1.0\"\" encoding=\"\"utf-8\"\"?&gt;\"  &amp; _\n        \"&lt;Request&gt;\" &amp; _\n        \"   &lt;UserName&gt;payg2783&lt;/UserName&gt;\" &amp; _ \n        \"   &lt;Password&gt;paylogtest&lt;/Password&gt;\" &amp; _ \n        \"   &lt;Amount&gt;10&lt;/Amount&gt;\" &amp; _ \n        \"   &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\" &amp; _ \n        \"   &lt;Output&gt;XML&lt;/Output&gt;\" &amp; _ \n        \"   &lt;FileName&gt;c:\\result.txt&lt;/FileName&gt;\" &amp; _ \n        \"&lt;/Request&gt;\" \n    'Use MSXML to call the local web service\n    Dim xmlHttp: Set xmlHttp = CreateObject(\"Msxml2.ServerXMLHTTP\")\n    xmlHttp.open \"POST\", URI , false\n    xmlHttp.setRequestHeader \"Content-Type\",\"text/xml\"\n    xmlHttp.send sEnvelope \n    'output the response GUID\n    WScript.echo xmlHttp.ResponseText\n&lt;/script&gt;\n&lt;/job&gt;\n</code></pre><p>In the following sections we go into more detail about the request and response parameters.</p>\n<p><strong>Attention:</strong> The PNRef value which is returned from many function calls and may be stored for subsequent transactions is an Integer value and can therefore vary in length considerably. We recommend storing this either as a Long Integer or in a string of at least 10 characters.</p>\n<table>\n  <tr>\n    <th>Parameter Name</th>\n    <th>Description</th>\n  </tr>\n  <tr>\n    <td>Amount</td>\n    <td>The dollar amount of the auth from the transaction request.</td>\n  </tr>\n  <tr>\n    <td>AuthCode</td>\n    <td>The authorization code returned from the payment gateway.</td>\n  </tr>\n  <tr>\n    <td>CardType</td>\n    <td>The card type used, Visa, MasterCard, Discover, Amex, or Debit.</td>\n  </tr>\n  <tr>\n    <td>Last4</td>\n    <td>The last four digits of the cardholder’s account number (only provided when ReturnExtendedCardData=Yes in the configuration parameters)</td>\n  </tr>\n  <tr>\n    <td>GUID</td>\n    <td>The unique identifier that can be matched to the response returned immediately.</td>\n  </tr>\n  <tr>\n    <td>InvoiceNumber</td>\n    <td>The invoice number entered (or passed in) to the function.</td>\n  </tr>\n  <tr>\n    <td>Message</td>\n    <td>The message returned by the payment gateway, typically APPROVED or DECLINED.</td>\n  </tr>\n  <tr>\n    <td>Name</td>\n    <td>Cardholder’s name. Not returned for manually entered transactions run through a terminal or when cardholder’s name is not provided.</td>\n  </tr>\n  <tr>\n    <td>PNRef</td>\n    <td>The token returned by the Paygistix Gateway which can be used to: reference the transaction to run a repeatauth, void, credit, force, tipadjust and other transaction types supported by Paygistix integration technologies. This should be stored in the POS application’s database.</td>\n  </tr>\n  <tr>\n    <td>ServiceType</td>\n    <td>The type of transaction that occurred.</td>\n  </tr>\n  <tr>\n    <td>Status</td>\n    <td>The status of this call. A zero indicates success, and any other number indicates that the transaction was not approved.</td>\n  </tr>\n  <tr>\n    <td>StreetMatch</td>\n    <td>“Match” if the street address passed the AVS test.</td>\n  </tr>\n  <tr>\n    <td>ZipMatch</td>\n    <td>“Match” if the ZIP Code passed the AVS test.</td>\n  </tr>\n  <tr>\n    <td>Approved_Amt</td>\n    <td>The amount approved when a transaction is approved for a lesser amount than what was originally requested (i.e. a partial approval). When this parameter is returned, the POS system should allow the merchant to either, A) capture the partially approved amount and prompt the clerk to request the balance in the form of another payment from the cardholder, or B) submit a /pay/void/ or /pay/reversal/l to cancel the transaction.  Approved_Amt is supported in the /pay/sale, /pay/auth, /pay/repeatsale and  /pay/repeatauth functions.  It is also supported for Debit, Credit, and Gift Tender Types. Please note, it is possible to configure a Paygistix Gateway account to disable support for partial approvals. When this occurs, a transaction that results in a partial approval will instead be declined. Please discuss support for partial approvals with your Payment Logistics developer support representative. </td>\n  </tr>\n</table>\n\n<p><strong>Attention:</strong> It is very important to interpret the results of the transaction programmatically according to the “Status” response parameter, not the “Message” response parameter, as different upstream processors give different Message responses.</p>\n<p><strong>Attention:</strong> When the “Status” is not equal to 0, the “Message” response should be displayed on the POS screen so that the cashier and/or customer knows the reason for the decline.  An example would be “error, missing CVV.”  Knowing the error message can help with troubleshooting.</p>\n<p><strong>Partial Approval Example</strong></p>\n<p>In the below response, notice how the “Amount” is the original amount submitted in the authorization request and the “Approved_Amt” is the actual amount approved (i.e. the partial approval amount).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n  &lt;Response&gt;\n    &lt;Amount&gt;155.00&lt;/Amount&gt;\n    &lt;Approved_Amt&gt;100.00&lt;/Approved_Amt&gt;\n    &lt;AuthCode&gt;057478&lt;/AuthCode&gt;\n    &lt;AVSResult&gt;Issuer did not perform AVS&lt;/AVSResult&gt;\n    &lt;CardType&gt;MASTERCARD&lt;/CardType&gt;\n    &lt;Guid&gt;43677462-5606-479c-a6da-52e9950c9554&lt;/Guid&gt;\n    &lt;InvoiceNumber&gt;ABC123&lt;/InvoiceNumber&gt;\n    &lt;Last4&gt;1732&lt;/Last4&gt;\n    &lt;Message&gt;PARTIAL APPROVAL&lt;/Message&gt;\n    &lt;Name&gt;John Doe&lt;/Name&gt;\n    &lt;PNRef&gt;36141&lt;/PNRef&gt;\n    &lt;ServiceType&gt;AUTH&lt;/ServiceType&gt;\n    &lt;Status&gt;0&lt;/Status&gt;\n    &lt;StreetMatch&gt;Service Not Requested&lt;/StreetMatch&gt;\n    &lt;ZipMatch&gt;Service Not Requested&lt;/ZipMatch&gt;\n  &lt;/Response&gt;\n</code></pre><h2>Automated Loyalty Card Functionality</h2> \n\n<p>Contact Payment Logistics if you would like to enable Loyalty and Gift card functionality on your account.</p>\n<p>When using Payment Logistics Loyalty card functionality you can extend a sale to request a loyalty card number and automatically credit the loyalty account with points when the sale is performed. </p>\n<p><b>Additional Optional Parameters:</b></p>\n<ul>\n<li><b>Loyalty:</b> Used to enable the loyalty functionality, pass in the loyalty program identifier such as Points or Punches: GoLarge where the first part of the parameter is the valuetype and the second is an optional program name.</li>\n<li><b>LoyaltyRatePerUnit:</b>  The number of points to apply to the loyalty card for each Dollar spent. For instance if the LoyaltyRatePerUnit is 2 and the transaction value is $10 then 20 points will be credited to the account.</li>\n</ul>\n\n<p>On completing the sale, the Loyalty account is updated with the appropriate number of points.</p>\n<p>The resulting return value is the same as the previous sale, only this time includes additional information regarding the Loyalty Balance and how many Loyalty Points were added in this transaction.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;  \n&lt;Response&gt;  \n    &lt;Amount&gt;10.00&lt;/Amount&gt;  \n    &lt;AuthCode&gt; OK7157&lt;/AuthCode&gt;  \n    &lt;CardType&gt;MASTERCARD&lt;/CardType&gt;  \n    &lt;Guid&gt;06fb91e4-e758-487b-ab69-3c897b1e4a4e&lt;/Guid&gt;  \n    &lt;LoyaltyBalance&gt;GoLarge=324.00&lt;/LoyaltyBalance&gt;  \n    &lt;LoyaltyPointsAdded&gt;20&lt;/LoyaltyPointsAdded&gt;  \n    &lt;Message&gt;APPROVED&lt;/Message&gt;  \n    &lt;PNRef&gt;241841&lt;/PNRef&gt;  \n    &lt;Status&gt;0&lt;/Status&gt;  \n&lt;/Response&gt;\n</code></pre>","event":[{"listen":"prerequest","script":{"id":"71163179-fb1e-40eb-89c8-5b212853eae1","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"15897f09-a94b-4f45-b44a-e610881c7804","type":"text/javascript","exec":[""]}}],"_postman_id":"547d1575-90b6-42a5-8983-1bc15b178bad"},{"name":"Store and Forward","item":[{"name":"Function pay/setofflinemode","event":[{"listen":"test","script":{"id":"21273298-9d67-48be-b893-0904d240b9dd","exec":[""],"type":"text/javascript"}}],"id":"66667a8f-236d-4d3a-97ed-8fd7025ae897","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""}]},"url":"http://localhost:8080/pay/setofflinemode/","description":"<p>Call this function to force a payment device into offline mode.  When enabled, the device will process all transactions offline.</p>\n<p><b>Caution:</b> If an end user can run this command via the POS, and they forget to set SAF back to online mode, it will likely result in transactions being run offline unnecessarily.  Therefore, to mitigate the risk of this feature being left on, Payment Logistics recommends making its effect temporary; for example a.) after some time the POS will send a /pay/setonlinemode/ command to the device to disable it or b.) the end user is periodically prompted to turn it back on.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","setofflinemode",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"66667a8f-236d-4d3a-97ed-8fd7025ae897"},{"name":"Function pay/setonlinemode","event":[{"listen":"test","script":{"id":"c7d5648c-425c-47ba-b943-8d4ddacf34b5","exec":[""],"type":"text/javascript"}}],"id":"804fdf91-7329-4ee0-ba6a-5d8003bdf38c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":"","disabled":true},{"description":"<p>Can specify Credit, Debit, Gift, Loyalty or EBT. This sets the transaction type. If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type. If left blank, the customer will be prompted to perform a credit transaction.</p>\n<p>If it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).</p>\n","key":"TenderType","type":"text","value":"","disabled":true},{"description":"<p>Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":"","disabled":true},{"description":"<p>Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).</p>\n","key":"TipAmount","type":"text","value":"","disabled":true},{"description":"<p>When set to YES, this will cause a PAX device to prompt for an inline tip (i.e. the payment device will prompt the cardholder to select a tip amount). This parameter can only be used when UseDevice=YES or PaxMode=ON or Server. When used in conjunction with the optional TipAmount parameter, this will prompt the cardholder to add a tip in addition to the mandatory gratuity supplied in the “TipAmount” parameter and the entire gratuity (TipAmount + any additional gratuity resulting from TipRequest) will be sent to Paygistix Gateway denoted as a gratuity. If a cardholder adds a tip, it will be returned in the response so the POS can add it to it’s records.</p>\n","key":"TipRequest","type":"text","value":"","disabled":true},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":"","disabled":true},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":"","disabled":true},{"description":"<p>Options YES=the payment device will request a signature</p>\n","key":"Signature","type":"text","value":"","disabled":true},{"description":"<p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p>\n","key":"PaxButtons","type":"text","value":"","disabled":true}]},"url":"http://localhost:8080/pay/setonlinemode/","description":"<p>Description:  Forces device into online mode, where all transactions are attempted online.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","setonlinemode",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"804fdf91-7329-4ee0-ba6a-5d8003bdf38c"},{"name":"Function pay/safupload","event":[{"listen":"test","script":{"id":"b59855c9-d6eb-412f-a3e0-44fc619a4afd","exec":[""],"type":"text/javascript"}}],"id":"aa0f5311-4a7d-4f22-b8d4-c1d2f2b6c7d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""}]},"url":"http://localhost:8080/pay/safupload/","description":"<p>Call this function to cause a single payment device to upload it’s offline transactions to the Paygistix Gateway.</p>\n<p>This uploads previously declined offline transactions. Declined transactions can be viewed using /pay/getfailedtransactions/</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","safupload",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"aa0f5311-4a7d-4f22-b8d4-c1d2f2b6c7d9"},{"name":"Function pay/safdeletefailed","event":[{"listen":"test","script":{"id":"16070487-0bbb-45a3-a857-28fdc5f06497","exec":[""],"type":"text/javascript"}}],"id":"2d637a67-0639-4ca2-b2c1-54dc596fa715","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":"","disabled":true},{"description":"<p>Can specify Credit, Debit, Gift, Loyalty or EBT. This sets the transaction type. If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type. If left blank, the customer will be prompted to perform a credit transaction.</p>\n<p>If it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).</p>\n","key":"TenderType","type":"text","value":"","disabled":true},{"description":"<p>Total Sale Amount (including any tip)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":"","disabled":true},{"description":"<p>Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).</p>\n","key":"TipAmount","type":"text","value":"","disabled":true},{"description":"<p>When set to YES, this will cause a PAX device to prompt for an inline tip (i.e. the payment device will prompt the cardholder to select a tip amount). This parameter can only be used when UseDevice=YES or PaxMode=ON or Server. When used in conjunction with the optional TipAmount parameter, this will prompt the cardholder to add a tip in addition to the mandatory gratuity supplied in the “TipAmount” parameter and the entire gratuity (TipAmount + any additional gratuity resulting from TipRequest) will be sent to Paygistix Gateway denoted as a gratuity. If a cardholder adds a tip, it will be returned in the response so the POS can add it to it’s records.</p>\n","key":"TipRequest","type":"text","value":"","disabled":true},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":"","disabled":true},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":"","disabled":true},{"description":"<p>Options YES=the payment device will request a signature</p>\n","key":"Signature","type":"text","value":"","disabled":true},{"description":"<p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p>\n","key":"PaxButtons","type":"text","value":"","disabled":true}]},"url":"http://localhost:8080/pay/safdeletefailed/","description":"<p>Call this function to force a deletion of Failed SAF transactions within a payment device.</p>\n<p>**Note:**This Requires Merchant intervention on the terminal. Message prompt on screen \"Delete All Records?\" <em>Yes/No</em> are the options.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","safdeletefailed",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"2d637a67-0639-4ca2-b2c1-54dc596fa715"},{"name":"Function pay/getfailedtransactions","event":[{"listen":"test","script":{"id":"20eb8309-cede-4834-8851-d01f06fbdf99","exec":[""],"type":"text/javascript"}}],"id":"cd515bd3-6539-47bf-9d6f-71124d8f5efb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"key":"Output","value":"","description":"<p>Forces the structure of the returned response\nOptions: \nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","type":"text"}]},"url":"http://localhost:8080/pay/getfailedtransactions/","description":"<p>Call this function to displays a list of all transactions that were declined when the device attempted to upload them.</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","getfailedtransactions",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"cd515bd3-6539-47bf-9d6f-71124d8f5efb"},{"name":"Function offline pay/sale","event":[{"listen":"test","script":{"id":"e56aa707-da28-497f-951c-a1921e4d87d3","exec":[""],"type":"text/javascript"}}],"id":"2a552cdd-4bb0-4c6c-b6cd-d6eba2a433de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"description":"<p>*Your Paygistix Web Service User Name (required)</p>\n","key":"Username","type":"text","value":""},{"description":"<p>*Your Paygistix Web Service Password (required)</p>\n","key":"Password","type":"text","value":""},{"description":"<p>Can specify Credit, Debit, Gift, Loyalty or EBT. This sets the transaction type.  If using a PAX terminal, this will skip the transaction type buttons and proceed to prompt the customer to swipe now for the specified tender type.  If left blank, the customer will be prompted to perform a credit transaction.</p>\n<p>If it’s desired to prompt the cardholder to select their card type, use PaxButtons (see below).</p>\n","key":"TenderType","type":"text","value":""},{"description":"<p>Total Sale Amount (including any tip) (required)\nType: Numeric\nFormat: 0.00\nMax: 99999.99</p>\n","key":"Amount","type":"text","value":""},{"description":"<p>Mandatory gratuity amount. Please note, this amount is informational only and not added to the total amount; therefore, be sure to include the tip in the above “Amount” parameter. In other words, the TipAmount is the portion of the “Amount” that is allocated as a tip and is passed to the Paygistix Gateway as a tip. This feature is appropriate for any situation where a gratuity is mandatory such as in many restaurant settings where large parties have gratuities automatically added to them. To adjust the tip after the original sale is completed, see section 3.14 (Function /pay/addtip), and section 3.15 (Function /pay/addtipnoui).</p>\n","key":"TipAmount","type":"text","value":""},{"description":"<p>When set to YES, this will cause a PAX device to prompt for an inline tip (i.e. the payment device will prompt the cardholder to select a tip amount). This parameter can only be used when UseDevice=YES or PaxMode=ON or Server. When used in conjunction with the optional TipAmount parameter, this will prompt the cardholder to add a tip in addition to the mandatory gratuity supplied in the “TipAmount” parameter and the entire gratuity (TipAmount + any additional gratuity resulting from TipRequest) will be sent to Paygistix Gateway denoted as a gratuity. If a cardholder adds a tip, it will be returned in the response so the POS can add it to it’s records.</p>\n","key":"TipRequest","type":"text","value":""},{"description":"<p>Invoice number associated with the transaction \nType: Alphanumeric (spaces and hyphens allowed)</p>\n","key":"InvoiceNumber","type":"text","value":""},{"description":"<p>Forces the structure of the returned response\nOptions:\nXML(Default)\nNVP\nNVPCRLF\nJSON</p>\n","key":"Output","type":"text","value":""},{"description":"<p>A file name allocated to receive the response into allowing the web service to be called asynchronously\nExample: c:\\result.txt</p>\n","key":"FIleName","type":"text","value":""},{"description":"<p>Options YES=the payment device will request a signature</p>\n","key":"Signature","type":"text","value":""},{"description":"<p>This parameter determines which payment buttons are displayed on the PAX screen. Since PAX devices can only show 4 buttons at a time, a combination of 4 letters max can be sent. Valid letters are: C, D, E, G, or L.. These letters represent different payment types: Credit, Debit, EBT, Gift Card, and Loyalty respectively. (Usage Example: “CD” will display Credit and Debit buttons in that order. “CDEG” will display Credit, Debit, EBT and Gift buttons in that order.</p>\n","key":"PaxButtons","type":"text","value":""},{"key":"OfflineMode","value":"","description":"<p>Set to YES allows on individual offline transaction to be ran. </p>\n","type":"text"}]},"url":"http://localhost:8080/pay/sale/","description":"<p>Use this function to process an offline sale transaction.</p>\n<p>To call this function you need to request the service at http:// [IPAddressOfServer] :8080/pay/sale/</p>\n<p>The Request Parameters you can pass to this function are as follows:</p>\n","urlObject":{"protocol":"http","path":["pay","sale",""],"host":["localhost:8080"],"query":[],"variable":[]}},"response":[],"_postman_id":"2a552cdd-4bb0-4c6c-b6cd-d6eba2a433de"}],"id":"6ba794aa-ca1b-4042-aea0-66d5ea9a8b1f","description":"<h1>Store and Forward</h1>\n<p>Paygistix Client's intelligent store and forward solution allows merchants to continue accepting payments even when systems are offline due to: ISP service interruptions, Gateway Maintenance, etc...  If Paygistix Client detects an outage, transactions are securely stored while systems are offline, and they are uploaded for processing when systems are back online.</p>\n\n<p>Store and Forward (or SAF for short) is backwards compatible with POS systems already integrated with Paygistix Client. For new POS integrations, it can also be implemented without specific coding.  Put simply, it’s plug-and-play.  As an advanced option, ISVs integrating with Paygistix Client can give their end users more control over enabling and managing SAF via their POS through Paygistix Client’s SAF related functions.  See the functions section below for specs.</p>\n\n<h2>Requirements</h2>\nSAF requires the following components:\n<li>Paygistix Client Version 0.2.48 or higher</li>\n<li>Pax S300 w/Paygistix Application Version 1.01.03+</li>\n<li>Pax D210 w/Paygistix Application Version 1.01.07+</li>\n<li>Paygistix gateway account</li>\n\n<h2>Configuration</h2>\nSAF is disabled by default. To enable SAF, a “SAFMode” must be configured in your Paygistix Client settings.  To enable it, contact Payment Logistics Developer Support at 888-472-9564 or devsupport@paymentlogistics.com.\n\n<p><b>SAFMode=Proactive|Auto</b></p>\n<ul>\n<li><b>Proactive</b> = If Paygistix Client detects that a transaction cannot be run online, SAF will automatically be enabled.</li>\n<li><b>Auto</b>= Paygistix Client reads the response from the Pax device and/or Gateway, and depending on the response, the cardholder will be prompted to run the transaction offline.  Auto mode was created to cover scenarios not covered by proactive mode, and it can be enabled alongside proactive mode.</li>\n</ul>\n\n<p><b>AllowOfflineVoid=ON|OFF</b></p>\n<ul>\n<li><b>ON</b>= Allow voids of offline transactions that have not yet been uploaded</li>\n<li><b>OFF</b>= Blocks the voiding of offline transactions that have not yet been uploaded.</li>\n</ul>\n\n<h2>Upload Schedule</h2>\nWhen Proactive or Auto mode is enabled, Paygistix Client will upload stored transactions every hour.  If any transactions fail when being uploaded (e.g. declined), they will be retried on the next upload.  If a transaction continues to fail, it will be retried until it is deleted via the /pay/safdeletefailed command.\n\n<h2>Mitigating the risk of lost transactions</h2>\nWhen transactions are performed offline, they are automatically assumed by the POS to be approved.  However, when the transactions are uploaded to the Paygistix gateway to be processed online, there is a risk of a decline from the card issuing bank.  Whilst in most cases merchants will opt-in to use SAF in spite of this risk, the following settings can be configured in each payment device to help mitigate that risk:\n<ul>\n<li><b>HALO Per Card Type</b> - The maximum amount that can be processed offline per transaction, per card type (Visa, Mastercard, American Express, Discover). Default = no limit.  Transactions exceeding this amount will not be processed.</li>\n<li><b>Ceiling Amount Per Card Type</b> - A limit on the total $ amount of transactions processed offline per card type. Default = no limit.  Transactions exceeding this amount will not be processed.</li>\n<li><b>Total Ceiling Amount</b> - A limit on the total $ amount of transactions processed offline for all card types.  Default = no limit.  Transactions exceeding this amount will not be processed.</li>\n</ul>\n\n<h2>Important Notes</h2>\n<ul>\n<li>Debit/EBT/Gift Transactions cannot be run offline.  Since virtually all debit cards support credit networks, debit transactions should be run as credit.</li>\n<li>When a transaction is run offline, the following functions cannot be run using it’s PNRef until the transaction is uploaded to the gateway: /pay/repeatsale, /pay/repeatauth/, /pay/force/, /pay/addtipnoui/, and /pay/credit/.</li>\n<li>If a transaction declines when being uploaded, due to insufficient funds, The Paygistix Gateway allows merchants to attempt to recharged declined sales later, without requiring the card information to be re-entered, increasing the changes of the funds being captured later.</li>\n</ul>\n\n<p><b>Have questions?</b></p>\n<p>Contact Payment Logistics Developer Support at 888.472.9564 or devsupport@paymentlogistics.com.</p>\n\n","event":[{"listen":"prerequest","script":{"id":"d6f0112f-bd24-4a1e-ab64-9418fd35db2d","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"416eb910-ad8d-4e07-ab02-0f8e28c34e31","type":"text/javascript","exec":[""]}}],"_postman_id":"6ba794aa-ca1b-4042-aea0-66d5ea9a8b1f"}],"event":[{"listen":"prerequest","script":{"id":"a708031c-d1d8-4a66-9137-65f78df652d2","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"af8696d1-31fb-48f6-962e-9b05ab6ebc01","type":"text/javascript","exec":["pm.environment.get(\"variable_key\");","pm.globals.get(\"variable_key\");","pm.globals.unset(\"variable_key\");"]}}],"variable":[{"key":"URL","value":"localhost:8080"}]}