CINXE.COM
Integration Checklist - Connect
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1.0"/> <title>Integration Checklist - Connect</title> <link rel="apple-touch-icon" sizes="76x76" href="/favicons/apple-touch-icon.png?v=dLJendOlMG"> <link rel="icon" type="image/png" sizes="32x32" href="/favicons/favicon-32x32.png?v=dLJendOlMG"> <link rel="icon" type="image/png" sizes="16x16" href="/favicons/favicon-16x16.png?v=dLJendOlMG"> <link rel="manifest" href="/favicons/site.webmanifest?v=dLJendOlMG"> <link rel="mask-icon" href="/favicons/safari-pinned-tab.svg?v=dLJendOlMG" color="#e60975"> <link rel="shortcut icon" href="/favicons/favicon.ico?v=dLJendOlMG"> <meta name="apple-mobile-web-app-title" content="Paymentsense - Connect"> <meta name="application-name" content="Paymentsense - Connect"> <meta name="msapplication-TileColor" content="#e60975"> <meta name="theme-color" content="#ffffff"> <style> .apiLink { color: lightgray; } .apiLink:hover { color: #1E4B60; } .defaultLink { color: #2a8398; } .defaultLink:hover { color: #1E4B60; } </style> <link rel="stylesheet" href="/lib/bootstrap/dist/css/bootstrap.css" /> <link rel="stylesheet" href="/css/site.css?v=od0x-a5VJRY8lWP0uqeC7-jSkMaEc3-QdDKb4sqWCT4" /> <link href="https://fonts.googleapis.com/css?family=Open+Sans" rel="stylesheet"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> </head> <body> <nav class="navbar navbar-fixed-top bg-white"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-brand" href="/"> <img class="connect-docs-logo" src="/images/connect_docs_logo.png" alt="Paymentsense"/> </a> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/"> <img class="paymentsense-logo" src="/images/paymentsense-logo-dark.svg" alt="Paymentsense"/> </a> </div> <div id="navbar" class="navbar-collapse collapse navbar-hide bg-gray-fade"> <ul class="nav nav-pills nav-stacked menu-overview"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Overview</div> </li> <li class="nav-stacked-item"> <a href="/">Introduction</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-rest-interface"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>REST Interface</div> </li> <li class="nav-stacked-item"> <a href="/rest/getting-started">Getting Started</a> </li> <li class="nav-stacked-item"> <a href="/rest/pac-transaction-flow">PAC Transaction Flow</a> </li> <li class="nav-stacked-item"> <a href="/rest/api">API</a> </li> <li class="nav-stacked-item"> <a href="/rest/error-messages">Built-in user messages</a> </li> <li class="nav-stacked-item"> <a href="/rest/changelog">Changelog</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-websockets-interface"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>WebSockets Interface</div> </li> <li class="nav-stacked-item"> <a href="/websockets/getting-started">Getting Started</a> </li> <li class="nav-stacked-item"> <a href="/websockets/pac-transaction-flow">PAC Transaction Flow</a> </li> <li class="nav-stacked-item"> <a href="/websockets/api">API</a> </li> <li class="nav-stacked-item"> <a href="/websockets/changelog">Changelog</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-next-steps"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Next Steps</div> </li> <li class="nav-stacked-item"> <a href="/next-steps/integration-checklist">Integration Checklist</a> </li> <li class="nav-stacked-item"> <a href="/next-steps/qa-process">QA Process</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-help-support"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Help & Support</div> </li> <li class="nav-stacked-item"> <a href="/pdq/test-cards">Test Cards</a> </li> <li class="nav-stacked-item"> <a href="/pdq/invoking-scenarios">Invoking Scenarios</a> </li> <li class="nav-stacked-item"> <a href="/faqs">FAQs</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-ingenico-guides"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Ingenico PDQ Guides</div> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/ict-setup">iCT Setup</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/iwl-setup">iWL Setup</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/internet-connectivity">Checking Internet Connectivity</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/static-ip">Setting a Static IP Address</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/tms-call">Performing a TMS Call</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/pair-base">Pairing an iWL to a base</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/standalone-mode">Switching to Standalone Mode</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/supervisor-password">Changing the Supervisor Password</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/configuration-options">Configuration Options</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-connect-e"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Connect-E</div> </li> <li class="nav-stacked-item"> <a href="/ConnectE/GettingStarted">Getting Started</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/PaymentsFlows">Payment Flows</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/BestPractice">Best Practices</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Standard">Standard - One off Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/RecurringPayment">Standard - Repeat Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/WaitPreExecuteOneOffPayment">Wait Pre-execute - One off Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/WaitPreExecuteRecurringPayment">Wait Pre-execute - Repeat Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/SavePaymentMethodOneOffPayment">Save Payment Method - One off Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Checkout">Checkout</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Wallet">Wallet</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/ApplePay">Apple Pay™</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/GooglePay">Google Pay™</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Webhooks">Webhooks</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/RestApi">REST API</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/SettingUpTestAccount">Setup Test Account</a> </li> </ul> </div> </div> </nav> <div class="box bg-gray-fade"> <div class="flex-row header"> <div class="sidebar side-nav" role="navigation"> <ul class="nav nav-pills nav-stacked menu-overview"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Overview</div> </li> <li class="nav-stacked-item"> <a href="/">Introduction</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-rest-interface"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>REST Interface</div> </li> <li class="nav-stacked-item"> <a href="/rest/getting-started">Getting Started</a> </li> <li class="nav-stacked-item"> <a href="/rest/pac-transaction-flow">PAC Transaction Flow</a> </li> <li class="nav-stacked-item"> <a href="/rest/api">API</a> </li> <li class="nav-stacked-item"> <a href="/rest/error-messages">Built-in user messages</a> </li> <li class="nav-stacked-item"> <a href="/rest/changelog">Changelog</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-websockets-interface"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>WebSockets Interface</div> </li> <li class="nav-stacked-item"> <a href="/websockets/getting-started">Getting Started</a> </li> <li class="nav-stacked-item"> <a href="/websockets/pac-transaction-flow">PAC Transaction Flow</a> </li> <li class="nav-stacked-item"> <a href="/websockets/api">API</a> </li> <li class="nav-stacked-item"> <a href="/websockets/changelog">Changelog</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-next-steps"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Next Steps</div> </li> <li class="nav-stacked-item"> <a href="/next-steps/integration-checklist">Integration Checklist</a> </li> <li class="nav-stacked-item"> <a href="/next-steps/qa-process">QA Process</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-help-support"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Help & Support</div> </li> <li class="nav-stacked-item"> <a href="/pdq/test-cards">Test Cards</a> </li> <li class="nav-stacked-item"> <a href="/pdq/invoking-scenarios">Invoking Scenarios</a> </li> <li class="nav-stacked-item"> <a href="/faqs">FAQs</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-ingenico-guides"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Ingenico PDQ Guides</div> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/ict-setup">iCT Setup</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/iwl-setup">iWL Setup</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/internet-connectivity">Checking Internet Connectivity</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/static-ip">Setting a Static IP Address</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/tms-call">Performing a TMS Call</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/pair-base">Pairing an iWL to a base</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/standalone-mode">Switching to Standalone Mode</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/supervisor-password">Changing the Supervisor Password</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/software-version">Checking the Software Version</a> </li> <li class="nav-stacked-item"> <a href="/pdq/ingenico/configuration-options">Configuration Options</a> </li> </ul> <ul class="nav nav-pills nav-stacked menu-connect-e"> <li class="title"> <span class="collapse-button pull-right glyphicon glyphicon-chevron-down"></span> <div>Connect-E</div> </li> <li class="nav-stacked-item"> <a href="/ConnectE/GettingStarted">Getting Started</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/PaymentsFlows">Payment Flows</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/BestPractice">Best Practices</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Standard">Standard - One off Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/RecurringPayment">Standard - Repeat Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/WaitPreExecuteOneOffPayment">Wait Pre-execute - One off Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/WaitPreExecuteRecurringPayment">Wait Pre-execute - Repeat Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/SavePaymentMethodOneOffPayment">Save Payment Method - One off Payment</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Checkout">Checkout</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Wallet">Wallet</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/ApplePay">Apple Pay™</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/GooglePay">Google Pay™</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/Webhooks">Webhooks</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/RestApi">REST API</a> </li> <li class="nav-stacked-item"> <a href="/ConnectE/SettingUpTestAccount">Setup Test Account</a> </li> </ul> </div> </div> <div class="flex-row content container-fluid main-content"> <h1 class="page-header">Integration Checklist</h1> <p>In order to successfully complete the integration, it is expected that all of the below items have been implemented. Please note that the PAC and PAT integrations function in different ways (as described under <a href="/">"What is Connect?"</a>) and are intended to be completed separately.</p> <div class="separated-text-section"> <h3 class="collapsible-section-header" data-toggle="collapse" data-target="#general-checklist"> <a>General</a> </h3> <div id="general-checklist" class="collapse"> <p>Every integration should implement these:</p> <ul> <li><span class="checklist-item-title">Host and API Key Configuration</span> - Ability to configure the Host and API Key values for each till.</li> </ul> </div> </div> <div class="separated-text-section"> <h3 class="collapsible-section-header" data-toggle="collapse" data-target="#pac-checklist"> <a>PAC</a> </h3> <div id="pac-checklist" class="collapse"> <p>If you are developing a PAC integration, you should implement the following:</p> <ul class="checklist"> <li><span class="checklist-item-title">Terminal Choice</span> - Ability to choose which terminal to use for either each transaction or each till. <a href="/rest/api#!/PAC32Terminals/RetailTerminals" class="apiLink">REST</a> | <a href="/websockets/api#CtSR_connectedTerminals" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">Transactions</span> - Ability to initiate both SALE and REFUND transactions. <a href="/rest/api#!/PAC32Transactions/TransactionOnTPI" class="apiLink">REST</a> | <a href="/websockets/api#CtSR_PerformTransaction" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">Transaction Notifications</span> - Transaction notifications should be displayed on the POS while a transaction is in progress. <a href="/rest/api#!/PAC32Transactions/TransactionsByRequestId_0" class="apiLink">REST</a> | <a href="/websockets/api#StCN_terminalNotification" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">Signature Verification</span> - When signature verification is required, there should be a prompt on the POS asking the user to check if the signature on the receipt matches the signature on the card. <a href="/rest/api#!/PAC32Transactions/VerifySignature" class="apiLink">REST</a> | <a href="/websockets/api#StCR_verifySignature" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">Cancelling Transactions</span> - Ability to cancel a transaction from the POS. <a href="/rest/api#!/PAC32Transactions/TransactionsByRequestId" class="apiLink">REST</a> | <a href="/websockets/api#CtSR_cancelTransaction" class="apiLink">WebSockets</a></li> <li> <span class="checklist-item-title">Transaction Results</span> - All possible transaction results should be dealt with appropriately: <ul> <li><span class="checklist-item-title">SUCCESSFUL</span> - Transaction was successful. The amount should clear off the POS.</li> <li><span class="checklist-item-title">DECLINED, VOID or UNSUCCESSFUL</span> - Transaction was not successful and no payment has been taken. The POS should inform the user as to the outcome and the amount should not clear off the POS.</li> <li><span class="checklist-item-title">CANCELLED</span> - Transaction was cancelled and no payment has been taken. The POS should inform the user as to the outcome and the amount should not clear off the POS.</li> <li> <span class="checklist-item-title">TIMED_OUT</span> - Transaction has timed out and payment may or may not have been taken. A procedure that triggers this scenario can be found in the <a href="/pdq/invoking-scenarios" class="defaultLink">invoking scenarios</a> section. It is recommended that you check if the terminal is still available: <ul> <li><span class="checklist-item-title">AVAILABLE</span> - Prompt the user to manually check if the transaction was successful and record this on the POS if it was. Alternatively, request a duplicate of the last transaction and check if this matches the original transaction.</li> <li><span class="checklist-item-title">BUSY or not listed</span> - Display an error message advising the user to check the PDQ cables and network connection etc. For example: "Please check that the PDQ is idle and no action is prompted on its screen, that its network and power cables are correctly connected and that it is not in Standalone Mode. Finally, restart the PDQ and, if the problem persists, please contact support." If the implementation is based upon REST, please see the <a href="/rest/error-messages" class="defaultLink">built-in user messages</a> section.</li> </ul> </li> </ul> </li> <li><span class="checklist-item-title">Cashback</span> - When Cashback is added to a transaction, this should be recorded on the POS. If this is not implemented, we will not be able to offer Cashback to any of your merchants.</li> <li><span class="checklist-item-title">Gratuity</span> - When Gratuity is added to a transaction, this should be recorded on the POS. If this is not implemented, we will not be able to offer Gratuity to any of your merchants.</li> <li><span class="checklist-item-title">Reports</span> - In PAC integrations, PDQ reports must be initiated through the POS, and the POS must handle the result of the report appropriately. See the general section above for information about handling reports. <a href="/rest/api#!/PAC32Reports/RetailReportRequest" class="apiLink">REST</a> | <a href="/websockets/api#CtSR_Report" class="apiLink">WebSockets</a><br />The possible PDQ reports are: <ul> <li>End of Day</li> <li>Banking (optional)</li> <li>X Balance (optional)</li> <li>Z Balance (optional)</li> </ul> </li> </ul> </div> </div> <div class="separated-text-section"> <h3 class="collapsible-section-header" data-toggle="collapse" data-target="#pat-checklist"> <a>PAT</a> </h3> <div id="pat-checklist" class="collapse"> <p>If you are developing a PAT integration, you should implement the following:</p> <ul class="checklist"> <li><span class="checklist-item-title">Table List</span> - Ability to access a listing of all currently open tables from the PDQ. <a href="/rest/api#!/PAT32Tables/Tables" class="apiLink">REST</a> | <a href="/websockets/api#StCR_tableListRequest" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">Table Lock</span> - Ability to lock an open table on the PDQ. <a href="/rest/api#!/PAT32Tables/OpenTable" class="apiLink">REST</a> | <a href="/websockets/api#StCR_tableLockRequest" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">EPoS Receipt</span> - Ability to print a receipt set by the EPoS. <a href="/rest/api#!/PAT32Tables/TableReceipt" class="apiLink">REST</a> | <a href="/websockets/api#StCR_posReceiptRequest" class="apiLink">WebSockets</a></li> <li><span class="checklist-item-title">Table Payments</span> - Ability to deal with multiple (card and OTHER) payments on a table, including those with gratuity.</li> <li><span class="checklist-item-title">Reports</span> - In PAT integrations, PDQ End of Day reports are initiated on the PDQ and then made available to the POS via the currently connected interface (REST or WS). Please see the general section above for information about handling the report. <a href="/rest/api#!/PAT32Reports/PATReport" class="apiLink">REST</a> | <a href="/websockets/api#StCN_reportResponse" class="apiLink">WebSockets</a></li> </ul> </div> </div> <h2>Next Steps</h2> <p>Once you have completed all of the items on the checklist, you will be ready to enter our <a href="/qa-process">QA Process</a>.</p> </div> </div> <script src="/lib/jquery/dist/jquery.js"></script> <script src="/lib/bootstrap/dist/js/bootstrap.js"></script> <script src="/js/site.js?v=EJoUa2zJf1jD2gOSD-bFxcqjh7BTi3T8Syelg9L4Zs4"></script> <script> (function(i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); ga('create', 'UA-102643555-1', 'auto'); ga('send', 'pageview'); </script> </body> </html>