Surcharges

A surcharge is a small fee on a credit card transaction a merchant can charge to cover the cost of processing the transaction using credit cards.

Surcharges are available on terminals with surcharging enabled at terminal set-up.

Terminals with surcharging enabled apply to all card not present credit card transactions.

Surcharging is available for the following integration options:

  • Hosted Payments Page
  • Checkout.js
  • XML API

General Requirements

Surcharging is available for terminals that meet the following requirements:

  • Surcharge enabled
  • Region set to USA
  • Market segment set to one of the following
    • Retail
    • MOTO
    • Internet
    • Service

After setting these requirements, you must set the surcharge amount as part of terminal setup.

Surcharge Certification Requirements

If you want to use surcharging with Checkout.js or the XML API, Elavon has the following requirements to certify your application.

Disclose Intent to Surcharge

You must properly disclose your intent to surcharge to the cardholder. You must present this disclosure at the point-of-entry and point-of-sale for the purchase. Point-of-entry and point-of-sale and the specific requirements for the disclosure vary depending on market segment. Below are the requirements Elavon uses for certifying an application.

Market Segment Point-of-Entry Point-of-Transaction
Retail (Face-to-Face) You must display disclosure at the main entrances of the physical location for the storefront. The disclosure must be in Arial font at a mimumum of 32 points and must be no smaller or less prominent than surrounding text. You must display disclosure at every customer checkout or payment location. This notice must be in Arial font at a minimum of 16 points and must be no smaller or less prominent than the surrounding text.
Retail (Unattended) You must display disclosure at the main entrances of the physical location for the storefront. The disclosure must be in Arial font at a mimumum of 32 points and must be no smaller or less prominent than surrounding text. You must display disclosure on the unattended cardholder activated terminal or virtual disclosure on the payment terminal screen. This notice must be in Arial font at a minimum of 16 points and must be no smaller or less prominent than the surrounding text.
eCommerce The first page of your application that references credit card brands your application accepts must include notice that your customer will have surcharges applied to their credit card transactions. This notice must be in Arial font at a minimum of 10 points and must be no smaller or less prominent than the surrounding text. You must display disclosure on the checkout page of your application. This notice must be in Arial font at a minimum of 10 points and must be no smaller or less prominent than the surrounding text.
MOTO The first page of the catalog that references credit card brands accepted. This notice must be in Arial font at a minimum of 8 points and must be no smaller or less prominent than the surrounding text. You must display disclosure on the mail order form or announce it as verbal notice from a telephone representative. This notice must be in Arial font at a minimum of 10 points and must be no smaller or less prominent than the surrounding text.

Disclosure Contents

The disclosures posted at the points of entry and sale must include the following items in their contents.

  • The exact percentage the transaction will apply as a surcharge.
  • A statement that you (the merchant) are assessing US Credit Card Surcharge and is only applicable to credit card transactions.
  • A statement that the US credit Card Surcharge amount is not greater than the applicable card acceptance cost for credit card transactions.

Debit Selection

If your acceptance device offers cardholders a choice between debit or credit transactions in the form of a credit and debit buttons, you must ensure that:

  • Surcharges are not applied to Debit card transactions.
  • The device clearly communicates to the cardholder that surcharges are not applied to debit transactions regardless of whether the cardholder selects the credit or debit button.

Transaction Cancelation

For unattended transactions like eCommerce, MOTO, or card present transactions at automated kiosks, the user must have the opportunity to cancel the transaction after they view the surcharge disclosure form.

Surcharge Maximum

The surcharge amount cannot exceed 4% of the original transaction.

Surcharges Only Apply to Credit Cards

Surcharges can only apply to transactions made using a credit card.

error_outline
note

Because surcharges only apply to credit card transactions, a best practice is to use the BIN lookup transaction type to confirm that the card a cardholder is using for a transaction is applicable.

Hosted Payments Page

The Converge Hosted Payments Page offers an easy way to add surcharges to your transactions. Hosted Payments Pages for terminals with surcharging automatically detect whether an input card is a credit card and then automatically apply a surcharge to all credit card transactions.

To enable surcharging for your hosted payment page, you will need to complete the following steps.

  1. Open the Converge Web UI.
  2. Log in to your account.
  3. Open the settings tab.
  4. Open the Hosted Payments tab.
  5. Open the Payment Page setup.
  6. Open the Terms & Conditions Page settings.
  7. Confirm that you agree with the terms and conditions.
  8. Select the Save button.

