| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Update Merchant Fees (v1)
Deprecated — use boardingv2_updatefees instead.
Updates the complete fee configuration for a merchant application identified by its profile ID. The fee structure covers all card brand discount rates (Visa, Mastercard, Discover, Amex), authorization and monthly fees, POS software fees, gateway product fees, PIN debit/EBT fees, and miscellaneous custom fee items. Only the fee groups provided in the request body will be updated.
Endpoint
POST /api/v1/merchant/fees
Authentication
Basic HTTP Authentication required.
Encode username:password in Base64 and pass in the Authorization header:
Authorization: Basic {base64(username:password)}
When to use
Call this endpoint after initial merchant submission to set or revise the fee schedule before the application is approved. Fee updates are typically needed when negotiating rates with a specific merchant or when applying a non-standard pricing program. For new integrations, use the v2 fees endpoint which includes support for additional fee programs such as CashDiscount, Surcharge, ServiceFee, and DualPricing.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| id | integer (int32) | Yes | Merchant profile ID whose fees are being updated (1–999999). |
| fees | object | No | Top-level fee container. Omit groups that should not be changed. |
| fees.minimumDiscountAmount | number | No | Minimum monthly discount amount (0–500). |
| fees.minimumDiscountStartDate | string (date-time) | No | Date from which the minimum discount takes effect. |
| fees.minimumDiscountType | string | No | Frequency of the minimum discount. Enum: Daily, Monthly. |
| fees.earlyTerminationFeeAmount | number | No | Early termination fee amount (0–999999). |
| fees.earlyTerminationFeeContractMonths | integer | No | Contract duration in months for ETF (0–60). |
| fees.amex | object | No | Amex fee structure (interchange plus, tiered, no-surcharge, or interchange++). |
| fees.visaMasterCardDiscover | object | No | Visa/MC/Discover fee structure (interchange+, bill-back, tiered retail, tiered MOTO, custom interchange, or interchange++). |
| fees.authorizationMonthlyAndSpecialProgram | object | No | Per-transaction and monthly fees (auth, AVS, batch, chargeback, statement, PCI, etc.). |
| fees.pos | object | No | POS software package fees (full package, table-side, protection, licenses). |
| fees.standard | object | No | Standard service fees (online portal, MOTO surcharge, next/same-day funding). |
| fees.cardBrand | object | No | Card brand pass-through fee toggles (Visa/MC card brand fees, MC license). |
| fees.debitPinAndEBT | object | No | PIN debit and EBT transaction fees. |
| fees.gatewayProducts | object | No | Gateway access, per-item, wireless, and mPOS fees. |
| fees.miscFees | array | No | Custom miscellaneous per-item/volume fee items. |
| fees.miscFeesVolume | array | No | Custom miscellaneous volume-based fee items. |
Each TsysFee sub-object has:
| Field | Type | Required | Description |
|---|---|---|---|
| perItem | number (double) | Yes | Flat per-transaction fee amount in dollars. |
| percent | number (double) | Yes | Percentage rate applied to transaction volume. |
{
"id": 10482,
"fees": {
"minimumDiscountAmount": 25.00,
"minimumDiscountType": "Monthly",
"earlyTerminationFeeAmount": 495.00,
"earlyTerminationFeeContractMonths": 36,
"visaMasterCardDiscover": {
"interchangePlus": {
"vsQualCrDiscount": { "perItem": 0.10, "percent": 0.25 },
"vsQualDbDiscount": { "perItem": 0.10, "percent": 0.10 },
"mcQualCrDiscount": { "perItem": 0.10, "percent": 0.25 },
"mcQualDbDiscount": { "perItem": 0.10, "percent": 0.10 },
"dsQualCrDiscount": { "perItem": 0.10, "percent": 0.25 },
"dsQualDbDiscount": { "perItem": 0.10, "percent": 0.10 }
}
},
"authorizationMonthlyAndSpecialProgram": {
"vsmcdiscAuth": { "perItem": 0.05, "percent": 0.00 },
"amexAuth": { "perItem": 0.10, "percent": 0.00 },
"avs": { "perItem": 0.05, "percent": 0.00 },
"batch": { "perItem": 0.25, "percent": 0.00 },
"chargeback": { "perItem": 25.00, "percent": 0.00 },
"statement": { "perItem": 10.00, "percent": 0.00 },
"pciAnnual": { "perItem": 99.00, "percent": 0.00 }
},
"miscFees": [
{
"name": "Monthly Minimum Fee",
"frequency": "Monthly",
"perItem": 25.00,
"percent": 0.00
}
]
}
}Response
200 OK
| Field | Type | Description |
|---|---|---|
| data | object | Empty object on success (no additional data returned). |
| status | string | HTTP status name (e.g., "OK"). |
| error | string | Error message if the update failed; otherwise null. |
| warning | string | Non-fatal warning, if any. |
| validationResults | array | Field-level validation errors, if any. |
| requestId | integer | Internal request tracking ID. |
{
"data": {},
"status": "OK",
"error": null,
"warning": null,
"validationResults": [],
"requestId": 65203
}Error Codes
| Code | When it happens |
|---|---|
| 400 | The id is missing, out of range, or a fee field fails validation (e.g., minimumDiscountAmount > 500). |
| 401 | Invalid or missing Basic Auth credentials. |
| 403 | User does not have permission to update fees for this merchant. |
| 404 | No merchant application found with the given ID. |
| 500 | Internal server error. |
Common Mistakes
- Sending an empty
feesobject without any sub-groups has no effect — always include the specific fee groups being updated. minimumDiscountAmountmust be between 0 and 500; values outside this range return a 400 error.earlyTerminationFeeContractMonthsmust be between 0 and 60.miscFeesitems requirename,frequency,perItem, andpercent— omitting any of these causes a 400 error.- This is a v1 deprecated endpoint — prefer the v2 fees endpoint for new integrations.
Related Endpoints
POST /api/v1/merchant/submit— Initial submission that can include fees in the request body.POST /api/v1/merchant/info— Update the merchant profile settings.POST /api/v1/merchant/account— Update the sales and business profile.
Example
curl -X POST https://hq.staging.netevia.dev/api/v1/merchant/fees \
-H "Authorization: Basic $(echo -n 'username:password' | base64)" \
-H "Content-Type: application/json" \
-d '{
"id": 10482,
"fees": {
"minimumDiscountAmount": 25.00,
"minimumDiscountType": "Monthly",
"earlyTerminationFeeAmount": 495.00,
"earlyTerminationFeeContractMonths": 36,
"authorizationMonthlyAndSpecialProgram": {
"vsmcdiscAuth": { "perItem": 0.05, "percent": 0.00 },
"chargeback": { "perItem": 25.00, "percent": 0.00 },
"statement": { "perItem": 10.00, "percent": 0.00 }
}
}
}'