summaryrefslogtreecommitdiff
path: root/core/index.rst
blob: 2a8352db4577bbda3a30bafd647edf31669c0fb4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
..
  This file is part of GNU TALER.
  Copyright (C) 2014-2023 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/>

  @author Florian Dold
  @author Benedikt Muller
  @author Sree Harsha Totakura
  @author Marcello Stanisci
  @author Christian Grothoff

---------------------------
Core Protocol Specification
---------------------------

This chapter describes the APIs used in the GNU Taler project.  It includes
both APIs that are pre-existing as well as APIs specific to the project.

These *protocol specification* defines the HTTP-based, predominantly RESTful
interfaces between the core components of Taler.


.. toctree::
  :maxdepth: 2

  api-common
  api-error
  api-exchange
  api-merchant
  api-auditor
  api-sync
  api-taldir
  api-mailbox
  api-wire
  api-bank-merchant
  api-bank-integration
  api-bank-access

.. toctree::
  :hidden:

========
Overview
========

  * Taler Exchange Public API


    **Summary**: Public API for the payment service provider component of GNU Taler.

    **Providers**: GNU Taler Exchange

    **Consumers**: Wallet, Merchant
    
    :doc:`Docs <api-exchange>`


  * Taler Exchange Management API

    **Summary**: Management API for the payment service provider component of GNU Taler.

    **Providers**: GNU Taler Exchange

    **Consumers**: Exchange tooling (``taler-exchange-offline``), Auditor

    :doc:`Docs <api-exchange>`


  * Taler Merchant Backend Public API

    **Summary**: Allows communication between merchants and users' wallets.

    **Providers**: GNU Taler Merchant backend

    **Consumers**: Wallet

    :doc:`Docs <api-merchant>`

  * Taler Merchant Backend Private API

    **Summary**: Allows the merchant to manage Taler-based payments and related functionality.

    **Providers**: GNU Taler Merchant backend

    **Consumers**: Merchant's shop Website backend, Merchant PoS app, Merchant Backoffice UI

    :doc:`Docs <api-merchant>`

  * Taler Wallet Core API

    **Summary**: API to access functionality of the Taler Wallet service running locally on user's devices.

    **Providers**: wallet-core

    **Consumers**: UIs for the GNU Taler wallet

  * Taler Bank Integration API

    **Summary**: Offered by banks to provide the wallet/user with more information about ongoing withdrawals of Taler digital cash.

    **Providers**: Taler fakebank, LibEuFin demobank, Banks (that provide extra Taler support)

    **Consumers**: Taler Wallet

    :doc:`Docs <api-bank-integration>`

  * Taler Bank Access API

    **Summary**: Protocol to manage access to a bank account by the owner of the account. Allows access to account balance, transaction list, payment initiation.

    **Providers**: LibEuFin demobank, Taler Fakebank (partial)

    **Consumers**: Cashier App, demobank-ui

    :doc:`Docs <api-bank-access>`


  * Taler Bank Circuits API

    **Summary**: Allows management of bank user accounts in a regional currency bank deployment.

    **Providers**: LibEuFin Sandbox demobank

    **Consumers**: demobank-ui

  * Taler Wire Gateway API

    **Summary**: Allows the Taler Exchange to query incoming transactions and initiate payments with a protocol that abstracts away details of the underlying banking system.

    **Providers**: Taler fakebank, LibEuFin Nexus, Depoloymerization wire gateway

    **Consumers**: GNU Taler Exchange, Wire Auditor

    :doc:`Docs <api-wire>`

  * Taler Sync API

    **Summary**: Encrypted Data blob storage and retrieval API with payments for storage handled by GNU Taler payments.

    **Providers**: GNU Taler Sync service

    **Consumers**: Taler Wallet

    :doc:`Docs <api-sync>`

  * Taler Auditor API

    **Summary**: Reporting of certain transactions or potential problems directly to the auditor.

    **Providers**: GNU Taler Auditor service

    **Consumers**: GNU Taler Merchant, eventually Taler Wallet

    :doc:`Docs <api-auditor>`

  * Taldir API

    **Summary**: Looking up of Taler mailboxes associated with particular Internet service addresses.

    **Providers**: GNU TalDir service

    **Consumers**: GNU Taler Wallet

    :doc:`Docs <api-taldir>`

  * Taler Mailbox API

    **Summary**: Tansmission of encrypted payment messages between Taler wallets.

    **Providers**: GNU Taler Mailbox service

    **Consumers**: GNU Taler Wallet

    :doc:`Docs <api-mailbox>`

  * Anastasis Provider Public API

    **Summary**: Backup for secret splitting backup and recovery with GNU Anastasis providers.

    **Providers**: GNU Anastasis providers

    **Consumers**: Anastasis core client implementations (C implementation, TypeScript implementation)

  * Anastasis Reducer API

    **Summary**:  API used to step through the backup and recovery process of GNU Anastasis.

    **Providers**: Anastasis core client implementations (C implementation, TypeScript implementation)

    **Consumers**: Anastasis UIs (CLI, GTK, anastasis-webui)

  * LibEuFin Nexus API

    **Summary**: API used to configure and access LibEuFin nexus, a generic server that supports multiple protocols to access a bank account.

    **Providers**: LibEuFin Nexus service

    **Consumers**: ``libeufin-cli``, (future) LibEuFin Web UI

  * LibEuFin Sandbox API

    **Summary** API used to configure the LibEuFin sandbox, a simulator for various protocols related to core banking that would typically offered by banks.

    **Providers**: LibEuFin Sandbox service

    **Consumers**: ``libeufin-cli``, (future) LibEuFin Web UI

  * EBICS

    **Summary**: Allows businesses/banks/consumers to exchange data with a bank's core banking system.

    **Consumers**: LibEuFin Nexus

    **Providers**: LibEuFin Sandbox, Banks