{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["tabs","tab","admonition"]},"type":"markdown"},"seo":{"title":"Integrated receipts","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"integrated-receipts","__idx":0},"children":["Integrated receipts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Integrated receipts let the POS take over receipt printing from the terminal — useful for"," ","combining the EFTPOS receipt with the POS sales receipt, or where a terminal has no printer of its"," ","own. Every integration path treats a merchant copy and a customer copy as distinct:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant copy"]}," — printed at authorisation. Optional in general, but ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["mandatory"]}," whenever"," ","signature verification was required to approve the transaction (a shrinking but non-zero share"," ","of international cards). Signature-verification merchant copies must be retained by the merchant"," ","for 120 days, in case of a cardholder chargeback."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customer copy"]}," — printed on completion of the transaction, and must be made available to the"," ","cardholder for ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["every"]}," outcome, including declined, cancelled, reversed, and system error."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Whichever integration path you use, the receipt content returned to the POS must be printed or"," ","stored in the POS journal without modification."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"minimising-unnecessary-printing","__idx":1},"children":["Minimising unnecessary printing"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Merchant copies"]}," only need to be retained/printed for signature-verification transactions —"," ","for PIN, tap-and-go, etc., there's no obligation to print one, though many merchants still want"," ","the option, so it's worth a POS setting either way."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Customer copies"]}," can be combined with the POS sales receipt (e.g. a single combined docket),"," ","or offered on request and reprinted on demand — whichever suits the environment."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"surcharge-and-tip-line-items","__idx":2},"children":["Surcharge and tip line items"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you've implemented Surcharge or Tipping, both amounts must appear on the POS tax invoice as"," ","their own line item, so the cardholder can see the full charge to their card. Both are available"," ","from the transaction result — documented for the JS library only; see its tab below for a worked"," ","example."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"dynamic-currency-conversion-dcc-receipts","__idx":3},"children":["Dynamic Currency Conversion (DCC) receipts"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["DCC lets Mastercard and Visa international cardholders pay in their card's currency at a"," ","transparent exchange rate, offered by the terminal when DCC is enabled and a foreign-currency card"," ","is used. The same rules apply to DCC receipts as normal receipts, but a DCC receipt is much larger"," ","(around 1200 characters) since it must carry the full terms and conditions of the DCC transaction."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The following disclosures must be present in full on any DCC receipt — none of this content may"," ","be edited, truncated, or left out:"]},{"$$mdtype":"Tag","name":"ol","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Local transaction amount"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Local currency symbol"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["DCC transaction amount"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["DCC currency symbol"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Exchange rate"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Commission/fee"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The words \"Transaction Currency\""]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Proof of the cardholder's choice"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A statement that the cardholder was offered a choice"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["A statement of who is providing DCC"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All of this is included in the receipt data returned to the POS — see the platform-specific tabs"," ","for exactly which field/event carries it. If integrated receipts are disabled, the customer copy"," ","must be printed through the terminal and presented to the cardholder by the merchant instead."]},{"$$mdtype":"Tag","name":"Tabs","attributes":{"size":"medium"},"children":[{"$$mdtype":"Tag","name":"div","attributes":{"label":"JS library","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Before you begin, check the certification criteria:"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/assets/certification_criteria_iclient_retail_hospitality.7bf0b2b5462961db882fcba1f1e9ddbec0d942cc7ee96278907994599bebf62a.d564e73d.pdf"},"children":["Certification Criteria Document"]},"."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCallbacks"]}," (Object):"]}," the set of callback functions below provide feedback and the"," ","transaction result. For general callback handling, see"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/in-person-payments/pay-in-person/features/payment-cashout-refund"},"children":["Payment, cashout and refund"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"making-the-request","__idx":4},"children":["Making the request"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Parameter"},"children":["Parameter"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["integratedReceipt"]}," (Boolean)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A boolean flag specifying whether integrated receipt printing is on or off."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The parameter is present in the requestParams object of the following functions:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Function"},"children":["Function"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Usage required"},"children":["Usage required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiatePurchase"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The function used to initiate a purchase."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiateRefund"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The function used to initiate a refund."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiateOpenTab"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The function used to open a tab."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiateOpenPreAuth"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The function used to open a pre-auth."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]}]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Value"},"children":["Value"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Behaviour"},"children":["Behaviour"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The Tyro terminal prints. No receipt data is returned to the POS."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["iClient calls ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]}," with the merchant copy, and includes the customer copy on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A $10.00 purchase transaction with integrated receipts turned on:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"var amount = '1000';\n\nfunction doPurchase(amount) {\n    iclient.initiatePurchase({\n        amount: amount,\n        cashout: \"0\",\n        enableSurcharge: true,\n        integratedReceipt: true\n    }, {\n        receiptCallback: receiptCallbackImpl,\n        transactionCompleteCallback: transactionCompleteCallbackImpl\n    });\n}\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://jsfiddle.net/IntegrationSupport/3s6vadum/4/"},"children":["JS Fiddle demo"]}]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Don't click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Save"]}," if you make changes in the JS Fiddle — click ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Run"]}," instead. Clicking Save"," ","may break the fiddle's functionality."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handling-the-response-merchant-copy","__idx":5},"children":["Handling the response: merchant copy"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The integrated receipts feature uses ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]},"; the"," ","specification of relevant fields is given below."]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Function"},"children":["Function"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Usage required"},"children":["Usage required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Invoked when integrated receipts are enabled and a merchant copy of the receipt is available. Ignored if integrated receipt printing is disabled. Called with the following parameters as part of the receipt object."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required (if integrated receipts are enabled)"]}]}]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Usage required"},"children":["Usage required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signatureRequired"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Indicates whether a signature line should be printed and a customer signature collected."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchantReceipt"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text representation of the Tyro receipt intended for the merchant. Formatted to be printed in a monospaced font."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A merchant copy is printed at the authorisation of each transaction. Merchant copies are optional"," ","(except those requiring a signature, see below) but you should assess whether your POS users would"," ","like the option. The merchant copy can be retrieved from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]}," and should be printed"," ","immediately after it's returned."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"signature-verification-merchant-copies","__idx":6},"children":["Signature-verification merchant copies"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There are two types of merchant copies: those that require signature verification and those that"," ","don't. The majority of transactions won't require a signature, since signature verification has"," ","been gradually phased out since 2014, but a number of international cards still require one."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If signature verification is required, a merchant copy with a signature line is printed, and the"," ","Tyro UI asks the user whether the signature matches the one on the card. If they select \"Yes\", the"," ","transaction completes and a customer copy is printed. If they select \"No\", another merchant copy"," ","is returned via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]}," showing the transaction was cancelled. The signature-verification"," ","merchant copy must be retained by the merchant for 120 days, in case of a cardholder chargeback."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"steps-to-follow","__idx":7},"children":["Steps to follow"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Create the callback function to handle the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]}," response — the POS must undertake"," ","the required actions to print the receipt."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Check the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signatureRequired"]}," boolean: if ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the receipt is a signature-verification"," ","merchant copy and is ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["not optional"]}," — it must be printed."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signatureRequired"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},", the POS can choose to print the receipt depending on its"," ","merchant copy printing configuration."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"var receiptCallbackImpl = function (receipt) {\n    console.log(\"Merchant Receipt = \" + JSON.stringify(receipt));\n    $(\"#merchantReceipt\").html(formatReceipt(receipt.merchantReceipt));\n};\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"signature-verification-merchant-copy-example","__idx":8},"children":["Signature-verification merchant copy example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n\t\"merchantReceipt\":\n\t\t\"       MERCHANT COPY       \\n\n\t\t\\n\n\t\t      Merchant 1655650      \\n\n\t\t       Address line 1       \\n\n\t\t       Address line 2       \\n\n\t\t\\n\n\t\t        Tyro EFTPOS         \\n\n\t\t\\n\n\t\tEFTPOS\\n\n\t\tCard: XXXXXXX9953(s)\\n\n\t\t\\n\n\t\tPurchase     AUD     $100.00\\n\n\t\t                  ----------\\n\n\t\tTotal        AUD     $100.00\\n\n\t\t\\n\n\t\tAPPROVED W/ SIGNATURE     00\\n\n\t\t\\n\n\t\tTerminal ID: 1\\n\n\t\tTransaction Ref: 160086\\n\n\t\tAuthorisation No: F99047\\n\n\t\t03 Jan 2019 at 11:56 AM\\n\n\t\t\\n\n\t\t\\n\n\t\t----------------------------\\n\n\t\tSignature\\n\",\n\t\"signatureRequired\":true\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"merchant-copy-not-requiring-signature-example","__idx":9},"children":["Merchant copy (not requiring signature) example"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n\t\"merchantReceipt\":\n\t\t\"       MERCHANT COPY       \\n\n\t\t\\n\n\t\t      Merchant 1655650      \\n\n\t\t       Address line 1       \\n\n\t\t       Address line 2       \\n\n\t\t\\n\n\t\t        Tyro EFTPOS         \\n\n\t\t\\n\n\t\tEFTPOS\\n\n\t\tCard: XXXXXXXXX7002(s)\\n\n\t\t\\n\n\t\tPurchase     AUD     $100.00\\n\n\t\t                  ----------\\n\n\t\tTotal        AUD     $100.00\\n\n\t\t\\n\n\t\tAPPROVED                  00\\n\n\t\t\\n\n\t\tTerminal ID: 1\\n\n\t\tTransaction Ref: 116494\\n\n\t\tAuthorisation No: N02109\\n\n\t\t03 Jan 2019 at 11:54 AM\\n\",\n\t\"signatureRequired\":false\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handling-the-response-customer-copy","__idx":10},"children":["Handling the response: customer copy"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Function"},"children":["Function"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Usage required"},"children":["Usage required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Invoked when the transaction has been completed on the terminal. Called with a customer receipt string field as part of the transactionData object, as shown below."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]}]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Usage required"},"children":["Usage required"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerReceipt"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Text representation of the Tyro receipt intended for the customer. Only included if integrated receipt printing is enabled. Formatted to be printed in a monospaced font."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Customer copies are printed on the completion of a transaction. They must be made available to the"," ","cardholder for all transactions, including unsuccessful ones — declined, cancelled, reversed, and"," ","system error. Retrieve the customer copy from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerReceipt"]}," field of"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":4,"id":"steps-to-follow-1","__idx":11},"children":["Steps to follow"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Obtain the pre-formatted customer copy receipt from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customerReceipt"]}," field in the callback"," ","function."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Undertake all the steps required to manipulate the POS sales invoice and add the customer copy"," ","to it."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Print the integrated receipt."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"var transactionCompleteCallbackImpl = function (response) {\n    console.log(\"Response = \" + JSON.stringify(response));\n    if (response.customerReceipt) {\n        console.log(\"Customer Receipt = \" + JSON.stringify(response.customerReceipt));\n        $(\"#customerReceipt\").html(formatReceipt(response.customerReceipt));\n    }\n    $(\"#result\").html(formatResult(response));\n};\n\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"example-response","__idx":12},"children":["Example response"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"{\n\"result\":\"APPROVED\",\n\"transactionId\":\"3783ea1cacae254808490fcf60bbd4eb221e\",\n\"cardType\":\"MasterCard\",\n\"transactionReference\":\"602145\",\n\"authorisationCode\":\"031054\",\n\"issuerActionCode\":\"00\",\n\"elidedPan\":\"xxxxxxxxxxxx5100\",\n\"rrn\":\"602145141255\",\n\"tipAmount\":\"1000\",\n\"baseAmount\":\"101.00\",\n\"transactionAmount\":\"101.00\",\n\"customerReceipt\":\n\t\"      CUSTOMER COPY       \\n\n\t\\n\n\t      Merchant 1655650     \\n\n\t      Address line 1       \\n\n\t      Address line 2       \\n\n\t\\n\n\t    Tyro Payments EFTPOS   \\n\n\t\\n\n\tMasterCard\\n\n\tCard:    xxxxxxxxxxxx5100(s)\\n\n\t\\n\n\tPurchase     AUD     $100.00\\n\n\tSurcharge    AUD       $1.00\\n\n                  ----------\\n\n\tTotal        AUD     $101.00\\n\n\t\\n\n\tAPPROVED                  00\\n\n\t\\n\n\tTerminal ID: 8\\n\n\tTransaction Ref: 602145\\n\n\tAuthorisation No: 031054\\n\n\t04 Jan 2019 at 02:12 PM\\n\"\n}\n","lang":"json"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"tax-invoice-with-surchargetip-line-items","__idx":13},"children":["Tax invoice with surcharge/tip line items"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you've implemented Surcharge or Tipping, both amounts must be included in the tax invoice as"," ","their own line item so the card user is aware of the full charges to their card. The surcharge"," ","amount and tip amount can both be retrieved from ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/integrated-receipts-tax-invoice.64d6bf8b91b9aef6ca96795eb6cdaeed7dbb28a8ef150819e436e7a55e86ef4c.68286485.png","alt":"Tax invoice showing surcharge and tip as separate line items"},"children":[]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"dcc-receipt-example","__idx":14},"children":["DCC receipt example"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["An example of a DCC receipt, as returned in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptCallback"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"json","header":{"controls":{"copy":{}}},"source":"\n       CUSTOMER COPY       \n\n       Merchant 99921       \n       Address line 1       \n       Address line 2       \n\n        Tyro EFTPOS         \n\nVisa\nCard: XXXXXXXXXXXXX7508(s)\n\nPurchase     AUD     $112.00\n\n     Transaction amount     \n         EUR 37.56          \n       Exchange rate        \n      1 AUD = 1.1 EUR       \n\nWith Dynamic currency\nconversion, I have been\noffered by the merchant a\nchoice of currencies for\npayment, Australian Dollars\nor my home currency. The\npayment in my home currency\nat the point of sale is\nconverted at the Pure\nCommerce provided wholesale\nrate including a 5% mark-up.\n\nThis Dynamic Currency\nConversion is not associated\nor endorsed by VISA.\n\nAlternatively I can pay in\nAustralian Dollars which is\nlater converted into my home\ncurrency at a rate selected\nby my issuing bank.\n\nI understand that my\nselected transaction\ncurrency is final.\n\nThe cardholder expressly\nagrees to the transaction\nreceipt information by\nmarking the accept box\nbelow.\n\n            [x]             \n\nAPPROVED                  00\n\nTerminal ID: 1\nTransaction Ref: 257248\nAuthorisation No: E73642\n17 Feb 2024 at 06:40 PM\nResult: APPROVED\nCard type: Visa\nTrans ref: 257248\nAuth code: E73642\nAction code: 00\n\n","lang":"json"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":".NET library","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The printing location is set in the TTA Configuration applet's Printing tab, with two options:"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/tta-receipt-printing-location.40f294ea6dce6fc3a3eac944843ddc3fe70d4d3dfb3dc493abfd189b340c2b66.68286485.png","alt":"TTA Configuration applet showing the two printing location options"},"children":[]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Option"},"children":["Option"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Behaviour"},"children":["Behaviour"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Print EFTPOS receipts on the Tyro Terminal"]}," (default)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The terminal handles all printing. No receipt data is made available to the POS."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Print EFTPOS receipts locally"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The TTA raises at least one ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ReceiptReturned"]}," event per transaction, each carrying a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Receipt"]}," object with two properties: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SignatureRequired"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Text"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For all market sectors other than Medical, supporting integrated receipts is a mandatory"," ","requirement of the integration."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handling-receiptreturned","__idx":15},"children":["Handling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ReceiptReturned"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ReceiptReturned"]}," event arrives, that's the signal to immediately print a merchant copy:"," ","build it from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Receipt"]}," object by taking its ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Text"]}," property, adding \"MERCHANT COPY\" above it,"," ","and — if ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SignatureRequired"]}," is ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," — a signature line below it."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/tta-sample-merchant-copy.8eb8f7ca77f210ae512fbe91c77ae967a08502edd19a79b8ce2cef32230deaf0.68286485.png","alt":"Sample merchant copy annotated with what the POS adds"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["More than one ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ReceiptReturned"]}," event may be published per transaction. The typical case is a"," ","transaction requiring a signature where the POS operator selects \"No\" to the \"Signature OK?\""," ","question: the POS will already have received and printed an approved receipt from the first event,"," ","then the terminal voids the transaction and publishes a new ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ReceiptReturned"]}," event containing a"," ","receipt showing the transaction was cancelled — print a new merchant copy for that one too, the"," ","same way."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handling-transactioncompleted","__idx":16},"children":["Handling ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TransactionCompleted"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["At the conclusion of the transaction, ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TransactionCompleted"]}," is published with the result and other"," ","transaction metadata. At this point, print a customer copy — ideally added to (or embedded within)"," ","the sales receipt. Build it from the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Receipt"]}," object the same way as the merchant copy, but add"," ","\"CUSTOMER COPY\" above the text instead — no signature line is needed for customer copies."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"img","attributes":{"src":"/assets/tta-sample-customer-copy.5897b136d0c6c2650278c0f890f26293ceffbbf3355f40fbe86edb4ba038bd35.68286485.png","alt":"Sample customer copy annotated with what the POS adds"},"children":[]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The customer copy is available via ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TransactionCompleted.GetReceipts()"]}," — all receipts for the"," ","transaction, in order, only populated if POS-managed printing is enabled. The full method and"," ","event reference is covered by ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/docs/in-person-payments/pay-in-person/features/payment-cashout-refund"},"children":["Payment, cashout and refund"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["DCC receipt content is included in the raw receipt data returned via both ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ReceiptReturned()"]}," and"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TransactionCompleted()"]}," — print it in full, without editing, truncating, or amending any part of"," ","it. See the JS library tab for an example of the full DCC disclosure content; the source's own"," ",".NET-specific example is a garbled table-to-text conversion and isn't reproduced here (see"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CONTENT-GAPS.md"]},")."]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"In-store API","disable":false},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"making-the-request-1","__idx":17},"children":["Making the request"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Set these on the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["options"]}," object of a"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/api-explorer/pay-in-person/0.9/pay-requests/create-pay-terminal-request"},"children":["Create a Pay Request"]},":"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Default"},"children":["Default"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["integratedReceipt"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Boolean"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Whether or not a receipt will be printed from an integrated printer for this transaction in the event of an approval or decline."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptWidth"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Integer (28–500)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["60"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The number of characters allowed per line on any generated receipt."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"handling-the-response","__idx":18},"children":["Handling the response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Pay Request response's ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receipts"]}," object contains printable receipts:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Field"},"children":["Field"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Type"},"children":["Type"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Description"},"children":["Description"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["customer"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Printable receipt for the customer."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["merchant"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Printable receipt for the merchant."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["signature"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Printable merchant receipt, present when a signature is required."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["DCC disclosures are included in full within these receipt strings — print them without editing,"," ","truncating, or amending any part of them."]}]}]}]},"headings":[{"value":"Integrated receipts","id":"integrated-receipts","depth":1},{"value":"Minimising unnecessary printing","id":"minimising-unnecessary-printing","depth":2},{"value":"Surcharge and tip line items","id":"surcharge-and-tip-line-items","depth":2},{"value":"Dynamic Currency Conversion (DCC) receipts","id":"dynamic-currency-conversion-dcc-receipts","depth":2},{"value":"Making the request","id":"making-the-request","depth":3},{"value":"Handling the response: merchant copy","id":"handling-the-response-merchant-copy","depth":3},{"value":"Signature-verification merchant copies","id":"signature-verification-merchant-copies","depth":4},{"value":"Steps to follow","id":"steps-to-follow","depth":4},{"value":"Signature-verification merchant copy example","id":"signature-verification-merchant-copy-example","depth":5},{"value":"Merchant copy (not requiring signature) example","id":"merchant-copy-not-requiring-signature-example","depth":5},{"value":"Handling the response: customer copy","id":"handling-the-response-customer-copy","depth":3},{"value":"Steps to follow","id":"steps-to-follow-1","depth":4},{"value":"Example response","id":"example-response","depth":5},{"value":"Tax invoice with surcharge/tip line items","id":"tax-invoice-with-surchargetip-line-items","depth":3},{"value":"DCC receipt example","id":"dcc-receipt-example","depth":3},{"value":"Handling ReceiptReturned","id":"handling-receiptreturned","depth":3},{"value":"Handling TransactionCompleted","id":"handling-transactioncompleted","depth":3},{"value":"Making the request","id":"making-the-request-1","depth":3},{"value":"Handling the response","id":"handling-the-response","depth":3}],"frontmatter":{"title":"Integrated receipts","seo":{"title":"Integrated receipts"}},"lastModified":"2026-09-18T05:50:23.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/in-person-payments/pay-in-person/features/integrated-receipts","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}