| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Get Merchant Fees (V2)
Returns the full fee configuration for a merchant application in the V2 boarding system. The response covers all fee categories: Amex, Visa/MC/Discover, authorization and monthly fees, POS fees, standard fees, card brand fees, debit/PIN/EBT fees, gateway product fees, and miscellaneous fees. Use this endpoint to inspect or verify fees before submission.
Endpoint
GET /api/v2/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 creating a merchant (POST /api/v2/merchant/create) to review the fee schedule populated from the boarding settings template. Compare results with the ISO's pricing agreement before calling POST /api/v2/merchant/fees to update fees or POST /api/v2/merchant/submit to finalize the application.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | integer (int32) | Yes | Merchant profile ID — returned from POST /api/v2/merchant/create |
Response
200 OK
The data field contains a TsysFeesGetModel with the following top-level fields:
| Field | Type | Description |
|---|---|---|
| data.cashDiscountRate | number (double) | Cash discount rate percentage |
| data.minimumDiscountAmount | number (double) | Minimum discount dollar amount (0–500) |
| data.minimumDiscountStartDate | string (date-time) | Date the minimum discount begins |
| data.minimumDiscountType | string (enum) | Daily or Monthly — how the minimum discount is assessed |
| data.earlyTerminationFeeAmount | number (double) | Early termination fee in dollars (0–999999) |
| data.earlyTerminationFeeContractMonths | integer | Contract duration in months for ETF calculation (0–60) |
| data.amex | AmexFees | Amex fee sub-structure (interchangePlus, tieredDiscounts, noSurcharge, amexInterchangePlusPlus) |
| data.visaMasterCardDiscover | VisaMasterCardDiscoverFees | Visa/MC/Discover fee sub-structure |
| data.authorizationMonthlyAndSpecialProgram | AuthorizationMonthlyAndSpecialProgramFees | Auth, AVS, batch, chargeback, PCI, and other per-item/monthly fees |
| data.pos | POSFees | POS package and license fees |
| data.standard | StandardFees | Dial pay, online portal, surcharge, and funding fees |
| data.cardBrand | CardBrandFees | Card brand fee flags (boolean) |
| data.debitPinAndEBT | DebitPinAndEBTFees | PIN debit and EBT fee rates |
| data.gatewayProducts | GatewayProductsFees | Wireless, gateway access, and unified mPOS fees |
| data.miscFees | array of TsysMiscFee | Custom one-time or recurring miscellaneous fees |
| data.miscFeesVolume | array of TsysMiscFee | Volume-based miscellaneous fees |
| requestId | integer | Echo of the internal request ID |
| success | boolean | true if the call succeeded |
| error | string | Error message if success is false |
Each TsysFee sub-object has:
| Field | Type | Description |
|---|---|---|
| perItem | number (double) | Per-transaction fee amount in dollars |
| percent | number (double) | Percentage fee rate |
{
"data": {
"cashDiscountRate": 0.0,
"minimumDiscountAmount": 25.0,
"minimumDiscountType": "Monthly",
"earlyTerminationFeeAmount": 295.0,
"earlyTerminationFeeContractMonths": 36,
"amex": {
"interchangePlus": {
"qualifiedDiscount": { "perItem": 0.10, "percent": 0.30 }
}
},
"visaMasterCardDiscover": {
"interchangePlus": {
"vsQualCrDiscount": { "perItem": 0.10, "percent": 0.20 },
"mcQualCrDiscount": { "perItem": 0.10, "percent": 0.20 }
}
},
"authorizationMonthlyAndSpecialProgram": {
"vsmcdiscAuth": { "perItem": 0.08, "percent": 0.0 },
"chargeback": { "perItem": 25.00, "percent": 0.0 },
"statement": { "perItem": 10.00, "percent": 0.0 },
"pciAnnual": { "perItem": 99.00, "percent": 0.0 }
},
"miscFees": [],
"miscFeesVolume": []
},
"requestId": 33710,
"success": true,
"error": null,
"validationErrors": []
}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 to view this merchant's fees |
| 404 | No merchant found with the given id |
| 500 | Internal server error |
Common Mistakes
- Passing the merchant profile ID as a path segment instead of a query parameter — the
idis a query parameter (?id=30912). - Confusing this GET endpoint with the POST endpoint at the same path (
POST /api/v2/merchant/fees) which updates fees — HTTP method matters here. - Expecting fees to be fully populated immediately after
POST /api/v2/merchant/createif noboardingSettingsIdwas provided; defaults may be empty until explicitly set. - Misinterpreting
perItem: 0.0andpercent: 0.0as "no fee" — these are valid zero-rate values and the fee line item still applies.
Related Endpoints
POST /api/v2/merchant/fees— Update the merchant's fee schedulePOST /api/v2/merchant/create— Create the merchant record whose fees are retrieved herePOST /api/v2/merchant/submit— Submit the complete merchant application including fees
Example
curl -X GET "https://hq.staging.netevia.dev/api/v2/merchant/fees?id=30912" \
-H "Authorization: Basic $(echo -n 'username:password' | base64)" \
-H "Accept: application/json"