commit 87265fdf985cc48172ede01b8083414dbb75f94b
parent added705853e4e4097d146f67881c064d24f76b6
Author: Florian Dold <florian@dold.me>
Date: Fri, 9 Feb 2024 11:36:30 +0100
improve bank integration docs based on feedback from Antoine and Christian
Diffstat:
1 file changed, 32 insertions(+), 12 deletions(-)
diff --git a/core/intro-bank-apis.rst b/core/intro-bank-apis.rst
@@ -34,8 +34,10 @@ Improved Withdrawal Process
In principle, any typical account-based (core-)banking system can be used as
the underlying account-based financial layer for GNU Taler.
-However, without extra support from the bank, the user experience for Taler
-withdrawals is not ideal.
+However, without extra support from the bank, withdrawals can be difficult for
+unexperienced users. Thus to make sure that a Taler deployment can achieve
+mass adoption from non-technical users, extra integration by the bank / core
+banking system should be provided.
Withdrawals without any extra support from the core banking system require the
user to make a transaction to a particular bank account (i.e. the exchange's
@@ -44,10 +46,10 @@ This identifier is generated by the user's wallet when initiating a withdrawal
from the wallet application. If the user misspells the identifier, the payment
will be sent back automatically by the exchange.
-However, the wallet has no information about whether bank the transfer was
-already made by the user or if it was even made correctly. This makes it hard
-to show accurate information to the user about the status of withdrawing
-digital cash into their Taler wallet.
+However, until the wire transfer is successfully completed, the wallet has no
+information about whether the transfer was already made by the user or if it
+was even made correctly. This makes it hard to show accurate information to
+the user about the status of withdrawing digital cash into their Taler wallet.
Withdrawal Bank-Integration API
@@ -90,7 +92,8 @@ Payto-URI Integration
=====================
When initiating a withdrawal from the Taler wallet, the wallet can generate a
-payto:// link or QR code with the payment information necessary to make a
+payto:// link or QR code (see `RFC 8905 <https://www.rfc-editor.org/rfc/rfc8905.txt>`_)
+with the payment information necessary to make a
credit transfer to the exchange's settlement account.
Banking apps may provide integration here simply by handling payto:// URIs.
@@ -106,9 +109,26 @@ Future: Intent-Based Integration on Android
(This type of integration is currently not specified, but planned for the future.)
-On the Android platform, applications can communicate via Intents. That would
-allow the Taler wallet to open a credit transfer dialog in a supported banking
-app to fund a withdrawal. The banking app can send the status of the credit
-transfer (confirmed/aborted by the user) back to the wallet, which can then
-show more accurate status information about the withdrawal to the user.
+On the Android platform, applications can communicate via
+`Intents <https://developer.android.com/guide/components/intents-filters>`_.
+That would allow the Taler wallet to open a credit transfer dialog in a
+supported banking app to fund a withdrawal. The banking app can send the
+status of the credit transfer (confirmed/aborted by the user) back to the
+wallet, which can then show more accurate status information about the
+withdrawal to the user.
+
+
+Integration for Merchants
+#########################
+
+The Taler merchant backend has the option to connect to what
+we call the :doc:`Bank Revenue API <api-bank-revenue>`.
+
+A core banking system may provide this API to merchants that have a business
+account at the that bank. The API provides read-only access to incoming
+transactions on the merchant bank account.
+It allows merchants to easily and automatically reconcile incoming bank
+transfers from the Taler exchange's settlement account with the respective
+Taler payments. Usually multiple Taler payments are aggregated into one larger
+payment in the underlying banking layer.