commit 211cccee684dc8d4eb4cea2e3d9b76a8a1d24108
parent 15bf99f2cfbe516633642b01ec1b6e1721868312
Author: Christian Grothoff <christian@grothoff.org>
Date: Sat, 7 Mar 2026 09:58:28 +0100
expand /config with spa option data (#11200)
Diffstat:
3 files changed, 53 insertions(+), 3 deletions(-)
diff --git a/core/api-merchant.rst b/core/api-merchant.rst
@@ -54,7 +54,7 @@ The current protocol version is **v27**.
* ``v26``: adds unclaim endpoint, enhanced settlement reporting
* ``v27``: adds various fields to a few endpoints
* ``v28``: adds the ``/kycauth`` endpoint for wire transfer subject
- shortening during KYC Auth wire transfers
+ shortening during KYC Auth wire transfers and expands ``/config``.
**Upcoming versions:**
diff --git a/core/merchant/get-config.rst b/core/merchant/get-config.rst
@@ -1,7 +1,6 @@
.. http:get:: /config
Return the protocol version and currency supported by this merchant backend.
- This specification corresponds to ``current`` protocol being version **v27**.
**Response:**
@@ -133,6 +132,11 @@
// deadline should be rounded up to.
// @since **v23**
default_wire_transfer_rounding_interval: RoundingInterval;
+
+ // General object of SPA options from the
+ // ``GLOBAL_SPA_CONFIG_DATA`` configuration option.
+ // @since **v28**.
+ spa_options?: SpaConfigOptions;
}
.. ts:def:: TanChannel
@@ -144,7 +148,7 @@
.. ts:def:: RoundingInterval
- enum RoundingInterval {
+ enum RoundingInterval {
NONE = "NONE",
SECOND = "SECOND",
MINUTE = "MINUTE",
@@ -174,3 +178,27 @@
// key for us to trust it.
master_pub: EddsaPublicKey;
}
+
+ .. ts:def:: SpaConfigOptions
+
+ // Note that this object could contain many more fields,
+ // depending on the SPA. We describe here only some of the
+ // canonical fields that are supported by the default SPA.
+ interface SpaConfigOptions {
+
+ // How to contact the operator.
+ contact_email?: string;
+
+ // How to contact the operator.
+ contact_phone?: string;
+
+ // Where to find support.
+ support_url?: string;
+
+ // Legal address of the operator.
+ address?: Location;
+
+ // Legal tax information about the operator.
+ tax_info?: string;
+
+ }
diff --git a/manpages/taler-merchant.conf.5.rst b/manpages/taler-merchant.conf.5.rst
@@ -236,6 +236,28 @@ DEFAULT_PERSONA
"point-of-sale", "digital-publishing", "e-commerce" and "developer".
Defaults to "expert", which means all stable features are enabled.
+GLOBAL_SPA_CONFIG_DATA
+ Additional configuration fields to pass to the SPA. This must be
+ a JSON object mapping keys to values. The main configuration keys
+ used are "contact_email", "contact_phone", "tax_info", "address"
+ and "support_url". For example, typical configuration might be::
+
+ '{"contact_email":"contact@example.com",
+ "support_url":"https://tutorials.taler.net/",
+ "tax_info":"VAT number: #12345678",
+ "address":
+ {"name":"Acme Inc",
+ "street":"Acme St. 42",
+ "post_code":"1234",
+ "city":"Acme Town",
+ "country":"Acme Land"}
+ }'
+
+ See https://docs.taler.net/core/api-merchant.html#tsref-type-Location
+ for details on the "address" field. See also in the REST API specification
+ for ``/config`` the entry for ``SpaConfigOptions`` for other
+ SPA configuration options.
+
PAYMENT_TARGET_REGEX
POSIX regular expression imposing additional restrictions on the "payto://"-URIs allowed
for bank accounts of instances of this system. For example, "payto://iban/CH.*" would