Transaction Fees for International Payments

Credit Cards payments always incur a transaction fee. In most cases, the transaction fee is absorbed by the merchant. So for example, if you went to an online store and purchased some shoes for $100, a portion of that transaction is kept by the payment provider as a transaction fee, typically in the realm of 3% – 5% of the total. The merchant would then only receive between $95 and $97.

When allowing parents and students to pay online in Quickschools, schools actually have the option of adding a Convenience Fee to offset the transaction fees incurred by the payment gateway. 

Configure the Online Payments module where the parent or student pays the transaction fee

So from our original example above, if you were buying shoes for $100, the system would calculate a Convenience Fee, such that the merchant would receive the original $100 that was charged. So you’d end up paying something like $104, where $4 would go to the payment gateway, and the merchant would receive the original $100 charged.

Some Credit Cards incur additional transaction fees

There are certain cases where the payment provider charges more in transaction fees than typical. Stripe for example charges extra for international credit cards, or credit cards in foreign currency. For more information on Stripe’s additional fees, check out their pricing page

Unfortunately, QuickSchools is unable to predict any additional charges that are incurred by Stripe. QuickSchools will calculate the Convenience Fee based on the assumption that the credit card is a regular credit card. However, after sending the payment to Stripe, Stripe can deduct more from the transaction than was originally calculated, leaving the school with less than what was originally charged. 

Here’s an example: A parent pays $1000 using an international credit card in Japanese currency while your bank’s currency is USD. QuickSchools does not have a way to determine the type of credit card being used, and estimates the credit card fee based on existing rules:

QuickSchools Estimates the Credit Card Fee PRIOR to charging the card
How is the estimated credit card fee calculated?
Amount to pay plus 30 cents divided by the fee percentage 3.9% minus amount to pay
(($1000 + 0.30) / (1 – 0.039)) – $1000 = $40.90
Sample Calculation to estimate the Credit Card Transaction Fee

After the payment is sent to Stripe, Stripe applies and deducts an additional 1% of the $1,040.90 (which comes to $10.41) because of the foreign currency conversion required. The resulting transaction fee being deducted becomes $51.31. 

Once the transaction is completed, QuickSchools will update the transaction in the Fee Tracking module, based on the actual charges by Stripe:

Fee Tracking transaction

You can check the amount deposited to your bank by going to Fee Tracking > Online Payments > click on the transaction from the list.

Online Payment details the Charged Amount and the Transaction Fee

So to summarize, here are the series of events based on this example:

  • School charges the parent $1000
  • Parent attempts to pay $1000
  • QuickSchools calculates a convenience fee of $40.90
  • QuickSchools sends charge of $1040.90 to Stripe
  • Stripe charges a convenience fee of $51.31 
  • Stripe deposits $989.59 into the schools bank account
  • QuickSchools updates the convenient fee to $51.31 to match Stripe

Allocating Incomplete Payments

When allocating payments, you can do this in two ways: (1) use the Auto-allocate button, or (2) manually allocate. Regardless of the method, it is important to ensure that the correct amount is allocated for each student. QuickSchools allocates the credit card fees automatically, leaving you to only allocate the remaining balance that was deposited to your bank account. In this case, you’re only able to allocate $989.59 that was received, instead of the original 1000.

Online Payments are automatically allocated to the Transaction Fee

As a result, even though the parent attempted to pay the full $1000 that was charged, since Stripe charged an additional fee for international payments, the parent is left with a small unpaid amount (in this case, $10.41). This amount is reflected in the student’s outstanding balance. 

Reconciling the Outstanding Balance

The Outstanding Amount that gets accrued over time due to this scenario needs to be reconciled in some way. Some options you can consider:

OPTION 1: Charge the parent: At the end of the school year, simply get the parent to pay the outstanding balance.

OPTION 2: Add a temporary charge to offset the transaction fee: Add an additional charge to the parent for using an international credit card. Then after the credit card is processed, remove the charge. You may end up with a surplus at the end of the year, which you can pay back as a refund or cash payment.

OPTION 3: Absorb be cost: You can adjust the original charge to the amount that was paid, or add a credit note to reduce the outstanding balance to zero.

Future Improvements

Ideally, QuickSchools would be able to accurately determine the transaction fees prior to charging the card. We were hoping that Stripe can provide an API that would calculate the transaction fee for us, based on the credit card being used. Sadly, Stripe only calculates the transaction fee when the credit card is being charged. Boo…

So we’re left with having to better estimate the transaction fee on our own, prior to sending the charge to Stripe. We could craft an algorithm that would estimate future transaction fees based on previous transaction fees, but this is a complicated affair, and would take time to refine.

Alternatively, we could build a mechanism that mimics OPTION 2 above, where the school can specify an additional fee to be applied for certain credit cards. The school would need to manage over-charges, but at least, the school would be in the position to issue refunds instead of asking for more money.

Regardless of the approach, any improvements to the software will need to be prioritized with all the other improvements being considered for our customers. 

If you have any questions or suggestions regarding this scenario, please contact us via chat or email us at

Leave a Reply