| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Get Merchant Fees (v1)
Deprecated — use Get Fees v2 instead.
Returns the complete TSYS fee structure assigned to a specific merchant, including Visa/Mastercard/Discover discount rates, Amex fees, authorization fees, monthly fees, POS fees, debit/PIN/EBT fees, gateway product fees, and miscellaneous fees. This is the v1 method and has been superseded by the v2 endpoint.
Endpoint
GET /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
Use this endpoint only within existing v1 integrations that need to display or verify the fee structure assigned to a merchant. For new integrations or when updating to the current API version, use GET /api/v2/merchant/fees instead. The fee data returned is used in compliance reviews, merchant disclosures, and fee auditing workflows.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer (int32) | Yes | The merchant profile ID whose fee structure to retrieve |
Response
200 OK
The response data field contains a TsysFees object with the following top-level fee groups:
| Field | Type | Description |
|---|---|---|
| data.minimumDiscountAmount | number | Minimum monthly discount fee amount (0–500) |
| data.minimumDiscountStartDate | string (date-time) | When the minimum discount begins |
| data.minimumDiscountType | string (enum) | Billing frequency for minimum discount: Daily or Monthly |
| data.earlyTerminationFeeAmount | number | Early termination fee amount (0–999999) |
| data.earlyTerminationFeeContractMonths | integer | Contract length in months for early termination (0–60) |
| data.amex | object | Amex fee structures (interchange plus, tiered, no-surcharge, interchange++) |
| data.visaMasterCardDiscover | object | Visa/MC/Discover fee structures (bill-back, interchange plus, no-surcharge, tiered MOTO, tiered retail, custom interchange, custom interchange Durbin, interchange++) |
| data.authorizationMonthlyAndSpecialProgram | object | Per-auth and monthly fees (auth, AVS, batch, chargeback, statement, PCI, etc.) |
| data.pos | object | POS package and license fees |
| data.standard | object | Standard program fees (dial pay, online portal, MOTO/ecomm surcharge, next/same day funding) |
| data.cardBrand | object | Card brand fee flags (cardBrand, mastercardLicense) |
| data.debitPinAndEBT | object | Debit PIN and EBT fees |
| data.gatewayProducts | object | Gateway product fees (Micros, wireless, gateway access/per-item, UnifiedmPOS) |
| data.miscFees | array | Miscellaneous per-item fees with name, frequency, start/stop dates, perItem, percent |
| data.miscFeesVolume | array | Miscellaneous volume-based fees |
| status | string | HTTP status label |
| error | string | Error message if the request failed |
| warning | string | Non-fatal warning message, if any |
| validationResults | array | List of field-level validation errors |
| requestId | integer | Unique identifier for this API request |
Each TsysFee sub-object contains:
| Sub-field | Type | Description |
|---|---|---|
| perItem | number | Per-transaction flat fee amount |
| percent | number | Per-transaction percentage rate |
Each TsysFeeDiscountType sub-object additionally contains:
| Sub-field | Type | Description |
|---|---|---|
| discountType | string (enum) | Daily or Monthly discount type |
{
"data": {
"minimumDiscountAmount": 25.00,
"minimumDiscountType": "Monthly",
"earlyTerminationFeeAmount": 495.00,
"earlyTerminationFeeContractMonths": 36,
"visaMasterCardDiscover": {
"interchangePlus": {
"vsQualCrDiscount": { "perItem": 0.10, "percent": 0.30 },
"mcQualCrDiscount": { "perItem": 0.10, "percent": 0.30 },
"dsQualCrDiscount": { "perItem": 0.10, "percent": 0.30 }
}
},
"authorizationMonthlyAndSpecialProgram": {
"vsmcdiscAuth": { "perItem": 0.10, "percent": 0.00 },
"chargeback": { "perItem": 25.00, "percent": 0.00 },
"statement": { "perItem": 10.00, "percent": 0.00 },
"pciAnnual": { "perItem": 99.00, "percent": 0.00 }
},
"cardBrand": {
"cardBrand": true,
"mastercardLicense": false
},
"miscFees": [],
"miscFeesVolume": []
},
"status": "OK",
"error": null,
"warning": null,
"validationResults": [],
"requestId": 92014
}Error Codes
| Code | When it happens |
|---|---|
| 400 | id parameter is missing or not a valid integer |
| 401 | Invalid or missing Basic Auth credentials |
| 403 | User does not have permission for this operation |
| 404 | Merchant with the specified id not found |
| 500 | Internal server error |
Common Mistakes
- Using this v1 endpoint for new integrations — migrate to
GET /api/v2/merchant/feeswhich provides the current fee model. - Expecting all fee sub-objects to be populated — many fee categories will be
nullif not applicable to the merchant's pricing plan; check fornullbefore accessing nested fields. - Using
minimumDiscountAmountdirectly as a monthly bill estimate — the actual fee depends on whether the merchant's discount volume falls below the minimum. - Ignoring
miscFeesandmiscFeesVolumearrays — custom fees specific to the merchant or ISO agreement are stored here and may not appear in the standard fee categories.
Related Endpoints
GET /api/v2/merchant/fees— the recommended replacement endpoint for retrieving merchant feesPOST /api/v2/merchant/updateFees— update the fee structure for a merchantGET /api/v1/merchant/status— check the merchant's boarding status
Example
curl -X GET "https://hq.staging.netevia.dev/api/v1/merchant/fees?id=48291" \
-H "Authorization: Basic $(echo -n 'username:password' | base64)"