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 to | Eligible card payments per your configured program | Credit cards only (US) |
| Fee label | Configurable (mxAdvantageFeeLabel) | "Surcharge" |
| Governed by | Your MX Advantage configuration + applicable law | Card-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.
DisclosureDisplay 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:
| Setting | Description |
|---|---|
mxAdvantageEnabled | Turns the MX Advantage program on for the merchant. |
mxAdvantageFeeLabel | The 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
Updated about 4 hours ago