commit e4025cd939aced9de6654a59d15d4a2dd16e7996
parent 1115588a771ce842472ddbdb1ff13ece93237f20
Author: Antoine A <>
Date: Thu, 15 Jan 2026 19:04:32 +0100
Add new Taler Account Directory API
Diffstat:
2 files changed, 86 insertions(+), 0 deletions(-)
diff --git a/core/api-bank-account-directory.rst b/core/api-bank-account-directory.rst
@@ -0,0 +1,85 @@
+..
+ This file is part of GNU TALER.
+
+ Copyright (C) 2026 Taler Systems SA
+
+ TALER is free software; you can redistribute it and/or modify it under the
+ terms of the GNU Affero General Public License as published by the Free Software
+ Foundation; either version 2.1, or (at your option) any later version.
+
+ TALER is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
+
+ You should have received a copy of the GNU Affero General Public License along with
+ TALER; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
+
+===========================
+Taler Account Directory API
+===========================
+
+This chapter describes the account discovery API that wallets or other clients can use to help the user find their payto URI.
+
+.. http:get:: /config
+
+ Return the protocol version and configuration information about the bank.
+ This specification corresponds to ``current`` protocol being **v1**.
+
+ **Response:**
+
+ :http:statuscode:`200 OK`:
+ The exchange responds with a `AccountDirectoryConfig` object. This request should
+ virtually always be successful.
+
+ **Details:**
+
+ .. ts:def:: AccountDirectoryConfig
+
+ interface AccountDirectoryConfig {
+ // Name of the API.
+ name: "taler-bank-account-directory";
+
+ // libtool-style representation of the Bank protocol version, see
+ // https://www.gnu.org/software/libtool/manual/html_node/Versioning.html#Versioning
+ //
+ // The format is "current:revision:age".
+ version: string;
+
+ // URN of the implementation (needed to interpret 'revision' in version).
+ implementation: string;
+ }
+
+.. http:get:: /search
+
+ Search for user accounts from user query.
+
+ **Request:**
+
+ :query keywords:
+ Textual search keywords. The fields matched depends on the bank. It can be a name, a login or any other identifier.
+
+ **Response:**
+
+ :http:statuscode:`200 OK`:
+ Response is a `Accounts`.
+ :http:statuscode:`204 No content`:
+ No accounts match this query.
+
+
+ **Details:**
+
+ .. ts:def:: Accounts
+
+ interface Accounts {
+ accounts: Account[];
+ }
+
+ .. ts:def:: Account
+
+ interface Account {
+ // Formatted user information to be displayed.
+ display: string;
+
+ // Full payto URI of this bank account.
+ payto_uri: string;
+ }
diff --git a/core/index-bank-apis.rst b/core/index-bank-apis.rst
@@ -33,6 +33,7 @@ Bank RESTful APIs
api-bank-revenue
api-bank-integration
api-bank-conversion-info
+ api-bank-account-directory
api-terminal
.. toctree::