Surcharge
Surcharge configuration
Surcharges let merchants pass card or payment-method processing costs to the customer. Configuration is stored per merchant (business default) and can be overridden per location (branch). At checkout, customers see the fee before paying; after payment, the transaction amount includes the surcharge, and refunds follow the policy you choose.
Surcharge in transaction and payment responses
When a surcharge is applied to a payment, SensePass persists the details on the transaction and exposes them as a structured surcharge object on API-style payloads. You do not configure surcharge through these responses; they are read-only outputs after configuration (Partners / merchant settings) and a successful charge path.
If no surcharge was applied to the transaction, surcharge is omitted.
Where the Surcharge object appears
Get transaction
Transaction detail / filtered transaction payloads include a top-level surcharge property when surcharge metadata exists.
Successful payment response
On an approved payment, the response object can include surcharge when surcharge was applied for that flow.
Merchant callback (server URL)
See Callbacks below
The underlying stored metadata key is paymentSurcharge. Responses usually expose a parsed copy at surcharge for convenience. If metadata.paymentSurcharge is present as a raw string, prefer using surcharge when both exist.
surcharge object
surcharge objectamount
number
Surcharge fee charged (in the transaction currency).
baseBeforeSurcharge
number
Amount the surcharge was calculated from (before adding this fee).
totalAmount
number
Total including surcharge (aligned with baseBeforeSurcharge + amount).
refundable
boolean
false when the merchant refund policy is partial (the surcharge portion is not returned to the customer on refunds). true when the policy is full or legacy default. Used to cap refunds in downstream flows.
displayName
string
Customer-facing label from merchant Surcharge display name (e.g. “Processing fee”).
detailLineShort
string
Short line suitable for receipts or tight UI.
summaryDescription
string
Longer descriptive text for summaries.
surchargeTarget
string (optional)
Internal target identifier (e.g. surcharge:visa_credit, surcharge:unrecognized_funding).
type
'percentage' | 'fixed' (optional)
Rule type that was applied.
percentage
number (optional)
When type is percentage, configured rate (e.g. 10 for 10%).
fixedAmount
number (optional)
When type is fixed, configured flat fee in currency units.
Merchant callback URL (after successful payment)
If you configure a server callback URL for transaction status notifications (in init transaction request body.callbackURL), surcharge is included when the callback carries the same filtered transaction payload as get-transaction:
The
surchargeobject is included in the JSON request body together with the rest of the transaction fields (subject to your usual response filtering and authentication).
Last updated
Was this helpful?
