{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-docs/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition","tabs","tab"]},"type":"markdown"},"seo":{"title":"Surcharge (deprecating October 2026)","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":"surcharge-deprecating-october-2026","__idx":0},"children":["Surcharge (deprecating October 2026)"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Surcharging has been deprecated and will be retired by October 2026. All surcharging will be set"," ","to zero."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For new integrations (on or after 1 Oct 2026), Tyro recommends setting ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge: false"]}," in"," ","all purchase requests. No action is required for existing integrations."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"how-it-works","__idx":1},"children":["How it works"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchants specify a surcharge percentage in the Tyro Merchant Portal (or, for a terminal-only setup,"," ","directly on the terminal under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Menu … Surcharge Rates"]},"), and the terminal automatically applies"," ","it during the transaction. A different rate can be set for each of:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Visa Credit"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Visa Debit"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["MasterCard Credit"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["MasterCard Debit"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["American Express"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Diners Club"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Surcharging applies to all schemes except UnionPay and EPAL (EFTPOS) cards, and is applied"," ","automatically to all applicable standalone and integrated transactions once configured."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchants must display adequate signage at the point of sale detailing the surcharges the terminal"," ","will apply — it isn't sufficient to rely solely on the messages shown on the terminal."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"surcharging-without-pos-support","__idx":2},"children":["Surcharging without POS support"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Surcharging can be enabled by a merchant even if the POS hasn't added any support for it. In that"," ","case, Tyro settles the transaction net of the surcharge and deducts the surcharge amount from the"," ","merchant's invoice at the end of the month — there's no reconciliation error either way. Merchants"," ","can alternatively choose to have the surcharge amount included in their daily settlement, though"," ","the default is to deduct it from the invoice."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"controlling-surcharging-from-the-pos","__idx":3},"children":["Controlling surcharging from the POS"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your POS wants to control or display surcharging itself, each integration path exposes an"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]},"-style flag on the transaction request, described in the tabs below."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For integrations before 1 Oct 2026: if your POS does not have a surcharge feature of its own, don't"," ","implement a toggle for this — set ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," to always ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},". If your POS does have its own surcharge feature, add a toggle"," ","that sets ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]}," or ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["false"]},". When the toggle is on, Tyro's surcharge must be"," ","applied and the POS-side surcharge must not be; when it's off, the reverse."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"refunds","__idx":4},"children":["Refunds"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchants are required to refund the surcharge amount on a refund (pro rata for a partial refund)."," ","Where possible, the POS should store the surcharge-inclusive amount against the original"," ","transaction so this happens automatically — see the tabs below for exactly how each integration"," ","path reports the surcharge amount to use for this."]},{"$$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":"Heading","attributes":{"level":3,"id":"making-the-request","__idx":5},"children":["Making the request"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," boolean is passed in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["requestParams"]}," object of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiatePurchase"]},". When"," ","set to ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["true"]},", the terminal applies the relevant surcharge rate for the card's type and scheme,"," ","and returns the applied amount to the POS in the transaction response."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please note that if your POS does not have a surcharge feature of its own, you must not implement"," ","a toggle button for the integrated surcharge feature and set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ 'enableSurcharge': true | false}"]}," flag to always true. If your POS has a surcharge feature of its own, then there must be a"," ","toggle button to set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ 'enableSurcharge': true | false}"]}," flag as true or false. When toggle is"," ","on (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge:true"]},"), the Tyro surcharge must be applied, and the POS side surcharge must"," ","not be applied. When toggle is off (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge:false"]},"), POS surcharge must be applied, and"," ","Tyro surcharge must not be applied."]}]},{"$$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 Definition"},"children":["Parameter Definition"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Functions where parameter is used"},"children":["Functions where parameter is used"]},{"$$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":["enableSurcharge"]}," — Boolean (true or false)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A boolean flag specifying whether POS will be receiving and handling the surcharge amount applied by the Tyro terminal."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The parameter is present in the requestParams object in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["initiatePurchase"]}," function."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]}]}]}]}]},{"$$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        integratedReceipt: true,\n        enableSurcharge: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/f1gqjwv5/10/"},"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","__idx":6},"children":["Handling the response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The integrated surcharge feature involves the use of ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]},". The"," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCallbacks"]}," object provides this callback function, which contains the surcharge amount"," ","applied to the transaction. The specification of the relevant field 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":["transactionCompleteCallback"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Invoked when the transaction has been completed on the terminal. Called with a surcharge amount string field as part of the transactionData object as shown below table."]},{"$$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":["surchargeAmount"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["String"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The applied surcharge amount for the given transaction."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Required"]}]}]}]}]},{"$$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":["The applied surcharge amount is returned to the POS in the transaction response."," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionCompleteCallback"]}," contains the applied surcharge amount in the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["surchargeAmount"]}," ","field, as shown in the example below."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["The POS must obtain the returned surcharge amount and:",{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Display it clearly on the POS sales receipt, accurately labelled \"Surcharge\"."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":["Store the surcharge-inclusive amount for the transaction on the sales invoice, so that when"," ","refunded, the surcharge amount is automatically added back on without any manual intervention."]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"callback-function","__idx":8},"children":["Callback function"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"javascript","header":{"controls":{"copy":{}}},"source":"var transactionCompleteCallbackImpl = function(response) {\n  console.log(\"Response = \" + JSON.stringify(response));\n\n  if (response.customerReceipt) {\n\n    console.log(\"Customer Receipt = \" + JSON.stringify(response.customerReceipt));\n\n    //Compiling the integrated receipt:\n    if (transactionType == \"purchase\" && response.result == \"APPROVED\") {\n      var surcharge = parseFloat(response.surchargeAmount);\n      total = ($(\"#amount\").val() / 100) + surcharge;\n      totalamount = total;\n      console.log(totalamount);\n      var posReceipt = formatReceipt(\"\\tTAX INVOICE       \\r\\n\\r\\n      Merchant 1655650     \\r\\n      Address line 1       \\r\\n      Address line 2       \\r\\n\\r\\n\\tAWESOME POS   \\r\\n\\t\\r\\nItems\\t\\t\\t$\\r\\nCoffee\\t\\t\\t\" + \"$\" + ($(\"#amount\").val() / 100) + \"\\r\\n\\t\\r\\nSub-total\\t\\t\" + \"$\" + ($(\"#amount\").val() / 100) + \"\\r\\n\\r\\nSurcharge\\t\\t\" + \"$\" + surcharge + \"\\r\\n\\r\\nTotal\\t\\t\\t\" + \"$\" + (total) + \"\\r\\n\\r\\nGST inc\\t\\t\\t$1.00\\r\\n\\r\\nPOS ID: 2\\r\\nRef: 12345abc\\r\\n04 Jan 2019 at 02:12 PM\\r\\n\\n\\n\\t--------------------\\n\\n\" + response.customerReceipt);\n\n      console.log(posReceipt);\n\n      $(\"#customerReceipt\").html(posReceipt);\n\n    } else if (transactionType == \"refund\" && response.result == \"APPROVED\") {\n      console.log(transactionType);\n      var posReceipt = formatReceipt(\"\\tTAX INVOICE       \\r\\n\\r\\n      Merchant 1655650     \\r\\n      Address line 1       \\r\\n      Address line 2       \\r\\n\\r\\n\\tAWESOME POS   \\r\\n\\t\\r\\nREFUND\\t\\t\\t$\\r\\nAmount\\t\\t\\t\" + \"$\" + ($(\"#amount\").val() / 100) + \"\\r\\n\\t\\r\\nSub-total\\t\\t\" + \"$\" + ($(\"#amount\").val() / 100) + \"\\r\\n\\r\\nTotal\\t\\t\\t\" + \"$\" + ($(\"#amount\").val() / 100) + \"\\r\\n\\r\\nGST inc\\t\\t\\t$1.00\\r\\n\\r\\nPOS ID: 2\\r\\nRef: 12345abc\\r\\n04 Jan 2019 at 02:12 PM\\r\\n\\n\\n\\t--------------------\\n\\n\" + response.customerReceipt);\n\n\n      console.log(posReceipt);\n\n      $(\"#customerReceipt\").html(posReceipt);\n    } else {\n      console.log(transactionType);\n      var posReceipt = formatReceipt(\"\\t AWESOME POS      \\r\\n\\r\\n      Merchant 1655650     \\r\\n      Address line 1       \\r\\n      Address line 2       \\r\\n\\r\\n\\tAWESOME POS   \\r\\n\\t\\r\\nTRANSACTION FAILED\\t\\t\\r\\nResult:\\t\\t\\t\" + response.result + \"\\r\\n\\r\\nPOS ID: 2\\r\\nRef: 12345abc\\r\\n04 Jan 2019 at 02:12 PM\\r\\n\\n\\n\\t--------------------\\n\\n\" + response.customerReceipt);\n\n      console.log(posReceipt);\n\n      $(\"#customerReceipt\").html(posReceipt);\n\n    }\n\n\n  }\n  $(\"#result\").html(formatResult(response));\n};\n","lang":"javascript"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":5,"id":"example-response","__idx":9},"children":["Example response"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Given below is an example response for the transaction showing the surcharge applied being"," ","returned in the surcharge-amount field."]},{"$$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\"surchargeAmount\":\"1.00\",\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":"div","attributes":{"label":".NET library","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The surcharging API lets the POS control, per transaction, whether surcharging is applied — the"," ","terminal must already be configured to surcharge for this to have any effect."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"enable-surcharging","__idx":10},"children":["Enable surcharging"]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Please note that if your POS does not have a surcharge feature of its own, you must not implement"," ","a toggle button for the integrated surcharging feature, and you should set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ 'enableSurcharge': true | false }"]}," flag to always true. If your POS does have a surcharge feature, there must be a"," ","toggle button to set the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["{ 'enableSurcharge': true | false }"]}," flag to true or false. When the"," ","toggle is on, Tyro surcharging must be applied, and POS-side surcharging must not be applied. When"," ","the toggle is off, POS-side surcharging must be applied, and Tyro surcharging must not be applied."]}]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"// Purchase for $100.00 ($0 cash out) with surcharge enabled\nPurchaseAdditionalData(10000, 0, \"{ 'enableSurcharge': true }\")\n","lang":"csharp"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The response includes an extra element:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<surcharge-amount>3.00</surcharge-amount>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"disable-surcharging","__idx":11},"children":["Disable surcharging"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"csharp","header":{"controls":{"copy":{}}},"source":"// Purchase for $100.00 ($0 cash out) with surcharge disabled\nPurchaseAdditionalData(10000, 0, \"{ 'enableSurcharge': false }\")\n","lang":"csharp"},"children":[]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"xml","header":{"controls":{"copy":{}}},"source":"<surcharge-amount>0.00</surcharge-amount>\n","lang":"xml"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"if-enablesurcharge-isnt-set","__idx":12},"children":["If ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," isn't set"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," parameter isn't set at all (as with existing integrations), the response"," ","is unchanged — no extra element is included. As settlement is made net of the surcharge fee, there"," ","are no reconciliation errors between the POS and the merchant's bank account either way."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"warning"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Merchants are required to refund the surcharge amount on a refund (pro rata for a partial refund)."," ","Where ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," was not set on the original transaction, the merchant will have to"," ","determine the surcharge applied from the EFTPOS receipt."]}]}]},{"$$mdtype":"Tag","name":"div","attributes":{"label":"In-store API","disable":false},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The In-store API does not currently expose a request-time surcharge flag — the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["options"]}," object on"," ","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"]}," ","only supports ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["integratedReceipt"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["receiptWidth"]},". Surcharging is applied per the terminal's"," ","configuration and reported back, read-only, in ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["transactionOutcome.surchargeAmount"]}," once the"," ","transaction completes."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If your integration needs to control surcharging per transaction over the In-store API, use the"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://tyropayments.atlassian.net/servicedesk/customer/portal/149"},"children":["Integration Support Portal"]}," —"," ","there's no documented equivalent to the JS/.NET ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["enableSurcharge"]}," flag today."]}]}]}]},"headings":[{"value":"Surcharge (deprecating October 2026)","id":"surcharge-deprecating-october-2026","depth":1},{"value":"How it works","id":"how-it-works","depth":2},{"value":"Surcharging without POS support","id":"surcharging-without-pos-support","depth":2},{"value":"Controlling surcharging from the POS","id":"controlling-surcharging-from-the-pos","depth":2},{"value":"Refunds","id":"refunds","depth":2},{"value":"Making the request","id":"making-the-request","depth":3},{"value":"Handling the response","id":"handling-the-response","depth":3},{"value":"Steps to follow","id":"steps-to-follow","depth":4},{"value":"Callback function","id":"callback-function","depth":5},{"value":"Example response","id":"example-response","depth":5},{"value":"Enable surcharging","id":"enable-surcharging","depth":3},{"value":"Disable surcharging","id":"disable-surcharging","depth":3},{"value":"If enableSurcharge isn't set","id":"if-enablesurcharge-isnt-set","depth":3}],"frontmatter":{"title":"Surcharge (deprecating October 2026)","seo":{"title":"Surcharge (deprecating October 2026)"}},"lastModified":"2026-10-05T23:48:48.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/docs/in-person-payments/pay-in-person/features/surcharge","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}