Surcharging
Add flexibility at checkout by enabling surcharges on eligible credit card transactions.
A surcharge is an additional fee added to certain card payments to partially or fully offset the costs of card processing (interchange, scheme fees, acquiring costs). Instead of embedding all card costs into product prices, some merchants choose to apply surcharges to cards that incur higher costs (e.g. credit cards).
Key points:
- The ability to surcharge only applies to credit card purchases and only under certain conditions. United States merchants cannot surcharge debit card or prepaid card purchases.
- Local, regional, and card-scheme rules govern where surcharging is allowed, how much can be charged, and how it must be disclosed.
- Merchants must comply with applicable state or federal laws which may prohibit or restrict surcharging of credit transactions.
- Surcharge is added to the original transaction amount; any captures, refunds, or adjustments also must consider the surcharge.
- Surcharging is allowed for all merchant category codes (MCCs) but is currently prohibited in Connecticut, Colorado, Kansas, and Massachusetts.
- Merchants must also comply with federal laws regarding deceptive or misleading disclosures.
- MX™ Advantage Surcharge must be implemented according to Card Brand rules, and the type(s) of hardware/software solutions available for each method may also vary.
For current rules and regulations regarding Surcharging visit:https://usa.visa.com/support/consumer/visa-rules.html
Merchants must comply with all state and federal laws, as well as Card Brand rules regarding surcharging and disclosures.
How it works
Follow these steps to create a payment with surcharge amount:
- Verify Merchant Eligibility: Confirm that MX™ Advantage is enabled for the merchant.
- Determine Applicable Surcharge: Identify the surcharge percentage or flat fee to be applied. Ensure that it complies with Card Brand rules and local/state laws.
- Create a Payment with Surcharge: Include the surcharge amount as part of the payment creation request. Submit the payment request and confirm the response includes both the transaction amount and the surcharge.
Enable MX™ Advantage Surcharge
To start using surcharging, the MX™ Advantage Surcharge feature must be activated in compliance with card brand rules and applicable regional regulations.
The availability of surcharge functionality may vary depending on your payment setup, including the hardware or software solution used at checkout.
If you’re not sure whether surcharging is enabled for your environment or would like to learn more about the MX™ Advantage product suite, please contact your Account Representative or Support Team.
Ensure your surcharge configuration complies with all relevant card scheme and jurisdictional requirements before enabling this feature.
Verify Merchant eligibility for MX™ Advantage
You can use the GET /checkout/v3/appStore?merchantId={merchantID} API to check whether the MX™ Advantage Surcharge feature is active for a merchant.
Replace
merchantIdwith the relevant merchant ID.
A successful response indicates the surcharge status. If the feature is active, the response includes:
{
"appCode": "MXADV",
"activated": true
}
This confirms that MX™ Advantage Surcharge is enabled for that merchant and ready for use.
You can integrate this verification step into your onboarding or setup flow to automatically confirm surcharge eligibility before initiating surcharged transactions.
Determine applicable Surcharge
Once the merchant is enabled for MX™ Advantage Surcharge, you can fetch the applicable surcharge amount or percentage using the POST checkout/v3/payment/enrich/mxadvantage API endpoint, with following details:
Parameter | Required | Description |
|---|---|---|
| ✅ | Amount to charge (in USD currency) |
| ✅ | Valid Payment details eg. Card or secure Token. Refer to Card Tokenization for steps to generate a token for future use. Note: CVV, avsZip, and avsStreet may only be required based on your Loss Prevention settings. |
| ✅ | The Merchant's unique identifier that is used to process the payment. |
| ✅ | Set to |
| Type of transaction. It is defaulted to | |
| Confirmation if the MX Advantage feature is enabled. Should be passed as | |
| Surcharge fee type, should be passed as | |
| Surcharge fee value. |
The surcharge may vary by card brand, transaction type, and region.
In the response, note the following:
surchargeRate: The surcharge rate (in percentage) applicable to the merchant.surchargeAmount: The surcharge amount applicable on the payment on the paymentamountprovided in the request.
Create Payment with Surcharge
To create a surcharge payment:
-
Customer provides payment info (e.g., swipes or enters card details).
-
Your system sends a POST
/checkout/v3/paymentpayment request with:Parameter
Required
Description
amount✅
Amount to charge (in USD currency), inclusive of surcharge amount.
cardAccount✅
Valid Payment details eg. Card or secure Token. Refer to Card Tokenization for steps to generate a token for future use. Note: CVV, avsZip, and avsStreet may only be required based on your Loss Prevention settings.
merchantId✅
The Merchant's unique identifier that is used to process the payment.
tenderType✅
Set to
CARDfor card transactions.paymentTypeType of transaction. It is defaulted to
SALEsurchargeAmountSurcharge amount.
surchargeRateSurcharge rate (in percentage) applicable to the merchant.
-
PCE processes the payment and returns a response body as part of the request based on your echo query parameter selection. In the response, note the following:
id: Unique identifier for the payment (used in GET, void, etc.)paymentToken: Secure token used for refunds, adjustments, or finalizing pre-auth.
-
It is recommended to store the
idandpaymentTokenfor:- Retrieving payment details later.
- Voiding the payment (if needed).
- Issuing partial or full refunds.
- Making post-sale adjustments.
-
You can learn the outcome of the request via
GET/checkout/v3/payment/{id}or wait for the PaymentSuccess webhook .
Webhook for Sale
You can subscriber to these webhooks to get Sale Payment updates:
- PaymentSuccess: Indicates the payment was successfully approved by the issuing bank.
- PaymentFail: Indicates the payment was declined. This can happen due to multiple reasons.
See Also
Open / Pending items to be discussed
- How will a merchant get the merchant id to create a payment?
- How will a merchant Contact our team for enabling MX Advantage
- Need to add Verify Surcharge Enablement API Tryouts and provide correct link here
- Need to add Calculate Surcharge API Tryouts and provide correct link here
- Need to correct the Loss Prevention setting link
Updated 2 days ago