Credit Card Surcharges

Overview

A credit card surcharge (hereafter surcharge) is an additional fee added to a credit card transaction. This fee is designed to offset the processing costs that merchants incur when accepting credit card payments.

The surcharge is typically calculated as a percentage of the transaction amount and is added to the total amount at the point of sale. It's important to note that surcharging is different from convenience fees or service charges, as it specifically relates to the payment method chosen by the customer.

Note that the merchant is solely responsible for utilizing the credit card surcharge feature in compliance with the PaySimple Terms of Service and Acceptable Use Policy ; and all applicable Visa, MasterCard, American Express, and Discover rules; and all applicable laws and regulations.

Rules and Regulations

Surcharging is subject to various regulations and restrictions that vary by location and card network.

Legal Requirements

  • Geographic Restrictions: Some jurisdictions prohibit or restrict surcharges. In jurisdictions where surcharges are allowed, clear disclosure to the cardholder is required prior to payment authorization, as well as on receipts.
  • Card Network Rules: Visa, Mastercard, American Express, and Discover, have specific guidelines for surcharging.
  • Registration Requirements: Merchants may be required to register with card networks before applying surcharges.

Business Rules

  • Surcharges may only be applied to payments against cards, not bank accounts or other payment method types.
  • Surcharges may only be applied to payments against credit cards, not debit cards, or prepaid cards.
  • The surcharge must not exceed the actual cost of processing the credit card transaction

Surcharge Settings

Payments API features endpoints for retrieving and updating a merchant's surcharge settings.

Retrieving Surcharge Settings

Request

GET /surcharge/settings

Response Object

{
    "data": {
        "enabled": true
    }
}

Updating Surcharge Settings

Request Object

POST /surcharge/settings
{
    "enabled": false
}

Response Object

{
    "data": {
        "enabled": false
    }
}

Calculate Surcharge

Payments API features an endpoint calculates a maximum surcharge amount and rate for a given nominal amount and an optional payment method. It should be used prior to calling a sale endpoint, and the returned surcharge amount and total transaction amount should be used in the sale endpoint call. The payment method on the request is optional to support use cases in which the card cannot be collected prior to the call to a sale endpoint (i.e., a device sale). While this endpoint assists callers in ensuring compliance with legal and card network regulations, the merchant is ultimately responsible.

The returned surcharge rate is deteremined by several factors, applied in the following order:

  1. Card Processor: If the merchant's card processor does not support surcharges, the transaction is not eligible for surcharges and the rate is 0.
  2. Surcharge Settings: If the merchant has not enabled surcharges, the transaction is not eligible for surcharges and the rate is 0.
  3. Card Type (optional): If the card payment method is provided, the card type will be checked; if it is not a credit card, the transaction is not eligible for surcharges and the rate is 0.
  4. Merchant Country: If a merchant is in the United States, its maximum surcharge rate is 3.0%; if the merchant is in Canada, it's maximum surcharge rate is 2.4%. Other countries are not supported.
  5. Processing Rate: The surcharge rate cannot exceed the merchant's processing rate.

If a transaction is eligible for surcharges, the surcharge rate is the minimum of the merchant's country rate and the merchant's processing rate.

The response also includes a limiting_factor property that describes the factor preventing the rate from being higher. If more than one limiting factor applies, only the first is returned.

  • unknown
  • processor_not_supported: Only supported by Stripe and Worldpay Express.
  • surcharges_not_enabled: The merchant has not enabled surcharging.
  • card_type_not_supported: The provided card is not a credit card, possibly either a debit or pre-paid card. Note: it is possible that the provided card is a credit card, but it is unknown to the BIN lookup. This situation will be treated as card_type_not_supported.
  • country_rate: The merchant's country rate will be used.
  • processing_rate: This is only applicable to merchants processing with Worldpay Express.
❗️

Failure to adhere to the calculated surcharge amount may cause legal or compliance issues.

Request Object

POST /surcharge/calculate
{
    "transaction_amount": 100.00,
    "payment_method" : {
        "card": {
            "card_number": "4242424242424242",
            "expiration_year": 2035,
            "expiration_month": 12,
            "cvv": "123",
            "billing_postal_code": "30330",
            "cardholder_name": "John Doe"
         }
    }
}

Response Object

{
    "transaction_amount": 103.00,
    "surcharge_amount": 3.00,
    "surcharge_rate": 0.03,
    "limiting_factor": "country_rate"
}

Sale Endpoints

An optional surcharge amount may be provided when creating a new sale transaction via the following endpoints:

A non-zero surcharge amount is allowed only if all of the following conditions are true:

  1. The merchant has enabled surcharges.
  2. The given payment method is a card.
  3. On non-device sales, the transaction represents a completed sale (i.e., the capture property is "completed_sale", not "auth_until_capture", or "tip_adjustment").
  4. Partial approvals are not allowed (i.e., allow_partial_approvals is "false").
  5. The surcharge amount is less than or equal to 3% of the nominal amount.

Note that the amount property of sale requests represents the total transaction amount, including the surcharge amount. In the following example, the amount is $100.00, the surcharge amount is $3.00 (3.0% of the amount), yielding a total transaction amount of $103.00:

{
    "payment_method" : {
        "card": {
            "card_number": "4242424242424242",
            "expiration_year": 2035,
            "expiration_month": 12,
            "cvv": "123",
            "billing_postal_code": "30330",
            "cardholder_name": "John Doe"
        }
    },
    "options": {
        "card": {
            "capture": "completed_sale",
            "sale_type": "card_not_present",
            "allow_partial_approvals": false,
            "avs": "fail_on_postal_code_no_match"
        }
    },
    "surcharge_amount": 3.00,
    "amount": 103.00,
    "currency": "usd",
}
❗️

The calculate surcharge endpoint should be used to determine surcharge eligibility and amount.

Device Sales

When executing a sale transaction (transact/device/sale) the calculate surcharge endpoint should be used prior without passing in a payment_method to retrieve the recommended surcharge amount. With a non-zero surcharge amount using a device, the device will request the cardholder to confirm the payment, including surcharge amount following card collection.