Fees and currency
This page explains how money is expressed on the platform and where fees and currency conversion appear, so your finance team can reconcile with confidence. It is structural: the specific rates and fee schedule for your account are commercial terms you agree with TensorRail and see in your dashboard, not published here.
Amounts are in the smallest currency unit
Every amount on the API is an integer in the smallest unit of the collection currency, not
a decimal. There are no floating-point amounts anywhere in the contract.
50000inINRis INR 500.00.6540inUSDis USD 65.40.- For a zero-decimal currency, the integer is the whole unit directly.
This applies uniformly to amount, net_amount, amount_capturable, amount_received, and to
refund and dispute amounts. Working in integer minor units end to end is what keeps totals exact:
compute in minor units, and only format to a decimal for display.
The currency field is the ISO 4217 code of the collection, and it must be a corridor enabled
for your account. Note that create does NOT enforce this — see
Corridors and coverage.
Where fees and conversion appear
Fees and currency conversion do not change the amount you collect from the customer. They
appear as the collected value is recorded to your balance. There are two components to
understand.
1. Collection into your balance
A customer pays in their local currency. That cleared value posts to the double-entry ledger under your balance. Whether the collection fee for that corridor is taken at that moment or billed to you separately depends on the terms for that rail in your agreement — both arrangements exist, and your fee schedule says which one applies to you. Your balance carries one figure per currency you collect in, split into available / pending / settled. See Money integrity.
2. Currency conversion
Where a currency conversion applies to your account, it is a separate component under your commercial terms, and it posts to the ledger as its own line rather than being folded silently into a rate. Which conversions apply to you is part of the terms you agree with your account manager, not fixed here.
The ledger makes it reconcilable
Every fee and every conversion component is a posting on the double-entry ledger under your balance, alongside the collection it belongs to. A collection is therefore auditable in both directions: from the payment your customer made, through the fee and conversion postings, to the figure on your balance. Refunds post against their original collection on the same ledger, so a refunded payment nets out cleanly.
Because it is all one ledger:
- Your CSV exports and your balance tie together without a translation layer.
- Gross minus fees minus any conversion equals net, and that identity holds at both the balance level and the individual-posting level.
- The balance you see is not a standalone number; it is backed by balanced postings and checked by automated reconciliation.
Export the underlying collections from the dashboard for your own reconciliation. See Dashboard and account and Money integrity.
Reading your balance
GET /v1/balances reports available, pending and settled for each currency you collect in. What
each of those means, and how test and live balances stay separate, is on
Balances.
Related
- Money integrity: the ledger and reconciliation behind the balance.
- Corridors and coverage: the collection currencies your account can reach.
- Dashboard and account: exports for reconciliation.
TensorRail, Limassol, Cyprus.