commit 8432d087573a2176e44747144c8c336b3336681e
parent 7dbdc36af26aeb940ceb9badce3c6b4e9b287019
Author: Joel-Haeberli <haebu@rubigen.ch>
Date: Fri, 31 May 2024 10:45:06 +0200
docs: fees
Diffstat:
3 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/docs/content/implementation/a-c2ec.tex b/docs/content/implementation/a-c2ec.tex
@@ -78,4 +78,6 @@ The withdrawal can only be aborted, when it is not yet confirmed by the confirma
\include{content/implementation/a-processes}
\newpage
-\include{content/implementation/a-providers}
-\ No newline at end of file
+\include{content/implementation/a-providers}
+
+\include{content/implementation/a-fees}
+\ No newline at end of file
diff --git a/docs/content/implementation/a-fees.tex b/docs/content/implementation/a-fees.tex
@@ -0,0 +1,19 @@
+\subsection{Fees}
+
+During the implementation it became obvious that there are several possible fee models, when thinking about the general case. Using a payment service provider to withdraw money, is special because if you want to withdraw 10 CHF then you want 10 CHF in your wallet and not 10 CHF minus the fees. Think of buying a bar of chocolate. You don't care if you pay 10 CHF or 10.10 CHF because in the end you get what you want - a bar of chocolate. When withdrawing money using the credit card you want the amount in your wallet you are asking for - not less. The fees must be transparently communicated to the customer, that they understand why the authorized amount will be higher than the amount they are asking to withdraw. The fees must be calculated before hand. This leads to different models to add fees. Following four models were discovered during a brainstorming session:
+
+\subsubsection{Model 1 - Exchange Operator Fees}
+
+The payment system provider will charge its business users in the background and expects the Exchange operator to calculate the fees to cover its costs. This means that the Exchange operator will specify its fees by approximating its costs to operate and maintain C2EC.
+
+\subsubsection{Model 2 - Payment Service Provider Fees}
+
+The provider advertises the fees beforehand. The withdrawing terminal adds the fees before the transaction and tells them to C2EC. C2EC is not charging fees. In this case it must be checked during the confirmation that the amount confirmed is at least as big as the fees advertised to C2EC plus the amount to withdraw.
+
+\subsubsection{Model 3 - Payment Service Provider and Exchange Operator Fees}
+
+The combination of the first two models. The Exchange operator decides to add fees to withdrawals and the payment service provider adds fees as well. The model must combine the checks of model one and two.
+
+\subsubsection{Model 4 - Payment Service Provider "Late Fees"}
+
+A payment service provider might add fees but for some reason cannot tell them to C2EC before authorizing the transaction. In this case the confirmation process of the payment service provider needs to make sure that the fees are substracted from the withdrawal amount. Otherwise the Exchange operator must cover the costs, which will lead to loss of money. This must be prevented. This fee model must be prevented when possible, because it leads to a bad user-experience. The amount which can be withdrawn will be lower than the amount authorized.
diff --git a/docs/thesis.pdf b/docs/thesis.pdf
Binary files differ.