aboutsummaryrefslogtreecommitdiff
path: root/gnu-taler-error-codes/registry.rec
diff options
context:
space:
mode:
Diffstat (limited to 'gnu-taler-error-codes/registry.rec')
-rw-r--r--gnu-taler-error-codes/registry.rec1571
1 files changed, 1377 insertions, 194 deletions
diff --git a/gnu-taler-error-codes/registry.rec b/gnu-taler-error-codes/registry.rec
index b40b990..b9be57d 100644
--- a/gnu-taler-error-codes/registry.rec
+++ b/gnu-taler-error-codes/registry.rec
@@ -4,7 +4,9 @@
4# 4#
5%rec: TalerErrorCode 5%rec: TalerErrorCode
6%key: Value 6%key: Value
7%singular: Value
7%typedef: ValueRange_t range 0 9999 8%typedef: ValueRange_t range 0 9999
9%typedef: ValueRange_t regexp /^[0123456789][0123456789][0123456789][0123456789]$/
8%constraint: ( Value < 100 ) || ( Value > 999 ) 10%constraint: ( Value < 100 ) || ( Value > 999 )
9%type: Value ValueRange_t 11%type: Value ValueRange_t
10%mandatory: Value 12%mandatory: Value
@@ -15,194 +17,256 @@
15%type: Name Name_t 17%type: Name Name_t
16%unique: Name 18%unique: Name
17%mandatory: Name 19%mandatory: Name
20%singular: Name
18# A status of 0 means not an HTTP status (i.e. created client-side) 21# A status of 0 means not an HTTP status (i.e. created client-side)
19%typedef: HttpStatus_t range 0 599
20%type: HttpStatus rec HttpStatusCode 22%type: HttpStatus rec HttpStatusCode
21%mandatory: HttpStatus 23%mandatory: HttpStatus
22%sort: Value 24%sort: Value
23 25
24# 0 - 99: Reserved for GENERIC error codes 26# 0 - 99: Reserved for GENERIC error codes
25 27
26Value: 0 28Value: 0000
27Name: NONE 29Name: NONE
28Description: Special code to indicate success (no error). 30Description: Special code to indicate success (no error).
29HttpStatus: 0 31HttpStatus: 0
30 32
31# We could not get the error code. 33# We could not get the error code.
32 34Value: 0001
33Value: 1
34Name: INVALID 35Name: INVALID
35Description: A non-integer error code was returned in the JSON response. 36Description: An error response did not include an error code in the format expected by the client. Most likely, the server does not speak the GNU Taler protocol. Check the URL and/or the network connection to the server.
36HttpStatus: 0 37HttpStatus: 0
37 38
39Value: 0002
40Name: GENERIC_CLIENT_INTERNAL_ERROR
41Description: An internal failure happened on the client side. Details should be in the local logs. Check if you are using the latest available version or file a report with the developers.
42HttpStatus: 0
38 43
39# Fundamental problems detected client-side (10-19) 44# Fundamental problems detected client-side (10-19)
40 45
41Value: 10 46Value: 0010
42Name: GENERIC_INVALID_RESPONSE 47Name: GENERIC_INVALID_RESPONSE
43Description: The response we got from the server was not even in JSON format. 48Description: The response we got from the server was not in the expected format. Most likely, the server does not speak the GNU Taler protocol. Check the URL and/or the network connection to the server.
44HttpStatus: 0 49HttpStatus: 0
45 50
46Value: 11 51Value: 0011
47Name: GENERIC_TIMEOUT 52Name: GENERIC_TIMEOUT
48Description: An operation timed out. 53Description: The operation timed out. Trying again might help. Check the network connection.
49HttpStatus: 0 54HttpStatus: 0
50 55
51Value: 12 56Value: 0012
52Name: GENERIC_VERSION_MALFORMED 57Name: GENERIC_VERSION_MALFORMED
53Description: The version string given does not follow the expected CURRENT:REVISION:AGE Format. 58Description: The protocol version given by the server does not follow the required format. Most likely, the server does not speak the GNU Taler protocol. Check the URL and/or the network connection to the server.
54HttpStatus: 0 59HttpStatus: 0
55 60
56Value: 13 61Value: 0013
57Name: GENERIC_REPLY_MALFORMED 62Name: GENERIC_REPLY_MALFORMED
58Description: The service responded with a reply that was in JSON but did not satsify the protocol. Note that invalid cryptographic signatures should have signature-specific error codes. 63Description: The service responded with a reply that was in the right data format, but the content did not satisfy the protocol. Please file a bug report.
59HttpStatus: 0 64HttpStatus: 0
60 65
61Value: 14 66Value: 0014
62Name: GENERIC_CONFIGURATION_INVALID 67Name: GENERIC_CONFIGURATION_INVALID
63Description: There is an error in the client-side configuration, for example the base URL specified is malformed. 68Description: There is an error in the client-side configuration, for example an option is set to an invalid value. Check the logs and fix the local configuration.
64HttpStatus: 0 69HttpStatus: 0
65 70
71Value: 0015
72Name: GENERIC_UNEXPECTED_REQUEST_ERROR
73Description: The client made a request to a service, but received an error response it does not know how to handle. Please file a bug report.
74HttpStatus: 0
75
76Value: 0016
77Name: GENERIC_TOKEN_PERMISSION_INSUFFICIENT
78Description: The token used by the client to authorize the request does not grant the required permissions for the request. Check the requirements and obtain a suitable authorization token to proceed.
79HttpStatus: 403
80
66# Fundamental client-side protocol problems (20-29) 81# Fundamental client-side protocol problems (20-29)
67# (fundamental: cannot be helped, client is very broken) 82# (fundamental: cannot be helped, client is very broken)
68 83
69Value: 20 84Value: 0020
70Name: GENERIC_METHOD_INVALID 85Name: GENERIC_METHOD_INVALID
71Description: The HTTP method used is invalid for this endpoint. 86Description: The HTTP method used is invalid for this endpoint. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.
72HttpStatus: 405 87HttpStatus: 405
73 88
74Value: 21 89Value: 0021
75Name: GENERIC_ENDPOINT_UNKNOWN 90Name: GENERIC_ENDPOINT_UNKNOWN
76Description: There is no endpoint defined for the URL provided by the client. 91Description: There is no endpoint defined for the URL provided by the client. Check if you used the correct URL and/or file a report with the developers of the client software.
77HttpStatus: 404 92HttpStatus: 404
78 93
79Value: 22 94Value: 0022
80Name: GENERIC_JSON_INVALID 95Name: GENERIC_JSON_INVALID
81Description: The JSON in the client's request was malformed (generic parse error). 96Description: The JSON in the client's request was malformed. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.
82HttpStatus: 400 97HttpStatus: 400
83 98
84Value: 23 99Value: 0023
85Name: GENERIC_HTTP_HEADERS_MALFORMED 100Name: GENERIC_HTTP_HEADERS_MALFORMED
86Description: Some of the HTTP headers provided by the client caused the server to not be able to handle the request. 101Description: Some of the HTTP headers provided by the client were malformed and caused the server to not be able to handle the request. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.
87HttpStatus: 400 102HttpStatus: 400
88 103
89Value: 24 104Value: 0024
90Name: GENERIC_PAYTO_URI_MALFORMED 105Name: GENERIC_PAYTO_URI_MALFORMED
91Description: The payto:// URI provided by the client is malformed. 106Description: The payto:// URI provided by the client is malformed. Check that you are using the correct syntax as of RFC 8905 and/or that you entered the bank account number correctly.
92HttpStatus: 400 107HttpStatus: 400
93 108
94Value: 25 109Value: 0025
95Name: GENERIC_PARAMETER_MISSING 110Name: GENERIC_PARAMETER_MISSING
96Description: A required parameter in the request was missing. 111Description: A required parameter in the request was missing. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.
97HttpStatus: 400 112HttpStatus: 400
98 113
99Value: 26 114Value: 0026
100Name: GENERIC_PARAMETER_MALFORMED 115Name: GENERIC_PARAMETER_MALFORMED
101Description: A parameter in the request was malformed. 116Description: A parameter in the request was malformed. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.
117HttpStatus: 400
118
119Value: 0027
120Name: GENERIC_RESERVE_PUB_MALFORMED
121Description: The reserve public key was malformed.
102HttpStatus: 400 122HttpStatus: 400
123FIXME: Fold with 26?
103 124
125Value: 0028
126Name: GENERIC_COMPRESSION_INVALID
127Description: The body in the request could not be decompressed by the server. This is likely a bug in the client implementation. Check if you are using the latest available version and/or file a report with the developers.
128HttpStatus: 400
104 129
105# Circumstantial client-side protocol problems (30-39) 130# Circumstantial client-side protocol problems (30-39)
106# (Circumstantial == may work with another server, but not this one) 131# (Circumstantial == may work with another server, but not this one)
107 132
108Value: 30 133Value: 0030
109Name: GENERIC_CURRENCY_MISMATCH 134Name: GENERIC_CURRENCY_MISMATCH
110Description: The currencies involved in the operation do not match. 135Description: The currency involved in the operation is not acceptable for this server. Check your configuration and make sure the currency specified for a given service provider is one of the currencies supported by that provider.
111HttpStatus: 400 136HttpStatus: 400
112 137
113Value: 31 138Value: 0031
114Name: GENERIC_URI_TOO_LONG 139Name: GENERIC_URI_TOO_LONG
115Description: The URI is longer than the longest URI the HTTP server is willing to parse. 140Description: The URI is longer than the longest URI the HTTP server is willing to parse. If you believe this was a legitimate request, contact the server administrators and/or the software developers to increase the limit.
116HttpStatus: 414 141HttpStatus: 414
117 142
118Value: 32 143Value: 0032
119Name: GENERIC_UPLOAD_EXCEEDS_LIMIT 144Name: GENERIC_UPLOAD_EXCEEDS_LIMIT
120Description: The body is too large to be permissible for the endpoint. 145Description: The body is too large to be permissible for the endpoint. If you believe this was a legitimate request, contact the server administrators and/or the software developers to increase the limit.
121HttpStatus: 413 146HttpStatus: 413
122 147
123 148
124# 40-49: available for future use 149# 40-49: access control issues
150Value: 0040
151Name: GENERIC_UNAUTHORIZED
152Description: The service refused the request due to lack of proper authorization.
153HttpStatus: 401
125 154
155Value: 0041
156Name: GENERIC_TOKEN_UNKNOWN
157Description: The service refused the request as the given authorization token is unknown.
158HttpStatus: 401
126 159
160Value: 0042
161Name: GENERIC_TOKEN_EXPIRED
162Description: The service refused the request as the given authorization token expired.
163HttpStatus: 401
164
165Value: 0043
166Name: GENERIC_TOKEN_MALFORMED
167Description: The service refused the request as the given authorization token is malformed.
168HttpStatus: 401
169
170Value: 0044
171Name: GENERIC_FORBIDDEN
172Description: The service refused the request due to lack of proper rights on the resource.
173HttpStatus: 403
127 174
128# Server-side database problems (50-59) 175# Server-side database problems (50-59)
129 176
130Value: 50 177Value: 0050
131Name: GENERIC_DB_SETUP_FAILED 178Name: GENERIC_DB_SETUP_FAILED
132Description: The service failed initialize its connection to the database. 179Description: The service failed initialize its connection to the database. The system administrator should check that the service has permissions to access the database and that the database is running.
133HttpStatus: 500 180HttpStatus: 500
134 181
135Value: 51 182Value: 0051
136Name: GENERIC_DB_START_FAILED 183Name: GENERIC_DB_START_FAILED
137Description: The service encountered an error event to just start the database transaction. 184Description: The service encountered an error event to just start the database transaction. The system administrator should check that the database is running.
138HttpStatus: 500 185HttpStatus: 500
139 186
140Value: 52 187Value: 0052
141Name: GENERIC_DB_STORE_FAILED 188Name: GENERIC_DB_STORE_FAILED
142Description: The service failed to store information in its database. 189Description: The service failed to store information in its database. The system administrator should check that the database is running and review the service logs.
143HttpStatus: 500 190HttpStatus: 500
144 191
145Value: 53 192Value: 0053
146Name: GENERIC_DB_FETCH_FAILED 193Name: GENERIC_DB_FETCH_FAILED
147Description: The service failed to fetch information from its database. 194Description: The service failed to fetch information from its database. The system administrator should check that the database is running and review the service logs.
148HttpStatus: 500 195HttpStatus: 500
149 196
150Value: 54 197Value: 0054
151Name: GENERIC_DB_COMMIT_FAILED 198Name: GENERIC_DB_COMMIT_FAILED
152Description: The service encountered an error event to commit the database transaction (hard, unrecoverable error). 199Description: The service encountered an unrecoverable error trying to commit a transaction to the database. The system administrator should check that the database is running and review the service logs.
153HttpStatus: 500 200HttpStatus: 500
154 201
155Value: 55 202Value: 0055
156Name: GENERIC_DB_SOFT_FAILURE 203Name: GENERIC_DB_SOFT_FAILURE
157Description: The service encountered an error event to commit the database transaction, even after repeatedly retrying it there was always a conflicting transaction. (This indicates a repeated serialization error; should only happen if some client maliciously tries to create conflicting concurrent transactions.) 204Description: The service encountered an error event to commit the database transaction, even after repeatedly retrying it there was always a conflicting transaction. This indicates a repeated serialization error; it should only happen if some client maliciously tries to create conflicting concurrent transactions. It could also be a sign of a missing index. Check if you are using the latest available version and/or file a report with the developers.
158HttpStatus: 500 205HttpStatus: 500
159 206
160Value: 56 207Value: 0056
161Name: GENERIC_DB_INVARIANT_FAILURE 208Name: GENERIC_DB_INVARIANT_FAILURE
162Description: The service's database is inconsistent and violates service-internal invariants. 209Description: The service's database is inconsistent and violates service-internal invariants. Check if you are using the latest available version and/or file a report with the developers.
163HttpStatus: 500 210HttpStatus: 500
164 211
165 212
166# Server-side computational problems (60-69) 213# Server-side computational problems (60-69)
167 214
168Value: 60 215Value: 0060
169Name: GENERIC_INTERNAL_INVARIANT_FAILURE 216Name: GENERIC_INTERNAL_INVARIANT_FAILURE
170Description: The HTTP server experienced an internal invariant failure (bug). 217Description: The HTTP server experienced an internal invariant failure (bug). Check if you are using the latest available version and/or file a report with the developers.
171HttpStatus: 500 218HttpStatus: 500
172 219
173Value: 61 220Value: 0061
174Name: GENERIC_FAILED_COMPUTE_JSON_HASH 221Name: GENERIC_FAILED_COMPUTE_JSON_HASH
175Description: The service could not compute a cryptographic hash over some JSON value. 222Description: The service could not compute a cryptographic hash over some JSON value. Check if you are using the latest available version and/or file a report with the developers.
223HttpStatus: 500
224
225Value: 0062
226Name: GENERIC_FAILED_COMPUTE_AMOUNT
227Description: The service could not compute an amount. Check if you are using the latest available version and/or file a report with the developers.
176HttpStatus: 500 228HttpStatus: 500
177 229
178 230
179# Server-side resource problems (70-79) 231# Server-side resource problems (70-79)
180 232
181Value: 70 233Value: 0070
182Name: GENERIC_PARSER_OUT_OF_MEMORY 234Name: GENERIC_PARSER_OUT_OF_MEMORY
183Description: The HTTP server had insufficient memory to parse the request. 235Description: The HTTP server had insufficient memory to parse the request. Restarting services periodically can help, especially if Postgres is using excessive amounts of memory. Check with the system administrator to investigate.
184HttpStatus: 500 236HttpStatus: 500
185 237
186Value: 71 238Value: 0071
187Name: GENERIC_ALLOCATION_FAILURE 239Name: GENERIC_ALLOCATION_FAILURE
188Description: The HTTP server failed to allocate memory. 240Description: The HTTP server failed to allocate memory. Restarting services periodically can help, especially if Postgres is using excessive amounts of memory. Check with the system administrator to investigate.
189HttpStatus: 500 241HttpStatus: 500
190 242
191Value: 72 243Value: 0072
192Name: GENERIC_JSON_ALLOCATION_FAILURE 244Name: GENERIC_JSON_ALLOCATION_FAILURE
193Description: The HTTP server failed to allocate memory for building JSON reply. 245Description: The HTTP server failed to allocate memory for building JSON reply. Restarting services periodically can help, especially if Postgres is using excessive amounts of memory. Check with the system administrator to investigate.
194HttpStatus: 500 246HttpStatus: 500
195 247
196Value: 73 248Value: 0073
197Name: GENERIC_CURL_ALLOCATION_FAILURE 249Name: GENERIC_CURL_ALLOCATION_FAILURE
198Description: The HTTP server failed to allocate memory for making a CURL request. 250Description: The HTTP server failed to allocate memory for making a CURL request. Restarting services periodically can help, especially if Postgres is using excessive amounts of memory. Check with the system administrator to investigate.
199HttpStatus: 500 251HttpStatus: 500
200 252
201# 80-99: available for future use 253Value: 0074
254Name: GENERIC_FAILED_TO_LOAD_TEMPLATE
255Description: The backend could not locate a required template to generate an HTML reply. The system administrator should check if the resource files are installed in the correct location and are readable to the service.
256HttpStatus: 500
257
258Value: 0075
259Name: GENERIC_FAILED_TO_EXPAND_TEMPLATE
260Description: The backend could not expand the template to generate an HTML reply. The system administrator should investigate the logs and check if the templates are well-formed.
261HttpStatus: 500
262
263
202 264
265# 0080-0099: available for future use
203 266
204 267
205# 100 - 999: VERBOTEN due to confusion with HTTP status codes (at least 100-599). 268
269# 0100 - 0999: VERBOTEN due to confusion with HTTP status codes (at least 100-599).
206 270
207# 1000 - 1999: Reserved for exchange 271# 1000 - 1999: Reserved for exchange
208# 1000 - 1099: Reserved for EXCHANGE_GENERIC 272# 1000 - 1099: Reserved for EXCHANGE_GENERIC
@@ -245,7 +309,7 @@ HttpStatus: 403
245Value: 1007 309Value: 1007
246Name: EXCHANGE_GENERIC_KEYS_MISSING 310Name: EXCHANGE_GENERIC_KEYS_MISSING
247Description: The exchange failed to perform the operation as it could not find the private keys. This is a problem with the exchange setup, not with the client's request. 311Description: The exchange failed to perform the operation as it could not find the private keys. This is a problem with the exchange setup, not with the client's request.
248HttpStatus: 500 312HttpStatus: 503
249 313
250Value: 1008 314Value: 1008
251Name: EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE 315Name: EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE
@@ -262,6 +326,142 @@ Name: EXCHANGE_GENERIC_DENOMINATION_REVOKED
262Description: Denomination key of the coin has been revoked. 326Description: Denomination key of the coin has been revoked.
263HttpStatus: 410 327HttpStatus: 410
264 328
329Value: 1011
330Name: EXCHANGE_GENERIC_SECMOD_TIMEOUT
331Description: An operation where the exchange interacted with a security module timed out.
332HttpStatus: 500
333
334Value: 1012
335Name: EXCHANGE_GENERIC_INSUFFICIENT_FUNDS
336Description: The respective coin did not have sufficient residual value for the operation. The "history" in this response provides the "residual_value" of the coin, which may be less than its "original_value".
337HttpStatus: 409
338
339Value: 1013
340Name: EXCHANGE_GENERIC_COIN_HISTORY_COMPUTATION_FAILED
341Description: The exchange had an internal error reconstructing the transaction history of the coin that was being processed.
342HttpStatus: 500
343
344Value: 1014
345Name: EXCHANGE_GENERIC_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS
346Description: The exchange failed to obtain the transaction history of the given coin from the database while generating an insufficient funds errors.
347HttpStatus: 500
348
349Value: 1015
350Name: EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH
351Description: The same coin was already used with a different age hash previously.
352HttpStatus: 409
353
354Value: 1016
355Name: EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION
356Description: The requested operation is not valid for the cipher used by the selected denomination.
357HttpStatus: 400
358
359Value: 1017
360Name: EXCHANGE_GENERIC_CIPHER_MISMATCH
361Description: The provided arguments for the operation use inconsistent ciphers.
362HttpStatus: 400
363
364Value: 1018
365Name: EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE
366Description: The number of denominations specified in the request exceeds the limit of the exchange.
367HttpStatus: 400
368
369Value: 1019
370Name: EXCHANGE_GENERIC_COIN_UNKNOWN
371Description: The coin is not known to the exchange (yet).
372HttpStatus: 404
373
374Value: 1020
375Name: EXCHANGE_GENERIC_CLOCK_SKEW
376Description: The time at the server is too far off from the time specified in the request. Most likely the client system time is wrong.
377HttpStatus: 400
378
379Value: 1021
380Name: EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE
381Description: The specified amount for the coin is higher than the value of the denomination of the coin.
382HttpStatus: 400
383
384Value: 1022
385Name: EXCHANGE_GENERIC_GLOBAL_FEES_MISSING
386Description: The exchange was not properly configured with global fees.
387HttpStatus: 500
388
389Value: 1023
390Name: EXCHANGE_GENERIC_WIRE_FEES_MISSING
391Description: The exchange was not properly configured with wire fees.
392HttpStatus: 500
393
394Value: 1024
395Name: EXCHANGE_GENERIC_PURSE_PUB_MALFORMED
396Description: The purse public key was malformed.
397HttpStatus: 400
398
399Value: 1025
400Name: EXCHANGE_GENERIC_PURSE_UNKNOWN
401Description: The purse is unknown.
402HttpStatus: 404
403
404Value: 1026
405Name: EXCHANGE_GENERIC_PURSE_EXPIRED
406Description: The purse has expired.
407HttpStatus: 410
408
409Value: 1027
410Name: EXCHANGE_GENERIC_RESERVE_UNKNOWN
411Description: The exchange has no information about the "reserve_pub" that was given.
412HttpStatus: 404
413
414Value: 1028
415Name: EXCHANGE_GENERIC_KYC_REQUIRED
416Description: The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check.
417HttpStatus: 451
418
419Value: 1029
420Name: EXCHANGE_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT
421Description: Inconsistency between provided age commitment and attest: either none or both must be provided
422HttpStatus: 400
423
424Value: 1030
425Name: EXCHANGE_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE
426Description: The provided attestation for the minimum age couldn't be verified by the exchange.
427HttpStatus: 400
428
429Value: 1031
430Name: EXCHANGE_GENERIC_PURSE_DELETED
431Description: The purse was deleted.
432HttpStatus: 410
433
434Value: 1032
435Name: EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED
436Description: The public key of the AML officer in the URL was malformed.
437HttpStatus: 400
438
439Value: 1033
440Name: EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID
441Description: The signature affirming the GET request of the AML officer is invalid.
442HttpStatus: 403
443
444Value: 1034
445Name: EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED
446Description: The specified AML officer does not have access at this time.
447HttpStatus: 403
448
449Value: 1035
450Name: EXCHANGE_GENERIC_AML_PENDING
451Description: The requested operation is denied pending the resolution of an anti-money laundering investigation by the exchange operator. This is a manual process, please wait and retry later.
452HttpStatus: 451
453
454Value: 1036
455Name: EXCHANGE_GENERIC_AML_FROZEN
456Description: The requested operation is denied as the account was frozen on suspicion of money laundering. Please contact the exchange operator.
457HttpStatus: 451
458
459Value: 1037
460Name: EXCHANGE_GENERIC_KYC_CONVERTER_FAILED
461Description: The exchange failed to start a KYC attribute conversion helper process. It is likely configured incorrectly.
462HttpStatus: 500
463
464
265Value: 1100 465Value: 1100
266Name: EXCHANGE_DEPOSITS_GET_NOT_FOUND 466Name: EXCHANGE_DEPOSITS_GET_NOT_FOUND
267Description: The exchange did not find information about the specified transaction in the database. 467Description: The exchange did not find information about the specified transaction in the database.
@@ -297,15 +497,20 @@ Name: EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID
297Description: The signature of the merchant is invalid. 497Description: The signature of the merchant is invalid.
298HttpStatus: 403 498HttpStatus: 403
299 499
500Value: 1107
501Name: EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED
502Description: The provided policy data was not accepted
503HttpStatus: 400
504
300Value: 1150 505Value: 1150
301Name: EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS 506Name: EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS
302Description: The given reserve does not have sufficient funds to admit the requested withdraw operation at this time. The response includes the current "balance" of the reserve as well as the transaction "history" that lead to this balance. 507Description: The given reserve does not have sufficient funds to admit the requested withdraw operation at this time. The response includes the current "balance" of the reserve as well as the transaction "history" that lead to this balance.
303HttpStatus: 409 508HttpStatus: 409
304 509
305Value: 1151 510Value: 1151
306Name: EXCHANGE_WITHDRAW_RESERVE_UNKNOWN 511Name: EXCHANGE_AGE_WITHDRAW_INSUFFICIENT_FUNDS
307Description: The exchange has no information about the "reserve_pub" that was given. 512Description: The given reserve does not have sufficient funds to admit the requested age-withdraw operation at this time. The response includes the current "balance" of the reserve as well as the transaction "history" that lead to this balance.
308HttpStatus: 404 513HttpStatus: 409
309 514
310Value: 1152 515Value: 1152
311Name: EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW 516Name: EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW
@@ -323,10 +528,15 @@ Description: The signature of the reserve is not valid.
323HttpStatus: 403 528HttpStatus: 403
324 529
325Value: 1155 530Value: 1155
326Name: EXCHANGE_WITHDRAW_HISTORY_ERROR_INSUFFICIENT_FUNDS 531Name: EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS
327Description: When computing the reserve history, we ended up with a negative overall balance, which should be impossible. 532Description: When computing the reserve history, we ended up with a negative overall balance, which should be impossible.
328HttpStatus: 500 533HttpStatus: 500
329 534
535Value: 1156
536Name: EXCHANGE_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE
537Description: The reserve did not have sufficient funds in it to pay for a full reserve history statement.
538HttpStatus: 409
539
330Value: 1158 540Value: 1158
331Name: EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST 541Name: EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST
332Description: Withdraw period of the coin to be withdrawn is in the past. 542Description: Withdraw period of the coin to be withdrawn is in the past.
@@ -337,9 +547,39 @@ Name: EXCHANGE_WITHDRAW_UNBLIND_FAILURE
337Description: The client failed to unblind the blind signature. 547Description: The client failed to unblind the blind signature.
338HttpStatus: 0 548HttpStatus: 0
339 549
340Value: 1200 550Value: 1160
341Name: EXCHANGE_DEPOSIT_INSUFFICIENT_FUNDS 551Name: EXCHANGE_WITHDRAW_NONCE_REUSE
342Description: The respective coin did not have sufficient residual value for the /deposit operation (i.e. due to double spending). The "history" in the response provides the transaction history of the coin proving this fact. 552Description: The client re-used a withdraw nonce, which is not allowed.
553HttpStatus: 409
554
555Value: 1161
556Name: EXCHANGE_AGE_WITHDRAW_COMMITMENT_UNKNOWN
557Description: The client provided an unknown commitment for an age-withdraw request.
558HttpStatus: 400
559
560Value: 1162
561Name: EXCHANGE_AGE_WITHDRAW_AMOUNT_OVERFLOW
562Description: The total sum of amounts from the denominations did overflow.
563HttpStatus: 500
564
565Value: 1163
566Name: EXCHANGE_AGE_WITHDRAW_AMOUNT_INCORRECT
567Description: The total sum of value and fees from the denominations differs from the committed amount with fees.
568HttpStatus: 400
569
570Value: 1164
571Name: EXCHANGE_AGE_WITHDRAW_REVEAL_INVALID_HASH
572Description: The original commitment differs from the calculated hash
573HttpStatus: 400
574
575Value: 1165
576Name: EXCHANGE_AGE_WITHDRAW_MAXIMUM_AGE_TOO_LARGE
577Description: The maximum age in the commitment is too large for the reserve
578HttpStatus: 409
579
580Value: 1175
581Name: EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET
582Description: The batch withdraw included a planchet that was already withdrawn. This is not allowed.
343HttpStatus: 409 583HttpStatus: 409
344 584
345Value: 1205 585Value: 1205
@@ -347,6 +587,11 @@ Name: EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID
347Description: The signature made by the coin over the deposit permission is not valid. 587Description: The signature made by the coin over the deposit permission is not valid.
348HttpStatus: 403 588HttpStatus: 403
349 589
590Value: 1206
591Name: EXCHANGE_DEPOSIT_CONFLICTING_CONTRACT
592Description: The same coin was already deposited for the same merchant and contract with other details.
593HttpStatus: 409
594
350Value: 1207 595Value: 1207
351Name: EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE 596Name: EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE
352Description: The stated value of the coin after the deposit fee is subtracted would be negative. 597Description: The stated value of the coin after the deposit fee is subtracted would be negative.
@@ -357,6 +602,11 @@ Name: EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE
357Description: The stated refund deadline is after the wire deadline. 602Description: The stated refund deadline is after the wire deadline.
358HttpStatus: 400 603HttpStatus: 400
359 604
605Value: 1209
606Name: EXCHANGE_DEPOSIT_WIRE_DEADLINE_IS_NEVER
607Description: The stated wire deadline is "never", which makes no sense.
608HttpStatus: 400
609
360Value: 1210 610Value: 1210
361Name: EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_JSON 611Name: EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_JSON
362Description: The exchange failed to canonicalize and hash the given wire format. For example, the merchant failed to provide the "salt" or a valid payto:// URI in the wire details. Note that while the exchange will do some basic sanity checking on the wire details, it cannot warrant that the banking system will ultimately be able to route to the specified address, even if this check passed. 612Description: The exchange failed to canonicalize and hash the given wire format. For example, the merchant failed to provide the "salt" or a valid payto:// URI in the wire details. Note that while the exchange will do some basic sanity checking on the wire details, it cannot warrant that the banking system will ultimately be able to route to the specified address, even if this check passed.
@@ -378,20 +628,22 @@ Description: The deposited amount is smaller than the deposit fee, which would r
378HttpStatus: 400 628HttpStatus: 400
379 629
380 630
381Value: 1250 631Value: 1240
382Name: EXCHANGE_RESERVES_GET_STATUS_UNKNOWN 632Name: EXCHANGE_EXTENSIONS_INVALID_FULFILLMENT
383Description: The reserve status was requested using a unknown key. 633Description: The proof of policy fulfillment was invalid.
384HttpStatus: 404 634HttpStatus: 400
385 635
386Value: 1300
387Name: EXCHANGE_MELT_INSUFFICIENT_FUNDS
388Description: The respective coin did not have sufficient residual value for the /refresh/melt operation. The "history" in this response provdes the "residual_value" of the coin, which may be less than its "original_value".
389HttpStatus: 409
390 636
391Value: 1301 637Value: 1251
392Name: EXCHANGE_MELT_COIN_HISTORY_COMPUTATION_FAILED 638Name: EXCHANGE_COIN_HISTORY_BAD_SIGNATURE
393Description: The exchange had an internal error reconstructing the transaction history of the coin that was being melted. 639Description: The coin history was requested with a bad signature.
394HttpStatus: 500 640HttpStatus: 403
641
642Value: 1252
643Name: EXCHANGE_RESERVE_HISTORY_BAD_SIGNATURE
644Description: The reserve history was requested with a bad signature.
645HttpStatus: 403
646
395 647
396Value: 1302 648Value: 1302
397Name: EXCHANGE_MELT_FEES_EXCEED_CONTRIBUTION 649Name: EXCHANGE_MELT_FEES_EXCEED_CONTRIBUTION
@@ -403,11 +655,6 @@ Name: EXCHANGE_MELT_COIN_SIGNATURE_INVALID
403Description: The signature made with the coin to be melted is invalid. 655Description: The signature made with the coin to be melted is invalid.
404HttpStatus: 403 656HttpStatus: 403
405 657
406Value: 1304
407Name: EXCHANGE_MELT_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS
408Description: The exchange failed to obtain the transaction history of the given coin from the database while generating an insufficient funds errors.
409HttpStatus: 500
410
411Value: 1305 658Value: 1305
412Name: EXCHANGE_MELT_COIN_EXPIRED_NO_ZOMBIE 659Name: EXCHANGE_MELT_COIN_EXPIRED_NO_ZOMBIE
413Description: The denomination of the given coin has past its expiration date and it is also not a valid zombie (that is, was not refreshed with the fresh coin being subjected to recoup). 660Description: The denomination of the given coin has past its expiration date and it is also not a valid zombie (that is, was not refreshed with the fresh coin being subjected to recoup).
@@ -439,11 +686,6 @@ Name: EXCHANGE_REFRESHES_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID
439Description: The size of the cut-and-choose dimension of the private transfer keys request does not match #TALER_CNC_KAPPA - 1. 686Description: The size of the cut-and-choose dimension of the private transfer keys request does not match #TALER_CNC_KAPPA - 1.
440HttpStatus: 400 687HttpStatus: 400
441 688
442Value: 1357
443Name: EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE
444Description: The number of coins to be created in refresh exceeds the limits of the exchange. private transfer keys request does not match #TALER_CNC_KAPPA - 1.
445HttpStatus: 400
446
447Value: 1358 689Value: 1358
448Name: EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH 690Name: EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH
449Description: The number of envelopes given does not match the number of denomination keys given. 691Description: The number of envelopes given does not match the number of denomination keys given.
@@ -474,6 +716,17 @@ Name: EXCHANGE_REFRESHES_REVEAL_OPERATION_INVALID
474Description: Operation specified invalid for this endpoint. 716Description: Operation specified invalid for this endpoint.
475HttpStatus: 400 717HttpStatus: 400
476 718
719Value: 1364
720Name: EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_NOT_SUPPORTED
721Description: The client provided age commitment data, but age restriction is not supported on this server.
722HttpStatus: 400
723
724Value: 1365
725Name: EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_COMMITMENT_INVALID
726Description: The client provided invalid age commitment data: missing, not an array, or array of invalid size.
727HttpStatus: 400
728
729
477Value: 1400 730Value: 1400
478Name: EXCHANGE_LINK_COIN_UNKNOWN 731Name: EXCHANGE_LINK_COIN_UNKNOWN
479Description: The coin specified in the link request is unknown to the exchange. 732Description: The coin specified in the link request is unknown to the exchange.
@@ -499,6 +752,16 @@ Name: EXCHANGE_TRANSFERS_GET_WIRE_FEE_INCONSISTENT
499Description: The exchange found a wire fee that was above the total transfer value (and thus could not have been charged). 752Description: The exchange found a wire fee that was above the total transfer value (and thus could not have been charged).
500HttpStatus: 500 753HttpStatus: 500
501 754
755Value: 1475
756Name: EXCHANGE_PURSES_INVALID_WAIT_TARGET
757Description: The wait target of the URL was not in the set of expected values.
758HttpStatus: 400
759
760Value: 1476
761Name: EXCHANGE_PURSES_GET_INVALID_SIGNATURE_BY_EXCHANGE
762Description: The signature on the purse status returned by the exchange was invalid.
763HttpStatus: 0
764
502 765
503Value: 1500 766Value: 1500
504Name: EXCHANGE_REFUND_COIN_NOT_FOUND 767Name: EXCHANGE_REFUND_COIN_NOT_FOUND
@@ -569,6 +832,7 @@ Value: 1552
569Name: EXCHANGE_RECOUP_COIN_BALANCE_ZERO 832Name: EXCHANGE_RECOUP_COIN_BALANCE_ZERO
570Description: The coin's remaining balance is zero. The request is denied. 833Description: The coin's remaining balance is zero. The request is denied.
571HttpStatus: 403 834HttpStatus: 403
835Note: dead in latest cde
572 836
573Value: 1553 837Value: 1553
574Name: EXCHANGE_RECOUP_BLINDING_FAILED 838Name: EXCHANGE_RECOUP_BLINDING_FAILED
@@ -579,12 +843,33 @@ Value: 1554
579Name: EXCHANGE_RECOUP_COIN_BALANCE_NEGATIVE 843Name: EXCHANGE_RECOUP_COIN_BALANCE_NEGATIVE
580Description: The coin's remaining balance is zero. The request is denied. 844Description: The coin's remaining balance is zero. The request is denied.
581HttpStatus: 500 845HttpStatus: 500
846Note: dead in latest cde
582 847
583Value: 1555 848Value: 1555
584Name: EXCHANGE_RECOUP_NOT_ELIGIBLE 849Name: EXCHANGE_RECOUP_NOT_ELIGIBLE
585Description: The coin's denomination has not been revoked yet. 850Description: The coin's denomination has not been revoked yet.
586HttpStatus: 404 851HttpStatus: 404
587 852
853Value: 1575
854Name: EXCHANGE_RECOUP_REFRESH_SIGNATURE_INVALID
855Description: The given coin signature is invalid for the request.
856HttpStatus: 403
857
858Value: 1576
859Name: EXCHANGE_RECOUP_REFRESH_MELT_NOT_FOUND
860Description: The exchange could not find the corresponding melt operation. The request is denied.
861HttpStatus: 404
862
863Value: 1578
864Name: EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED
865Description: The exchange failed to reproduce the coin's blinding.
866HttpStatus: 500
867
868Value: 1580
869Name: EXCHANGE_RECOUP_REFRESH_NOT_ELIGIBLE
870Description: The coin's denomination has not been revoked yet.
871HttpStatus: 404
872
588 873
589Value: 1600 874Value: 1600
590Name: EXCHANGE_KEYS_TIMETRAVEL_FORBIDDEN 875Name: EXCHANGE_KEYS_TIMETRAVEL_FORBIDDEN
@@ -612,10 +897,45 @@ Description: No wire fees are configured for an enabled wire method of the excha
612HttpStatus: 500 897HttpStatus: 500
613 898
614 899
900Value: 1675
901Name: EXCHANGE_RESERVES_PURSE_CREATE_CONFLICTING_META_DATA
902Description: This purse was previously created with different meta data.
903HttpStatus: 409
904
905Value: 1676
906Name: EXCHANGE_RESERVES_PURSE_MERGE_CONFLICTING_META_DATA
907Description: This purse was previously merged with different meta data.
908HttpStatus: 409
909
910Value: 1677
911Name: EXCHANGE_RESERVES_PURSE_CREATE_INSUFFICIENT_FUNDS
912Description: The reserve has insufficient funds to create another purse.
913HttpStatus: 409
914
915Value: 1678
916Name: EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW
917Description: The purse fee specified for the request is lower than the purse fee charged by the exchange at this time.
918HttpStatus: 400
919
920Value: 1679
921Name: EXCHANGE_PURSE_DELETE_ALREADY_DECIDED
922Description: The payment request cannot be deleted anymore, as it either already completed or timed out.
923HttpStatus: 409
924
925Value: 1680
926Name: EXCHANGE_PURSE_DELETE_SIGNATURE_INVALID
927Description: The signature affirming the purse deletion is invalid.
928HttpStatus: 403
929
930Value: 1681
931Name: EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED
932Description: Withdrawal from the reserve requires age restriction to be set.
933HttpStatus: 403
934
615Value: 1700 935Value: 1700
616Name: EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE 936Name: EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE
617Description: The exchange failed to talk to the process responsible for its private denomination keys. 937Description: The exchange failed to talk to the process responsible for its private denomination keys or the helpers had no denominations (properly) configured.
618HttpStatus: 500 938HttpStatus: 502
619 939
620Value: 1701 940Value: 1701
621Name: EXCHANGE_DENOMINATION_HELPER_BUG 941Name: EXCHANGE_DENOMINATION_HELPER_BUG
@@ -627,10 +947,16 @@ Name: EXCHANGE_DENOMINATION_HELPER_TOO_EARLY
627Description: The helper refuses to sign with the key, because it is too early: the validity period has not yet started. 947Description: The helper refuses to sign with the key, because it is too early: the validity period has not yet started.
628HttpStatus: 400 948HttpStatus: 400
629 949
950Value: 1725
951Name: EXCHANGE_PURSE_DEPOSIT_EXCHANGE_SIGNATURE_INVALID
952Description: The signature of the exchange on the reply was invalid.
953HttpStatus: 0
954
955
630Value: 1750 956Value: 1750
631Name: EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE 957Name: EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE
632Description: The exchange failed to talk to the process responsible for its private signing keys. 958Description: The exchange failed to talk to the process responsible for its private signing keys.
633HttpStatus: 500 959HttpStatus: 502
634 960
635Value: 1751 961Value: 1751
636Name: EXCHANGE_SIGNKEY_HELPER_BUG 962Name: EXCHANGE_SIGNKEY_HELPER_BUG
@@ -643,6 +969,51 @@ Description: The helper refuses to sign with the key, because it is too early: t
643HttpStatus: 400 969HttpStatus: 400
644 970
645 971
972Value: 1775
973Name: EXCHANGE_RESERVES_PURSE_EXPIRATION_BEFORE_NOW
974Description: The purse expiration time is in the past at the time of its creation.
975HttpStatus: 400
976
977Value: 1776
978Name: EXCHANGE_RESERVES_PURSE_EXPIRATION_IS_NEVER
979Description: The purse expiration time is set to never, which is not allowed.
980HttpStatus: 400
981
982Value: 1777
983Name: EXCHANGE_RESERVES_PURSE_MERGE_SIGNATURE_INVALID
984Description: The signature affirming the merge of the purse is invalid.
985HttpStatus: 403
986
987Value: 1778
988Name: EXCHANGE_RESERVES_RESERVE_MERGE_SIGNATURE_INVALID
989Description: The signature by the reserve affirming the merge is invalid.
990HttpStatus: 403
991
992Value: 1785
993Name: EXCHANGE_RESERVES_OPEN_BAD_SIGNATURE
994Description: The signature by the reserve affirming the open operation is invalid.
995HttpStatus: 403
996
997Value: 1786
998Name: EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE
999Description: The signature by the reserve affirming the close operation is invalid.
1000HttpStatus: 403
1001
1002Value: 1787
1003Name: EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE
1004Description: The signature by the reserve affirming the attestion request is invalid.
1005HttpStatus: 403
1006
1007Value: 1788
1008Name: EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT
1009Description: The exchange does not know an origin account to which the remaining reserve balance could be wired to, and the wallet failed to provide one.
1010HttpStatus: 409
1011
1012Value: 1789
1013Name: EXCHANGE_RESERVES_OPEN_INSUFFICIENT_FUNDS
1014Description: The reserve balance is insufficient to pay for the open operation.
1015HttpStatus: 409
1016
646Value: 1800 1017Value: 1800
647Name: EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND 1018Name: EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND
648Description: The auditor that was supposed to be disabled is unknown to this exchange. 1019Description: The auditor that was supposed to be disabled is unknown to this exchange.
@@ -723,6 +1094,144 @@ Name: EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID
723Description: The signature affirming the signing key is invalid. 1094Description: The signature affirming the signing key is invalid.
724HttpStatus: 403 1095HttpStatus: 403
725 1096
1097Value: 1816
1098Name: EXCHANGE_MANAGEMENT_GLOBAL_FEE_MISMATCH
1099Description: The signature conflicts with a previous signature affirming different fees.
1100HttpStatus: 409
1101
1102Value: 1817
1103Name: EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID
1104Description: The signature affirming the fee structure is invalid.
1105HttpStatus: 403
1106
1107Value: 1818
1108Name: EXCHANGE_MANAGEMENT_DRAIN_PROFITS_SIGNATURE_INVALID
1109Description: The signature affirming the profit drain is invalid.
1110HttpStatus: 403
1111
1112Value: 1825
1113Name: EXCHANGE_AML_DECISION_ADD_SIGNATURE_INVALID
1114Description: The signature affirming the AML decision is invalid.
1115HttpStatus: 403
1116
1117Value: 1826
1118Name: EXCHANGE_AML_DECISION_INVALID_OFFICER
1119Description: The AML officer specified is not allowed to make AML decisions right now.
1120HttpStatus: 403
1121
1122Value: 1827
1123Name: EXCHANGE_AML_DECISION_MORE_RECENT_PRESENT
1124Description: There is a more recent AML decision on file. The decision was rejected as timestamps of AML decisions must be monotonically increasing.
1125HttpStatus: 409
1126
1127Value: 1828
1128Name: EXCHANGE_AML_DECISION_UNKNOWN_CHECK
1129Description: There AML decision would impose an AML check of a type that is not provided by any KYC provider known to the exchange.
1130HttpStatus: 400
1131
1132Value: 1830
1133Name: EXCHANGE_MANAGEMENT_UPDATE_AML_OFFICER_SIGNATURE_INVALID
1134Description: The signature affirming the change in the AML officer status is invalid.
1135HttpStatus: 403
1136
1137Value: 1831
1138Name: EXCHANGE_MANAGEMENT_AML_OFFICERS_MORE_RECENT_PRESENT
1139Description: A more recent decision about the AML officer status is known to the exchange.
1140HttpStatus: 409
1141
1142
1143
1144
1145Value: 1850
1146Name: EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA
1147Description: The purse was previously created with different meta data.
1148HttpStatus: 409
1149
1150Value: 1851
1151Name: EXCHANGE_PURSE_CREATE_CONFLICTING_CONTRACT_STORED
1152Description: The purse was previously created with a different contract.
1153HttpStatus: 409
1154
1155Value: 1852
1156Name: EXCHANGE_PURSE_CREATE_COIN_SIGNATURE_INVALID
1157Description: A coin signature for a deposit into the purse is invalid.
1158HttpStatus: 403
1159
1160Value: 1853
1161Name: EXCHANGE_PURSE_CREATE_EXPIRATION_BEFORE_NOW
1162Description: The purse expiration time is in the past.
1163HttpStatus: 400
1164
1165Value: 1854
1166Name: EXCHANGE_PURSE_CREATE_EXPIRATION_IS_NEVER
1167Description: The purse expiration time is "never".
1168HttpStatus: 400
1169
1170Value: 1855
1171Name: EXCHANGE_PURSE_CREATE_SIGNATURE_INVALID
1172Description: The purse signature over the purse meta data is invalid.
1173HttpStatus: 403
1174
1175Value: 1856
1176Name: EXCHANGE_PURSE_ECONTRACT_SIGNATURE_INVALID
1177Description: The signature over the encrypted contract is invalid.
1178HttpStatus: 403
1179
1180Value: 1857
1181Name: EXCHANGE_PURSE_CREATE_EXCHANGE_SIGNATURE_INVALID
1182Description: The signature from the exchange over the confirmation is invalid.
1183HttpStatus: 0
1184
1185Value: 1858
1186Name: EXCHANGE_PURSE_DEPOSIT_CONFLICTING_META_DATA
1187Description: The coin was previously deposited with different meta data.
1188HttpStatus: 409
1189
1190Value: 1859
1191Name: EXCHANGE_PURSE_ECONTRACT_CONFLICTING_META_DATA
1192Description: The encrypted contract was previously uploaded with different meta data.
1193HttpStatus: 409
1194
1195Value: 1860
1196Name: EXCHANGE_CREATE_PURSE_NEGATIVE_VALUE_AFTER_FEE
1197Description: The deposited amount is less than the purse fee.
1198HttpStatus: 400
1199
1200Value: 1876
1201Name: EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE
1202Description: The signature using the merge key is invalid.
1203HttpStatus: 403
1204
1205Value: 1877
1206Name: EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE
1207Description: The signature using the reserve key is invalid.
1208HttpStatus: 403
1209
1210Value: 1878
1211Name: EXCHANGE_PURSE_NOT_FULL
1212Description: The targeted purse is not yet full and thus cannot be merged. Retrying the request later may succeed.
1213HttpStatus: 409
1214
1215Value: 1879
1216Name: EXCHANGE_PURSE_MERGE_EXCHANGE_SIGNATURE_INVALID
1217Description: The signature from the exchange over the confirmation is invalid.
1218HttpStatus: 0
1219
1220Value: 1880
1221Name: EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN
1222Description: The exchange of the target account is not a partner of this exchange.
1223HttpStatus: 404
1224
1225Value: 1890
1226Name: EXCHANGE_MANAGEMENT_ADD_PARTNER_SIGNATURE_INVALID
1227Description: The signature affirming the new partner is invalid.
1228HttpStatus: 403
1229
1230Value: 1891
1231Name: EXCHANGE_MANAGEMENT_ADD_PARTNER_DATA_CONFLICT
1232Description: Conflicting data for the partner already exists with the exchange.
1233HttpStatus: 409
1234
726 1235
727Value: 1900 1236Value: 1900
728Name: EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID 1237Name: EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID
@@ -759,6 +1268,100 @@ Name: EXCHANGE_KYC_PROOF_BACKEND_AUTHORIZATION_FAILED
759Description: The backend signaled an authorization failure. 1268Description: The backend signaled an authorization failure.
760HttpStatus: 403 1269HttpStatus: 403
761 1270
1271Value: 1929
1272Name: EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN
1273Description: The exchange is unaware of having made an the authorization request.
1274HttpStatus: 404
1275
1276Value: 1930
1277Name: EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED
1278Description: The payto-URI hash did not match. Hence the request was denied.
1279HttpStatus: 403
1280
1281Value: 1931
1282Name: EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN
1283Description: The request used a logic specifier that is not known to the exchange.
1284HttpStatus: 404
1285
1286Value: 1932
1287Name: EXCHANGE_KYC_GENERIC_LOGIC_GONE
1288Description: The request requires a logic which is no longer configured at the exchange.
1289HttpStatus: 500
1290
1291Value: 1933
1292Name: EXCHANGE_KYC_GENERIC_LOGIC_BUG
1293Description: The logic plugin had a bug in its interaction with the KYC provider.
1294HttpStatus: 500
1295
1296Value: 1934
1297Name: EXCHANGE_KYC_GENERIC_PROVIDER_ACCESS_REFUSED
1298Description: The exchange could not process the request with its KYC provider because the provider refused access to the service. This indicates some configuration issue at the Taler exchange operator.
1299HttpStatus: 511
1300
1301Value: 1935
1302Name: EXCHANGE_KYC_GENERIC_PROVIDER_TIMEOUT
1303Description: There was a timeout in the interaction between the exchange and the KYC provider. The most likely cause is some networking problem. Trying again later might succeed.
1304HttpStatus: 504
1305
1306Value: 1936
1307Name: EXCHANGE_KYC_GENERIC_PROVIDER_UNEXPECTED_REPLY
1308Description: The KYC provider responded with a status that was completely unexpected by the KYC logic of the exchange.
1309HttpStatus: 502
1310
1311Value: 1937
1312Name: EXCHANGE_KYC_GENERIC_PROVIDER_RATE_LIMIT_EXCEEDED
1313Description: The rate limit of the exchange at the KYC provider has been exceeded. Trying much later might work.
1314HttpStatus: 503
1315
1316Value: 1938
1317Name: EXCHANGE_KYC_WEBHOOK_UNAUTHORIZED
1318Description: The request to the webhook lacked proper authorization or authentication data.
1319HttpStatus: 401
1320
1321
1322
1323Value: 1950
1324Name: EXCHANGE_CONTRACTS_UNKNOWN
1325Description: The exchange does not know a contract under the given contract public key.
1326HttpStatus: 404
1327
1328Value: 1951
1329Name: EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB
1330Description: The URL does not encode a valid exchange public key in its path.
1331HttpStatus: 400
1332
1333Value: 1952
1334Name: EXCHANGE_CONTRACTS_DECRYPTION_FAILED
1335Description: The returned encrypted contract did not decrypt.
1336HttpStatus: 0
1337
1338Value: 1953
1339Name: EXCHANGE_CONTRACTS_SIGNATURE_INVALID
1340Description: The signature on the encrypted contract did not validate.
1341HttpStatus: 0
1342
1343Value: 1954
1344Name: EXCHANGE_CONTRACTS_DECODING_FAILED
1345Description: The decrypted contract was malformed.
1346HttpStatus: 0
1347
1348Value: 1975
1349Name: EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID
1350Description: A coin signature for a deposit into the purse is invalid.
1351HttpStatus: 403
1352
1353Value: 1976
1354Name: EXCHANGE_PURSE_DEPOSIT_DECIDED_ALREADY
1355Description: It is too late to deposit coins into the purse.
1356HttpStatus: 410
1357
1358
1359
1360Value: 1980
1361Name: EXCHANGE_TOTP_KEY_INVALID
1362Description: TOTP key is not valid.
1363HttpStatus: 0
1364
762 1365
763 1366
764 1367
@@ -776,19 +1379,9 @@ Description: The start and end-times in the wire fee structure leave a hole. Thi
776HttpStatus: 0 1379HttpStatus: 0
777 1380
778Value: 2002 1381Value: 2002
779Name: MERCHANT_GENERIC_RESERVE_PUB_MALFORMED 1382Name: MERCHANT_GENERIC_EXCHANGE_WIRE_REQUEST_FAILED
780Description: The reserve key of given to a /reserves/ handler was malformed. 1383Description: The merchant was unable to obtain a valid answer to /wire from the exchange.
781HttpStatus: 400 1384HttpStatus: 502
782
783Value: 2003
784Name: MERCHANT_GENERIC_FAILED_TO_LOAD_TEMPLATE
785Description: The backend could not locate a required template to generate an HTML reply.
786HttpStatus: 406
787
788Value: 2004
789Name: MERCHANT_GENERIC_FAILED_TO_EXPAND_TEMPLATE
790Description: The backend could not expand the template to generate an HTML reply.
791HttpStatus: 500
792 1385
793Value: 2005 1386Value: 2005
794Name: MERCHANT_GENERIC_ORDER_UNKNOWN 1387Name: MERCHANT_GENERIC_ORDER_UNKNOWN
@@ -801,8 +1394,8 @@ Description: The order provided to the backend could not be completed, because a
801HttpStatus: 404 1394HttpStatus: 404
802 1395
803Value: 2007 1396Value: 2007
804Name: MERCHANT_GENERIC_TIP_ID_UNKNOWN 1397Name: MERCHANT_GENERIC_REWARD_ID_UNKNOWN
805Description: The tip ID is unknown. This could happen if the tip has expired. 1398Description: The reward ID is unknown. This could happen if the reward has expired.
806HttpStatus: 404 1399HttpStatus: 404
807 1400
808Value: 2008 1401Value: 2008
@@ -855,6 +1448,40 @@ Name: MERCHANT_GENERIC_TRANSFER_UNKNOWN
855Description: The backend could not find the inbound wire transfer specified in the request. 1448Description: The backend could not find the inbound wire transfer specified in the request.
856HttpStatus: 404 1449HttpStatus: 404
857 1450
1451Value: 2018
1452Name: MERCHANT_GENERIC_TEMPLATE_UNKNOWN
1453Description: The backend could not find the template(id) because it is not exist.
1454HttpStatus: 404
1455
1456Value: 2019
1457Name: MERCHANT_GENERIC_WEBHOOK_UNKNOWN
1458Description: The backend could not find the webhook(id) because it is not exist.
1459HttpStatus: 404
1460
1461Value: 2020
1462Name: MERCHANT_GENERIC_PENDING_WEBHOOK_UNKNOWN
1463Description: The backend could not find the webhook(serial) because it is not exist.
1464HttpStatus: 404
1465
1466Value: 2021
1467Name: MERCHANT_GENERIC_OTP_DEVICE_UNKNOWN
1468Description: The backend could not find the OTP device(id) because it is not exist.
1469HttpStatus: 404
1470
1471Value: 2022
1472Name: MERCHANT_GENERIC_ACCOUNT_UNKNOWN
1473Description: The account is not known to the backend.
1474HttpStatus: 404
1475
1476Value: 2023
1477Name: MERCHANT_GENERIC_H_WIRE_MALFORMED
1478Description: The wire hash was malformed.
1479HttpStatus: 400
1480
1481Value: 2024
1482Name: MERCHANT_GENERIC_CURRENCY_MISMATCH
1483Description: The currency specified in the operation does not work with the current state of the given resource.
1484HttpStatus: 409
858 1485
859# 2100-2499: public API 1486# 2100-2499: public API
860# 2100-2149: get orders endpoint 1487# 2100-2149: get orders endpoint
@@ -864,7 +1491,6 @@ Name: MERCHANT_GET_ORDERS_EXCHANGE_TRACKING_FAILURE
864Description: The exchange failed to provide a valid answer to the tracking request, thus those details are not in the response. 1491Description: The exchange failed to provide a valid answer to the tracking request, thus those details are not in the response.
865HttpStatus: 200 1492HttpStatus: 200
866 1493
867
868Value: 2103 1494Value: 2103
869Name: MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE 1495Name: MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE
870Description: The merchant backend failed to construct the request for tracking to the exchange, thus tracking details are not in the response. 1496Description: The merchant backend failed to construct the request for tracking to the exchange, thus tracking details are not in the response.
@@ -915,12 +1541,12 @@ HttpStatus: 400
915Value: 2155 1541Value: 2155
916Name: MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES 1542Name: MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES
917Description: After considering deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract. The client should revisit the logic used to calculate fees it must cover. 1543Description: After considering deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract. The client should revisit the logic used to calculate fees it must cover.
918HttpStatus: 406 1544HttpStatus: 400
919 1545
920Value: 2156 1546Value: 2156
921Name: MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT 1547Name: MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT
922Description: Even if we do not consider deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract. 1548Description: Even if we do not consider deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract.
923HttpStatus: 406 1549HttpStatus: 400
924 1550
925Value: 2157 1551Value: 2157
926Name: MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID 1552Name: MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID
@@ -937,6 +1563,11 @@ Name: MERCHANT_POST_ORDERS_ID_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE
937Description: The refund deadline in the contract is after the transfer deadline. 1563Description: The refund deadline in the contract is after the transfer deadline.
938HttpStatus: 500 1564HttpStatus: 500
939 1565
1566Value: 2160
1567Name: MERCHANT_POST_ORDERS_ID_PAY_ALREADY_PAID
1568Description: The order was already paid (maybe by another wallet).
1569HttpStatus: 409
1570
940Value: 2161 1571Value: 2161
941Name: MERCHANT_POST_ORDERS_ID_PAY_OFFER_EXPIRED 1572Name: MERCHANT_POST_ORDERS_ID_PAY_OFFER_EXPIRED
942Description: The payment is too late, the offer has expired. 1573Description: The payment is too late, the offer has expired.
@@ -982,7 +1613,63 @@ Name: MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_FAILED
982Description: The payment failed at the exchange. 1613Description: The payment failed at the exchange.
983HttpStatus: 502 1614HttpStatus: 502
984 1615
985# 2200-2249: post orders ID paid endpoint 1616Value: 2171
1617Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_MISSING
1618Description: The payment required a minimum age but one of the coins (of a denomination with support for age restriction) did not provide any age_commitment.
1619HttpStatus: 400
1620
1621Value: 2172
1622Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_SIZE_MISMATCH
1623Description: The payment required a minimum age but one of the coins provided an age_commitment that contained a wrong number of public keys compared to the number of age groups defined in the denomination of the coin.
1624HttpStatus: 400
1625
1626Value: 2173
1627Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_VERIFICATION_FAILED
1628Description: The payment required a minimum age but one of the coins provided a minimum_age_sig that couldn't be verified with the given age_commitment for that particular minimum age.
1629HttpStatus: 400
1630
1631Value: 2174
1632Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_HASH_MISSING
1633Description: The payment required no minimum age but one of the coins (of a denomination with support for age restriction) did not provide the required h_age_commitment.
1634HttpStatus: 400
1635
1636Value: 2175
1637Name: MERCHANT_POST_ORDERS_ID_PAY_WIRE_METHOD_UNSUPPORTED
1638Description: The exchange does not support the selected bank account of the merchant. Likely the merchant had stale data on the bank accounts of the exchange and thus selected an inappropriate exchange when making the offer.
1639HttpStatus: 409
1640
1641Value: 2176
1642Name: MERCHANT_POST_ORDERS_ID_PAY_CHOICE_INDEX_MISSING
1643Description: The payment requires the wallet to select a choice from the choices array and pass it in the 'choice_index' field of the request.
1644HttpStatus: 400
1645
1646Value: 2177
1647Name: MERCHANT_POST_ORDERS_ID_PAY_CHOICE_INDEX_OUT_OF_BOUNDS
1648Description: The 'choice_index' field is invalid.
1649HttpStatus: 400
1650
1651Value: 2178
1652Name: MERCHANT_POST_ORDERS_ID_PAY_INPUT_TOKENS_MISMATCH
1653Description: The provided 'tokens' array does not match with the required input tokens of the order.
1654HttpStatus: 400
1655
1656Value: 2179
1657Name: MERCHANT_POST_ORDERS_ID_PAY_TOKEN_ISSUE_SIG_INVALID
1658Description: Invalid token issue signature (blindly signed by merchant) for provided token.
1659HttpStatus: 400
1660
1661Value: 2180
1662Name: MERCHANT_POST_ORDERS_ID_PAY_TOKEN_USE_SIG_INVALID
1663Description: Invalid token use signature (EdDSA, signed by wallet) for provided token.
1664HttpStatus: 400
1665
1666Value: 2181
1667Name: MERCHANT_POST_ORDERS_ID_PAY_TOKEN_COUNT_MISMATCH
1668Description: The provided number of tokens does not match the required number.
1669HttpStatus: 400
1670
1671
1672# 2200-2224: post orders ID paid endpoint
986 1673
987Value: 2200 1674Value: 2200
988Name: MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH 1675Name: MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH
@@ -994,8 +1681,20 @@ Name: MERCHANT_POST_ORDERS_ID_PAID_COIN_SIGNATURE_INVALID
994Description: The signature of the merchant is not valid for the given contract hash. 1681Description: The signature of the merchant is not valid for the given contract hash.
995HttpStatus: 403 1682HttpStatus: 403
996 1683
997# 2250-2299: post orders ID abort endpoint 1684# 2225-2249: token families endpoints
1685
1686Value: 2225
1687Name: MERCHANT_POST_TOKEN_FAMILY_CONFLICT
1688Description: A token family with this ID but conflicting data exists.
1689HttpStatus: 409
1690
1691Value: 2226
1692Name: MERCHANT_PATCH_TOKEN_FAMILY_NOT_FOUND
1693Description: The backend is unaware of a token family with the given ID.
1694HttpStatus: 404
1695
998 1696
1697# 2250-2256: post orders ID abort endpoint
999 1698
1000Value: 2251 1699Value: 2251
1001Name: MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED 1700Name: MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED
@@ -1027,6 +1726,44 @@ Name: MERCHANT_POST_ORDERS_ID_ABORT_COINS_ARRAY_EMPTY
1027Description: The array of coins cannot be empty. 1726Description: The array of coins cannot be empty.
1028HttpStatus: 400 1727HttpStatus: 400
1029 1728
1729Value: 2258
1730Name: MERCHANT_EXCHANGE_TRANSFERS_AWAITING_KEYS
1731Description: We are waiting for the exchange to provide us with key material before checking the wire transfer.
1732HttpStatus: 202
1733
1734Value: 2259
1735Name: MERCHANT_EXCHANGE_TRANSFERS_AWAITING_LIST
1736Description: We are waiting for the exchange to provide us with the list of aggregated transactions.
1737HttpStatus: 202
1738
1739
1740Value: 2260
1741Name: MERCHANT_EXCHANGE_TRANSFERS_FATAL_NO_EXCHANGE
1742Description: The endpoint indicated in the wire transfer does not belong to a GNU Taler exchange.
1743HttpStatus: 200
1744
1745Value: 2261
1746Name: MERCHANT_EXCHANGE_TRANSFERS_FATAL_NOT_FOUND
1747Description: The exchange indicated in the wire transfer claims to know nothing about the wire transfer.
1748HttpStatus: 0
1749
1750Value: 2262
1751Name: MERCHANT_EXCHANGE_TRANSFERS_RATE_LIMITED
1752Description: The interaction with the exchange is delayed due to rate limiting.
1753HttpStatus: 202
1754
1755Value: 2263
1756Name: MERCHANT_EXCHANGE_TRANSFERS_TRANSIENT_FAILURE
1757Description: We experienced a transient failure in our interaction with the exchange.
1758HttpStatus: 202
1759
1760Value: 2264
1761Name: MERCHANT_EXCHANGE_TRANSFERS_HARD_FAILURE
1762Description: The response from the exchange was unacceptable and should be reviewed with an auditor.
1763HttpStatus: 200
1764
1765
1766
1030# 2300-2349: post orders ID claim endpoint 1767# 2300-2349: post orders ID claim endpoint
1031 1768
1032Value: 2300 1769Value: 2300
@@ -1051,38 +1788,38 @@ Name: MERCHANT_POST_ORDERS_ID_REFUND_SIGNATURE_FAILED
1051Description: The backend failed to sign the refund request. 1788Description: The backend failed to sign the refund request.
1052HttpStatus: 0 1789HttpStatus: 0
1053 1790
1054# 2400-2449: tip pickup endpoint 1791# 2400-2449: reward pickup endpoint
1055 1792
1056Value: 2400 1793Value: 2400
1057Name: MERCHANT_TIP_PICKUP_UNBLIND_FAILURE 1794Name: MERCHANT_REWARD_PICKUP_UNBLIND_FAILURE
1058Description: The client failed to unblind the signature returned by the merchant. 1795Description: The client failed to unblind the signature returned by the merchant.
1059HttpStatus: 0 1796HttpStatus: 0
1060 1797
1061 1798
1062 1799
1063Value: 2403 1800Value: 2403
1064Name: MERCHANT_TIP_PICKUP_EXCHANGE_ERROR 1801Name: MERCHANT_REWARD_PICKUP_EXCHANGE_ERROR
1065Description: The exchange returned a failure code for the withdraw operation. 1802Description: The exchange returned a failure code for the withdraw operation.
1066HttpStatus: 502 1803HttpStatus: 502
1067 1804
1068 1805
1069Value: 2404 1806Value: 2404
1070Name: MERCHANT_TIP_PICKUP_SUMMATION_FAILED 1807Name: MERCHANT_REWARD_PICKUP_SUMMATION_FAILED
1071Description: The merchant failed to add up the amounts to compute the pick up value. 1808Description: The merchant failed to add up the amounts to compute the pick up value.
1072HttpStatus: 500 1809HttpStatus: 500
1073 1810
1074Value: 2405 1811Value: 2405
1075Name: MERCHANT_TIP_PICKUP_HAS_EXPIRED 1812Name: MERCHANT_REWARD_PICKUP_HAS_EXPIRED
1076Description: The tip expired. 1813Description: The reward expired.
1077HttpStatus: 410 1814HttpStatus: 410
1078 1815
1079Value: 2406 1816Value: 2406
1080Name: MERCHANT_TIP_PICKUP_AMOUNT_EXCEEDS_TIP_REMAINING 1817Name: MERCHANT_REWARD_PICKUP_AMOUNT_EXCEEDS_REWARD_REMAINING
1081Description: The requested withdraw amount exceeds the amount remaining to be picked up. 1818Description: The requested withdraw amount exceeds the amount remaining to be picked up.
1082HttpStatus: 400 1819HttpStatus: 400
1083 1820
1084Value: 2407 1821Value: 2407
1085Name: MERCHANT_TIP_PICKUP_DENOMINATION_UNKNOWN 1822Name: MERCHANT_REWARD_PICKUP_DENOMINATION_UNKNOWN
1086Description: The merchant did not find the specified denomination key in the exchange's key set. 1823Description: The merchant did not find the specified denomination key in the exchange's key set.
1087HttpStatus: 409 1824HttpStatus: 409
1088 1825
@@ -1093,34 +1830,53 @@ HttpStatus: 409
1093 1830
1094Value: 2500 1831Value: 2500
1095Name: MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE 1832Name: MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE
1096Description: The backend lacks a wire transfer method configuration option for the given instance. Thus, this instance is unavailable (not findable for creating new orders). 1833Description: The merchant instance has no active bank accounts configured. However, at least one bank account must be available to create new orders.
1097HttpStatus: 404 1834HttpStatus: 404
1098 1835
1099Value: 2501 1836Value: 2501
1100Name: MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME 1837Name: MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME
1101Description: The proposal had no timestamp and the backend failed to obtain the local time. Likely to be an internal error. 1838Description: The proposal had no timestamp and the merchant backend failed to obtain the current local time.
1102HttpStatus: 500 1839HttpStatus: 500
1103 1840
1104Value: 2502 1841Value: 2502
1105Name: MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR 1842Name: MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR
1106Description: The order provided to the backend could not be parsed, some required fields were missing or ill-formed. 1843Description: The order provided to the backend could not be parsed; likely some required fields were missing or ill-formed.
1107HttpStatus: 400 1844HttpStatus: 400
1108 1845
1109Value: 2503 1846Value: 2503
1110Name: MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS 1847Name: MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS
1111Description: The backend encountered an error: the proposal already exists. 1848Description: A conflicting order (sharing the same order identifier) already exists at this merchant backend instance.
1112HttpStatus: 409 1849HttpStatus: 409
1113 1850
1114Value: 2504 1851Value: 2504
1115Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE 1852Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE
1116Description: The request is invalid: the wire deadline is before the refund deadline. 1853Description: The order creation request is invalid because the given wire deadline is before the refund deadline.
1117HttpStatus: 400 1854HttpStatus: 400
1118 1855
1119Value: 2505 1856Value: 2505
1120Name: MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST 1857Name: MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST
1121Description: The request is invalid: a delivery date was given, but it is in the past. 1858Description: The order creation request is invalid because the delivery date given is in the past.
1122HttpStatus: 400 1859HttpStatus: 400
1123 1860
1861Value: 2506
1862Name: MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER
1863Description: The order creation request is invalid because a wire deadline of "never" is not allowed.
1864HttpStatus: 400
1865
1866Value: 2507
1867Name: MERCHANT_PRIVATE_POST_ORDERS_PAY_DEADLINE_IN_PAST
1868Description: The order creation request is invalid because the given payment deadline is in the past.
1869HttpStatus: 400
1870
1871Value: 2508
1872Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_DEADLINE_IN_PAST
1873Description: The order creation request is invalid because the given refund deadline is in the past.
1874HttpStatus: 400
1875
1876Value: 2509
1877Name: MERCHANT_PRIVATE_POST_ORDERS_NO_EXCHANGES_FOR_WIRE_METHOD
1878Description: The backend does not trust any exchange that would allow funds to be wired to any bank account of this instance using the wire method specified with the order. Note that right now, we do not support the use of exchange bank accounts with mandatory currency conversion.
1879HttpStatus: 409
1124 1880
1125Value: 2510 1881Value: 2510
1126Name: MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT 1882Name: MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT
@@ -1134,24 +1890,34 @@ HttpStatus: 409
1134 1890
1135Value: 2520 1891Value: 2520
1136Name: MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT 1892Name: MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT
1137Description: The order provided to the backend could not be deleted, our offer is still valid and awaiting payment. 1893Description: The order provided to the backend could not be deleted, our offer is still valid and awaiting payment. Deletion may work later after the offer has expired if it remains unpaid.
1894HttpStatus: 409
1895
1896Value: 2521
1897Name: MERCHANT_PRIVATE_DELETE_ORDERS_ALREADY_PAID
1898Description: The order provided to the backend could not be deleted as the order was already paid.
1138HttpStatus: 409 1899HttpStatus: 409
1139 1900
1140Value: 2530 1901Value: 2530
1141Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT 1902Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT
1142Description: The amount to be refunded is inconsistent: either is lower than the previous amount being awarded, or it is too big to be paid back. In this second case, the fault stays on the business dept. side. 1903Description: The amount to be refunded is inconsistent: either is lower than the previous amount being awarded, or it exceeds the original price paid by the customer.
1143HttpStatus: 409 1904HttpStatus: 409
1144 1905
1145Value: 2531 1906Value: 2531
1146Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID 1907Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID
1147Description: The frontend gave an unpaid order id to issue the refund to. 1908Description: Only paid orders can be refunded, and the frontend specified an unpaid order to issue a refund for.
1148HttpStatus: 409 1909HttpStatus: 409
1149 1910
1150Value: 2532 1911Value: 2532
1151Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT 1912Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT
1152Description: The refund delay was set to 0 and thus no refunds are allowed for this order. 1913Description: The refund delay was set to 0 and thus no refunds are ever allowed for this order.
1153HttpStatus: 403 1914HttpStatus: 403
1154 1915
1916Value: 2533
1917Name: MERCHANT_PRIVATE_POST_ORDERS_TOKEN_FAMILY_SLUG_UNKNOWN
1918Description: The token family slug provided in this order could not be found in the merchant database.
1919HttpStatus: 404
1920
1155 1921
1156 1922
1157# 2550-2599: transfer operations 1923# 2550-2599: transfer operations
@@ -1196,6 +1962,11 @@ Name: MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION
1196Description: The backend was previously informed about a wire transfer with the same ID but a different amount. Multiple wire transfers with the same ID are not allowed. If the new amount is correct, the old transfer should first be deleted. 1962Description: The backend was previously informed about a wire transfer with the same ID but a different amount. Multiple wire transfers with the same ID are not allowed. If the new amount is correct, the old transfer should first be deleted.
1197HttpStatus: 409 1963HttpStatus: 409
1198 1964
1965Value: 2563
1966Name: MERCHANT_EXCHANGE_TRANSFERS_CONFLICTING_TRANSFERS
1967Description: The amount transferred differs between what was submitted and what the exchange claimed.
1968HttpStatus: 0
1969
1199 1970
1200# 2600-2649: instance operations 1971# 2600-2649: instance operations
1201 1972
@@ -1224,6 +1995,16 @@ Name: MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED
1224Description: The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first. 1995Description: The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first.
1225HttpStatus: 409 1996HttpStatus: 409
1226 1997
1998Value: 2626
1999Name: MERCHANT_PRIVATE_ACCOUNT_DELETE_UNKNOWN_ACCOUNT
2000Description: The bank account referenced in the requested operation was not found.
2001HttpStatus: 404
2002
2003Value: 2627
2004Name: MERCHANT_PRIVATE_ACCOUNT_EXISTS
2005Description: The bank account specified in the request already exists at the merchant.
2006HttpStatus: 409
2007
1227 2008
1228# 2650-2699: product operations 2009# 2650-2699: product operations
1229 2010
@@ -1269,31 +2050,36 @@ Name: MERCHANT_PRIVATE_POST_RESERVES_UNSUPPORTED_WIRE_METHOD
1269Description: The requested wire method is not supported by the exchange. 2050Description: The requested wire method is not supported by the exchange.
1270HttpStatus: 409 2051HttpStatus: 409
1271 2052
2053Value: 2701
2054Name: MERCHANT_PRIVATE_POST_RESERVES_REWARDS_NOT_ALLOWED
2055Description: The requested exchange does not allow rewards.
2056HttpStatus: 409
2057
1272Value: 2710 2058Value: 2710
1273Name: MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE 2059Name: MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE
1274Description: The reserve could not be deleted because it is unknown. 2060Description: The reserve could not be deleted because it is unknown.
1275HttpStatus: 404 2061HttpStatus: 404
1276 2062
1277# 2750-2799: tip authorization 2063# 2750-2799: reward authorization
1278 2064
1279Value: 2750 2065Value: 2750
1280Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_EXPIRED 2066Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_EXPIRED
1281Description: The reserve that was used to fund the tips has expired. 2067Description: The reserve that was used to fund the rewards has expired.
1282HttpStatus: 410 2068HttpStatus: 410
1283 2069
1284Value: 2751 2070Value: 2751
1285Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_UNKNOWN 2071Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_UNKNOWN
1286Description: The reserve that was used to fund the tips was not found in the DB. 2072Description: The reserve that was used to fund the rewards was not found in the DB.
1287HttpStatus: 503 2073HttpStatus: 503
1288 2074
1289Value: 2752 2075Value: 2752
1290Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_INSUFFICIENT_FUNDS 2076Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_INSUFFICIENT_FUNDS
1291Description: The backend knows the instance that was supposed to support the tip, and it was configured for tipping. However, the funds remaining are insufficient to cover the tip, and the merchant should top up the reserve. 2077Description: The backend knows the instance that was supposed to support the reward, and it was configured for rewardping. However, the funds remaining are insufficient to cover the reward, and the merchant should top up the reserve.
1292HttpStatus: 0 2078HttpStatus: 0
1293 2079
1294Value: 2753 2080Value: 2753
1295Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_NOT_FOUND 2081Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_NOT_FOUND
1296Description: The backend failed to find a reserve needed to authorize the tip. 2082Description: The backend failed to find a reserve needed to authorize the reward.
1297HttpStatus: 503 2083HttpStatus: 503
1298 2084
1299Value: 2800 2085Value: 2800
@@ -1301,6 +2087,53 @@ Name: MERCHANT_PRIVATE_GET_ORDERS_ID_AMOUNT_ARITHMETIC_FAILURE
1301Description: The merchant backend encountered a failure in computing the deposit total. 2087Description: The merchant backend encountered a failure in computing the deposit total.
1302HttpStatus: 200 2088HttpStatus: 200
1303 2089
2090# 2850-2899: template and OTP device operations
2091
2092Value: 2850
2093Name: MERCHANT_PRIVATE_POST_TEMPLATES_CONFLICT_TEMPLATE_EXISTS
2094Description: The template ID already exists.
2095HttpStatus: 409
2096
2097Value: 2851
2098Name: MERCHANT_PRIVATE_POST_OTP_DEVICES_CONFLICT_OTP_DEVICE_EXISTS
2099Description: The OTP device ID already exists.
2100HttpStatus: 409
2101
2102Value: 2860
2103Name: MERCHANT_POST_USING_TEMPLATES_AMOUNT_CONFLICT_TEMPLATES_CONTRACT_AMOUNT
2104Description: Amount given in the using template and in the template contract. There is a conflict.
2105HttpStatus: 409
2106
2107Value: 2861
2108Name: MERCHANT_POST_USING_TEMPLATES_SUMMARY_CONFLICT_TEMPLATES_CONTRACT_SUBJECT
2109Description: Subject given in the using template and in the template contract. There is a conflict.
2110HttpStatus: 409
2111
2112Value: 2862
2113Name: MERCHANT_POST_USING_TEMPLATES_NO_AMOUNT
2114Description: Amount not given in the using template and in the template contract. There is a conflict.
2115HttpStatus: 409
2116
2117Value: 2863
2118Name: MERCHANT_POST_USING_TEMPLATES_NO_SUMMARY
2119Description: Subject not given in the using template and in the template contract. There is a conflict.
2120HttpStatus: 409
2121
2122
2123
2124# 2900-2949: webhook operations
2125
2126Value: 2900
2127Name: MERCHANT_PRIVATE_POST_WEBHOOKS_CONFLICT_WEBHOOK_EXISTS
2128Description: The webhook ID elready exists.
2129HttpStatus: 409
2130
2131Value: 2910
2132Name: MERCHANT_PRIVATE_POST_PENDING_WEBHOOKS_CONFLICT_PENDING_WEBHOOK_EXISTS
2133Description: The webhook serial elready exists.
2134HttpStatus: 409
2135
2136
1304 2137
1305 2138
1306 2139
@@ -1317,6 +2150,16 @@ Name: AUDITOR_EXCHANGE_SIGNING_KEY_REVOKED
1317Description: The exchange key used for the signature on the deposit confirmation was revoked. 2150Description: The exchange key used for the signature on the deposit confirmation was revoked.
1318HttpStatus: 410 2151HttpStatus: 410
1319 2152
2153Value: 3102
2154Name: AUDITOR_RESOURCE_NOT_FOUND
2155Description: The requested resource could not be found.
2156HttpStatus: 404
2157
2158Value: 3103
2159Name: AUDITOR_URI_MISSING_PATH_COMPONENT
2160Description: The URI is missing a path component.
2161HttpStatus: 400
2162
1320 2163
1321# 5000 - 5999: Reserved for bank 2164# 5000 - 5999: Reserved for bank
1322# 5000 - 5099: Reserved for BANK_GENERIC 2165# 5000 - 5099: Reserved for BANK_GENERIC
@@ -1324,57 +2167,52 @@ HttpStatus: 410
1324Value: 5101 2167Value: 5101
1325Name: BANK_SAME_ACCOUNT 2168Name: BANK_SAME_ACCOUNT
1326Description: Wire transfer attempted with credit and debit party being the same bank account. 2169Description: Wire transfer attempted with credit and debit party being the same bank account.
1327HttpStatus: 0 2170HttpStatus: 400
1328 2171
1329Value: 5102 2172Value: 5102
1330Name: BANK_UNALLOWED_DEBIT 2173Name: BANK_UNALLOWED_DEBIT
1331Description: Wire transfer impossible, due to financial limitation of the party that attempted the payment. 2174Description: Wire transfer impossible, due to financial limitation of the party that attempted the payment.
1332HttpStatus: 0 2175HttpStatus: 409
1333 2176
1334Value: 5103 2177Value: 5103
1335Name: BANK_NEGATIVE_NUMBER_AMOUNT 2178Name: BANK_NEGATIVE_NUMBER_AMOUNT
1336Description: Negative number was used (as value and/or fraction) to initiate a Amount object. 2179Description: Negative numbers are not allowed (as value and/or fraction) to instantiate an amount object.
1337HttpStatus: 0 2180HttpStatus: 400
1338 2181
1339Value: 5104 2182Value: 5104
1340Name: BANK_NUMBER_TOO_BIG 2183Name: BANK_NUMBER_TOO_BIG
1341Description: A number too big was used (as value and/or fraction) to initiate a amount object. 2184Description: A too big number was used (as value and/or fraction) to instantiate an amount object.
1342HttpStatus: 0 2185HttpStatus: 400
1343
1344Value: 5105
1345Name: BANK_LOGIN_FAILED
1346Description: Could not login for the requested operation.
1347HttpStatus: 0
1348 2186
1349Value: 5106 2187Value: 5106
1350Name: BANK_UNKNOWN_ACCOUNT 2188Name: BANK_UNKNOWN_ACCOUNT
1351Description: The bank account referenced in the requested operation was not found. Returned along "400 Not found". 2189Description: The bank account referenced in the requested operation was not found.
1352HttpStatus: 0 2190HttpStatus: 404
1353 2191
1354Value: 5107 2192Value: 5107
1355Name: BANK_TRANSACTION_NOT_FOUND 2193Name: BANK_TRANSACTION_NOT_FOUND
1356Description: The transaction referenced in the requested operation (typically a reject operation), was not found. 2194Description: The transaction referenced in the requested operation (typically a reject operation), was not found.
1357HttpStatus: 0 2195HttpStatus: 404
1358 2196
1359Value: 5108 2197Value: 5108
1360Name: BANK_BAD_FORMAT_AMOUNT 2198Name: BANK_BAD_FORMAT_AMOUNT
1361Description: Bank received a malformed amount string. 2199Description: Bank received a malformed amount string.
1362HttpStatus: 0 2200HttpStatus: 400
1363 2201
1364Value: 5109 2202Value: 5109
1365Name: BANK_REJECT_NO_RIGHTS 2203Name: BANK_REJECT_NO_RIGHTS
1366Description: The client does not own the account credited by the transaction which is to be rejected, so it has no rights do reject it. To be returned along HTTP 403 Forbidden. 2204Description: The client does not own the account credited by the transaction which is to be rejected, so it has no rights do reject it.
1367HttpStatus: 0 2205HttpStatus: 403
1368 2206
1369Value: 5110 2207Value: 5110
1370Name: BANK_UNMANAGED_EXCEPTION 2208Name: BANK_UNMANAGED_EXCEPTION
1371Description: This error code is returned when no known exception types captured the exception, and comes along with a 500 Internal Server Error. 2209Description: This error code is returned when no known exception types captured the exception.
1372HttpStatus: 0 2210HttpStatus: 500
1373 2211
1374Value: 5111 2212Value: 5111
1375Name: BANK_SOFT_EXCEPTION 2213Name: BANK_SOFT_EXCEPTION
1376Description: This error code is used for all those exceptions that do not really need a specific error code to return to the client, but need to signal the middleware that the bank is not responding with 500 Internal Server Error. Used for example when a client is trying to register with a unavailable username. 2214Description: This error code is used for all those exceptions that do not really need a specific error code to return to the client. Used for example when a client is trying to register with a unavailable username.
1377HttpStatus: 0 2215HttpStatus: 500
1378 2216
1379Value: 5112 2217Value: 5112
1380Name: BANK_TRANSFER_REQUEST_UID_REUSED 2218Name: BANK_TRANSFER_REQUEST_UID_REUSED
@@ -1391,6 +2229,160 @@ Name: BANK_DUPLICATE_RESERVE_PUB_SUBJECT
1391Description: The wire transfer subject duplicates an existing reserve public key. But wire transfer subjects must be unique. 2229Description: The wire transfer subject duplicates an existing reserve public key. But wire transfer subjects must be unique.
1392HttpStatus: 409 2230HttpStatus: 409
1393 2231
2232Value: 5115
2233Name: BANK_ANCIENT_TRANSACTION_GONE
2234Description: The client requested a transaction that is so far in the past, that it has been forgotten by the bank.
2235HttpStatus: 410
2236
2237Value: 5116
2238Name: BANK_ABORT_CONFIRM_CONFLICT
2239Description: The client attempted to abort a transaction that was already confirmed.
2240HttpStatus: 409
2241
2242Value: 5117
2243Name: BANK_CONFIRM_ABORT_CONFLICT
2244Description: The client attempted to confirm a transaction that was already aborted.
2245HttpStatus: 409
2246
2247Value: 5118
2248Name: BANK_REGISTER_CONFLICT
2249Description: The client attempted to register an account with the same name.
2250HttpStatus: 409
2251
2252Value: 5119
2253Name: BANK_POST_WITHDRAWAL_OPERATION_REQUIRED
2254Description: The client attempted to confirm a withdrawal operation before the wallet posted the required details.
2255HttpStatus: 400
2256
2257Value: 5120
2258Name: BANK_RESERVED_USERNAME_CONFLICT
2259Description: The client tried to register a new account under a reserved username (like 'admin' for example).
2260HttpStatus: 409
2261
2262Value: 5121
2263Name: BANK_REGISTER_USERNAME_REUSE
2264Description: The client tried to register a new account with an username already in use.
2265HttpStatus: 409
2266
2267Value: 5122
2268Name: BANK_REGISTER_PAYTO_URI_REUSE
2269Description: The client tried to register a new account with a payto:// URI already in use.
2270HttpStatus: 409
2271
2272Value: 5123
2273Name: BANK_ACCOUNT_BALANCE_NOT_ZERO
2274Description: The client tried to delete an account with a non null balance.
2275HttpStatus: 409
2276
2277Value: 5124
2278Name: BANK_UNKNOWN_CREDITOR
2279Description: The client tried to create a transaction or an operation that credit an unknown account.
2280HttpStatus: 409
2281
2282Value: 5125
2283Name: BANK_UNKNOWN_DEBTOR
2284Description: The client tried to create a transaction or an operation that debit an unknown account.
2285HttpStatus: 409
2286
2287Value: 5126
2288Name: BANK_ACCOUNT_IS_EXCHANGE
2289Description: The client tried to perform an action prohibited for exchange accounts.
2290HttpStatus: 409
2291
2292Value: 5127
2293Name: BANK_ACCOUNT_IS_NOT_EXCHANGE
2294Description: The client tried to perform an action reserved for exchange accounts.
2295HttpStatus: 409
2296
2297Value: 5128
2298Name: BANK_BAD_CONVERSION
2299Description: Received currency conversion is wrong.
2300HttpStatus: 409
2301
2302Value: 5129
2303Name: BANK_MISSING_TAN_INFO
2304Description: The account referenced in this operation is missing tan info for the chosen channel.
2305HttpStatus: 409
2306
2307Value: 5130
2308Name: BANK_CONFIRM_INCOMPLETE
2309Description: The client attempted to confirm a transaction with incomplete info.
2310HttpStatus: 409
2311
2312Value: 5131
2313Name: BANK_TAN_RATE_LIMITED
2314Description: The request rate is too high. The server is refusing requests to guard against brute-force attacks.
2315HttpStatus: 429
2316
2317Value: 5132
2318Name: BANK_TAN_CHANNEL_NOT_SUPPORTED
2319Description: This TAN channel is not supported.
2320HttpStatus: 501
2321
2322Value: 5133
2323Name: BANK_TAN_CHANNEL_SCRIPT_FAILED
2324Description: Failed to send TAN using the helper script. Either script is not found, or script timeout, or script terminated with a non-successful result.
2325HttpStatus: 500
2326
2327Value: 5134
2328Name: BANK_TAN_CHALLENGE_FAILED
2329Description: The client's response to the challenge was invalid.
2330HttpStatus: 403
2331
2332Value: 5135
2333Name: BANK_NON_ADMIN_PATCH_LEGAL_NAME
2334Description: A non-admin user has tried to change their legal name.
2335HttpStatus: 409
2336
2337Value: 5136
2338Name: BANK_NON_ADMIN_PATCH_DEBT_LIMIT
2339Description: A non-admin user has tried to change their debt limit.
2340HttpStatus: 409
2341
2342Value: 5137
2343Name: BANK_NON_ADMIN_PATCH_MISSING_OLD_PASSWORD
2344Description: A non-admin user has tried to change their password whihout providing the current one.
2345HttpStatus: 409
2346
2347Value: 5138
2348Name: BANK_PATCH_BAD_OLD_PASSWORD
2349Description: Provided old password does not match current password.
2350HttpStatus: 409
2351
2352Value: 5139
2353Name: BANK_PATCH_ADMIN_EXCHANGE
2354Description: An admin user has tried to become an exchange.
2355HttpStatus: 409
2356
2357Value: 5140
2358Name: BANK_NON_ADMIN_PATCH_CASHOUT
2359Description: A non-admin user has tried to change their cashout account.
2360HttpStatus: 409
2361
2362Value: 5141
2363Name: BANK_NON_ADMIN_PATCH_CONTACT
2364Description: A non-admin user has tried to change their contact info.
2365HttpStatus: 409
2366
2367Value: 5142
2368Name: BANK_ADMIN_CREDITOR
2369Description: The client tried to create a transaction that credit the admin account.
2370HttpStatus: 409
2371
2372Value: 5143
2373Name: BANK_CHALLENGE_NOT_FOUND
2374Description: The referenced challenge was not found.
2375HttpStatus: 404
2376
2377Value: 5144
2378Name: BANK_TAN_CHALLENGE_EXPIRED
2379Description: The referenced challenge has expired.
2380HttpStatus: 409
2381
2382Value: 5145
2383Name: BANK_NON_ADMIN_SET_TAN_CHANNEL
2384Description: A non-admin user has tried to create an account with 2fa.
2385HttpStatus: 409
1394 2386
1395# 6000 - 6999: Reserved for sync 2387# 6000 - 6999: Reserved for sync
1396# 6000 - 6099: Reserved for SYNC_GENERIC 2388# 6000 - 6099: Reserved for SYNC_GENERIC
@@ -1460,6 +2452,17 @@ Name: SYNC_MISSING_CONTENT_LENGTH
1460Description: The "Content-length" field for the upload is missing. 2452Description: The "Content-length" field for the upload is missing.
1461HttpStatus: 400 2453HttpStatus: 400
1462 2454
2455Value: 6113
2456Name: SYNC_GENERIC_BACKEND_ERROR
2457Description: Sync had problems communicating with its payment backend.
2458HttpStatus: 502
2459
2460Value: 6114
2461Name: SYNC_GENERIC_BACKEND_TIMEOUT
2462Description: Sync experienced a timeout communicating with its payment backend.
2463HttpStatus: 504
2464
2465
1463 2466
1464# 7000 - 7999: Reserved for wallet 2467# 7000 - 7999: Reserved for wallet
1465 2468
@@ -1544,8 +2547,8 @@ Description: A group of withdrawal operations (typically for the same reserve at
1544HttpStatus: 0 2547HttpStatus: 0
1545 2548
1546Value: 7016 2549Value: 7016
1547Name: WALLET_TIPPING_COIN_SIGNATURE_INVALID 2550Name: WALLET_REWARD_COIN_SIGNATURE_INVALID
1548Description: The signature on a coin by the exchange's denomination key (obtained through the merchant via tipping) is invalid after unblinding it. 2551Description: The signature on a coin by the exchange's denomination key (obtained through the merchant via a reward) is invalid after unblinding it.
1549HttpStatus: 0 2552HttpStatus: 0
1550 2553
1551Value: 7017 2554Value: 7017
@@ -1568,7 +2571,87 @@ Name: WALLET_CONTRACT_TERMS_MALFORMED
1568Description: The contract terms given by the merchant are malformed. 2571Description: The contract terms given by the merchant are malformed.
1569HttpStatus: 0 2572HttpStatus: 0
1570 2573
1571# 8000 - 8999: Reserved for Anastasis 2574Value: 7021
2575Name: WALLET_PENDING_OPERATION_FAILED
2576Description: A pending operation failed, and thus the request can't be completed.
2577HttpStatus: 0
2578
2579Value: 7022
2580Name: WALLET_PAY_MERCHANT_SERVER_ERROR
2581Description: A payment was attempted, but the merchant had an internal server error (5xx).
2582HttpStatus: 0
2583
2584Value: 7023
2585Name: WALLET_CRYPTO_WORKER_ERROR
2586Description: The crypto worker failed.
2587HttpStatus: 0
2588
2589Value: 7024
2590Name: WALLET_CRYPTO_WORKER_BAD_REQUEST
2591Description: The crypto worker received a bad request.
2592HttpStatus: 0
2593
2594Value: 7025
2595Name: WALLET_WITHDRAWAL_KYC_REQUIRED
2596Description: A KYC step is required before withdrawal can proceed.
2597HttpStatus: 0
2598
2599Value: 7026
2600Name: WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE
2601Description: The wallet does not have sufficient balance to create a deposit group.
2602HttpStatus: 0
2603
2604Value: 7027
2605Name: WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE
2606Description: The wallet does not have sufficient balance to create a peer push payment.
2607HttpStatus: 0
2608
2609Value: 7028
2610Name: WALLET_PEER_PULL_PAYMENT_INSUFFICIENT_BALANCE
2611Description: The wallet does not have sufficient balance to pay for an invoice.
2612HttpStatus: 0
2613
2614Value: 7029
2615Name: WALLET_REFRESH_GROUP_INCOMPLETE
2616Description: A group of refresh operations has errors and will be tried again later.
2617HttpStatus: 0
2618
2619Value: 7030
2620Name: WALLET_EXCHANGE_BASE_URL_MISMATCH
2621Description: The exchange's self-reported base URL does not match the one that the wallet is using.
2622HttpStatus: 0
2623
2624Value: 7031
2625Name: WALLET_ORDER_ALREADY_PAID
2626Description: The order has already been paid by another wallet.
2627HttpStatus: 0
2628
2629Value: 7032
2630Name: WALLET_EXCHANGE_UNAVAILABLE
2631Description: An exchange that is required for some request is currently not available.
2632HttpStatus: 0
2633
2634Value: 7033
2635Name: WALLET_EXCHANGE_ENTRY_USED
2636Description: An exchange entry is still used by the exchange, thus it can't be deleted without purging.
2637HttpStatus: 0
2638
2639Value: 7034
2640Name: WALLET_DB_UNAVAILABLE
2641Description: The wallet database is unavailable and the wallet thus is not operational.
2642HttpStatus: 0
2643
2644Value: 7035
2645Name: WALLET_TALER_URI_MALFORMED
2646Description: A taler:// URI is malformed and can't be parsed.
2647HttpStatus: 0
2648
2649Value: 7036
2650Name: WALLET_CORE_REQUEST_CANCELLED
2651Description: A wallet-core request was cancelled and thus can't provide a response.
2652HttpStatus: 0
2653
2654# 8000 - 8499: Reserved for Anastasis
1572 2655
1573Value: 8000 2656Value: 8000
1574Name: ANASTASIS_GENERIC_BACKEND_TIMEOUT 2657Name: ANASTASIS_GENERIC_BACKEND_TIMEOUT
@@ -1610,15 +2693,25 @@ Name: ANASTASIS_GENERIC_PAYMENT_CHECK_START_FAILED
1610Description: The backend could not check payment status with the payment processor. 2693Description: The backend could not check payment status with the payment processor.
1611HttpStatus: 500 2694HttpStatus: 500
1612 2695
2696Value: 8008
2697Name: ANASTASIS_GENERIC_PROVIDER_UNREACHABLE
2698Description: The Anastasis provider could not be reached.
2699HttpStatus: 0
2700
2701Value: 8009
2702Name: ANASTASIS_PAYMENT_GENERIC_TIMEOUT
2703Description: HTTP server experienced a timeout while awaiting promised payment.
2704HttpStatus: 408
2705
1613 2706
1614Value: 8108 2707Value: 8108
1615Name: ANASTASIS_TRUTH_UNKNOWN 2708Name: ANASTASIS_TRUTH_UNKNOWN
1616Description: The truth public key is unknown to the provider. 2709Description: The key share is unknown to the provider.
1617HttpStatus: 404 2710HttpStatus: 404
1618 2711
1619Value: 8109 2712Value: 8109
1620Name: ANASTASIS_TRUTH_AUTHORIZATION_METHOD_NO_LONGER_SUPPORTED 2713Name: ANASTASIS_TRUTH_AUTHORIZATION_METHOD_NO_LONGER_SUPPORTED
1621Description: The authorization method used by the truth is no longer supported by the provider. 2714Description: The authorization method used for the key share is no longer supported by the provider.
1622HttpStatus: 500 2715HttpStatus: 500
1623 2716
1624Value: 8110 2717Value: 8110
@@ -1633,13 +2726,8 @@ HttpStatus: 403
1633 2726
1634Value: 8112 2727Value: 8112
1635Name: ANASTASIS_TRUTH_CHALLENGE_UNKNOWN 2728Name: ANASTASIS_TRUTH_CHALLENGE_UNKNOWN
1636Description: The service is unaware of having issued a challenge. 2729Description: The backend is not aware of having issued the provided challenge code. Either this is the wrong code, or it has expired.
1637HttpStatus: 410 2730HttpStatus: 404
1638
1639Value: 8113
1640Name: ANASTASIS_TRUTH_CHALLENGE_ACTIVE
1641Description: A challenge is already active, the service is thus not issuing a new one.
1642HttpStatus: 208
1643 2731
1644Value: 8114 2732Value: 8114
1645Name: ANASTASIS_TRUTH_AUTHORIZATION_START_FAILED 2733Name: ANASTASIS_TRUTH_AUTHORIZATION_START_FAILED
@@ -1673,28 +2761,27 @@ HttpStatus: 502
1673 2761
1674Value: 8120 2762Value: 8120
1675Name: ANASTASIS_TRUTH_DECRYPTION_FAILED 2763Name: ANASTASIS_TRUTH_DECRYPTION_FAILED
1676Description: The decryption of the truth object failed with the provided key. 2764Description: The decryption of the key share failed with the provided key.
1677HttpStatus: 417 2765HttpStatus: 400
1678 2766
1679Value: 8121 2767Value: 8121
1680Name: ANASTASIS_TRUTH_RATE_LIMITED 2768Name: ANASTASIS_TRUTH_RATE_LIMITED
1681Description: The request rate is too high. The server is refusing requests to guard against brute-force attacks. 2769Description: The request rate is too high. The server is refusing requests to guard against brute-force attacks.
1682HttpStatus: 429 2770HttpStatus: 429
1683 2771
1684Value: 8122 2772Value: 8123
1685Name: ANASTASIS_TRUTH_AUTH_TIMEOUT 2773Name: ANASTASIS_TRUTH_CHALLENGE_WRONG_METHOD
1686Description: The authentication process did not yet complete. The user should try again later. 2774Description: A request to issue a challenge is not valid for this authentication method.
1687HttpStatus: 408 2775HttpStatus: 400
1688
1689 2776
1690Value: 8150 2777Value: 8150
1691Name: ANASTASIS_TRUTH_UPLOAD_UUID_EXISTS 2778Name: ANASTASIS_TRUTH_UPLOAD_UUID_EXISTS
1692Description: The backend failed to store the truth because the UUID is already in use. 2779Description: The backend failed to store the key share because the UUID is already in use.
1693HttpStatus: 409 2780HttpStatus: 409
1694 2781
1695Value: 8151 2782Value: 8151
1696Name: ANASTASIS_TRUTH_UPLOAD_METHOD_NOT_SUPPORTED 2783Name: ANASTASIS_TRUTH_UPLOAD_METHOD_NOT_SUPPORTED
1697Description: The backend failed to store the truth because the authorization method is not supported. 2784Description: The backend failed to store the key share because the authorization method is not supported.
1698HttpStatus: 400 2785HttpStatus: 400
1699 2786
1700 2787
@@ -1702,7 +2789,7 @@ HttpStatus: 400
1702Value: 8200 2789Value: 8200
1703Name: ANASTASIS_SMS_PHONE_INVALID 2790Name: ANASTASIS_SMS_PHONE_INVALID
1704Description: The provided phone number is not an acceptable number. 2791Description: The provided phone number is not an acceptable number.
1705HttpStatus: 417 2792HttpStatus: 409
1706 2793
1707Value: 8201 2794Value: 8201
1708Name: ANASTASIS_SMS_HELPER_EXEC_FAILED 2795Name: ANASTASIS_SMS_HELPER_EXEC_FAILED
@@ -1718,7 +2805,7 @@ HttpStatus: 500
1718Value: 8210 2805Value: 8210
1719Name: ANASTASIS_EMAIL_INVALID 2806Name: ANASTASIS_EMAIL_INVALID
1720Description: The provided email address is not an acceptable address. 2807Description: The provided email address is not an acceptable address.
1721HttpStatus: 417 2808HttpStatus: 409
1722 2809
1723Value: 8211 2810Value: 8211
1724Name: ANASTASIS_EMAIL_HELPER_EXEC_FAILED 2811Name: ANASTASIS_EMAIL_HELPER_EXEC_FAILED
@@ -1734,7 +2821,7 @@ HttpStatus: 500
1734Value: 8220 2821Value: 8220
1735Name: ANASTASIS_POST_INVALID 2822Name: ANASTASIS_POST_INVALID
1736Description: The provided postal address is not an acceptable address. 2823Description: The provided postal address is not an acceptable address.
1737HttpStatus: 417 2824HttpStatus: 409
1738 2825
1739Value: 8221 2826Value: 8221
1740Name: ANASTASIS_POST_HELPER_EXEC_FAILED 2827Name: ANASTASIS_POST_HELPER_EXEC_FAILED
@@ -1750,18 +2837,23 @@ HttpStatus: 500
1750Value: 8230 2837Value: 8230
1751Name: ANASTASIS_IBAN_INVALID 2838Name: ANASTASIS_IBAN_INVALID
1752Description: The provided IBAN address is not an acceptable IBAN. 2839Description: The provided IBAN address is not an acceptable IBAN.
1753HttpStatus: 417 2840HttpStatus: 409
2841
2842Value: 8231
2843Name: ANASTASIS_IBAN_MISSING_TRANSFER
2844Description: The provider has not yet received the IBAN wire transfer authorizing the disclosure of the key share.
2845HttpStatus: 403
1754 2846
1755 2847
1756Value: 8240 2848Value: 8240
1757Name: ANASTASIS_TOTP_KEY_MISSING 2849Name: ANASTASIS_TOTP_KEY_MISSING
1758Description: The backend did not find a TOTP key in the data provided. 2850Description: The backend did not find a TOTP key in the data provided.
1759HttpStatus: 417 2851HttpStatus: 409
1760 2852
1761Value: 8241 2853Value: 8241
1762Name: ANASTASIS_TOTP_KEY_INVALID 2854Name: ANASTASIS_TOTP_KEY_INVALID
1763Description: The key provided does not satisfy the format restrictions for an Anastasis TOTP key. 2855Description: The key provided does not satisfy the format restrictions for an Anastasis TOTP key.
1764HttpStatus: 417 2856HttpStatus: 409
1765 2857
1766 2858
1767Value: 8301 2859Value: 8301
@@ -1848,7 +2940,7 @@ HttpStatus: 0
1848 2940
1849Value: 8410 2941Value: 8410
1850Name: ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED 2942Name: ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED
1851Description: Our attempts to download the recovery document failed with all providers. 2943Description: Our attempts to download the recovery document failed with all providers. Most likely the personal information you entered differs from the information you provided during the backup process and you should go back to the previous step. Alternatively, if you used a backup provider that is unknown to this application, you should add that provider manually.
1852HttpStatus: 0 2944HttpStatus: 0
1853 2945
1854Value: 8411 2946Value: 8411
@@ -1896,8 +2988,36 @@ Name: ANASTASIS_REDUCER_INTERNAL_ERROR
1896Description: The reducer encountered an internal error, likely a bug that needs to be reported. 2988Description: The reducer encountered an internal error, likely a bug that needs to be reported.
1897HttpStatus: 0 2989HttpStatus: 0
1898 2990
2991Value: 8420
2992Name: ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED
2993Description: The reducer already synchronized with all providers.
2994HttpStatus: 0
1899 2995
1900# 9000 - 9998: LibEuFin. 2996# 8500 - 8600: Frosix
2997
2998# 8600 - 8700: Donau
2999
3000Value: 8607
3001Name: DONAU_GENERIC_KEYS_MISSING
3002Description: The Donau failed to perform the operation as it could not find the private keys. This is a problem with the Donau setup, not with the client's request.
3003HttpStatus: 503
3004
3005Value: 8608
3006Name: DONAU_CHARITY_SIGNATURE_INVALID
3007Description: The signature of the charity key is not valid.
3008HttpStatus: 403
3009
3010Value: 8609
3011Name: DONAU_CHARITY_NOT_FOUND
3012Description: The charity is unknown.
3013HttpStatus: 404
3014
3015Value: 8610
3016Name: DONAU_EXCEEDING_DONATION_LIMIT
3017Description: The donation amount specified in the request exceeds the limit of the charity.
3018HttpStatus: 400
3019
3020# 9000 - 9599: LibEuFin.
1901 3021
1902Value: 9000 3022Value: 9000
1903Name: LIBEUFIN_NEXUS_GENERIC_ERROR 3023Name: LIBEUFIN_NEXUS_GENERIC_ERROR
@@ -1919,7 +3039,70 @@ Name: LIBEUFIN_SANDBOX_UNCAUGHT_EXCEPTION
1919Description: An uncaught exception happened in the LibEuFin sandbox service. 3039Description: An uncaught exception happened in the LibEuFin sandbox service.
1920HttpStatus: 500 3040HttpStatus: 500
1921 3041
3042# 9600 - 9749: Taldir
3043Value: 9600
3044Name: TALDIR_METHOD_NOT_SUPPORTED
3045Description: This validation method is not supported by the service.
3046HttpStatus: 404
3047
3048Value: 9601
3049Name: TALDIR_REGISTER_RATE_LIMITED
3050Description: Number of allowed attempts for initiating a challenge exceeded.
3051HttpStatus: 429
3052
3053# 9750-9999: Challenger
3054Value: 9750
3055Name: CHALLENGER_GENERIC_CLIENT_UNKNOWN
3056Description: The client is unknown or unauthorized.
3057HttpStatus: 404
3058
3059Value: 9751
3060Name: CHALLENGER_GENERIC_CLIENT_FORBIDDEN_BAD_REDIRECT_URI
3061Description: The client is not authorized to use the given redirect URI.
3062HttpStatus: 403
3063
3064Value: 9752
3065Name: CHALLENGER_HELPER_EXEC_FAILED
3066Description: The service failed to execute its helper process to send the challenge.
3067HttpStatus: 500
3068
3069Value: 9753
3070Name: CHALLENGER_GRANT_UNKNOWN
3071Description: The grant is unknown to the service (it could also have expired).
3072HttpStatus: 404
3073
3074Value: 9754
3075Name: CHALLENGER_CLIENT_FORBIDDEN_BAD_CODE
3076Description: The code given is not even well-formed.
3077HttpStatus: 403
3078
3079Value: 9755
3080Name: CHALLENGER_GENERIC_VALIDATION_UNKNOWN
3081Description: The service is not aware of the referenced validation process.
3082HttpStatus: 404
3083
3084Value: 9756
3085Name: CHALLENGER_CLIENT_FORBIDDEN_INVALID_CODE
3086Description: The code given is not valid.
3087HttpStatus: 403
3088
3089Value: 9757
3090Name: CHALLENGER_TOO_MANY_ATTEMPTS
3091Description: Too many attempts have been made, validation is temporarily disabled for this address.
3092HttpStatus: 429
3093
3094Value: 9758
3095Name: CHALLENGER_INVALID_PIN
3096Description: The PIN code provided is incorrect.
3097HttpStatus: 403
3098
3099Value: 9759
3100Name: CHALLENGER_MISSING_ADDRESS
3101Description: The token cannot be valid as no address was ever provided by the client.
3102HttpStatus: 409
3103
1922 3104
3105# Some of our build systems expect the range to be < 10k, so let's keep it like this for now.
1923Value: 9999 3106Value: 9999
1924Name: END 3107Name: END
1925Description: End of error code range. 3108Description: End of error code range.