summaryrefslogtreecommitdiff
path: root/texinfo/taler-bank.texi
blob: 11f7595fd5f15da201a08b731ada87f4aa85b288 (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
\input texinfo   @c -*-texinfo-*-
@c %**start of header
@setfilename taler-bank.info
@documentencoding UTF-8
@ifinfo
@*Generated by Sphinx 3.4.3.@*
@end ifinfo
@settitle Taler Bank Manual
@defindex ge
@paragraphindent 0
@exampleindent 4
@finalout
@dircategory CATEGORY
@direntry
* MENU ENTRY: (taler-bank.info). DESCRIPTION
@end direntry

@definfoenclose strong,`,'
@definfoenclose emph,`,'
@c %**end of header

@copying
@quotation
GNU Taler 0.9.0, Jul 06, 2022

GNU Taler team

Copyright @copyright{} 2014-2022 Taler Systems SA (GPLv3+ or GFDL 1.3+)
@end quotation

@end copying

@titlepage
@title Taler Bank Manual
@insertcopying
@end titlepage
@contents

@c %** start of user preamble

@c %** end of user preamble

@ifnottex
@node Top
@top Taler Bank Manual
@insertcopying
@end ifnottex

@c %**start of body
@anchor{taler-bank-manual doc}@anchor{0}
@menu
* Introduction:: 
* Headless Testing API Reference:: 

@detailmenu
 --- The Detailed Node Listing ---

Introduction

* About GNU Taler:: 
* About this manual:: 

@end detailmenu
@end menu

@node Introduction,Headless Testing API Reference,Top,Top
@anchor{taler-bank-manual gnu-taler-bank-manual}@anchor{1}@anchor{taler-bank-manual introduction}@anchor{2}
@chapter Introduction


@menu
* About GNU Taler:: 
* About this manual:: 

@end menu

@node About GNU Taler,About this manual,,Introduction
@anchor{taler-bank-manual about-gnu-taler}@anchor{3}
@section About GNU Taler


GNU Taler is an open protocol for an electronic payment system with a
free software reference implementation. GNU Taler offers secure, fast
and easy payment processing using well understood cryptographic
techniques. GNU Taler allows customers to remain anonymous, while
ensuring that merchants can be held accountable by governments. Hence,
GNU Taler is compatible with anti-money-laundering (AML) and
know-your-customer (KYC) regulation, as well as data protection
regulation (such as GDPR).

@node About this manual,,About GNU Taler,Introduction
@anchor{taler-bank-manual about-this-manual}@anchor{4}
@section About this manual


This manual documents how the demonstrator bank interoperates with the
other GNU Taler components. The demonstrator bank implements a simple
closed banking system for the purpose of illustrating how GNU Taler
works in the Taler demo. It could also be used as a starting point for a
local/regional currency. Finally, “real” banks might use it as a
reference implementation for a tight integration with the GNU Taler
wallet.

@node Headless Testing API Reference,,Introduction,Top
@anchor{taler-bank-manual headless-testing-api-reference}@anchor{5}
@chapter Headless Testing API Reference


The demonstrator bank offers the following APIs to allow automated testing.  These APIs should
be switched off during a production deployment.
@anchor{taler-bank-manual bank-register}@anchor{6}
@anchor{taler-bank-manual post--register}@anchor{7}
@deffn {HTTP Post} POST /register

This API provides programmatic user registration at the bank.

@strong{Request} The body of this request must have the format of a
@ref{8,,BankRegistrationRequest}.

@strong{Response}


@table @asis

@item 200 OK@footnote{http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.2.1}:

The new user has been correctly registered.

@item 409 Conflict@footnote{http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.10}:

The username requested by the client is not available anymore.

@item 400 Bad request@footnote{http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.1}:

Unacceptable characters were given for the username. See
@indicateurl{https://docs.djangoproject.com/en/2.2/ref/contrib/auth/#django.contrib.auth.models.User.username}
for the accepted character set.
@end table
@end deffn

@strong{Details}

@example
interface BankRegistrationRequest @{

  // Username to use for registration; max length is 150 chars.
  username: string;

  // Password to associate with the username.  Any characters and
  // any length are valid; next releases will enforce a minimum length
  // and a safer characters choice.
  password: string;
@}
@end example
@anchor{8}@w{                              }
@anchor{taler-bank-manual tsref-type-BankRegistrationRequest}@w{                              }

@c %**end of body
@bye