Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.ecrypt.com/llms.txt

Use this file to discover all available pages before exploring further.

Surcharging allows merchants to pass some or all of their credit card processing costs on to customers who choose to pay by credit card. Surcharging must be enabled during merchant onboarding with ECRYPT. If you would like to enable surcharging on your account, contact your ECRYPT representative.
Surcharging is a regulated practice governed by card network rules and state law. Review the requirements below and consult legal counsel before enabling surcharges.

Rules & Restrictions

Credit cards only

Surcharges may only be applied to credit card transactions. Debit cards, prepaid cards and ACH transactions cannot be surcharged under card network rules, even when a debit cardholder selects “credit” at the point of sale. The card is still processed as a debit transaction, and the surcharge restriction applies. ECRYPT performs a BIN lookup on every transaction and automatically drops the surcharge amount if a debit or prepaid card is detected. This applies across all checkout channels, including the hosted iframe, checkout page, physical terminal and direct API transactions. No additional handling is required on your end.

Maximum surcharge rate

The surcharge amount cannot exceed the lower of:
  • Your merchant discount rate (MDR) for the applicable credit card, or
  • 3% of the transaction total (Visa’s current cap, effective April 2023)
Mastercard’s cap is 4%, but because Visa’s 3% limit applies across your program when Visa cards are accepted, 3% is the effective ceiling for most merchants. Surcharges are intended to offset processing costs, not to generate profit.

State restrictions

Surcharge laws vary by state and are subject to change. As of early 2026: Surcharging is prohibited in: Connecticut, Maine, Massachusetts, California (as of July 1, 2024), and Puerto Rico. Surcharging is permitted with restrictions in: Colorado (max 2%), New York (cannot exceed actual cost of acceptance, strict disclosure rules), New Jersey (cannot exceed actual cost of acceptance), Nevada (max 1.5% without additional documentation), Oklahoma (max 2% or actual cost, whichever is lower), and Minnesota (surcharge must be incorporated into the advertised price as of January 1, 2025). Texas has a statutory prohibition that has been challenged in federal courts; its enforceability remains uncertain.
This is not a comprehensive legal reference. Surcharge laws change frequently. Verify current requirements in your state with legal counsel before implementing surcharges.

Disclosure requirements

Regardless of state, card network rules require merchants to:
  • Display a surcharge notice at the point of entry and point of sale (both in-store and online)
  • List the surcharge as a separate line item on the transaction receipt
  • Apply the surcharge as a percentage of the transaction total, not a flat fee
ECRYPT’s Hosted Checkout Page and Cloud Terminal automatically display the surcharge percentage, subtotal and total when surcharging is enabled.

Passing a Surcharge via the API

The surcharge field is available on the order object for card transactions, and on the amount object when modifying subscription pricing. Pass the surcharge as a decimal value representing the dollar amount to be added.

Sale with surcharge

POST /v1/transactions/sale
{
  "payment": {
    "token": "{{token}}"
  },
  "amount": {
    "value": 103.00
  },
  "order": {
    "subtotal": 100.00,
    "surcharge": 3.00,
    "total": 103.00
  }
}
The amount.value must equal the full amount charged to the customer, including the surcharge. The order.surcharge field is used for reporting and receipt purposes.

Checkout page

When creating a Dynamic Checkout session, pass the surcharge at the top level of the request:
POST /v1/dynamiccheckout
{
  "total": 103.00,
  "subtotal": 100.00,
  "surcharge": 3.00,
  "items": [...]
}

Subscription pricing update

When modifying a customer subscription’s billing amount, the surcharge field is available within the amount object:
PUT /v1/customers/{Customer}/subscriptions/{Subscription}
{
  "amount": {
    "subtotal": 100.00,
    "surcharge": 3.00,
    "total": 103.00
  }
}

Transaction Response

Surcharge amounts are returned in the surchargeAmount field on the TransactionDto object when retrieving transactions:
{
  "transactionId": 123456789,
  "amount": 103.00,
  "surchargeAmount": 3.00,
  "status": "SETTLED"
}