Mono Colombia

Fees

The charges around your money movements — what you charge your users, what Mono charges you, and where to see both.

A fee is a charge attached to a money movement: a payout, a payin or a transfer between subaccounts. Some fees are yours — the price you charge your own users or customers for using your product, debited from their subaccounts and credited to you. Others are Mono's — the price of using the platform, debited from your own accounts. Every fee is recorded next to the operation that triggered it, with the rule that priced it and the exact amount, so you can always reconcile what was charged and why.

How much a fee costs is not hard-coded: it is decided by a fee policy, a pricing rule you manage per kind of fee and per group of accounts. This page explains fees themselves; Fee policies explains how you set the prices.

Two sides: your fees and Mono's fees

Fees you charge (owner: tenant)Fees Mono charges you (owner: mono)
Who paysYour users or customers, from their subaccountsYou, from your own accounts
Who receivesYouMono
Who sets the priceYou, through your fee policiesMono, as agreed in your commercial terms
Where you see themcalculated_fees on the operation, and the fees listingThe fees listing with owner=mono

Both sides use the same fee types and the same mechanics. The only difference is who pays whom.

Fee types

Each fee has a type that says what it is charged for. The types available today, and the service that triggers each one:

Fee typeServiceCharged whenCharged by
bank_transferPayoutsA payout to a bank account is created.You and Mono
bank_transfer_gmfPayoutsA payout to a bank account is created, to pass on the GMF — Colombia's tax on financial movements, 0.4% (the "4 × 1000").You and Mono
payinPayinsA payin is credited to the subaccount.You
account_to_account_fxLedger transfersA transfer between two subaccounts in different currencies is made. A fixed charge for the conversion.You
account_to_account_fx_spreadLedger transfersThe same transfer. Your margin on the exchange rate, embedded in the rate applied.You

A fee type also fixes how the fee can be charged — see How a fee is charged — and which properties of the operation its pricing rules can look at — see Conditions.

How a fee is charged

Every fee carries a processing_type and a processing_subtype that describe when and how it lands in the ledger:

ProcessingMeaning
inline / add_postingCharged as its own movement inside the operation's transaction. The most common case: the fee appears next to the payout, payin or transfer that caused it.
inline / upchargeAdded on top of the operation's amount. Used by account_to_account_fx_spread, where the margin is embedded in the exchange rate.
inline / deductTaken out of the operation's amount, so the receiving side gets the amount minus the fee.
inline / new_txCharged right away, in a transaction of its own.
deferred / new_txCharged later, in a transaction of its own.

Each fee type supports specific combinations; a fee policy picks among them. See the fee types table in Fee policies.

Lifecycle of a fee

A fee follows the operation that triggered it:

StateMeaning
createdPriced when the operation was created; nothing charged yet.
pendingWaiting for the operation to move forward.
heldThe amount is reserved on the account until the operation settles.
approvedCharged.
declinedThe operation failed before the charge; the fee was never charged.
reversedCharged, then returned — for example because the operation itself was reversed.

Where fees show up

  • On the operation. Payouts, payins and ledger transfers return the fees they charged in calculated_fees, keyed by fee type, with the amount of each one. That is the field to reconcile against per operation.
  • In the fees listing. GET /v1/core/fees lists every fee charged on your accounts — yours and Mono's — with the policy and the rule that priced it, its state and the operation that triggered it. Filter by owner, type, state, account, policy, origin or date range.
  • Overrides. Some operations let you replace the policy's price for that single operation: fee_override on payins and override_fees on ledger transfers. The fee then reports overridden: true, and overridden_fields tells what you sent.

Amounts

Fee amounts, like every amount in the Core API, are expressed in the smallest unit of the currency: 900000 cents in COP is 9.000,00 COP. Percentages are decimal fractions sent as strings: "0.004" is 0.4%.

Next steps

  • Fee policies — how to set the price of each fee, and for whom.
  • Conditions — the properties and operators your pricing rules can use.
  • Fees API reference — the endpoints to list fees and manage policies.

On this page