After you complete these steps, implement your Hosted Payments Page using the default process and Converge will begin applying surcharges to all credit card transactions.

Checkout.js

Checkout.js provides methods to handle surcharging.

You can perform them with the following steps.

Get Token

Use Checkout.js to get a session token for the transaction.

The following form provides an example of this.

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Converge HPP/CheckoutJS - Demo</title>
<script src="./vendor/jquery.js"></script>
<script>
    var tokenUrl = {
        Demo: 'https://api.demo.convergepay.com/hosted-payments/transaction_token'
    };
    $(function () { 
        $('#getTokenForm').submit(function() {
            var environment = $('#environment').val();
            this.action = tokenUrl[environment];
            this.method = 'POST';
            return true;
        });
    });
</script>
<style type="text/css" media="screen">
    body { font-family: Arial, sans-serif; }
    h1 { font-size: 18px; }
    label, input { display: inline-block; vertical-align: middle; }
    label { padding: 0 5px; }
    table { border: none; border-collapse: collapse; min-width: fit-content; width: 40%; }
    td { border: 1px solid #ccc; padding: 2px 5px; }
</style>
</head>

<body>
    <h1>Step 1: Obtain Session Token</h1>
    <form id="selectEnvironment">
        <label for="environment">Environment:</label>
        <select id="environment" name="environment">
            <option value="Demo">Demo</option>
        </select>
    </form>
    <form id="getTokenForm">
        <table>
            <tr>
                <td>Converge Account Number</td>
                <td>
                    <input type="text" name="ssl_merchant_id" size="8">
                </td>
            </tr>
            <tr>
                <td>API User ID</td>
                <td>
                    <input type="text" name="ssl_user_id" size="20">
                </td>
            </tr>
            <tr>
                <td>API User Terminal Identifier</td>
                <td>
                    <input type="text" name="ssl_pin" size="60">
                </td>
            </tr>
            <tr>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td>Transaction Amount (If available)</td>
                <td><input type="text" name="ssl_amount" size="8" value="1.00"></td>
            </tr>
            <tr>
                <td>Transaction Type</td>
                <td>
                    <select size="1" name="ssl_transaction_type">
                        <option value="SALE">Sale</option>
                        <option value="AUTHONLY">Authorization Only</option>
                        <option value="VERIFY">Card Verification</option>
                        <option value="CCGETTOKEN">Get a Token</option>
                        <option value="CCSALE" selected>Credit Card Sale</option>
                        <option value="CCAUTHONLY">Credit Card Authorization Only</option>
                        <option value="CCVerify">Credit Card Verification </option>
                    </select>
                </td>
            </tr>

            <tr>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <input type="Submit" value="Request a Session Token" name="Submit">
                </td>
            </tr>
        </table>
    </form>
</body>
</html>

Process the Transaction

After receiving the session token from the previous step, you can use checkout.js to process the transaction. The following form provides a demonstration of this.

<html>

<head>
<title>Converge HPP - Demo</title>
<script src="./vendor/jquery.js"></script>
<script>
    var tokenUrl = {
        Demo: 'https://api.demo.convergepay.com/hosted-payments/transaction_token'
    };
    $(function () { 
        $('#redirectForm').submit(function() {
            var environment = $('#environment').val();
            this.action = tokenUrl[environment];
            this.method = 'POST';
            return true;
        });
    });
</script>
<style type="text/css" media="screen">
    body { font-family: Arial, sans-serif; }
    h1 { font-size: 18px; }
    label, input { display: inline-block; vertical-align: middle; }
    label { padding: 0 5px; }
    table { border: none; border-collapse: collapse; min-width: fit-content; width: 40%; }
    td { border: 1px solid #ccc; padding: 2px 5px; }
</style>
</head>

<body>
    <h1>Step 2: Redirect Cardholder to Converge</h1>
    <form id="selectEnvironment">
        <label for="environment">Environment:</label>
        <select id="environment" name="environment">
            <option value="Demo">Demo</option>
        </select>
    </form>
    <form id="redirectForm">
        <table>
            <tr>
                <td>One Time Session Token</td>
                <td><input type="text" name="ssl_txn_auth_token" size="38"></td>
            </tr>
            <tr>
                <td colspan="2">&nbsp;</td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="Redirect Cardholder to Converge" name="Submit"></td>
            </tr>
        </table>
    </form>
</body>

</html>

XML API

When implementing surcharges with the XML API, you must comply with card association requirements for surcharging.

Supported Transactions

Transaction Types Description
ccsale Credit Card Sale
ccauthonly Credit Card Auth Only

error_outline
important

You are only allowed to place surcharges onto transactions made with a credit card.

You cannot place a surcharge onto transactions made with debit or prepaid cards. Even transactions processed using signature debit (debit as credit) are exempt from surcharges.

Process Flow Transaction

To apply a surcharge to a card transaction request made through the XML API, you will need to complete the following sequence on a surcharge enabled terminal.

  1. Perform a binlookup to confirm that the card is valid for surcharging.
  2. If the binlookup confirms that the card is a credit card, alert your customer that they will be surcharged. This step is not required by the API. However, most card association requirements mandate it.
  3. If your customer accepts, initiate a credit card transaction with surcharging enabled.

An example of the requests and responses for a successfully applied surcharge would be the following.

Perform the BIN Lookup

Send a binlookup request to confirm that the cardholder is using a credit card.

BIN Lookup Request
<txn>
    <ssl_merchant_id>000000</ssl_merchant_id>
    <ssl_user_id>su06</ssl_user_id>
    <ssl_pin>NL1F6KYN6E7JK72MGQC40QB7AYMC3DVZQ1LIXO96MIEB8E9P5QEVQOFXJNS9YTNX</ssl_pin>
    <ssl_transaction_type>BINLOOKUP</ssl_transaction_type>
    <ssl_card_number>00********0000</ssl_card_number>
    <ssl_track_data></ssl_track_data>
    <ssl_track_data_format></ssl_track_data_format>
    <ssl_encrypted_track1_data></ssl_encrypted_track1_data>
    <ssl_encrypted_track2_data></ssl_encrypted_track2_data>
</txn>
BIN Lookup Response
<txn>
    <cardNumber>00********0000</cardNumber>
    <debit>N</debit>
    <pinless>N</pinless>
    <hsa>N</hsa>
    <billPaymentSupport>N</billPaymentSupport>
    <businessCard>N</businessCard>
    <cardProductTypeCode/>
    <countryCode>000</countryCode>
    <dbIntchFraudInd>N</dbIntchFraudInd>
    <ecommSupport>N</ecommSupport>
    <internationalSupport>N</internationalSupport>
    <networkRoutingCode>AF</networkRoutingCode>
    <posEligible>Y</posEligible>
    <prepaidSupport>N</prepaidSupport>
    <signatureSupport>N</signatureSupport>
    <fundingSource>C</fundingSource>
    <surchargeAllowed>Y</surchargeAllowed>
    <ssl_amount>100.00</ssl_amount>
    <ssl_credit_surcharge_percent>3</ssl_credit_surcharge_percent>
    <ssl_credit_surcharge_amount>3.00</ssl_credit_surcharge_amount>
    <ssl_total_amount>103.00</ssl_total_amount>
</txn>

Send Credit Card Sale

Send a ccsale or ccauthonly request. Converge will apply the surcharge percentage set as part of the terminal settings. The response values will reflect the new amount.

Request
<txn>
  <ssl_merchant_id>my_merchant_id</ssl_merchant_id>
  <ssl_user_id>my_user_id</ssl_user_id>
  <ssl_pin>my_pin</ssl_pin>
  <ssl_test_mode>false</ssl_test_mode>
  <ssl_transaction_type>ccsale</ssl_transaction_type>
  <ssl_card_number>00********0000</ssl_card_number>
  <ssl_exp_date>1220</ssl_exp_date>
  <ssl_amount>100.00</ssl_amount>
</txn>

Response

<txn>
  <ssl_card_number>00********0000</ssl_card_number>
  <ssl_exp_date>1215</ssl_exp_date>
  <ssl_credit_surcharge_percent>3</ssl_credit_surcharge_percent>
  <ssl_credit_surcharge_amount>3.00</ssl_credit_surcharge_amount>
  <ssl_amount>103.00</ssl_total_amount>
  <ssl_result>0</ssl_result>
  <ssl_result_message>APPROVAL</ssl_result_message>
  <ssl_txn_id>101641221593ACBA6-BAFD-76B7-4948-B3DE68CFD0CC</ssl_txn_id>
  <ssl_approval_code>CMC142</ssl_approval_code>
  <ssl_account_balance>1.00</ssl_account_balance>
  <ssl_txn_time>01/20/2011 01:07:23 PM</ssl_txn_time>
</txn>