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.rec1025
1 files changed, 883 insertions, 142 deletions
diff --git a/gnu-taler-error-codes/registry.rec b/gnu-taler-error-codes/registry.rec
index fe8d7c4..0de4c76 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,6 +17,7 @@
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%type: HttpStatus rec HttpStatusCode 22%type: HttpStatus rec HttpStatusCode
20%mandatory: HttpStatus 23%mandatory: HttpStatus
@@ -22,200 +25,248 @@
22 25
23# 0 - 99: Reserved for GENERIC error codes 26# 0 - 99: Reserved for GENERIC error codes
24 27
25Value: 0 28Value: 0000
26Name: NONE 29Name: NONE
27Description: Special code to indicate success (no error). 30Description: Special code to indicate success (no error).
28HttpStatus: 0 31HttpStatus: 0
29 32
30# We could not get the error code. 33# We could not get the error code.
31 34Value: 0001
32Value: 1
33Name: INVALID 35Name: INVALID
34Description: 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.
35HttpStatus: 0 37HttpStatus: 0
36 38
37Value: 2 39Value: 0002
38Name: GENERIC_CLIENT_INTERNAL_ERROR 40Name: GENERIC_CLIENT_INTERNAL_ERROR
39Description: An internal failure happened on the client side. 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.
40HttpStatus: 0 42HttpStatus: 0
41 43
42# Fundamental problems detected client-side (10-19) 44# Fundamental problems detected client-side (10-19)
43 45
44Value: 10 46Value: 0010
45Name: GENERIC_INVALID_RESPONSE 47Name: GENERIC_INVALID_RESPONSE
46Description: 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.
47HttpStatus: 0 49HttpStatus: 0
48 50
49Value: 11 51Value: 0011
50Name: GENERIC_TIMEOUT 52Name: GENERIC_TIMEOUT
51Description: An operation timed out. 53Description: The operation timed out. Trying again might help. Check the network connection.
52HttpStatus: 0 54HttpStatus: 0
53 55
54Value: 12 56Value: 0012
55Name: GENERIC_VERSION_MALFORMED 57Name: GENERIC_VERSION_MALFORMED
56Description: 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.
57HttpStatus: 0 59HttpStatus: 0
58 60
59Value: 13 61Value: 0013
60Name: GENERIC_REPLY_MALFORMED 62Name: GENERIC_REPLY_MALFORMED
61Description: 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.
62HttpStatus: 0 64HttpStatus: 0
63 65
64Value: 14 66Value: 0014
65Name: GENERIC_CONFIGURATION_INVALID 67Name: GENERIC_CONFIGURATION_INVALID
66Description: 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.
67HttpStatus: 0 69HttpStatus: 0
68 70
69Value: 15 71Value: 0015
70Name: GENERIC_UNEXPECTED_REQUEST_ERROR 72Name: GENERIC_UNEXPECTED_REQUEST_ERROR
71Description: The client made a request to a service, but received an error response it does not know how to handle. 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.
72HttpStatus: 0 74HttpStatus: 0
73 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
74# Fundamental client-side protocol problems (20-29) 81# Fundamental client-side protocol problems (20-29)
75# (fundamental: cannot be helped, client is very broken) 82# (fundamental: cannot be helped, client is very broken)
76 83
77Value: 20 84Value: 0020
78Name: GENERIC_METHOD_INVALID 85Name: GENERIC_METHOD_INVALID
79Description: 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.
80HttpStatus: 405 87HttpStatus: 405
81 88
82Value: 21 89Value: 0021
83Name: GENERIC_ENDPOINT_UNKNOWN 90Name: GENERIC_ENDPOINT_UNKNOWN
84Description: 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.
85HttpStatus: 404 92HttpStatus: 404
86 93
87Value: 22 94Value: 0022
88Name: GENERIC_JSON_INVALID 95Name: GENERIC_JSON_INVALID
89Description: 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.
90HttpStatus: 400 97HttpStatus: 400
91 98
92Value: 23 99Value: 0023
93Name: GENERIC_HTTP_HEADERS_MALFORMED 100Name: GENERIC_HTTP_HEADERS_MALFORMED
94Description: 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.
95HttpStatus: 400 102HttpStatus: 400
96 103
97Value: 24 104Value: 0024
98Name: GENERIC_PAYTO_URI_MALFORMED 105Name: GENERIC_PAYTO_URI_MALFORMED
99Description: 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.
100HttpStatus: 400 107HttpStatus: 400
101 108
102Value: 25 109Value: 0025
103Name: GENERIC_PARAMETER_MISSING 110Name: GENERIC_PARAMETER_MISSING
104Description: 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.
105HttpStatus: 400 112HttpStatus: 400
106 113
107Value: 26 114Value: 0026
108Name: GENERIC_PARAMETER_MALFORMED 115Name: GENERIC_PARAMETER_MALFORMED
109Description: 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.
110HttpStatus: 400 117HttpStatus: 400
111 118
119Value: 0027
120Name: GENERIC_RESERVE_PUB_MALFORMED
121Description: The reserve public key was malformed.
122HttpStatus: 400
123FIXME: Fold with 26?
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
112 129
113# Circumstantial client-side protocol problems (30-39) 130# Circumstantial client-side protocol problems (30-39)
114# (Circumstantial == may work with another server, but not this one) 131# (Circumstantial == may work with another server, but not this one)
115 132
116Value: 30 133Value: 0030
117Name: GENERIC_CURRENCY_MISMATCH 134Name: GENERIC_CURRENCY_MISMATCH
118Description: 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.
119HttpStatus: 400 136HttpStatus: 400
120 137
121Value: 31 138Value: 0031
122Name: GENERIC_URI_TOO_LONG 139Name: GENERIC_URI_TOO_LONG
123Description: 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.
124HttpStatus: 414 141HttpStatus: 414
125 142
126Value: 32 143Value: 0032
127Name: GENERIC_UPLOAD_EXCEEDS_LIMIT 144Name: GENERIC_UPLOAD_EXCEEDS_LIMIT
128Description: 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.
129HttpStatus: 413 146HttpStatus: 413
130 147
131 148
132# 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
133 154
155Value: 0041
156Name: GENERIC_TOKEN_UNKNOWN
157Description: The service refused the request as the given authorization token is unknown.
158HttpStatus: 401
134 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
135 174
136# Server-side database problems (50-59) 175# Server-side database problems (50-59)
137 176
138Value: 50 177Value: 0050
139Name: GENERIC_DB_SETUP_FAILED 178Name: GENERIC_DB_SETUP_FAILED
140Description: 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.
141HttpStatus: 500 180HttpStatus: 500
142 181
143Value: 51 182Value: 0051
144Name: GENERIC_DB_START_FAILED 183Name: GENERIC_DB_START_FAILED
145Description: 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.
146HttpStatus: 500 185HttpStatus: 500
147 186
148Value: 52 187Value: 0052
149Name: GENERIC_DB_STORE_FAILED 188Name: GENERIC_DB_STORE_FAILED
150Description: 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.
151HttpStatus: 500 190HttpStatus: 500
152 191
153Value: 53 192Value: 0053
154Name: GENERIC_DB_FETCH_FAILED 193Name: GENERIC_DB_FETCH_FAILED
155Description: 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.
156HttpStatus: 500 195HttpStatus: 500
157 196
158Value: 54 197Value: 0054
159Name: GENERIC_DB_COMMIT_FAILED 198Name: GENERIC_DB_COMMIT_FAILED
160Description: 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.
161HttpStatus: 500 200HttpStatus: 500
162 201
163Value: 55 202Value: 0055
164Name: GENERIC_DB_SOFT_FAILURE 203Name: GENERIC_DB_SOFT_FAILURE
165Description: 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.
166HttpStatus: 500 205HttpStatus: 500
167 206
168Value: 56 207Value: 0056
169Name: GENERIC_DB_INVARIANT_FAILURE 208Name: GENERIC_DB_INVARIANT_FAILURE
170Description: 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.
171HttpStatus: 500 210HttpStatus: 500
172 211
173 212
174# Server-side computational problems (60-69) 213# Server-side computational problems (60-69)
175 214
176Value: 60 215Value: 0060
177Name: GENERIC_INTERNAL_INVARIANT_FAILURE 216Name: GENERIC_INTERNAL_INVARIANT_FAILURE
178Description: 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.
179HttpStatus: 500 218HttpStatus: 500
180 219
181Value: 61 220Value: 0061
182Name: GENERIC_FAILED_COMPUTE_JSON_HASH 221Name: GENERIC_FAILED_COMPUTE_JSON_HASH
183Description: 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.
184HttpStatus: 500 223HttpStatus: 500
185 224
186Value: 62 225Value: 0062
187Name: GENERIC_FAILED_COMPUTE_AMOUNT 226Name: GENERIC_FAILED_COMPUTE_AMOUNT
188Description: The service could not compute an 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.
189HttpStatus: 500 228HttpStatus: 500
190 229
191 230
192# Server-side resource problems (70-79) 231# Server-side resource problems (70-79)
193 232
194Value: 70 233Value: 0070
195Name: GENERIC_PARSER_OUT_OF_MEMORY 234Name: GENERIC_PARSER_OUT_OF_MEMORY
196Description: 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.
197HttpStatus: 500 236HttpStatus: 500
198 237
199Value: 71 238Value: 0071
200Name: GENERIC_ALLOCATION_FAILURE 239Name: GENERIC_ALLOCATION_FAILURE
201Description: 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.
202HttpStatus: 500 241HttpStatus: 500
203 242
204Value: 72 243Value: 0072
205Name: GENERIC_JSON_ALLOCATION_FAILURE 244Name: GENERIC_JSON_ALLOCATION_FAILURE
206Description: 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.
207HttpStatus: 500 246HttpStatus: 500
208 247
209Value: 73 248Value: 0073
210Name: GENERIC_CURL_ALLOCATION_FAILURE 249Name: GENERIC_CURL_ALLOCATION_FAILURE
211Description: 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.
251HttpStatus: 500
252
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.
212HttpStatus: 500 256HttpStatus: 500
213 257
214# 80-99: available for future use 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
215 264
265# 0080-0099: available for future use
216 266
217 267
218# 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).
219 270
220# 1000 - 1999: Reserved for exchange 271# 1000 - 1999: Reserved for exchange
221# 1000 - 1099: Reserved for EXCHANGE_GENERIC 272# 1000 - 1099: Reserved for EXCHANGE_GENERIC
@@ -316,9 +367,9 @@ Description: The number of denominations specified in the request exceeds the li
316HttpStatus: 400 367HttpStatus: 400
317 368
318Value: 1019 369Value: 1019
319Name: EXCHANGE_GENERIC_RESERVE_PUB_MALFORMED 370Name: EXCHANGE_GENERIC_COIN_UNKNOWN
320Description: The reserve public key was malformed. 371Description: The coin is not known to the exchange (yet).
321HttpStatus: 400 372HttpStatus: 404
322 373
323Value: 1020 374Value: 1020
324Name: EXCHANGE_GENERIC_CLOCK_SKEW 375Name: EXCHANGE_GENERIC_CLOCK_SKEW
@@ -365,6 +416,50 @@ Name: EXCHANGE_GENERIC_KYC_REQUIRED
365Description: The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check. 416Description: The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check.
366HttpStatus: 451 417HttpStatus: 451
367 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
368 463
369 464
370Value: 1100 465Value: 1100
@@ -402,11 +497,20 @@ Name: EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID
402Description: The signature of the merchant is invalid. 497Description: The signature of the merchant is invalid.
403HttpStatus: 403 498HttpStatus: 403
404 499
500Value: 1107
501Name: EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED
502Description: The provided policy data was not accepted
503HttpStatus: 400
504
405Value: 1150 505Value: 1150
406Name: EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS 506Name: EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS
407Description: 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.
408HttpStatus: 409 508HttpStatus: 409
409 509
510Value: 1151
511Name: EXCHANGE_AGE_WITHDRAW_INSUFFICIENT_FUNDS
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.
513HttpStatus: 409
410 514
411Value: 1152 515Value: 1152
412Name: EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW 516Name: EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW
@@ -424,10 +528,15 @@ Description: The signature of the reserve is not valid.
424HttpStatus: 403 528HttpStatus: 403
425 529
426Value: 1155 530Value: 1155
427Name: EXCHANGE_WITHDRAW_HISTORY_ERROR_INSUFFICIENT_FUNDS 531Name: EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS
428Description: 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.
429HttpStatus: 500 533HttpStatus: 500
430 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
431Value: 1158 540Value: 1158
432Name: EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST 541Name: EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST
433Description: 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.
@@ -441,8 +550,33 @@ HttpStatus: 0
441Value: 1160 550Value: 1160
442Name: EXCHANGE_WITHDRAW_NONCE_REUSE 551Name: EXCHANGE_WITHDRAW_NONCE_REUSE
443Description: The client re-used a withdraw nonce, which is not allowed. 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.
444HttpStatus: 400 568HttpStatus: 400
445 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
446Value: 1175 580Value: 1175
447Name: EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET 581Name: EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET
448Description: The batch withdraw included a planchet that was already withdrawn. This is not allowed. 582Description: The batch withdraw included a planchet that was already withdrawn. This is not allowed.
@@ -494,18 +628,19 @@ Description: The deposited amount is smaller than the deposit fee, which would r
494HttpStatus: 400 628HttpStatus: 400
495 629
496 630
497Value: 1250 631Value: 1240
498Name: EXCHANGE_RESERVES_STATUS_UNKNOWN 632Name: EXCHANGE_EXTENSIONS_INVALID_FULFILLMENT
499Description: The reserve balance, status or history was requested for a reserve which is not known to the exchange. 633Description: The proof of policy fulfillment was invalid.
500HttpStatus: 404 634HttpStatus: 400
635
501 636
502Value: 1251 637Value: 1251
503Name: EXCHANGE_RESERVES_STATUS_BAD_SIGNATURE 638Name: EXCHANGE_COIN_HISTORY_BAD_SIGNATURE
504Description: The reserve status was requested with a bad signature. 639Description: The coin history was requested with a bad signature.
505HttpStatus: 403 640HttpStatus: 403
506 641
507Value: 1252 642Value: 1252
508Name: EXCHANGE_RESERVES_HISTORY_BAD_SIGNATURE 643Name: EXCHANGE_RESERVE_HISTORY_BAD_SIGNATURE
509Description: The reserve history was requested with a bad signature. 644Description: The reserve history was requested with a bad signature.
510HttpStatus: 403 645HttpStatus: 403
511 646
@@ -782,11 +917,25 @@ Name: EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW
782Description: The purse fee specified for the request is lower than the purse fee charged by the exchange at this time. 917Description: The purse fee specified for the request is lower than the purse fee charged by the exchange at this time.
783HttpStatus: 400 918HttpStatus: 400
784 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
785 934
786Value: 1700 935Value: 1700
787Name: EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE 936Name: EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE
788Description: 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.
789HttpStatus: 500 938HttpStatus: 502
790 939
791Value: 1701 940Value: 1701
792Name: EXCHANGE_DENOMINATION_HELPER_BUG 941Name: EXCHANGE_DENOMINATION_HELPER_BUG
@@ -807,7 +956,7 @@ HttpStatus: 0
807Value: 1750 956Value: 1750
808Name: EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE 957Name: EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE
809Description: 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.
810HttpStatus: 500 959HttpStatus: 502
811 960
812Value: 1751 961Value: 1751
813Name: EXCHANGE_SIGNKEY_HELPER_BUG 962Name: EXCHANGE_SIGNKEY_HELPER_BUG
@@ -840,7 +989,30 @@ Name: EXCHANGE_RESERVES_RESERVE_MERGE_SIGNATURE_INVALID
840Description: The signature by the reserve affirming the merge is invalid. 989Description: The signature by the reserve affirming the merge is invalid.
841HttpStatus: 403 990HttpStatus: 403
842 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
843 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
844 1016
845Value: 1800 1017Value: 1800
846Name: EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND 1018Name: EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND
@@ -932,6 +1104,44 @@ Name: EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID
932Description: The signature affirming the fee structure is invalid. 1104Description: The signature affirming the fee structure is invalid.
933HttpStatus: 403 1105HttpStatus: 403
934 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
935Value: 1850 1145Value: 1850
936Name: EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA 1146Name: EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA
937Description: The purse was previously created with different meta data. 1147Description: The purse was previously created with different meta data.
@@ -1012,6 +1222,16 @@ Name: EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN
1012Description: The exchange of the target account is not a partner of this exchange. 1222Description: The exchange of the target account is not a partner of this exchange.
1013HttpStatus: 404 1223HttpStatus: 404
1014 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
1015 1235
1016Value: 1900 1236Value: 1900
1017Name: EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID 1237Name: EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID
@@ -1048,11 +1268,58 @@ Name: EXCHANGE_KYC_PROOF_BACKEND_AUTHORIZATION_FAILED
1048Description: The backend signaled an authorization failure. 1268Description: The backend signaled an authorization failure.
1049HttpStatus: 403 1269HttpStatus: 403
1050 1270
1271Value: 1929
1272Name: EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN
1273Description: The exchange is unaware of having made an the authorization request.
1274HttpStatus: 404
1275
1051Value: 1930 1276Value: 1930
1052Name: EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED 1277Name: EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED
1053Description: The payto-URI hash did not match. Hence the request was denied. 1278Description: The payto-URI hash did not match. Hence the request was denied.
1054HttpStatus: 403 1279HttpStatus: 403
1055 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
1056Value: 1950 1323Value: 1950
1057Name: EXCHANGE_CONTRACTS_UNKNOWN 1324Name: EXCHANGE_CONTRACTS_UNKNOWN
1058Description: The exchange does not know a contract under the given contract public key. 1325Description: The exchange does not know a contract under the given contract public key.
@@ -1083,6 +1350,18 @@ Name: EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID
1083Description: A coin signature for a deposit into the purse is invalid. 1350Description: A coin signature for a deposit into the purse is invalid.
1084HttpStatus: 403 1351HttpStatus: 403
1085 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
1086 1365
1087 1366
1088 1367
@@ -1100,19 +1379,9 @@ Description: The start and end-times in the wire fee structure leave a hole. Thi
1100HttpStatus: 0 1379HttpStatus: 0
1101 1380
1102Value: 2002 1381Value: 2002
1103Name: MERCHANT_GENERIC_RESERVE_PUB_MALFORMED 1382Name: MERCHANT_GENERIC_EXCHANGE_WIRE_REQUEST_FAILED
1104Description: 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.
1105HttpStatus: 400 1384HttpStatus: 502
1106
1107Value: 2003
1108Name: MERCHANT_GENERIC_FAILED_TO_LOAD_TEMPLATE
1109Description: The backend could not locate a required template to generate an HTML reply.
1110HttpStatus: 406
1111
1112Value: 2004
1113Name: MERCHANT_GENERIC_FAILED_TO_EXPAND_TEMPLATE
1114Description: The backend could not expand the template to generate an HTML reply.
1115HttpStatus: 500
1116 1385
1117Value: 2005 1386Value: 2005
1118Name: MERCHANT_GENERIC_ORDER_UNKNOWN 1387Name: MERCHANT_GENERIC_ORDER_UNKNOWN
@@ -1125,8 +1394,8 @@ Description: The order provided to the backend could not be completed, because a
1125HttpStatus: 404 1394HttpStatus: 404
1126 1395
1127Value: 2007 1396Value: 2007
1128Name: MERCHANT_GENERIC_TIP_ID_UNKNOWN 1397Name: MERCHANT_GENERIC_REWARD_ID_UNKNOWN
1129Description: 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.
1130HttpStatus: 404 1399HttpStatus: 404
1131 1400
1132Value: 2008 1401Value: 2008
@@ -1179,6 +1448,40 @@ Name: MERCHANT_GENERIC_TRANSFER_UNKNOWN
1179Description: 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.
1180HttpStatus: 404 1449HttpStatus: 404
1181 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
1182 1485
1183# 2100-2499: public API 1486# 2100-2499: public API
1184# 2100-2149: get orders endpoint 1487# 2100-2149: get orders endpoint
@@ -1188,7 +1491,6 @@ Name: MERCHANT_GET_ORDERS_EXCHANGE_TRACKING_FAILURE
1188Description: 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.
1189HttpStatus: 200 1492HttpStatus: 200
1190 1493
1191
1192Value: 2103 1494Value: 2103
1193Name: MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE 1495Name: MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE
1194Description: 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.
@@ -1239,12 +1541,12 @@ HttpStatus: 400
1239Value: 2155 1541Value: 2155
1240Name: MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES 1542Name: MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES
1241Description: 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.
1242HttpStatus: 406 1544HttpStatus: 400
1243 1545
1244Value: 2156 1546Value: 2156
1245Name: MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT 1547Name: MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT
1246Description: 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.
1247HttpStatus: 406 1549HttpStatus: 400
1248 1550
1249Value: 2157 1551Value: 2157
1250Name: MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID 1552Name: MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID
@@ -1331,7 +1633,13 @@ Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_HASH_MISSING
1331Description: 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. 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.
1332HttpStatus: 400 1634HttpStatus: 400
1333 1635
1334# 2200-2249: post orders ID paid endpoint 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
1641
1642# 2200-2224: post orders ID paid endpoint
1335 1643
1336Value: 2200 1644Value: 2200
1337Name: MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH 1645Name: MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH
@@ -1343,8 +1651,20 @@ Name: MERCHANT_POST_ORDERS_ID_PAID_COIN_SIGNATURE_INVALID
1343Description: The signature of the merchant is not valid for the given contract hash. 1651Description: The signature of the merchant is not valid for the given contract hash.
1344HttpStatus: 403 1652HttpStatus: 403
1345 1653
1346# 2250-2299: post orders ID abort endpoint 1654# 2225-2249: token families endpoints
1655
1656Value: 2225
1657Name: MERCHANT_POST_TOKEN_FAMILY_CONFLICT
1658Description: A token family with this ID but conflicting data exists.
1659HttpStatus: 409
1660
1661Value: 2226
1662Name: MERCHANT_PATCH_TOKEN_FAMILY_NOT_FOUND
1663Description: The backend is unaware of a token family with the given ID.
1664HttpStatus: 404
1665
1347 1666
1667# 2250-2256: post orders ID abort endpoint
1348 1668
1349Value: 2251 1669Value: 2251
1350Name: MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED 1670Name: MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED
@@ -1376,6 +1696,44 @@ Name: MERCHANT_POST_ORDERS_ID_ABORT_COINS_ARRAY_EMPTY
1376Description: The array of coins cannot be empty. 1696Description: The array of coins cannot be empty.
1377HttpStatus: 400 1697HttpStatus: 400
1378 1698
1699Value: 2258
1700Name: MERCHANT_EXCHANGE_TRANSFERS_AWAITING_KEYS
1701Description: We are waiting for the exchange to provide us with key material before checking the wire transfer.
1702HttpStatus: 202
1703
1704Value: 2259
1705Name: MERCHANT_EXCHANGE_TRANSFERS_AWAITING_LIST
1706Description: We are waiting for the exchange to provide us with the list of aggregated transactions.
1707HttpStatus: 202
1708
1709
1710Value: 2260
1711Name: MERCHANT_EXCHANGE_TRANSFERS_FATAL_NO_EXCHANGE
1712Description: The endpoint indicated in the wire transfer does not belong to a GNU Taler exchange.
1713HttpStatus: 200
1714
1715Value: 2261
1716Name: MERCHANT_EXCHANGE_TRANSFERS_FATAL_NOT_FOUND
1717Description: The exchange indicated in the wire transfer claims to know nothing about the wire transfer.
1718HttpStatus: 0
1719
1720Value: 2262
1721Name: MERCHANT_EXCHANGE_TRANSFERS_RATE_LIMITED
1722Description: The interaction with the exchange is delayed due to rate limiting.
1723HttpStatus: 202
1724
1725Value: 2263
1726Name: MERCHANT_EXCHANGE_TRANSFERS_TRANSIENT_FAILURE
1727Description: We experienced a transient failure in our interaction with the exchange.
1728HttpStatus: 202
1729
1730Value: 2264
1731Name: MERCHANT_EXCHANGE_TRANSFERS_HARD_FAILURE
1732Description: The response from the exchange was unacceptable and should be reviewed with an auditor.
1733HttpStatus: 200
1734
1735
1736
1379# 2300-2349: post orders ID claim endpoint 1737# 2300-2349: post orders ID claim endpoint
1380 1738
1381Value: 2300 1739Value: 2300
@@ -1400,38 +1758,38 @@ Name: MERCHANT_POST_ORDERS_ID_REFUND_SIGNATURE_FAILED
1400Description: The backend failed to sign the refund request. 1758Description: The backend failed to sign the refund request.
1401HttpStatus: 0 1759HttpStatus: 0
1402 1760
1403# 2400-2449: tip pickup endpoint 1761# 2400-2449: reward pickup endpoint
1404 1762
1405Value: 2400 1763Value: 2400
1406Name: MERCHANT_TIP_PICKUP_UNBLIND_FAILURE 1764Name: MERCHANT_REWARD_PICKUP_UNBLIND_FAILURE
1407Description: The client failed to unblind the signature returned by the merchant. 1765Description: The client failed to unblind the signature returned by the merchant.
1408HttpStatus: 0 1766HttpStatus: 0
1409 1767
1410 1768
1411 1769
1412Value: 2403 1770Value: 2403
1413Name: MERCHANT_TIP_PICKUP_EXCHANGE_ERROR 1771Name: MERCHANT_REWARD_PICKUP_EXCHANGE_ERROR
1414Description: The exchange returned a failure code for the withdraw operation. 1772Description: The exchange returned a failure code for the withdraw operation.
1415HttpStatus: 502 1773HttpStatus: 502
1416 1774
1417 1775
1418Value: 2404 1776Value: 2404
1419Name: MERCHANT_TIP_PICKUP_SUMMATION_FAILED 1777Name: MERCHANT_REWARD_PICKUP_SUMMATION_FAILED
1420Description: The merchant failed to add up the amounts to compute the pick up value. 1778Description: The merchant failed to add up the amounts to compute the pick up value.
1421HttpStatus: 500 1779HttpStatus: 500
1422 1780
1423Value: 2405 1781Value: 2405
1424Name: MERCHANT_TIP_PICKUP_HAS_EXPIRED 1782Name: MERCHANT_REWARD_PICKUP_HAS_EXPIRED
1425Description: The tip expired. 1783Description: The reward expired.
1426HttpStatus: 410 1784HttpStatus: 410
1427 1785
1428Value: 2406 1786Value: 2406
1429Name: MERCHANT_TIP_PICKUP_AMOUNT_EXCEEDS_TIP_REMAINING 1787Name: MERCHANT_REWARD_PICKUP_AMOUNT_EXCEEDS_REWARD_REMAINING
1430Description: The requested withdraw amount exceeds the amount remaining to be picked up. 1788Description: The requested withdraw amount exceeds the amount remaining to be picked up.
1431HttpStatus: 400 1789HttpStatus: 400
1432 1790
1433Value: 2407 1791Value: 2407
1434Name: MERCHANT_TIP_PICKUP_DENOMINATION_UNKNOWN 1792Name: MERCHANT_REWARD_PICKUP_DENOMINATION_UNKNOWN
1435Description: The merchant did not find the specified denomination key in the exchange's key set. 1793Description: The merchant did not find the specified denomination key in the exchange's key set.
1436HttpStatus: 409 1794HttpStatus: 409
1437 1795
@@ -1442,39 +1800,54 @@ HttpStatus: 409
1442 1800
1443Value: 2500 1801Value: 2500
1444Name: MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE 1802Name: MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE
1445Description: The backend lacks a wire transfer method configuration option for the given instance. Thus, this instance is unavailable (not findable for creating new orders). 1803Description: The merchant instance has no active bank accounts configured. However, at least one bank account must be available to create new orders.
1446HttpStatus: 404 1804HttpStatus: 404
1447 1805
1448Value: 2501 1806Value: 2501
1449Name: MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME 1807Name: MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME
1450Description: The proposal had no timestamp and the backend failed to obtain the local time. Likely to be an internal error. 1808Description: The proposal had no timestamp and the merchant backend failed to obtain the current local time.
1451HttpStatus: 500 1809HttpStatus: 500
1452 1810
1453Value: 2502 1811Value: 2502
1454Name: MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR 1812Name: MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR
1455Description: The order provided to the backend could not be parsed, some required fields were missing or ill-formed. 1813Description: The order provided to the backend could not be parsed; likely some required fields were missing or ill-formed.
1456HttpStatus: 400 1814HttpStatus: 400
1457 1815
1458Value: 2503 1816Value: 2503
1459Name: MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS 1817Name: MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS
1460Description: The backend encountered an error: the proposal already exists. 1818Description: A conflicting order (sharing the same order identifier) already exists at this merchant backend instance.
1461HttpStatus: 409 1819HttpStatus: 409
1462 1820
1463Value: 2504 1821Value: 2504
1464Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE 1822Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE
1465Description: The request is invalid: the wire deadline is before the refund deadline. 1823Description: The order creation request is invalid because the given wire deadline is before the refund deadline.
1466HttpStatus: 400 1824HttpStatus: 400
1467 1825
1468Value: 2505 1826Value: 2505
1469Name: MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST 1827Name: MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST
1470Description: The request is invalid: a delivery date was given, but it is in the past. 1828Description: The order creation request is invalid because the delivery date given is in the past.
1471HttpStatus: 400 1829HttpStatus: 400
1472 1830
1473Value: 2506 1831Value: 2506
1474Name: MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER 1832Name: MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER
1475Description: The request is invalid: the wire deadline for the order would be "never". 1833Description: The order creation request is invalid because a wire deadline of "never" is not allowed.
1834HttpStatus: 400
1835
1836Value: 2507
1837Name: MERCHANT_PRIVATE_POST_ORDERS_PAY_DEADLINE_IN_PAST
1838Description: The order ceration request is invalid because the given payment deadline is in the past.
1476HttpStatus: 400 1839HttpStatus: 400
1477 1840
1841Value: 2508
1842Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_DEADLINE_IN_PAST
1843Description: The order creation request is invalid because the given refund deadline is in the past.
1844HttpStatus: 400
1845
1846Value: 2509
1847Name: MERCHANT_PRIVATE_POST_ORDERS_NO_EXCHANGES_FOR_WIRE_METHOD
1848Description: 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.
1849HttpStatus: 409
1850
1478Value: 2510 1851Value: 2510
1479Name: MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT 1852Name: MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT
1480Description: One of the paths to forget is malformed. 1853Description: One of the paths to forget is malformed.
@@ -1487,7 +1860,7 @@ HttpStatus: 409
1487 1860
1488Value: 2520 1861Value: 2520
1489Name: MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT 1862Name: MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT
1490Description: The order provided to the backend could not be deleted, our offer is still valid and awaiting payment. 1863Description: 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.
1491HttpStatus: 409 1864HttpStatus: 409
1492 1865
1493Value: 2521 1866Value: 2521
@@ -1497,17 +1870,17 @@ HttpStatus: 409
1497 1870
1498Value: 2530 1871Value: 2530
1499Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT 1872Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT
1500Description: 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. 1873Description: 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.
1501HttpStatus: 409 1874HttpStatus: 409
1502 1875
1503Value: 2531 1876Value: 2531
1504Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID 1877Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID
1505Description: The frontend gave an unpaid order id to issue the refund to. 1878Description: Only paid orders can be refunded, and the frontend specified an unpaid order to issue a refund for.
1506HttpStatus: 409 1879HttpStatus: 409
1507 1880
1508Value: 2532 1881Value: 2532
1509Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT 1882Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT
1510Description: The refund delay was set to 0 and thus no refunds are allowed for this order. 1883Description: The refund delay was set to 0 and thus no refunds are ever allowed for this order.
1511HttpStatus: 403 1884HttpStatus: 403
1512 1885
1513 1886
@@ -1554,6 +1927,11 @@ Name: MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION
1554Description: 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. 1927Description: 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.
1555HttpStatus: 409 1928HttpStatus: 409
1556 1929
1930Value: 2563
1931Name: MERCHANT_EXCHANGE_TRANSFERS_CONFLICTING_TRANSFERS
1932Description: The amount transferred differs between what was submitted and what the exchange claimed.
1933HttpStatus: 0
1934
1557 1935
1558# 2600-2649: instance operations 1936# 2600-2649: instance operations
1559 1937
@@ -1582,6 +1960,16 @@ Name: MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED
1582Description: The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first. 1960Description: The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first.
1583HttpStatus: 409 1961HttpStatus: 409
1584 1962
1963Value: 2626
1964Name: MERCHANT_PRIVATE_ACCOUNT_DELETE_UNKNOWN_ACCOUNT
1965Description: The bank account referenced in the requested operation was not found.
1966HttpStatus: 404
1967
1968Value: 2627
1969Name: MERCHANT_PRIVATE_ACCOUNT_EXISTS
1970Description: The bank account specified in the request already exists at the merchant.
1971HttpStatus: 409
1972
1585 1973
1586# 2650-2699: product operations 1974# 2650-2699: product operations
1587 1975
@@ -1627,31 +2015,36 @@ Name: MERCHANT_PRIVATE_POST_RESERVES_UNSUPPORTED_WIRE_METHOD
1627Description: The requested wire method is not supported by the exchange. 2015Description: The requested wire method is not supported by the exchange.
1628HttpStatus: 409 2016HttpStatus: 409
1629 2017
2018Value: 2701
2019Name: MERCHANT_PRIVATE_POST_RESERVES_REWARDS_NOT_ALLOWED
2020Description: The requested exchange does not allow rewards.
2021HttpStatus: 409
2022
1630Value: 2710 2023Value: 2710
1631Name: MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE 2024Name: MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE
1632Description: The reserve could not be deleted because it is unknown. 2025Description: The reserve could not be deleted because it is unknown.
1633HttpStatus: 404 2026HttpStatus: 404
1634 2027
1635# 2750-2799: tip authorization 2028# 2750-2799: reward authorization
1636 2029
1637Value: 2750 2030Value: 2750
1638Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_EXPIRED 2031Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_EXPIRED
1639Description: The reserve that was used to fund the tips has expired. 2032Description: The reserve that was used to fund the rewards has expired.
1640HttpStatus: 410 2033HttpStatus: 410
1641 2034
1642Value: 2751 2035Value: 2751
1643Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_UNKNOWN 2036Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_UNKNOWN
1644Description: The reserve that was used to fund the tips was not found in the DB. 2037Description: The reserve that was used to fund the rewards was not found in the DB.
1645HttpStatus: 503 2038HttpStatus: 503
1646 2039
1647Value: 2752 2040Value: 2752
1648Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_INSUFFICIENT_FUNDS 2041Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_INSUFFICIENT_FUNDS
1649Description: 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. 2042Description: 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.
1650HttpStatus: 0 2043HttpStatus: 0
1651 2044
1652Value: 2753 2045Value: 2753
1653Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_NOT_FOUND 2046Name: MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_NOT_FOUND
1654Description: The backend failed to find a reserve needed to authorize the tip. 2047Description: The backend failed to find a reserve needed to authorize the reward.
1655HttpStatus: 503 2048HttpStatus: 503
1656 2049
1657Value: 2800 2050Value: 2800
@@ -1659,6 +2052,53 @@ Name: MERCHANT_PRIVATE_GET_ORDERS_ID_AMOUNT_ARITHMETIC_FAILURE
1659Description: The merchant backend encountered a failure in computing the deposit total. 2052Description: The merchant backend encountered a failure in computing the deposit total.
1660HttpStatus: 200 2053HttpStatus: 200
1661 2054
2055# 2850-2899: template and OTP device operations
2056
2057Value: 2850
2058Name: MERCHANT_PRIVATE_POST_TEMPLATES_CONFLICT_TEMPLATE_EXISTS
2059Description: The template ID already exists.
2060HttpStatus: 409
2061
2062Value: 2851
2063Name: MERCHANT_PRIVATE_POST_OTP_DEVICES_CONFLICT_OTP_DEVICE_EXISTS
2064Description: The OTP device ID already exists.
2065HttpStatus: 409
2066
2067Value: 2860
2068Name: MERCHANT_POST_USING_TEMPLATES_AMOUNT_CONFLICT_TEMPLATES_CONTRACT_AMOUNT
2069Description: Amount given in the using template and in the template contract. There is a conflict.
2070HttpStatus: 409
2071
2072Value: 2861
2073Name: MERCHANT_POST_USING_TEMPLATES_SUMMARY_CONFLICT_TEMPLATES_CONTRACT_SUBJECT
2074Description: Subject given in the using template and in the template contract. There is a conflict.
2075HttpStatus: 409
2076
2077Value: 2862
2078Name: MERCHANT_POST_USING_TEMPLATES_NO_AMOUNT
2079Description: Amount not given in the using template and in the template contract. There is a conflict.
2080HttpStatus: 409
2081
2082Value: 2863
2083Name: MERCHANT_POST_USING_TEMPLATES_NO_SUMMARY
2084Description: Subject not given in the using template and in the template contract. There is a conflict.
2085HttpStatus: 409
2086
2087
2088
2089# 2900-2949: webhook operations
2090
2091Value: 2900
2092Name: MERCHANT_PRIVATE_POST_WEBHOOKS_CONFLICT_WEBHOOK_EXISTS
2093Description: The webhook ID elready exists.
2094HttpStatus: 409
2095
2096Value: 2910
2097Name: MERCHANT_PRIVATE_POST_PENDING_WEBHOOKS_CONFLICT_PENDING_WEBHOOK_EXISTS
2098Description: The webhook serial elready exists.
2099HttpStatus: 409
2100
2101
1662 2102
1663 2103
1664 2104
@@ -1691,19 +2131,14 @@ HttpStatus: 409
1691 2131
1692Value: 5103 2132Value: 5103
1693Name: BANK_NEGATIVE_NUMBER_AMOUNT 2133Name: BANK_NEGATIVE_NUMBER_AMOUNT
1694Description: Negative number was used (as value and/or fraction) to initiate a Amount object. 2134Description: Negative numbers are not allowed (as value and/or fraction) to instantiate an amount object.
1695HttpStatus: 400 2135HttpStatus: 400
1696 2136
1697Value: 5104 2137Value: 5104
1698Name: BANK_NUMBER_TOO_BIG 2138Name: BANK_NUMBER_TOO_BIG
1699Description: A number too big was used (as value and/or fraction) to initiate a amount object. 2139Description: A too big number was used (as value and/or fraction) to instantiate an amount object.
1700HttpStatus: 400 2140HttpStatus: 400
1701 2141
1702Value: 5105
1703Name: BANK_LOGIN_FAILED
1704Description: Could not login for the requested operation.
1705HttpStatus: 403
1706
1707Value: 5106 2142Value: 5106
1708Name: BANK_UNKNOWN_ACCOUNT 2143Name: BANK_UNKNOWN_ACCOUNT
1709Description: The bank account referenced in the requested operation was not found. 2144Description: The bank account referenced in the requested operation was not found.
@@ -1754,6 +2189,155 @@ Name: BANK_ANCIENT_TRANSACTION_GONE
1754Description: The client requested a transaction that is so far in the past, that it has been forgotten by the bank. 2189Description: The client requested a transaction that is so far in the past, that it has been forgotten by the bank.
1755HttpStatus: 410 2190HttpStatus: 410
1756 2191
2192Value: 5116
2193Name: BANK_ABORT_CONFIRM_CONFLICT
2194Description: The client attempted to abort a transaction that was already confirmed.
2195HttpStatus: 409
2196
2197Value: 5117
2198Name: BANK_CONFIRM_ABORT_CONFLICT
2199Description: The client attempted to confirm a transaction that was already aborted.
2200HttpStatus: 409
2201
2202Value: 5118
2203Name: BANK_REGISTER_CONFLICT
2204Description: The client attempted to register an account with the same name.
2205HttpStatus: 409
2206
2207Value: 5119
2208Name: BANK_POST_WITHDRAWAL_OPERATION_REQUIRED
2209Description: The client attempted to confirm a withdrawal operation before the wallet posted the required details.
2210HttpStatus: 400
2211
2212Value: 5120
2213Name: BANK_RESERVED_USERNAME_CONFLICT
2214Description: The client tried to register a new account under a reserved username (like 'admin' for example).
2215HttpStatus: 409
2216
2217Value: 5121
2218Name: BANK_REGISTER_USERNAME_REUSE
2219Description: The client tried to register a new account with an username already in use.
2220HttpStatus: 409
2221
2222Value: 5122
2223Name: BANK_REGISTER_PAYTO_URI_REUSE
2224Description: The client tried to register a new account with a payto:// URI already in use.
2225HttpStatus: 409
2226
2227Value: 5123
2228Name: BANK_ACCOUNT_BALANCE_NOT_ZERO
2229Description: The client tried to delete an account with a non null balance.
2230HttpStatus: 409
2231
2232Value: 5124
2233Name: BANK_UNKNOWN_CREDITOR
2234Description: The client tried to create a transaction or an operation that credit an unknown account.
2235HttpStatus: 409
2236
2237Value: 5125
2238Name: BANK_UNKNOWN_DEBTOR
2239Description: The client tried to create a transaction or an operation that debit an unknown account.
2240HttpStatus: 409
2241
2242Value: 5126
2243Name: BANK_ACCOUNT_IS_EXCHANGE
2244Description: The client tried to perform an action prohibited for exchange accounts.
2245HttpStatus: 409
2246
2247Value: 5127
2248Name: BANK_ACCOUNT_IS_NOT_EXCHANGE
2249Description: The client tried to perform an action reserved for exchange accounts.
2250HttpStatus: 409
2251
2252Value: 5128
2253Name: BANK_BAD_CONVERSION
2254Description: Received currency conversion is wrong.
2255HttpStatus: 409
2256
2257Value: 5129
2258Name: BANK_MISSING_TAN_INFO
2259Description: The account referenced in this operation is missing tan info for the chosen channel.
2260HttpStatus: 409
2261
2262Value: 5130
2263Name: BANK_CONFIRM_INCOMPLETE
2264Description: The client attempted to confirm a transaction with incomplete info.
2265HttpStatus: 409
2266
2267Value: 5131
2268Name: BANK_TAN_RATE_LIMITED
2269Description: The request rate is too high. The server is refusing requests to guard against brute-force attacks.
2270HttpStatus: 429
2271
2272Value: 5132
2273Name: BANK_TAN_CHANNEL_NOT_SUPPORTED
2274Description: This TAN channel is not supported.
2275HttpStatus: 501
2276
2277Value: 5133
2278Name: BANK_TAN_CHANNEL_SCRIPT_FAILED
2279Description: Failed to send TAN using the helper script. Either script is not found, or script timeout, or script terminated with a non-successful result.
2280HttpStatus: 500
2281
2282Value: 5134
2283Name: BANK_TAN_CHALLENGE_FAILED
2284Description: The client's response to the challenge was invalid.
2285HttpStatus: 403
2286
2287Value: 5135
2288Name: BANK_NON_ADMIN_PATCH_LEGAL_NAME
2289Description: A non-admin user has tried to change their legal name.
2290HttpStatus: 409
2291
2292Value: 5136
2293Name: BANK_NON_ADMIN_PATCH_DEBT_LIMIT
2294Description: A non-admin user has tried to change their debt limit.
2295HttpStatus: 409
2296
2297Value: 5137
2298Name: BANK_NON_ADMIN_PATCH_MISSING_OLD_PASSWORD
2299Description: A non-admin user has tried to change their password whihout providing the current one.
2300HttpStatus: 409
2301
2302Value: 5138
2303Name: BANK_PATCH_BAD_OLD_PASSWORD
2304Description: Provided old password does not match current password.
2305HttpStatus: 409
2306
2307Value: 5139
2308Name: BANK_PATCH_ADMIN_EXCHANGE
2309Description: An admin user has tried to become an exchange.
2310HttpStatus: 409
2311
2312Value: 5140
2313Name: BANK_NON_ADMIN_PATCH_CASHOUT
2314Description: A non-admin user has tried to change their cashout account.
2315HttpStatus: 409
2316
2317Value: 5141
2318Name: BANK_NON_ADMIN_PATCH_CONTACT
2319Description: A non-admin user has tried to change their contact info.
2320HttpStatus: 409
2321
2322Value: 5142
2323Name: BANK_ADMIN_CREDITOR
2324Description: The client tried to create a transaction that credit the admin account.
2325HttpStatus: 409
2326
2327Value: 5143
2328Name: BANK_CHALLENGE_NOT_FOUND
2329Description: The referenced challenge was not found.
2330HttpStatus: 404
2331
2332Value: 5144
2333Name: BANK_TAN_CHALLENGE_EXPIRED
2334Description: The referenced challenge has expired.
2335HttpStatus: 409
2336
2337Value: 5145
2338Name: BANK_NON_ADMIN_SET_TAN_CHANNEL
2339Description: A non-admin user has tried to create an account with 2fa.
2340HttpStatus: 409
1757 2341
1758# 6000 - 6999: Reserved for sync 2342# 6000 - 6999: Reserved for sync
1759# 6000 - 6099: Reserved for SYNC_GENERIC 2343# 6000 - 6099: Reserved for SYNC_GENERIC
@@ -1823,6 +2407,17 @@ Name: SYNC_MISSING_CONTENT_LENGTH
1823Description: The "Content-length" field for the upload is missing. 2407Description: The "Content-length" field for the upload is missing.
1824HttpStatus: 400 2408HttpStatus: 400
1825 2409
2410Value: 6113
2411Name: SYNC_GENERIC_BACKEND_ERROR
2412Description: Sync had problems communicating with its payment backend.
2413HttpStatus: 502
2414
2415Value: 6114
2416Name: SYNC_GENERIC_BACKEND_TIMEOUT
2417Description: Sync experienced a timeout communicating with its payment backend.
2418HttpStatus: 504
2419
2420
1826 2421
1827# 7000 - 7999: Reserved for wallet 2422# 7000 - 7999: Reserved for wallet
1828 2423
@@ -1907,8 +2502,8 @@ Description: A group of withdrawal operations (typically for the same reserve at
1907HttpStatus: 0 2502HttpStatus: 0
1908 2503
1909Value: 7016 2504Value: 7016
1910Name: WALLET_TIPPING_COIN_SIGNATURE_INVALID 2505Name: WALLET_REWARD_COIN_SIGNATURE_INVALID
1911Description: The signature on a coin by the exchange's denomination key (obtained through the merchant via tipping) is invalid after unblinding it. 2506Description: The signature on a coin by the exchange's denomination key (obtained through the merchant via a reward) is invalid after unblinding it.
1912HttpStatus: 0 2507HttpStatus: 0
1913 2508
1914Value: 7017 2509Value: 7017
@@ -1936,7 +2531,72 @@ Name: WALLET_PENDING_OPERATION_FAILED
1936Description: A pending operation failed, and thus the request can't be completed. 2531Description: A pending operation failed, and thus the request can't be completed.
1937HttpStatus: 0 2532HttpStatus: 0
1938 2533
1939# 8000 - 8999: Reserved for Anastasis 2534Value: 7022
2535Name: WALLET_PAY_MERCHANT_SERVER_ERROR
2536Description: A payment was attempted, but the merchant had an internal server error (5xx).
2537HttpStatus: 0
2538
2539Value: 7023
2540Name: WALLET_CRYPTO_WORKER_ERROR
2541Description: The crypto worker failed.
2542HttpStatus: 0
2543
2544Value: 7024
2545Name: WALLET_CRYPTO_WORKER_BAD_REQUEST
2546Description: The crypto worker received a bad request.
2547HttpStatus: 0
2548
2549Value: 7025
2550Name: WALLET_WITHDRAWAL_KYC_REQUIRED
2551Description: A KYC step is required before withdrawal can proceed.
2552HttpStatus: 0
2553
2554Value: 7026
2555Name: WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE
2556Description: The wallet does not have sufficient balance to create a deposit group.
2557HttpStatus: 0
2558
2559Value: 7027
2560Name: WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE
2561Description: The wallet does not have sufficient balance to create a peer push payment.
2562HttpStatus: 0
2563
2564Value: 7028
2565Name: WALLET_PEER_PULL_PAYMENT_INSUFFICIENT_BALANCE
2566Description: The wallet does not have sufficient balance to pay for an invoice.
2567HttpStatus: 0
2568
2569Value: 7029
2570Name: WALLET_REFRESH_GROUP_INCOMPLETE
2571Description: A group of refresh operations has errors and will be tried again later.
2572HttpStatus: 0
2573
2574Value: 7030
2575Name: WALLET_EXCHANGE_BASE_URL_MISMATCH
2576Description: The exchange's self-reported base URL does not match the one that the wallet is using.
2577HttpStatus: 0
2578
2579Value: 7031
2580Name: WALLET_ORDER_ALREADY_PAID
2581Description: The order has already been paid by another wallet.
2582HttpStatus: 0
2583
2584Value: 7032
2585Name: WALLET_EXCHANGE_UNAVAILABLE
2586Description: An exchange that is required for some request is currently not available.
2587HttpStatus: 0
2588
2589Value: 7033
2590Name: WALLET_EXCHANGE_ENTRY_USED
2591Description: An exchange entry is still used by the exchange, thus it can't be deleted without purging.
2592HttpStatus: 0
2593
2594Value: 7034
2595Name: WALLET_DB_UNAVAILABLE
2596Description: The wallet database is unavailable and the wallet thus is not operational.
2597HttpStatus: 0
2598
2599# 8000 - 8499: Reserved for Anastasis
1940 2600
1941Value: 8000 2601Value: 8000
1942Name: ANASTASIS_GENERIC_BACKEND_TIMEOUT 2602Name: ANASTASIS_GENERIC_BACKEND_TIMEOUT
@@ -2278,8 +2938,26 @@ Name: ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED
2278Description: The reducer already synchronized with all providers. 2938Description: The reducer already synchronized with all providers.
2279HttpStatus: 0 2939HttpStatus: 0
2280 2940
2941# 8500 - 8600: Frosix
2281 2942
2282# 9000 - 9998: LibEuFin. 2943# 8600 - 8700: Donau
2944
2945Value: 8607
2946Name: DONAU_GENERIC_KEYS_MISSING
2947Description: 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.
2948HttpStatus: 503
2949
2950Value: 8608
2951Name: DONAU_CHARITY_SIGNATURE_INVALID
2952Description: The signature of the charity key is not valid.
2953HttpStatus: 403
2954
2955Value: 8609
2956Name: DONAU_CHARITY_NOT_FOUND
2957Description: The charity is unknown.
2958HttpStatus: 404
2959
2960# 9000 - 9599: LibEuFin.
2283 2961
2284Value: 9000 2962Value: 9000
2285Name: LIBEUFIN_NEXUS_GENERIC_ERROR 2963Name: LIBEUFIN_NEXUS_GENERIC_ERROR
@@ -2301,7 +2979,70 @@ Name: LIBEUFIN_SANDBOX_UNCAUGHT_EXCEPTION
2301Description: An uncaught exception happened in the LibEuFin sandbox service. 2979Description: An uncaught exception happened in the LibEuFin sandbox service.
2302HttpStatus: 500 2980HttpStatus: 500
2303 2981
2982# 9600 - 9749: Taldir
2983Value: 9600
2984Name: TALDIR_METHOD_NOT_SUPPORTED
2985Description: This validation method is not supported by the service.
2986HttpStatus: 404
2987
2988Value: 9601
2989Name: TALDIR_REGISTER_RATE_LIMITED
2990Description: Number of allowed attempts for initiating a challenge exceeded.
2991HttpStatus: 429
2992
2993# 9750-9999: Challenger
2994Value: 9750
2995Name: CHALLENGER_GENERIC_CLIENT_UNKNOWN
2996Description: The client is unknown or unauthorized.
2997HttpStatus: 404
2998
2999Value: 9751
3000Name: CHALLENGER_GENERIC_CLIENT_FORBIDDEN_BAD_REDIRECT_URI
3001Description: The client is not authorized to use the given redirect URI.
3002HttpStatus: 403
3003
3004Value: 9752
3005Name: CHALLENGER_HELPER_EXEC_FAILED
3006Description: The service failed to execute its helper process to send the challenge.
3007HttpStatus: 500
3008
3009Value: 9753
3010Name: CHALLENGER_GRANT_UNKNOWN
3011Description: The grant is unknown to the service (it could also have expired).
3012HttpStatus: 404
3013
3014Value: 9754
3015Name: CHALLENGER_CLIENT_FORBIDDEN_BAD_CODE
3016Description: The code given is not even well-formed.
3017HttpStatus: 403
3018
3019Value: 9755
3020Name: CHALLENGER_GENERIC_VALIDATION_UNKNOWN
3021Description: The service is not aware of the referenced validation process.
3022HttpStatus: 404
3023
3024Value: 9756
3025Name: CHALLENGER_CLIENT_FORBIDDEN_INVALID_CODE
3026Description: The code given is not valid.
3027HttpStatus: 403
3028
3029Value: 9757
3030Name: CHALLENGER_TOO_MANY_ATTEMPTS
3031Description: Too many attempts have been made, validation is temporarily disabled for this address.
3032HttpStatus: 429
3033
3034Value: 9758
3035Name: CHALLENGER_INVALID_PIN
3036Description: The PIN code provided is incorrect.
3037HttpStatus: 403
3038
3039Value: 9759
3040Name: CHALLENGER_MISSING_ADDRESS
3041Description: The token cannot be valid as no address was ever provided by the client.
3042HttpStatus: 409
3043
2304 3044
3045# Some of our build systems expect the range to be < 10k, so let's keep it like this for now.
2305Value: 9999 3046Value: 9999
2306Name: END 3047Name: END
2307Description: End of error code range. 3048Description: End of error code range.