Cost Recovery

Offset card processing costs by adding a program fee to eligible payments

Cost recovery lets you recoup card processing costs by adding a program fee to eligible payments, using the MX Advantage program. It's the umbrella for fee-recovery models; Surcharging is the specific credit-card variant. The API surface is shared — you calculate the fee with the MX Advantage enrich call, show it to the customer, then include it on the payment.

ℹ️

This feature requires prior enablement and configuration. Contact the Account Management team to get started, and to confirm which fee model and label apply to your account.

Common use cases

  • Recover a portion of card processing costs on eligible transactions
  • Apply a labeled program fee (for example, a service fee) that's disclosed to the customer
  • Keep listed prices flat while offsetting card costs at checkout

Cost recovery vs. surcharging

Both offset card costs through MX Advantage, but they differ in what they apply to and how they're labeled:

Cost Recovery (program fee)Surcharging
Applies toEligible card payments per your configured programCredit cards only (US)
Fee labelConfigurable (mxAdvantageFeeLabel)"Surcharge"
Governed byYour MX Advantage configuration + applicable lawCard-brand surcharge rules + state law

How it works

Cost recovery uses the same two-step MX Advantage flow as surcharging: enrich to get the fee, then charge with it included.

sequenceDiagram
    participant App as Your Application
    participant PCE as PCE
    participant Customer as Customer
    App->>PCE: POST /checkout/v3/payment/enrich/mxadvantage
    PCE-->>App: fee rate + amount
    App->>Customer: Display total (amount + program fee)
    Customer-->>App: Confirm payment
    App->>PCE: POST /checkout/v3/payment (fee included)
    PCE-->>App: Payment approved

Step 1: Calculate the fee

Call the MX Advantage enrich endpoint with the amount and card to get the applicable fee.

POST /checkout/v3/payment/enrich/mxadvantage

{
  "merchantId": "1000157980",
  "amount": "100.00",
  "tenderType": "Card",
  "cardAccount": {
    "number": "4111111111111111",
    "expiryMonth": "12",
    "expiryYear": "2027"
  },
  "mxAdvantageEnabled": true,
  "mxAdvantageFeeType": "PERCENTAGE"
}

The endpoint is documented at POST /checkout/v3/payment/enrich/mxadvantage. Read surchargeRate and surchargeAmount from the response, and note isSurchargeApplicable — for cards that aren't eligible it returns false with a zero fee, so you charge the original amount.

Step 2: Charge with the fee included

Add the fee to the amount and submit the payment.

POST /checkout/v3/payment

{
  "merchantId": "1000157980",
  "amount": "103.00",
  "tenderType": "Card",
  "cardAccount": { "number": "4111111111111111", "expiryMonth": "12", "expiryYear": "2027", "cvv": "123" },
  "surchargeAmount": 3.00,
  "surchargeRate": 3.00
}

Created via POST /checkout/v3/payment. See Sale for the full payment request.

📘

Disclosure

Display the program fee as a separate line item before the customer confirms, and show it separately on the receipt. Refund the fee proportionally when you refund the payment.


Configuration

Cost recovery is controlled by MX Advantage settings on your merchant record:

SettingDescription
mxAdvantageEnabledTurns the MX Advantage program on for the merchant.
mxAdvantageFeeLabelThe label shown for the fee (for example, surcharge).

Manage these on Merchant Configuration (payment settings).


See also

  • Surcharging: the credit-card-only fee variant of MX Advantage
  • Merchant Configuration: enable MX Advantage and set the fee label
  • Sale: charge a payment with the fee included
  • Refund: return a payment and its program fee
  • Settlement & Funding: how the net funded amount reflects fees


Did this page help you?
.readme-logo { display: none !important; }