Passthrough network fees

This guide explains the sub-components and calculation of different card processing fees so you can understand their impact on your business.

Interchange and card scheme fees represent the two main categories of passthrough fees charged by card networks for processing credit, debit, or prepaid card transactions. These fees are passed to you as the Moov fee under the “Interchange++” pricing model.

What are interchange fees?

Interchange fees are transaction fees set by card networks, usually charged as a percentage of the transaction amount plus a fixed fee. When a customer uses their card to make a purchase from a merchant, the merchant’s bank pays the interchange fee to cardholder’s issuing bank. Interchange fees cover various costs such as fraud prevention and risk management, the provision of payment cards, and maintaining card networks.

What are card scheme fees?

Card scheme fees are non-negotiable fees by card networks for transaction processing, often labeled as “dues and assessments” or “processing fees”.

How will I be charged?

Interchange++ is Moov’s cost-plus pricing model for card processing, comprising:

  • Interchange
  • Card scheme fees
  • Moov processing fee

Note: If you’re on Moov’s standard (blended) pricing plan, you’ll be charged a flat rate, differing from the variable costs detailed below.

The Moov processing fee is set as the agreed upon Moov markup for transaction processing. Moov bills the card scheme fees by debiting from your wallet per transaction. Only successful transfers incur these fees. Failed transfers, which are transactions not completed due to various reasons like insufficient funds or incorrect details, will be invoiced monthly.

If you’re facilitating card payments, your Moov fee will adjust accordingly and be segmented into the following fee components, visible in the moovFeeDetails:

  • interchange: Determined at the time of settlement and charged upon completion for Visa, Mastercard, or Discover
  • discount: Determined at the time of settlement and charged upon completion for American Express
  • cardScheme: Charged upon transfer completion
  • moovProcessing: Moov’s agreed-upon markup, charged upon completion

The get a transfer GET endpoint will include the buckets of fees described above, with a total moovFee:

"moovFee": 139,  
"moovFeeDecimal": 1.38706,
"moovFeeDetails": {
  "interchange": 1.17,
  "cardScheme": 0.09895,
  "moovProcessing": 0.1181,

Each fee line item will show exact fee amounts that were charged and support up to 9 decimal places. The total Moov fee charged to your facilitator is the sum of all three line items represented as moovFeeDecimal.

Given that card processing fees support up to 9 decimals, you can also input facilitator fees with higher precision. In the create a transfer POST request, you’ll find two additional fields for a more detailed fee structure: totalDecimal and markupDecimal. Moov also supports the rounded version of these fields (total and markup), but only one field is required in the payload.

Rounding and reconciliation

Because network costs have precise values beyond USD cents, exact decimal values will be provided where relevant. The fee charged to your account is the precise amount, and you can use the moovFeeDecimal field to reconcile the charge in the corresponding facilitatorFee wallet transaction. All wallet transactions and balances will display precise values to ensure accurate charges and reconciliation between transactions and balances.

Using the example above, plus a $5.00 facilitator fee, the corresponding wallet transaction will look like this:

   "walletID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
   "transactionID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
   "transactionType": "facilitator-fee",
   "sourceType": "transfer",
   "sourceID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43",
   "status": "completed",
   "memo": "Facilitator fee collected",
   "createdOn": "2019-08-24T14:15:22Z",
   "completedOn": "2019-08-24T14:15:22Z",
   "currency": "USD",
   "grossAmount": 500,
   "grossAmountDecimal": "5.00"
   "fee": 139,
   "feeDecimal": "1.38706"
   "netAmount": 361,
   "netAmountDecimal": "3.61294"
   "availableBalance": 1204
   "availableBalanceDecimal": "12.0463"

Most of the existing API fields will maintain standard rounding to the nearest unit (cents). For example, if the moovFeeDecimal is 0.065, Moov will round the moovFee up to 0.07. If the fee is 0.064, we round down to 0.06.

The availableBalance in a wallet will always be rounded down to prevent transfers that exceed the available amount. The availableBalanceDecimal always reflects the precise value remaining in your wallet. If you cash out your wallet for 1204 using the example above, the remaining balance would be 0.0063.

Summary Beta