aboutsummaryrefslogtreecommitdiff
path: root/gnu-taler-error-codes
diff options
context:
space:
mode:
authorpriscilla <priscilla.huang@efrei.net>2022-11-22 04:24:27 -0500
committerpriscilla <priscilla.huang@efrei.net>2022-11-22 04:24:27 -0500
commit63c8b9963bc78dd266c66e424442e74ff05e59df (patch)
treee2147137782655689665259eb59f789f59dca7ed /gnu-taler-error-codes
parent7af7a493bc189c3423edf83478d059704f0f30af (diff)
downloadgana-63c8b9963bc78dd266c66e424442e74ff05e59df.tar.gz
gana-63c8b9963bc78dd266c66e424442e74ff05e59df.zip
update
Diffstat (limited to 'gnu-taler-error-codes')
-rw-r--r--gnu-taler-error-codes/#registry.rec#2475
l---------gnu-taler-error-codes/.#registry.rec1
2 files changed, 2476 insertions, 0 deletions
diff --git a/gnu-taler-error-codes/#registry.rec# b/gnu-taler-error-codes/#registry.rec#
new file mode 100644
index 0000000..5ae95c7
--- /dev/null
+++ b/gnu-taler-error-codes/#registry.rec#
@@ -0,0 +1,2475 @@
1# -*- mode: rec -*-
2#
3# Registry for HTTP status codes
4#
5%rec: TalerErrorCode
6%key: Value
7%singular: Value
8%typedef: ValueRange_t range 0 9999
9%constraint: ( Value < 100 ) || ( Value > 999 )
10%type: Value ValueRange_t
11%mandatory: Value
12%typedef: Description_t regexp |^[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-][abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_\(\)\.,;!"':#\/ -]*$|
13%type: Description Description_t
14%mandatory: Description
15%typedef: Name_t regexp /^[ABCDEFGHIJKLMNOPQRSTUVWXYZ_][ABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789]*$/
16%type: Name Name_t
17%unique: Name
18%mandatory: Name
19%singular: Name
20# A status of 0 means not an HTTP status (i.e. created client-side)
21%type: HttpStatus rec HttpStatusCode
22%mandatory: HttpStatus
23%sort: Value
24
25# 0 - 99: Reserved for GENERIC error codes
26
27Value: 0
28Name: NONE
29Description: Special code to indicate success (no error).
30HttpStatus: 0
31
32# We could not get the error code.
33Value: 1
34Name: INVALID
35Description: A non-integer error code was returned in the JSON response.
36HttpStatus: 0
37
38Value: 2
39Name: GENERIC_CLIENT_INTERNAL_ERROR
40Description: An internal failure happened on the client side.
41HttpStatus: 0
42
43# Fundamental problems detected client-side (10-19)
44
45Value: 10
46Name: GENERIC_INVALID_RESPONSE
47Description: The response we got from the server was not even in JSON format.
48HttpStatus: 0
49
50Value: 11
51Name: GENERIC_TIMEOUT
52Description: An operation timed out.
53HttpStatus: 0
54
55Value: 12
56Name: GENERIC_VERSION_MALFORMED
57Description: The version string given does not follow the expected CURRENT:REVISION:AGE Format.
58HttpStatus: 0
59
60Value: 13
61Name: GENERIC_REPLY_MALFORMED
62Description: 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.
63HttpStatus: 0
64
65Value: 14
66Name: GENERIC_CONFIGURATION_INVALID
67Description: There is an error in the client-side configuration, for example the base URL specified is malformed.
68HttpStatus: 0
69
70Value: 15
71Name: GENERIC_UNEXPECTED_REQUEST_ERROR
72Description: The client made a request to a service, but received an error response it does not know how to handle.
73HttpStatus: 0
74
75# Fundamental client-side protocol problems (20-29)
76# (fundamental: cannot be helped, client is very broken)
77
78Value: 20
79Name: GENERIC_METHOD_INVALID
80Description: The HTTP method used is invalid for this endpoint.
81HttpStatus: 405
82
83Value: 21
84Name: GENERIC_ENDPOINT_UNKNOWN
85Description: There is no endpoint defined for the URL provided by the client.
86HttpStatus: 404
87
88Value: 22
89Name: GENERIC_JSON_INVALID
90Description: The JSON in the client's request was malformed (generic parse error).
91HttpStatus: 400
92
93Value: 23
94Name: GENERIC_HTTP_HEADERS_MALFORMED
95Description: Some of the HTTP headers provided by the client caused the server to not be able to handle the request.
96HttpStatus: 400
97
98Value: 24
99Name: GENERIC_PAYTO_URI_MALFORMED
100Description: The payto:// URI provided by the client is malformed.
101HttpStatus: 400
102
103Value: 25
104Name: GENERIC_PARAMETER_MISSING
105Description: A required parameter in the request was missing.
106HttpStatus: 400
107
108Value: 26
109Name: GENERIC_PARAMETER_MALFORMED
110Description: A parameter in the request was malformed.
111HttpStatus: 400
112
113Value: 27
114Name: GENERIC_RESERVE_PUB_MALFORMED
115Description: The reserve public key given as part of a /reserves/ endpoint was malformed.
116HttpStatus: 400
117
118
119# Circumstantial client-side protocol problems (30-39)
120# (Circumstantial == may work with another server, but not this one)
121
122Value: 30
123Name: GENERIC_CURRENCY_MISMATCH
124Description: The currencies involved in the operation do not match.
125HttpStatus: 400
126
127Value: 31
128Name: GENERIC_URI_TOO_LONG
129Description: The URI is longer than the longest URI the HTTP server is willing to parse.
130HttpStatus: 414
131
132Value: 32
133Name: GENERIC_UPLOAD_EXCEEDS_LIMIT
134Description: The body is too large to be permissible for the endpoint.
135HttpStatus: 413
136
137
138# 40-49: available for future use
139
140
141
142# Server-side database problems (50-59)
143
144Value: 50
145Name: GENERIC_DB_SETUP_FAILED
146Description: The service failed initialize its connection to the database.
147HttpStatus: 500
148
149Value: 51
150Name: GENERIC_DB_START_FAILED
151Description: The service encountered an error event to just start the database transaction.
152HttpStatus: 500
153
154Value: 52
155Name: GENERIC_DB_STORE_FAILED
156Description: The service failed to store information in its database.
157HttpStatus: 500
158
159Value: 53
160Name: GENERIC_DB_FETCH_FAILED
161Description: The service failed to fetch information from its database.
162HttpStatus: 500
163
164Value: 54
165Name: GENERIC_DB_COMMIT_FAILED
166Description: The service encountered an error event to commit the database transaction (hard, unrecoverable error).
167HttpStatus: 500
168
169Value: 55
170Name: GENERIC_DB_SOFT_FAILURE
171Description: 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.)
172HttpStatus: 500
173
174Value: 56
175Name: GENERIC_DB_INVARIANT_FAILURE
176Description: The service's database is inconsistent and violates service-internal invariants.
177HttpStatus: 500
178
179
180# Server-side computational problems (60-69)
181
182Value: 60
183Name: GENERIC_INTERNAL_INVARIANT_FAILURE
184Description: The HTTP server experienced an internal invariant failure (bug).
185HttpStatus: 500
186
187Value: 61
188Name: GENERIC_FAILED_COMPUTE_JSON_HASH
189Description: The service could not compute a cryptographic hash over some JSON value.
190HttpStatus: 500
191
192Value: 62
193Name: GENERIC_FAILED_COMPUTE_AMOUNT
194Description: The service could not compute an amount.
195HttpStatus: 500
196
197
198# Server-side resource problems (70-79)
199
200Value: 70
201Name: GENERIC_PARSER_OUT_OF_MEMORY
202Description: The HTTP server had insufficient memory to parse the request.
203HttpStatus: 500
204
205Value: 71
206Name: GENERIC_ALLOCATION_FAILURE
207Description: The HTTP server failed to allocate memory.
208HttpStatus: 500
209
210Value: 72
211Name: GENERIC_JSON_ALLOCATION_FAILURE
212Description: The HTTP server failed to allocate memory for building JSON reply.
213HttpStatus: 500
214
215Value: 73
216Name: GENERIC_CURL_ALLOCATION_FAILURE
217Description: The HTTP server failed to allocate memory for making a CURL request.
218HttpStatus: 500
219
220Value: 74
221Name: GENERIC_FAILED_TO_LOAD_TEMPLATE
222Description: The backend could not locate a required template to generate an HTML reply.
223HttpStatus: 500
224
225Value: 75
226Name: GENERIC_FAILED_TO_EXPAND_TEMPLATE
227Description: The backend could not expand the template to generate an HTML reply.
228HttpStatus: 500
229
230
231
232# 80-99: available for future use
233
234
235
236# 100 - 999: VERBOTEN due to confusion with HTTP status codes (at least 100-599).
237
238# 1000 - 1999: Reserved for exchange
239# 1000 - 1099: Reserved for EXCHANGE_GENERIC
240
241Value: 1000
242Name: EXCHANGE_GENERIC_BAD_CONFIGURATION
243Description: Exchange is badly configured and thus cannot operate.
244HttpStatus: 500
245
246Value: 1001
247Name: EXCHANGE_GENERIC_OPERATION_UNKNOWN
248Description: Operation specified unknown for this endpoint.
249HttpStatus: 404
250
251Value: 1002
252Name: EXCHANGE_GENERIC_WRONG_NUMBER_OF_SEGMENTS
253Description: The number of segments included in the URI does not match the number of segments expected by the endpoint.
254HttpStatus: 404
255
256Value: 1003
257Name: EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY
258Description: The same coin was already used with a different denomination previously.
259HttpStatus: 409
260
261Value: 1004
262Name: EXCHANGE_GENERIC_COINS_INVALID_COIN_PUB
263Description: The public key of given to a "/coins/" endpoint of the exchange was malformed.
264HttpStatus: 400
265
266Value: 1005
267Name: EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN
268Description: The exchange is not aware of the denomination key the wallet requested for the operation.
269HttpStatus: 404
270
271Value: 1006
272Name: EXCHANGE_DENOMINATION_SIGNATURE_INVALID
273Description: The signature of the denomination key over the coin is not valid.
274HttpStatus: 403
275
276Value: 1007
277Name: EXCHANGE_GENERIC_KEYS_MISSING
278Description: 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.
279HttpStatus: 503
280
281Value: 1008
282Name: EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE
283Description: Validity period of the denomination lies in the future.
284HttpStatus: 412
285
286Value: 1009
287Name: EXCHANGE_GENERIC_DENOMINATION_EXPIRED
288Description: Denomination key of the coin is past its expiration time for the requested operation.
289HttpStatus: 410
290
291Value: 1010
292Name: EXCHANGE_GENERIC_DENOMINATION_REVOKED
293Description: Denomination key of the coin has been revoked.
294HttpStatus: 410
295
296Value: 1011
297Name: EXCHANGE_GENERIC_SECMOD_TIMEOUT
298Description: An operation where the exchange interacted with a security module timed out.
299HttpStatus: 500
300
301Value: 1012
302Name: EXCHANGE_GENERIC_INSUFFICIENT_FUNDS
303Description: 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".
304HttpStatus: 409
305
306Value: 1013
307Name: EXCHANGE_GENERIC_COIN_HISTORY_COMPUTATION_FAILED
308Description: The exchange had an internal error reconstructing the transaction history of the coin that was being processed.
309HttpStatus: 500
310
311Value: 1014
312Name: EXCHANGE_GENERIC_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS
313Description: The exchange failed to obtain the transaction history of the given coin from the database while generating an insufficient funds errors.
314HttpStatus: 500
315
316Value: 1015
317Name: EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH
318Description: The same coin was already used with a different age hash previously.
319HttpStatus: 409
320
321Value: 1016
322Name: EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION
323Description: The requested operation is not valid for the cipher used by the selected denomination.
324HttpStatus: 400
325
326Value: 1017
327Name: EXCHANGE_GENERIC_CIPHER_MISMATCH
328Description: The provided arguments for the operation use inconsistent ciphers.
329HttpStatus: 400
330
331Value: 1018
332Name: EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE
333Description: The number of denominations specified in the request exceeds the limit of the exchange.
334HttpStatus: 400
335
336Value: 1020
337Name: EXCHANGE_GENERIC_CLOCK_SKEW
338Description: The time at the server is too far off from the time specified in the request. Most likely the client system time is wrong.
339HttpStatus: 400
340
341Value: 1021
342Name: EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE
343Description: The specified amount for the coin is higher than the value of the denomination of the coin.
344HttpStatus: 400
345
346Value: 1022
347Name: EXCHANGE_GENERIC_GLOBAL_FEES_MISSING
348Description: The exchange was not properly configured with global fees.
349HttpStatus: 500
350
351Value: 1023
352Name: EXCHANGE_GENERIC_WIRE_FEES_MISSING
353Description: The exchange was not properly configured with wire fees.
354HttpStatus: 500
355
356Value: 1024
357Name: EXCHANGE_GENERIC_PURSE_PUB_MALFORMED
358Description: The purse public key was malformed.
359HttpStatus: 400
360
361Value: 1025
362Name: EXCHANGE_GENERIC_PURSE_UNKNOWN
363Description: The purse is unknown.
364HttpStatus: 404
365
366Value: 1026
367Name: EXCHANGE_GENERIC_PURSE_EXPIRED
368Description: The purse has expired.
369HttpStatus: 410
370
371Value: 1027
372Name: EXCHANGE_GENERIC_RESERVE_UNKNOWN
373Description: The exchange has no information about the "reserve_pub" that was given.
374HttpStatus: 404
375
376Value: 1028
377Name: EXCHANGE_GENERIC_KYC_REQUIRED
378Description: The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check.
379HttpStatus: 451
380
381Value: 1029
382Name: EXCHANGE_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT
383Description: Inconsistency between provided age commitment and attest: either none or both must be provided
384HttpStatus: 400
385
386Value: 1030
387Name: EXCHANGE_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE
388Description: The provided attestation for the minimum age couldn't be verified by the exchange.
389HttpStatus: 400
390
391
392Value: 1100
393Name: EXCHANGE_DEPOSITS_GET_NOT_FOUND
394Description: The exchange did not find information about the specified transaction in the database.
395HttpStatus: 404
396
397Value: 1101
398Name: EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE
399Description: The wire hash of given to a "/deposits/" handler was malformed.
400HttpStatus: 400
401
402Value: 1102
403Name: EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB
404Description: The merchant key of given to a "/deposits/" handler was malformed.
405HttpStatus: 400
406
407Value: 1103
408Name: EXCHANGE_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS
409Description: The hash of the contract terms given to a "/deposits/" handler was malformed.
410HttpStatus: 400
411
412Value: 1104
413Name: EXCHANGE_DEPOSITS_GET_INVALID_COIN_PUB
414Description: The coin public key of given to a "/deposits/" handler was malformed.
415HttpStatus: 400
416
417Value: 1105
418Name: EXCHANGE_DEPOSITS_GET_INVALID_SIGNATURE_BY_EXCHANGE
419Description: The signature returned by the exchange in a /deposits/ request was malformed.
420HttpStatus: 0
421
422Value: 1106
423Name: EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID
424Description: The signature of the merchant is invalid.
425HttpStatus: 403
426
427Value: 1107
428Name: EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED
429Description: The provided policy data was not accepted
430HttpStatus: 400
431
432Value: 1150
433Name: EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS
434Description: 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.
435HttpStatus: 409
436
437
438Value: 1152
439Name: EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW
440Description: The amount to withdraw together with the fee exceeds the numeric range for Taler amounts. This is not a client failure, as the coin value and fees come from the exchange's configuration.
441HttpStatus: 500
442
443Value: 1153
444Name: EXCHANGE_WITHDRAW_SIGNATURE_FAILED
445Description: The exchange failed to create the signature using the denomination key.
446HttpStatus: 500
447
448Value: 1154
449Name: EXCHANGE_WITHDRAW_RESERVE_SIGNATURE_INVALID
450Description: The signature of the reserve is not valid.
451HttpStatus: 403
452
453Value: 1155
454Name: EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS
455Description: When computing the reserve history, we ended up with a negative overall balance, which should be impossible.
456HttpStatus: 500
457
458Value: 1156
459Name: EXCHANGE_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE
460Description: The reserve did not have sufficient funds in it to pay for a full reserve history statement.
461HttpStatus: 409
462
463Value: 1158
464Name: EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST
465Description: Withdraw period of the coin to be withdrawn is in the past.
466HttpStatus: 410
467
468Value: 1159
469Name: EXCHANGE_WITHDRAW_UNBLIND_FAILURE
470Description: The client failed to unblind the blind signature.
471HttpStatus: 0
472
473Value: 1160
474Name: EXCHANGE_WITHDRAW_NONCE_REUSE
475Description: The client re-used a withdraw nonce, which is not allowed.
476HttpStatus: 409
477
478Value: 1175
479Name: EXCHANGE_WITHDRAW_BATCH_IDEMPOTENT_PLANCHET
480Description: The batch withdraw included a planchet that was already withdrawn. This is not allowed.
481HttpStatus: 409
482
483Value: 1205
484Name: EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID
485Description: The signature made by the coin over the deposit permission is not valid.
486HttpStatus: 403
487
488Value: 1206
489Name: EXCHANGE_DEPOSIT_CONFLICTING_CONTRACT
490Description: The same coin was already deposited for the same merchant and contract with other details.
491HttpStatus: 409
492
493Value: 1207
494Name: EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE
495Description: The stated value of the coin after the deposit fee is subtracted would be negative.
496HttpStatus: 400
497
498Value: 1208
499Name: EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE
500Description: The stated refund deadline is after the wire deadline.
501HttpStatus: 400
502
503Value: 1209
504Name: EXCHANGE_DEPOSIT_WIRE_DEADLINE_IS_NEVER
505Description: The stated wire deadline is "never", which makes no sense.
506HttpStatus: 400
507
508Value: 1210
509Name: EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_JSON
510Description: 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.
511HttpStatus: 400
512
513Value: 1211
514Name: EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT
515Description: The hash of the given wire address does not match the wire hash specified in the proposal data.
516HttpStatus: 400
517
518Value: 1221
519Name: EXCHANGE_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE
520Description: The signature provided by the exchange is not valid.
521HttpStatus: 0
522
523Value: 1222
524Name: EXCHANGE_DEPOSIT_FEE_ABOVE_AMOUNT
525Description: The deposited amount is smaller than the deposit fee, which would result in a negative contribution.
526HttpStatus: 400
527
528
529Value: 1240
530Name: EXCHANGE_EXTENSIONS_INVALID_FULFILLMENT
531Description: The proof of policy fulfillment was invalid.
532HttpStatus: 400
533
534
535Value: 1250
536Name: EXCHANGE_RESERVES_STATUS_UNKNOWN
537Description: The reserve balance, status or history was requested for a reserve which is not known to the exchange.
538HttpStatus: 404
539
540Value: 1251
541Name: EXCHANGE_RESERVES_STATUS_BAD_SIGNATURE
542Description: The reserve status was requested with a bad signature.
543HttpStatus: 403
544
545Value: 1252
546Name: EXCHANGE_RESERVES_HISTORY_BAD_SIGNATURE
547Description: The reserve history was requested with a bad signature.
548HttpStatus: 403
549
550
551Value: 1302
552Name: EXCHANGE_MELT_FEES_EXCEED_CONTRIBUTION
553Description: The exchange encountered melt fees exceeding the melted coin's contribution.
554HttpStatus: 400
555
556Value: 1303
557Name: EXCHANGE_MELT_COIN_SIGNATURE_INVALID
558Description: The signature made with the coin to be melted is invalid.
559HttpStatus: 403
560
561Value: 1305
562Name: EXCHANGE_MELT_COIN_EXPIRED_NO_ZOMBIE
563Description: 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).
564HttpStatus: 400
565
566Value: 1306
567Name: EXCHANGE_MELT_INVALID_SIGNATURE_BY_EXCHANGE
568Description: The signature returned by the exchange in a melt request was malformed.
569HttpStatus: 0
570
571
572Value: 1353
573Name: EXCHANGE_REFRESHES_REVEAL_COMMITMENT_VIOLATION
574Description: The provided transfer keys do not match up with the original commitment. Information about the original commitment is included in the response.
575HttpStatus: 409
576
577Value: 1354
578Name: EXCHANGE_REFRESHES_REVEAL_SIGNING_ERROR
579Description: Failed to produce the blinded signatures over the coins to be returned.
580HttpStatus: 500
581
582Value: 1355
583Name: EXCHANGE_REFRESHES_REVEAL_SESSION_UNKNOWN
584Description: The exchange is unaware of the refresh session specified in the request.
585HttpStatus: 404
586
587Value: 1356
588Name: EXCHANGE_REFRESHES_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID
589Description: The size of the cut-and-choose dimension of the private transfer keys request does not match #TALER_CNC_KAPPA - 1.
590HttpStatus: 400
591
592Value: 1358
593Name: EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH
594Description: The number of envelopes given does not match the number of denomination keys given.
595HttpStatus: 400
596
597Value: 1359
598Name: EXCHANGE_REFRESHES_REVEAL_COST_CALCULATION_OVERFLOW
599Description: The exchange encountered a numeric overflow totaling up the cost for the refresh operation.
600HttpStatus: 500
601
602Value: 1360
603Name: EXCHANGE_REFRESHES_REVEAL_AMOUNT_INSUFFICIENT
604Description: The exchange's cost calculation shows that the melt amount is below the costs of the transaction.
605HttpStatus: 400
606
607Value: 1361
608Name: EXCHANGE_REFRESHES_REVEAL_LINK_SIGNATURE_INVALID
609Description: The signature made with the coin over the link data is invalid.
610HttpStatus: 403
611
612Value: 1362
613Name: EXCHANGE_REFRESHES_REVEAL_INVALID_RCH
614Description: The refresh session hash given to a /refreshes/ handler was malformed.
615HttpStatus: 400
616
617Value: 1363
618Name: EXCHANGE_REFRESHES_REVEAL_OPERATION_INVALID
619Description: Operation specified invalid for this endpoint.
620HttpStatus: 400
621
622Value: 1364
623Name: EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_NOT_SUPPORTED
624Description: The client provided age commitment data, but age restriction is not supported on this server.
625HttpStatus: 400
626
627Value: 1365
628Name: EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_COMMITMENT_INVALID
629Description: The client provided invalid age commitment data: missing, not an array, or array of invalid size.
630HttpStatus: 400
631
632
633Value: 1400
634Name: EXCHANGE_LINK_COIN_UNKNOWN
635Description: The coin specified in the link request is unknown to the exchange.
636HttpStatus: 404
637
638Value: 1450
639Name: EXCHANGE_TRANSFERS_GET_WTID_MALFORMED
640Description: The public key of given to a /transfers/ handler was malformed.
641HttpStatus: 400
642
643Value: 1451
644Name: EXCHANGE_TRANSFERS_GET_WTID_NOT_FOUND
645Description: The exchange did not find information about the specified wire transfer identifier in the database.
646HttpStatus: 404
647
648Value: 1452
649Name: EXCHANGE_TRANSFERS_GET_WIRE_FEE_NOT_FOUND
650Description: The exchange did not find information about the wire transfer fees it charged.
651HttpStatus: 500
652
653Value: 1453
654Name: EXCHANGE_TRANSFERS_GET_WIRE_FEE_INCONSISTENT
655Description: The exchange found a wire fee that was above the total transfer value (and thus could not have been charged).
656HttpStatus: 500
657
658Value: 1475
659Name: EXCHANGE_PURSES_INVALID_WAIT_TARGET
660Description: The wait target of the URL was not in the set of expected values.
661HttpStatus: 400
662
663Value: 1476
664Name: EXCHANGE_PURSES_GET_INVALID_SIGNATURE_BY_EXCHANGE
665Description: The signature on the purse status returned by the exchange was invalid.
666HttpStatus: 0
667
668
669Value: 1500
670Name: EXCHANGE_REFUND_COIN_NOT_FOUND
671Description: The exchange knows literally nothing about the coin we were asked to refund. But without a transaction history, we cannot issue a refund. This is kind-of OK, the owner should just refresh it directly without executing the refund.
672HttpStatus: 404
673
674Value: 1501
675Name: EXCHANGE_REFUND_CONFLICT_DEPOSIT_INSUFFICIENT
676Description: We could not process the refund request as the coin's transaction history does not permit the requested refund because then refunds would exceed the deposit amount. The "history" in the response proves this.
677HttpStatus: 409
678
679Value: 1502
680Name: EXCHANGE_REFUND_DEPOSIT_NOT_FOUND
681Description: The exchange knows about the coin we were asked to refund, but not about the specific /deposit operation. Hence, we cannot issue a refund (as we do not know if this merchant public key is authorized to do a refund).
682HttpStatus: 404
683
684Value: 1503
685Name: EXCHANGE_REFUND_MERCHANT_ALREADY_PAID
686Description: The exchange can no longer refund the customer/coin as the money was already transferred (paid out) to the merchant. (It should be past the refund deadline.)
687HttpStatus: 410
688
689Value: 1504
690Name: EXCHANGE_REFUND_FEE_TOO_LOW
691Description: The refund fee specified for the request is lower than the refund fee charged by the exchange for the given denomination key of the refunded coin.
692HttpStatus: 400
693
694Value: 1505
695Name: EXCHANGE_REFUND_FEE_ABOVE_AMOUNT
696Description: The refunded amount is smaller than the refund fee, which would result in a negative refund.
697HttpStatus: 400
698
699Value: 1506
700Name: EXCHANGE_REFUND_MERCHANT_SIGNATURE_INVALID
701Description: The signature of the merchant is invalid.
702HttpStatus: 403
703
704Value: 1507
705Name: EXCHANGE_REFUND_MERCHANT_SIGNING_FAILED
706Description: Merchant backend failed to create the refund confirmation signature.
707HttpStatus: 500
708
709Value: 1508
710Name: EXCHANGE_REFUND_INVALID_SIGNATURE_BY_EXCHANGE
711Description: The signature returned by the exchange in a refund request was malformed.
712HttpStatus: 0
713
714Value: 1509
715Name: EXCHANGE_REFUND_INVALID_FAILURE_PROOF_BY_EXCHANGE
716Description: The failure proof returned by the exchange is incorrect.
717HttpStatus: 0
718
719Value: 1510
720Name: EXCHANGE_REFUND_INCONSISTENT_AMOUNT
721Description: Conflicting refund granted before with different amount but same refund transaction ID.
722HttpStatus: 424
723
724Value: 1550
725Name: EXCHANGE_RECOUP_SIGNATURE_INVALID
726Description: The given coin signature is invalid for the request.
727HttpStatus: 403
728
729Value: 1551
730Name: EXCHANGE_RECOUP_WITHDRAW_NOT_FOUND
731Description: The exchange could not find the corresponding withdraw operation. The request is denied.
732HttpStatus: 404
733
734Value: 1552
735Name: EXCHANGE_RECOUP_COIN_BALANCE_ZERO
736Description: The coin's remaining balance is zero. The request is denied.
737HttpStatus: 403
738Note: dead in latest cde
739
740Value: 1553
741Name: EXCHANGE_RECOUP_BLINDING_FAILED
742Description: The exchange failed to reproduce the coin's blinding.
743HttpStatus: 500
744
745Value: 1554
746Name: EXCHANGE_RECOUP_COIN_BALANCE_NEGATIVE
747Description: The coin's remaining balance is zero. The request is denied.
748HttpStatus: 500
749Note: dead in latest cde
750
751Value: 1555
752Name: EXCHANGE_RECOUP_NOT_ELIGIBLE
753Description: The coin's denomination has not been revoked yet.
754HttpStatus: 404
755
756Value: 1575
757Name: EXCHANGE_RECOUP_REFRESH_SIGNATURE_INVALID
758Description: The given coin signature is invalid for the request.
759HttpStatus: 403
760
761Value: 1576
762Name: EXCHANGE_RECOUP_REFRESH_MELT_NOT_FOUND
763Description: The exchange could not find the corresponding melt operation. The request is denied.
764HttpStatus: 404
765
766Value: 1578
767Name: EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED
768Description: The exchange failed to reproduce the coin's blinding.
769HttpStatus: 500
770
771Value: 1580
772Name: EXCHANGE_RECOUP_REFRESH_NOT_ELIGIBLE
773Description: The coin's denomination has not been revoked yet.
774HttpStatus: 404
775
776
777Value: 1600
778Name: EXCHANGE_KEYS_TIMETRAVEL_FORBIDDEN
779Description: This exchange does not allow clients to request /keys for times other than the current (exchange) time.
780HttpStatus: 403
781
782Value: 1650
783Name: EXCHANGE_WIRE_SIGNATURE_INVALID
784Description: A signature in the server's response was malformed.
785HttpStatus: 0
786
787Value: 1651
788Name: EXCHANGE_WIRE_NO_ACCOUNTS_CONFIGURED
789Description: No bank accounts are enabled for the exchange. The administrator should enable-account using the taler-exchange-offline tool.
790HttpStatus: 500
791
792Value: 1652
793Name: EXCHANGE_WIRE_INVALID_PAYTO_CONFIGURED
794Description: The payto:// URI stored in the exchange database for its bank account is malformed.
795HttpStatus: 500
796
797Value: 1653
798Name: EXCHANGE_WIRE_FEES_NOT_CONFIGURED
799Description: No wire fees are configured for an enabled wire method of the exchange. The administrator must set the wire-fee using the taler-exchange-offline tool.
800HttpStatus: 500
801
802
803Value: 1675
804Name: EXCHANGE_RESERVES_PURSE_CREATE_CONFLICTING_META_DATA
805Description: This purse was previously created with different meta data.
806HttpStatus: 409
807
808Value: 1676
809Name: EXCHANGE_RESERVES_PURSE_MERGE_CONFLICTING_META_DATA
810Description: This purse was previously merged with different meta data.
811HttpStatus: 409
812
813Value: 1677
814Name: EXCHANGE_RESERVES_PURSE_CREATE_INSUFFICIENT_FUNDS
815Description: The reserve has insufficient funds to create another purse.
816HttpStatus: 409
817
818Value: 1678
819Name: EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW
820Description: The purse fee specified for the request is lower than the purse fee charged by the exchange at this time.
821HttpStatus: 400
822
823
824Value: 1700
825Name: EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE
826Description: The exchange failed to talk to the process responsible for its private denomination keys.
827HttpStatus: 500
828
829Value: 1701
830Name: EXCHANGE_DENOMINATION_HELPER_BUG
831Description: The response from the denomination key helper process was malformed.
832HttpStatus: 500
833
834Value: 1702
835Name: EXCHANGE_DENOMINATION_HELPER_TOO_EARLY
836Description: The helper refuses to sign with the key, because it is too early: the validity period has not yet started.
837HttpStatus: 400
838
839Value: 1725
840Name: EXCHANGE_PURSE_DEPOSIT_EXCHANGE_SIGNATURE_INVALID
841Description: The signature of the exchange on the reply was invalid.
842HttpStatus: 0
843
844
845Value: 1750
846Name: EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE
847Description: The exchange failed to talk to the process responsible for its private signing keys.
848HttpStatus: 500
849
850Value: 1751
851Name: EXCHANGE_SIGNKEY_HELPER_BUG
852Description: The response from the online signing key helper process was malformed.
853HttpStatus: 500
854
855Value: 1752
856Name: EXCHANGE_SIGNKEY_HELPER_TOO_EARLY
857Description: The helper refuses to sign with the key, because it is too early: the validity period has not yet started.
858HttpStatus: 400
859
860
861Value: 1775
862Name: EXCHANGE_RESERVES_PURSE_EXPIRATION_BEFORE_NOW
863Description: The purse expiration time is in the past at the time of its creation.
864HttpStatus: 400
865
866Value: 1776
867Name: EXCHANGE_RESERVES_PURSE_EXPIRATION_IS_NEVER
868Description: The purse expiration time is set to never, which is not allowed.
869HttpStatus: 400
870
871Value: 1777
872Name: EXCHANGE_RESERVES_PURSE_MERGE_SIGNATURE_INVALID
873Description: The signature affirming the merge of the purse is invalid.
874HttpStatus: 403
875
876Value: 1778
877Name: EXCHANGE_RESERVES_RESERVE_MERGE_SIGNATURE_INVALID
878Description: The signature by the reserve affirming the merge is invalid.
879HttpStatus: 403
880
881Value: 1785
882Name: EXCHANGE_RESERVES_OPEN_BAD_SIGNATURE
883Description: The signature by the reserve affirming the open operation is invalid.
884HttpStatus: 403
885
886Value: 1786
887Name: EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE
888Description: The signature by the reserve affirming the close operation is invalid.
889HttpStatus: 403
890
891Value: 1787
892Name: EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE
893Description: The signature by the reserve affirming the attestion request is invalid.
894HttpStatus: 403
895
896Value: 1788
897Name: EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT
898Description: 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.
899HttpStatus: 409
900
901Value: 1789
902Name: EXCHANGE_RESERVES_OPEN_INSUFFICIENT_FUNDS
903Description: The reserve balance is insufficient to pay for the open operation.
904HttpStatus: 409
905
906Value: 1800
907Name: EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND
908Description: The auditor that was supposed to be disabled is unknown to this exchange.
909HttpStatus: 404
910
911Value: 1801
912Name: EXCHANGE_MANAGEMENT_AUDITOR_MORE_RECENT_PRESENT
913Description: The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).
914HttpStatus: 409
915
916Value: 1802
917Name: EXCHANGE_MANAGEMENT_AUDITOR_ADD_SIGNATURE_INVALID
918Description: The signature to add or enable the auditor does not validate.
919HttpStatus: 403
920
921Value: 1803
922Name: EXCHANGE_MANAGEMENT_AUDITOR_DEL_SIGNATURE_INVALID
923Description: The signature to disable the auditor does not validate.
924HttpStatus: 403
925
926Value: 1804
927Name: EXCHANGE_MANAGEMENT_DENOMINATION_REVOKE_SIGNATURE_INVALID
928Description: The signature to revoke the denomination does not validate.
929HttpStatus: 403
930
931Value: 1805
932Name: EXCHANGE_MANAGEMENT_SIGNKEY_REVOKE_SIGNATURE_INVALID
933Description: The signature to revoke the online signing key does not validate.
934HttpStatus: 403
935
936Value: 1806
937Name: EXCHANGE_MANAGEMENT_WIRE_MORE_RECENT_PRESENT
938Description: The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).
939HttpStatus: 409
940
941Value: 1807
942Name: EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_UNKNOWN
943Description: The signingkey specified is unknown to the exchange.
944HttpStatus: 404
945
946Value: 1808
947Name: EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID
948Description: The signature to publish wire account does not validate.
949HttpStatus: 403
950
951Value: 1809
952Name: EXCHANGE_MANAGEMENT_WIRE_ADD_SIGNATURE_INVALID
953Description: The signature to add the wire account does not validate.
954HttpStatus: 403
955
956Value: 1810
957Name: EXCHANGE_MANAGEMENT_WIRE_DEL_SIGNATURE_INVALID
958Description: The signature to disable the wire account does not validate.
959HttpStatus: 403
960
961Value: 1811
962Name: EXCHANGE_MANAGEMENT_WIRE_NOT_FOUND
963Description: The wire account to be disabled is unknown to the exchange.
964HttpStatus: 404
965
966Value: 1812
967Name: EXCHANGE_MANAGEMENT_WIRE_FEE_SIGNATURE_INVALID
968Description: The signature to affirm wire fees does not validate.
969HttpStatus: 403
970
971Value: 1813
972Name: EXCHANGE_MANAGEMENT_WIRE_FEE_MISMATCH
973Description: The signature conflicts with a previous signature affirming different fees.
974HttpStatus: 409
975
976Value: 1814
977Name: EXCHANGE_MANAGEMENT_KEYS_DENOMKEY_ADD_SIGNATURE_INVALID
978Description: The signature affirming the denomination key is invalid.
979HttpStatus: 403
980
981Value: 1815
982Name: EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID
983Description: The signature affirming the signing key is invalid.
984HttpStatus: 403
985
986Value: 1816
987Name: EXCHANGE_MANAGEMENT_GLOBAL_FEE_MISMATCH
988Description: The signature conflicts with a previous signature affirming different fees.
989HttpStatus: 409
990
991Value: 1817
992Name: EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID
993Description: The signature affirming the fee structure is invalid.
994HttpStatus: 403
995
996Value: 1818
997Name: EXCHANGE_MANAGEMENT_DRAIN_PROFITS_SIGNATURE_INVALID
998Description: The signature affirming the profit drain is invalid.
999HttpStatus: 403
1000
1001Value: 1850
1002Name: EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA
1003Description: The purse was previously created with different meta data.
1004HttpStatus: 409
1005
1006Value: 1851
1007Name: EXCHANGE_PURSE_CREATE_CONFLICTING_CONTRACT_STORED
1008Description: The purse was previously created with a different contract.
1009HttpStatus: 409
1010
1011Value: 1852
1012Name: EXCHANGE_PURSE_CREATE_COIN_SIGNATURE_INVALID
1013Description: A coin signature for a deposit into the purse is invalid.
1014HttpStatus: 403
1015
1016Value: 1853
1017Name: EXCHANGE_PURSE_CREATE_EXPIRATION_BEFORE_NOW
1018Description: The purse expiration time is in the past.
1019HttpStatus: 400
1020
1021Value: 1854
1022Name: EXCHANGE_PURSE_CREATE_EXPIRATION_IS_NEVER
1023Description: The purse expiration time is "never".
1024HttpStatus: 400
1025
1026Value: 1855
1027Name: EXCHANGE_PURSE_CREATE_SIGNATURE_INVALID
1028Description: The purse signature over the purse meta data is invalid.
1029HttpStatus: 403
1030
1031Value: 1856
1032Name: EXCHANGE_PURSE_ECONTRACT_SIGNATURE_INVALID
1033Description: The signature over the encrypted contract is invalid.
1034HttpStatus: 403
1035
1036Value: 1857
1037Name: EXCHANGE_PURSE_CREATE_EXCHANGE_SIGNATURE_INVALID
1038Description: The signature from the exchange over the confirmation is invalid.
1039HttpStatus: 0
1040
1041Value: 1858
1042Name: EXCHANGE_PURSE_DEPOSIT_CONFLICTING_META_DATA
1043Description: The coin was previously deposited with different meta data.
1044HttpStatus: 409
1045
1046Value: 1859
1047Name: EXCHANGE_PURSE_ECONTRACT_CONFLICTING_META_DATA
1048Description: The encrypted contract was previously uploaded with different meta data.
1049HttpStatus: 409
1050
1051Value: 1860
1052Name: EXCHANGE_CREATE_PURSE_NEGATIVE_VALUE_AFTER_FEE
1053Description: The deposited amount is less than the purse fee.
1054HttpStatus: 400
1055
1056Value: 1876
1057Name: EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE
1058Description: The signature using the merge key is invalid.
1059HttpStatus: 403
1060
1061Value: 1877
1062Name: EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE
1063Description: The signature using the reserve key is invalid.
1064HttpStatus: 403
1065
1066Value: 1878
1067Name: EXCHANGE_PURSE_NOT_FULL
1068Description: The targeted purse is not yet full and thus cannot be merged. Retrying the request later may succeed.
1069HttpStatus: 409
1070
1071Value: 1879
1072Name: EXCHANGE_PURSE_MERGE_EXCHANGE_SIGNATURE_INVALID
1073Description: The signature from the exchange over the confirmation is invalid.
1074HttpStatus: 0
1075
1076Value: 1880
1077Name: EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN
1078Description: The exchange of the target account is not a partner of this exchange.
1079HttpStatus: 404
1080
1081
1082Value: 1900
1083Name: EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID
1084Description: The auditor signature over the denomination meta data is invalid.
1085HttpStatus: 403
1086
1087Value: 1901
1088Name: EXCHANGE_AUDITORS_AUDITOR_UNKNOWN
1089Description: The auditor that was specified is unknown to this exchange.
1090HttpStatus: 412
1091
1092Value: 1902
1093Name: EXCHANGE_AUDITORS_AUDITOR_INACTIVE
1094Description: The auditor that was specified is no longer used by this exchange.
1095HttpStatus: 410
1096
1097Value: 1925
1098Name: EXCHANGE_KYC_WALLET_SIGNATURE_INVALID
1099Description: The signature affirming the wallet's KYC request was invalid.
1100HttpStatus: 403
1101
1102Value: 1926
1103Name: EXCHANGE_KYC_PROOF_BACKEND_INVALID_RESPONSE
1104Description: The exchange received an unexpected malformed response from its KYC backend.
1105HttpStatus: 502
1106
1107Value: 1927
1108Name: EXCHANGE_KYC_PROOF_BACKEND_ERROR
1109Description: The backend signaled an unexpected failure.
1110HttpStatus: 502
1111
1112Value: 1928
1113Name: EXCHANGE_KYC_PROOF_BACKEND_AUTHORIZATION_FAILED
1114Description: The backend signaled an authorization failure.
1115HttpStatus: 403
1116
1117Value: 1929
1118Name: EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN
1119Description: The exchange is unaware of having made an the authorization request.
1120HttpStatus: 404
1121
1122Value: 1930
1123Name: EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED
1124Description: The payto-URI hash did not match. Hence the request was denied.
1125HttpStatus: 403
1126
1127Value: 1931
1128Name: EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN
1129Description: The request used a logic specifier that is not known to the exchange.
1130HttpStatus: 404
1131
1132Value: 1932
1133Name: EXCHANGE_KYC_GENERIC_LOGIC_GONE
1134Description: The request requires a logic which is no longer configured at the exchange.
1135HttpStatus: 500
1136
1137Value: 1933
1138Name: EXCHANGE_KYC_GENERIC_LOGIC_BUG
1139Description: The logic plugin had a bug in its interaction with the KYC provider.
1140HttpStatus: 500
1141
1142Value: 1934
1143Name: EXCHANGE_KYC_GENERIC_PROVIDER_ACCESS_REFUSED
1144Description: 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.
1145HttpStatus: 511
1146
1147Value: 1935
1148Name: EXCHANGE_KYC_GENERIC_PROVIDER_TIMEOUT
1149Description: 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.
1150HttpStatus: 504
1151
1152Value: 1936
1153Name: EXCHANGE_KYC_GENERIC_PROVIDER_UNEXPECTED_REPLY
1154Description: The KYC provider responded with a status that was completely unexpected by the KYC logic of the exchange.
1155HttpStatus: 502
1156
1157Value: 1937
1158Name: EXCHANGE_KYC_GENERIC_PROVIDER_RATE_LIMIT_EXCEEDED
1159Description: The rate limit of the exchange at the KYC provider has been exceeded. Trying much later might work.
1160HttpStatus: 503
1161
1162Value: 1938
1163Name: EXCHANGE_KYC_WEBHOOK_UNAUTHORIZED
1164Description: The request to the webhook lacked proper authorization or authentication data.
1165HttpStatus: 401
1166
1167
1168
1169Value: 1950
1170Name: EXCHANGE_CONTRACTS_UNKNOWN
1171Description: The exchange does not know a contract under the given contract public key.
1172HttpStatus: 404
1173
1174Value: 1951
1175Name: EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB
1176Description: The URL does not encode a valid exchange public key in its path.
1177HttpStatus: 400
1178
1179Value: 1952
1180Name: EXCHANGE_CONTRACTS_DECRYPTION_FAILED
1181Description: The returned encrypted contract did not decrypt.
1182HttpStatus: 0
1183
1184Value: 1953
1185Name: EXCHANGE_CONTRACTS_SIGNATURE_INVALID
1186Description: The signature on the encrypted contract did not validate.
1187HttpStatus: 0
1188
1189Value: 1954
1190Name: EXCHANGE_CONTRACTS_DECODING_FAILED
1191Description: The decrypted contract was malformed.
1192HttpStatus: 0
1193
1194Value: 1975
1195Name: EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID
1196Description: A coin signature for a deposit into the purse is invalid.
1197HttpStatus: 403
1198
1199
1200
1201
1202# 2000 - 2999: Reserved for merchant
1203# 2000 - 2099: Reserved for MERCHANT_GENERIC
1204
1205Value: 2000
1206Name: MERCHANT_GENERIC_INSTANCE_UNKNOWN
1207Description: The backend could not find the merchant instance specified in the request.
1208HttpStatus: 404
1209
1210Value: 2001
1211Name: MERCHANT_GENERIC_HOLE_IN_WIRE_FEE_STRUCTURE
1212Description: The start and end-times in the wire fee structure leave a hole. This is not allowed.
1213HttpStatus: 0
1214
1215Value: 2005
1216Name: MERCHANT_GENERIC_ORDER_UNKNOWN
1217Description: The proposal is not known to the backend.
1218HttpStatus: 404
1219
1220Value: 2006
1221Name: MERCHANT_GENERIC_PRODUCT_UNKNOWN
1222Description: The order provided to the backend could not be completed, because a product to be completed via inventory data is not actually in our inventory.
1223HttpStatus: 404
1224
1225Value: 2007
1226Name: MERCHANT_GENERIC_TIP_ID_UNKNOWN
1227Description: The tip ID is unknown. This could happen if the tip has expired.
1228HttpStatus: 404
1229
1230Value: 2008
1231Name: MERCHANT_GENERIC_DB_CONTRACT_CONTENT_INVALID
1232Description: The contract obtained from the merchant backend was malformed.
1233HttpStatus: 500
1234
1235Value: 2009
1236Name: MERCHANT_GENERIC_CONTRACT_HASH_DOES_NOT_MATCH_ORDER
1237Description: The order we found does not match the provided contract hash.
1238HttpStatus: 403
1239
1240Value: 2010
1241Name: MERCHANT_GENERIC_EXCHANGE_KEYS_FAILURE
1242Description: The exchange failed to provide a valid response to the merchant's /keys request.
1243HttpStatus: 502
1244
1245Value: 2011
1246Name: MERCHANT_GENERIC_EXCHANGE_TIMEOUT
1247Description: The exchange failed to respond to the merchant on time.
1248HttpStatus: 504
1249
1250Value: 2012
1251Name: MERCHANT_GENERIC_EXCHANGE_CONNECT_FAILURE
1252Description: The merchant failed to talk to the exchange.
1253HttpStatus: 500
1254
1255Value: 2013
1256Name: MERCHANT_GENERIC_EXCHANGE_REPLY_MALFORMED
1257Description: The exchange returned a maformed response.
1258HttpStatus: 502
1259
1260Value: 2014
1261Name: MERCHANT_GENERIC_EXCHANGE_UNEXPECTED_STATUS
1262Description: The exchange returned an unexpected response status.
1263HttpStatus: 502
1264
1265Value: 2015
1266Name: MERCHANT_GENERIC_UNAUTHORIZED
1267Description: The merchant refused the request due to lack of authorization.
1268HttpStatus: 401
1269
1270Value: 2016
1271Name: MERCHANT_GENERIC_INSTANCE_DELETED
1272Description: The merchant instance specified in the request was deleted.
1273HttpStatus: 404
1274
1275Value: 2017
1276Name: MERCHANT_GENERIC_TRANSFER_UNKNOWN
1277Description: The backend could not find the inbound wire transfer specified in the request.
1278HttpStatus: 404
1279
1280Value: 2018
1281Name: MERCHANT_GENERIC_TEMPLATE_UNKNOWN
1282Description: The backend could not find the template(id) because it is not exist.
1283HttpStatus: 404
1284
1285
1286# 2100-2499: public API
1287# 2100-2149: get orders endpoint
1288
1289Value: 2100
1290Name: MERCHANT_GET_ORDERS_EXCHANGE_TRACKING_FAILURE
1291Description: The exchange failed to provide a valid answer to the tracking request, thus those details are not in the response.
1292HttpStatus: 200
1293
1294Value: 2103
1295Name: MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE
1296Description: The merchant backend failed to construct the request for tracking to the exchange, thus tracking details are not in the response.
1297HttpStatus: 500
1298
1299Value: 2104
1300Name: MERCHANT_GET_ORDERS_ID_EXCHANGE_LOOKUP_START_FAILURE
1301Description: The merchant backend failed trying to contact the exchange for tracking details, thus those details are not in the response.
1302HttpStatus: 500
1303
1304Value: 2105
1305Name: MERCHANT_GET_ORDERS_ID_INVALID_TOKEN
1306Description: The claim token used to authenticate the client is invalid for this order.
1307HttpStatus: 403
1308
1309Value: 2106
1310Name: MERCHANT_GET_ORDERS_ID_INVALID_CONTRACT_HASH
1311Description: The contract terms hash used to authenticate the client is invalid for this order.
1312HttpStatus: 403
1313
1314# 2150-2199: post orders ID pay endpoint
1315
1316Value: 2150
1317Name: MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_FUNDS
1318Description: The exchange responded saying that funds were insufficient (for example, due to double-spending).
1319HttpStatus: 409
1320
1321Value: 2151
1322Name: MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_NOT_FOUND
1323Description: The denomination key used for payment is not listed among the denomination keys of the exchange.
1324HttpStatus: 400
1325
1326Value: 2152
1327Name: MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_AUDITOR_FAILURE
1328Description: The denomination key used for payment is not audited by an auditor approved by the merchant.
1329HttpStatus: 400
1330
1331Value: 2153
1332Name: MERCHANT_POST_ORDERS_ID_PAY_AMOUNT_OVERFLOW
1333Description: There was an integer overflow totaling up the amounts or deposit fees in the payment.
1334HttpStatus: 500
1335
1336Value: 2154
1337Name: MERCHANT_POST_ORDERS_ID_PAY_FEES_EXCEED_PAYMENT
1338Description: The deposit fees exceed the total value of the payment.
1339HttpStatus: 400
1340
1341Value: 2155
1342Name: MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES
1343Description: 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.
1344HttpStatus: 406
1345
1346Value: 2156
1347Name: MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT
1348Description: Even if we do not consider deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract.
1349HttpStatus: 406
1350
1351Value: 2157
1352Name: MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID
1353Description: The signature over the contract of one of the coins was invalid.
1354HttpStatus: 403
1355
1356Value: 2158
1357Name: MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_LOOKUP_FAILED
1358Description: When we tried to find information about the exchange to issue the deposit, we failed. This usually only happens if the merchant backend is somehow unable to get its own HTTP client logic to work.
1359HttpStatus: 500
1360
1361Value: 2159
1362Name: MERCHANT_POST_ORDERS_ID_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE
1363Description: The refund deadline in the contract is after the transfer deadline.
1364HttpStatus: 500
1365
1366Value: 2160
1367Name: MERCHANT_POST_ORDERS_ID_PAY_ALREADY_PAID
1368Description: The order was already paid (maybe by another wallet).
1369HttpStatus: 409
1370
1371Value: 2161
1372Name: MERCHANT_POST_ORDERS_ID_PAY_OFFER_EXPIRED
1373Description: The payment is too late, the offer has expired.
1374HttpStatus: 410
1375
1376Value: 2162
1377Name: MERCHANT_POST_ORDERS_ID_PAY_MERCHANT_FIELD_MISSING
1378Description: The "merchant" field is missing in the proposal data. This is an internal error as the proposal is from the merchant's own database at this point.
1379HttpStatus: 500
1380
1381Value: 2163
1382Name: MERCHANT_POST_ORDERS_ID_PAY_WIRE_HASH_UNKNOWN
1383Description: Failed to locate merchant's account information matching the wire hash given in the proposal.
1384HttpStatus: 500
1385
1386Value: 2165
1387Name: MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_DEPOSIT_EXPIRED
1388Description: The deposit time for the denomination has expired.
1389HttpStatus: 410
1390
1391Value: 2166
1392Name: MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_WIRE_FEE_ADDITION_FAILED
1393Description: The exchange of the deposited coin charges a wire fee that could not be added to the total (total amount too high).
1394HttpStatus: 500
1395
1396Value: 2167
1397Name: MERCHANT_POST_ORDERS_ID_PAY_REFUNDED
1398Description: The contract was not fully paid because of refunds. Note that clients MAY treat this as paid if, for example, contracts must be executed despite of refunds.
1399HttpStatus: 402
1400
1401Value: 2168
1402Name: MERCHANT_POST_ORDERS_ID_PAY_REFUNDS_EXCEED_PAYMENTS
1403Description: According to our database, we have refunded more than we were paid (which should not be possible).
1404HttpStatus: 500
1405
1406Value: 2169
1407Name: DEAD_QQQ_PAY_MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE
1408Description: Legacy stuff. Remove me with protocol v1.
1409HttpStatus: 0
1410
1411Value: 2170
1412Name: MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_FAILED
1413Description: The payment failed at the exchange.
1414HttpStatus: 502
1415
1416Value: 2171
1417Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_MISSING
1418Description: 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.
1419HttpStatus: 400
1420
1421Value: 2172
1422Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_SIZE_MISMATCH
1423Description: 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.
1424HttpStatus: 400
1425
1426Value: 2173
1427Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_VERIFICATION_FAILED
1428Description: 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.
1429HttpStatus: 400
1430
1431Value: 2174
1432Name: MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_HASH_MISSING
1433Description: 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.
1434HttpStatus: 400
1435
1436# 2200-2249: post orders ID paid endpoint
1437
1438Value: 2200
1439Name: MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH
1440Description: The contract hash does not match the given order ID.
1441HttpStatus: 400
1442
1443Value: 2201
1444Name: MERCHANT_POST_ORDERS_ID_PAID_COIN_SIGNATURE_INVALID
1445Description: The signature of the merchant is not valid for the given contract hash.
1446HttpStatus: 403
1447
1448# 2250-2299: post orders ID abort endpoint
1449
1450
1451Value: 2251
1452Name: MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED
1453Description: The merchant failed to send the exchange the refund request.
1454HttpStatus: 500
1455
1456Value: 2252
1457Name: MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_LOOKUP_FAILED
1458Description: The merchant failed to find the exchange to process the lookup.
1459HttpStatus: 500
1460
1461Value: 2253
1462Name: MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_NOT_FOUND
1463Description: The merchant could not find the contract.
1464HttpStatus: 404
1465
1466Value: 2254
1467Name: MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE
1468Description: The payment was already completed and thus cannot be aborted anymore.
1469HttpStatus: 412
1470
1471Value: 2255
1472Name: MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_HASH_MISSMATCH
1473Description: The hash provided by the wallet does not match the order.
1474HttpStatus: 403
1475
1476Value: 2256
1477Name: MERCHANT_POST_ORDERS_ID_ABORT_COINS_ARRAY_EMPTY
1478Description: The array of coins cannot be empty.
1479HttpStatus: 400
1480
1481# 2300-2349: post orders ID claim endpoint
1482
1483Value: 2300
1484Name: MERCHANT_POST_ORDERS_ID_CLAIM_NOT_FOUND
1485Description: We could not claim the order because the backend is unaware of it.
1486HttpStatus: 404
1487
1488Value: 2301
1489Name: MERCHANT_POST_ORDERS_ID_CLAIM_ALREADY_CLAIMED
1490Description: We could not claim the order because someone else claimed it first.
1491HttpStatus: 409
1492
1493Value: 2302
1494Name: MERCHANT_POST_ORDERS_ID_CLAIM_CLIENT_INTERNAL_FAILURE
1495Description: The client-side experienced an internal failure.
1496HttpStatus: 0
1497
1498# 2350-2399: post orders ID refund endpoint
1499
1500Value: 2350
1501Name: MERCHANT_POST_ORDERS_ID_REFUND_SIGNATURE_FAILED
1502Description: The backend failed to sign the refund request.
1503HttpStatus: 0
1504
1505# 2400-2449: tip pickup endpoint
1506
1507Value: 2400
1508Name: MERCHANT_TIP_PICKUP_UNBLIND_FAILURE
1509Description: The client failed to unblind the signature returned by the merchant.
1510HttpStatus: 0
1511
1512
1513
1514Value: 2403
1515Name: MERCHANT_TIP_PICKUP_EXCHANGE_ERROR
1516Description: The exchange returned a failure code for the withdraw operation.
1517HttpStatus: 502
1518
1519
1520Value: 2404
1521Name: MERCHANT_TIP_PICKUP_SUMMATION_FAILED
1522Description: The merchant failed to add up the amounts to compute the pick up value.
1523HttpStatus: 500
1524
1525Value: 2405
1526Name: MERCHANT_TIP_PICKUP_HAS_EXPIRED
1527Description: The tip expired.
1528HttpStatus: 410
1529
1530Value: 2406
1531Name: MERCHANT_TIP_PICKUP_AMOUNT_EXCEEDS_TIP_REMAINING
1532Description: The requested withdraw amount exceeds the amount remaining to be picked up.
1533HttpStatus: 400
1534
1535Value: 2407
1536Name: MERCHANT_TIP_PICKUP_DENOMINATION_UNKNOWN
1537Description: The merchant did not find the specified denomination key in the exchange's key set.
1538HttpStatus: 409
1539
1540# 2450-2499: available for future public endpoint
1541
1542# 2500-2999: private API
1543# 2500-2549: order operations
1544
1545Value: 2500
1546Name: MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE
1547Description: The backend lacks a wire transfer method configuration option for the given instance. Thus, this instance is unavailable (not findable for creating new orders).
1548HttpStatus: 404
1549
1550Value: 2501
1551Name: MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME
1552Description: The proposal had no timestamp and the backend failed to obtain the local time. Likely to be an internal error.
1553HttpStatus: 500
1554
1555Value: 2502
1556Name: MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR
1557Description: The order provided to the backend could not be parsed, some required fields were missing or ill-formed.
1558HttpStatus: 400
1559
1560Value: 2503
1561Name: MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS
1562Description: The backend encountered an error: the proposal already exists.
1563HttpStatus: 409
1564
1565Value: 2504
1566Name: MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE
1567Description: The request is invalid: the wire deadline is before the refund deadline.
1568HttpStatus: 400
1569
1570Value: 2505
1571Name: MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST
1572Description: The request is invalid: a delivery date was given, but it is in the past.
1573HttpStatus: 400
1574
1575Value: 2506
1576Name: MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER
1577Description: The request is invalid: the wire deadline for the order would be "never".
1578HttpStatus: 400
1579
1580Value: 2510
1581Name: MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT
1582Description: One of the paths to forget is malformed.
1583HttpStatus: 400
1584
1585Value: 2511
1586Name: MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_NOT_FORGETTABLE
1587Description: One of the paths to forget was not marked as forgettable.
1588HttpStatus: 409
1589
1590Value: 2520
1591Name: MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT
1592Description: The order provided to the backend could not be deleted, our offer is still valid and awaiting payment.
1593HttpStatus: 409
1594
1595Value: 2521
1596Name: MERCHANT_PRIVATE_DELETE_ORDERS_ALREADY_PAID
1597Description: The order provided to the backend could not be deleted as the order was already paid.
1598HttpStatus: 409
1599
1600Value: 2530
1601Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT
1602Description: 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.
1603HttpStatus: 409
1604
1605Value: 2531
1606Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID
1607Description: The frontend gave an unpaid order id to issue the refund to.
1608HttpStatus: 409
1609
1610Value: 2532
1611Name: MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT
1612Description: The refund delay was set to 0 and thus no refunds are allowed for this order.
1613HttpStatus: 403
1614
1615
1616
1617# 2550-2599: transfer operations
1618
1619Value: 2550
1620Name: MERCHANT_PRIVATE_POST_TRANSFERS_EXCHANGE_UNKNOWN
1621Description: The exchange says it does not know this transfer.
1622HttpStatus: 502
1623
1624Value: 2551
1625Name: MERCHANT_PRIVATE_POST_TRANSFERS_REQUEST_ERROR
1626Description: We internally failed to execute the /track/transfer request.
1627HttpStatus: 502
1628
1629Value: 2552
1630Name: MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_TRANSFERS
1631Description: The amount transferred differs between what was submitted and what the exchange claimed.
1632HttpStatus: 409
1633
1634Value: 2553
1635Name: MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_REPORTS
1636Description: The exchange gave conflicting information about a coin which has been wire transferred.
1637HttpStatus: 409
1638
1639Value: 2554
1640Name: MERCHANT_PRIVATE_POST_TRANSFERS_BAD_WIRE_FEE
1641Description: The exchange charged a different wire fee than what it originally advertised, and it is higher.
1642HttpStatus: 502
1643
1644Value: 2555
1645Name: MERCHANT_PRIVATE_POST_TRANSFERS_ACCOUNT_NOT_FOUND
1646Description: We did not find the account that the transfer was made to.
1647HttpStatus: 404
1648
1649Value: 2556
1650Name: MERCHANT_PRIVATE_DELETE_TRANSFERS_ALREADY_CONFIRMED
1651Description: The backend could not delete the transfer as the echange already replied to our inquiry about it and we have integrated the result.
1652HttpStatus: 409
1653
1654Value: 2557
1655Name: MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION
1656Description: 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.
1657HttpStatus: 409
1658
1659
1660# 2600-2649: instance operations
1661
1662Value: 2600
1663Name: MERCHANT_PRIVATE_POST_INSTANCES_ALREADY_EXISTS
1664Description: The merchant backend cannot create an instance under the given identifier as one already exists. Use PATCH to modify the existing entry.
1665HttpStatus: 409
1666
1667Value: 2601
1668Name: MERCHANT_PRIVATE_POST_INSTANCES_BAD_AUTH
1669Description: The merchant backend cannot create an instance because the authentication configuration field is malformed.
1670HttpStatus: 400
1671
1672Value: 2602
1673Name: MERCHANT_PRIVATE_POST_INSTANCE_AUTH_BAD_AUTH
1674Description: The merchant backend cannot update an instance's authentication settings because the provided authentication settings are malformed.
1675HttpStatus: 400
1676
1677Value: 2603
1678Name: MERCHANT_PRIVATE_POST_INSTANCES_PURGE_REQUIRED
1679Description: The merchant backend cannot create an instance under the given identifier, the previous one was deleted but must be purged first.
1680HttpStatus: 409
1681
1682Value: 2625
1683Name: MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED
1684Description: The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first.
1685HttpStatus: 409
1686
1687
1688# 2650-2699: product operations
1689
1690Value: 2650
1691Name: MERCHANT_PRIVATE_POST_PRODUCTS_CONFLICT_PRODUCT_EXISTS
1692Description: The product ID exists.
1693HttpStatus: 409
1694
1695Value: 2660
1696Name: MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_REDUCED
1697Description: The update would have reduced the total amount of product lost, which is not allowed.
1698HttpStatus: 409
1699
1700Value: 2661
1701Name: MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_EXCEEDS_STOCKS
1702Description: The update would have mean that more stocks were lost than what remains from total inventory after sales, which is not allowed.
1703HttpStatus: 400
1704
1705Value: 2662
1706Name: MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_STOCKED_REDUCED
1707Description: The update would have reduced the total amount of product in stock, which is not allowed.
1708HttpStatus: 409
1709
1710Value: 2663
1711Name: MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_SOLD_REDUCED
1712Description: The update would have reduced the total amount of product sold, which is not allowed.
1713HttpStatus: 409
1714
1715Value: 2670
1716Name: MERCHANT_PRIVATE_POST_PRODUCTS_LOCK_INSUFFICIENT_STOCKS
1717Description: The lock request is for more products than we have left (unlocked) in stock.
1718HttpStatus: 410
1719
1720Value: 2680
1721Name: MERCHANT_PRIVATE_DELETE_PRODUCTS_CONFLICTING_LOCK
1722Description: The deletion request is for a product that is locked.
1723HttpStatus: 409
1724
1725# 2700-2749: reserve operations
1726
1727Value: 2700
1728Name: MERCHANT_PRIVATE_POST_RESERVES_UNSUPPORTED_WIRE_METHOD
1729Description: The requested wire method is not supported by the exchange.
1730HttpStatus: 409
1731
1732Value: 2710
1733Name: MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE
1734Description: The reserve could not be deleted because it is unknown.
1735HttpStatus: 404
1736
1737# 2750-2799: tip authorization
1738
1739Value: 2750
1740Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_EXPIRED
1741Description: The reserve that was used to fund the tips has expired.
1742HttpStatus: 410
1743
1744Value: 2751
1745Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_UNKNOWN
1746Description: The reserve that was used to fund the tips was not found in the DB.
1747HttpStatus: 503
1748
1749Value: 2752
1750Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_INSUFFICIENT_FUNDS
1751Description: 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.
1752HttpStatus: 0
1753
1754Value: 2753
1755Name: MERCHANT_PRIVATE_POST_TIP_AUTHORIZE_RESERVE_NOT_FOUND
1756Description: The backend failed to find a reserve needed to authorize the tip.
1757HttpStatus: 503
1758
1759Value: 2800
1760Name: MERCHANT_PRIVATE_GET_ORDERS_ID_AMOUNT_ARITHMETIC_FAILURE
1761Description: The merchant backend encountered a failure in computing the deposit total.
1762HttpStatus: 200
1763
1764# 2850-2899: template operations
1765
1766
1767
1768
1769# 3000 - 3999: Reserved for auditor
1770# 3000 - 3099: Reserved for AUDITOR_GENERIC
1771
1772Value: 3100
1773Name: AUDITOR_DEPOSIT_CONFIRMATION_SIGNATURE_INVALID
1774Description: The signature from the exchange on the deposit confirmation is invalid.
1775HttpStatus: 403
1776
1777Value: 3101
1778Name: AUDITOR_EXCHANGE_SIGNING_KEY_REVOKED
1779Description: The exchange key used for the signature on the deposit confirmation was revoked.
1780HttpStatus: 410
1781
1782
1783# 5000 - 5999: Reserved for bank
1784# 5000 - 5099: Reserved for BANK_GENERIC
1785
1786Value: 5101
1787Name: BANK_SAME_ACCOUNT
1788Description: Wire transfer attempted with credit and debit party being the same bank account.
1789HttpStatus: 400
1790
1791Value: 5102
1792Name: BANK_UNALLOWED_DEBIT
1793Description: Wire transfer impossible, due to financial limitation of the party that attempted the payment.
1794HttpStatus: 409
1795
1796Value: 5103
1797Name: BANK_NEGATIVE_NUMBER_AMOUNT
1798Description: Negative numbers are not allowed (as value and/or fraction) to instantiate an amount object.
1799HttpStatus: 400
1800
1801Value: 5104
1802Name: BANK_NUMBER_TOO_BIG
1803Description: A too big number was used (as value and/or fraction) to instantiate an amount object.
1804HttpStatus: 400
1805
1806Value: 5105
1807Name: BANK_LOGIN_FAILED
1808Description: Could not login for the requested operation.
1809HttpStatus: 403
1810
1811Value: 5106
1812Name: BANK_UNKNOWN_ACCOUNT
1813Description: The bank account referenced in the requested operation was not found.
1814HttpStatus: 404
1815
1816Value: 5107
1817Name: BANK_TRANSACTION_NOT_FOUND
1818Description: The transaction referenced in the requested operation (typically a reject operation), was not found.
1819HttpStatus: 404
1820
1821Value: 5108
1822Name: BANK_BAD_FORMAT_AMOUNT
1823Description: Bank received a malformed amount string.
1824HttpStatus: 400
1825
1826Value: 5109
1827Name: BANK_REJECT_NO_RIGHTS
1828Description: The client does not own the account credited by the transaction which is to be rejected, so it has no rights do reject it.
1829HttpStatus: 403
1830
1831Value: 5110
1832Name: BANK_UNMANAGED_EXCEPTION
1833Description: This error code is returned when no known exception types captured the exception.
1834HttpStatus: 500
1835
1836Value: 5111
1837Name: BANK_SOFT_EXCEPTION
1838Description: 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.
1839HttpStatus: 500
1840
1841Value: 5112
1842Name: BANK_TRANSFER_REQUEST_UID_REUSED
1843Description: The request UID for a request to transfer funds has already been used, but with different details for the transfer.
1844HttpStatus: 409
1845
1846Value: 5113
1847Name: BANK_WITHDRAWAL_OPERATION_RESERVE_SELECTION_CONFLICT
1848Description: The withdrawal operation already has a reserve selected. The current request conflicts with the existing selection.
1849HttpStatus: 409
1850
1851Value: 5114
1852Name: BANK_DUPLICATE_RESERVE_PUB_SUBJECT
1853Description: The wire transfer subject duplicates an existing reserve public key. But wire transfer subjects must be unique.
1854HttpStatus: 409
1855
1856Value: 5115
1857Name: BANK_ANCIENT_TRANSACTION_GONE
1858Description: The client requested a transaction that is so far in the past, that it has been forgotten by the bank.
1859HttpStatus: 410
1860
1861Value: 5116
1862Name: BANK_ABORT_CONFIRM_CONFLICT
1863Description: The client attempted to abort a transaction that was already confirmed.
1864HttpStatus: 409
1865
1866Value: 5117
1867Name: BANK_CONFIRM_ABORT_CONFLICT
1868Description: The client attempted to confirm a transaction that was already aborted.
1869HttpStatus: 409
1870
1871Value: 5118
1872Name: BANK_REGISTER_CONFLICT
1873Description: The client attempted to register an account with the same name.
1874HttpStatus: 409
1875
1876Value: 5119
1877Name: BANK_POST_WITHDRAWAL_OPERATION_REQUIRED
1878Description: The client attempted to confirm a withdrawal operation before the wallet posted the required details.
1879HttpStatus: 400
1880
1881
1882# 6000 - 6999: Reserved for sync
1883# 6000 - 6099: Reserved for SYNC_GENERIC
1884
1885Value: 6100
1886Name: SYNC_ACCOUNT_UNKNOWN
1887Description: The sync service failed find the account in its database.
1888HttpStatus: 404
1889
1890Value: 6101
1891Name: SYNC_BAD_IF_NONE_MATCH
1892Description: The SHA-512 hash provided in the If-None-Match header is malformed.
1893HttpStatus: 400
1894
1895Value: 6102
1896Name: SYNC_BAD_IF_MATCH
1897Description: The SHA-512 hash provided in the If-Match header is malformed or missing.
1898HttpStatus: 400
1899
1900Value: 6103
1901Name: SYNC_BAD_SYNC_SIGNATURE
1902Description: The signature provided in the "Sync-Signature" header is malformed or missing.
1903HttpStatus: 400
1904
1905Value: 6104
1906Name: SYNC_INVALID_SIGNATURE
1907Description: The signature provided in the "Sync-Signature" header does not match the account, old or new Etags.
1908HttpStatus: 403
1909
1910Value: 6105
1911Name: SYNC_MALFORMED_CONTENT_LENGTH
1912Description: The "Content-length" field for the upload is not a number.
1913HttpStatus: 400
1914
1915Value: 6106
1916Name: SYNC_EXCESSIVE_CONTENT_LENGTH
1917Description: The "Content-length" field for the upload is too big based on the server's terms of service.
1918HttpStatus: 413
1919
1920Value: 6107
1921Name: SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH
1922Description: The server is out of memory to handle the upload. Trying again later may succeed.
1923HttpStatus: 413
1924
1925Value: 6108
1926Name: SYNC_INVALID_UPLOAD
1927Description: The uploaded data does not match the Etag.
1928HttpStatus: 400
1929
1930Value: 6109
1931Name: SYNC_PAYMENT_GENERIC_TIMEOUT
1932Description: HTTP server experienced a timeout while awaiting promised payment.
1933HttpStatus: 408
1934
1935Value: 6110
1936Name: SYNC_PAYMENT_CREATE_BACKEND_ERROR
1937Description: Sync could not setup the payment request with its own backend.
1938HttpStatus: 500
1939
1940Value: 6111
1941Name: SYNC_PREVIOUS_BACKUP_UNKNOWN
1942Description: The sync service failed find the backup to be updated in its database.
1943HttpStatus: 404
1944
1945Value: 6112
1946Name: SYNC_MISSING_CONTENT_LENGTH
1947Description: The "Content-length" field for the upload is missing.
1948HttpStatus: 400
1949
1950Value: 6113
1951Name: SYNC_GENERIC_BACKEND_ERROR
1952Description: Sync had problems communicating with its payment backend.
1953HttpStatus: 502
1954
1955Value: 6114
1956Name: SYNC_GENERIC_BACKEND_TIMEOUT
1957Description: Sync experienced a timeout communicating with its payment backend.
1958HttpStatus: 504
1959
1960
1961
1962# 7000 - 7999: Reserved for wallet
1963
1964Value: 7000
1965Name: WALLET_EXCHANGE_PROTOCOL_VERSION_INCOMPATIBLE
1966Description: The wallet does not implement a version of the exchange protocol that is compatible with the protocol version of the exchange.
1967HttpStatus: 501
1968
1969Value: 7001
1970Name: WALLET_UNEXPECTED_EXCEPTION
1971Description: The wallet encountered an unexpected exception. This is likely a bug in the wallet implementation.
1972HttpStatus: 500
1973
1974Value: 7002
1975Name: WALLET_RECEIVED_MALFORMED_RESPONSE
1976Description: The wallet received a response from a server, but the response can't be parsed.
1977HttpStatus: 0
1978
1979Value: 7003
1980Name: WALLET_NETWORK_ERROR
1981Description: The wallet tried to make a network request, but it received no response.
1982HttpStatus: 0
1983
1984Value: 7004
1985Name: WALLET_HTTP_REQUEST_THROTTLED
1986Description: The wallet tried to make a network request, but it was throttled.
1987HttpStatus: 0
1988
1989Value: 7005
1990Name: WALLET_UNEXPECTED_REQUEST_ERROR
1991Description: The wallet made a request to a service, but received an error response it does not know how to handle.
1992HttpStatus: 0
1993
1994Value: 7006
1995Name: WALLET_EXCHANGE_DENOMINATIONS_INSUFFICIENT
1996Description: The denominations offered by the exchange are insufficient. Likely the exchange is badly configured or not maintained.
1997HttpStatus: 0
1998
1999Value: 7007
2000Name: WALLET_CORE_API_OPERATION_UNKNOWN
2001Description: The wallet does not support the operation requested by a client.
2002HttpStatus: 0
2003
2004Value: 7008
2005Name: WALLET_INVALID_TALER_PAY_URI
2006Description: The given taler://pay URI is invalid.
2007HttpStatus: 0
2008
2009Value: 7009
2010Name: WALLET_EXCHANGE_COIN_SIGNATURE_INVALID
2011Description: The signature on a coin by the exchange's denomination key is invalid after unblinding it.
2012HttpStatus: 0
2013
2014Value: 7010
2015Name: WALLET_EXCHANGE_WITHDRAW_RESERVE_UNKNOWN_AT_EXCHANGE
2016Description: The exchange does not know about the reserve (yet), and thus withdrawal can't progress.
2017HttpStatus: 404
2018
2019Value: 7011
2020Name: WALLET_CORE_NOT_AVAILABLE
2021Description: The wallet core service is not available.
2022HttpStatus: 0
2023
2024Value: 7012
2025Name: WALLET_WITHDRAWAL_OPERATION_ABORTED_BY_BANK
2026Description: The bank has aborted a withdrawal operation, and thus a withdrawal can't complete.
2027HttpStatus: 0
2028
2029Value: 7013
2030Name: WALLET_HTTP_REQUEST_GENERIC_TIMEOUT
2031Description: An HTTP request made by the wallet timed out.
2032HttpStatus: 0
2033
2034Value: 7014
2035Name: WALLET_ORDER_ALREADY_CLAIMED
2036Description: The order has already been claimed by another wallet.
2037HttpStatus: 0
2038
2039Value: 7015
2040Name: WALLET_WITHDRAWAL_GROUP_INCOMPLETE
2041Description: A group of withdrawal operations (typically for the same reserve at the same exchange) has errors and will be tried again later.
2042HttpStatus: 0
2043
2044Value: 7016
2045Name: WALLET_TIPPING_COIN_SIGNATURE_INVALID
2046Description: The signature on a coin by the exchange's denomination key (obtained through the merchant via tipping) is invalid after unblinding it.
2047HttpStatus: 0
2048
2049Value: 7017
2050Name: WALLET_BANK_INTEGRATION_PROTOCOL_VERSION_INCOMPATIBLE
2051Description: The wallet does not implement a version of the bank integration API that is compatible with the version offered by the bank.
2052HttpStatus: 0
2053
2054Value: 7018
2055Name: WALLET_CONTRACT_TERMS_BASE_URL_MISMATCH
2056Description: The wallet processed a taler://pay URI, but the merchant base URL in the downloaded contract terms does not match the merchant base URL derived from the URI.
2057HttpStatus: 0
2058
2059Value: 7019
2060Name: WALLET_CONTRACT_TERMS_SIGNATURE_INVALID
2061Description: The merchant's signature on the contract terms is invalid.
2062HttpStatus: 0
2063
2064Value: 7020
2065Name: WALLET_CONTRACT_TERMS_MALFORMED
2066Description: The contract terms given by the merchant are malformed.
2067HttpStatus: 0
2068
2069Value: 7021
2070Name: WALLET_PENDING_OPERATION_FAILED
2071Description: A pending operation failed, and thus the request can't be completed.
2072HttpStatus: 0
2073
2074Value: 7022
2075Name: WALLET_PAY_MERCHANT_SERVER_ERROR
2076Description: A payment was attempted, but the merchant had an internal server error (5xx).
2077HttpStatus: 0
2078
2079Value: 7023
2080Name: WALLET_CRYPTO_WORKER_ERROR
2081Description: The crypto worker failed.
2082HttpStatus: 0
2083
2084Value: 7024
2085Name: WALLET_CRYPTO_WORKER_BAD_REQUEST
2086Description: The crypto worker received a bad request.
2087HttpStatus: 0
2088
2089Value: 7025
2090Name: WALLET_WITHDRAWAL_KYC_REQUIRED
2091Description: A KYC step is required before withdrawal can proceed.
2092HttpStatus: 0
2093
2094
2095# 8000 - 8999: Reserved for Anastasis
2096
2097Value: 8000
2098Name: ANASTASIS_GENERIC_BACKEND_TIMEOUT
2099Description: We encountered a timeout with our payment backend.
2100HttpStatus: 504
2101
2102Value: 8001
2103Name: ANASTASIS_GENERIC_INVALID_PAYMENT_REQUEST
2104Description: The backend requested payment, but the request is malformed.
2105HttpStatus: 0
2106
2107Value: 8002
2108Name: ANASTASIS_GENERIC_BACKEND_ERROR
2109Description: The backend got an unexpected reply from the payment processor.
2110HttpStatus: 502
2111
2112Value: 8003
2113Name: ANASTASIS_GENERIC_MISSING_CONTENT_LENGTH
2114Description: The "Content-length" field for the upload is missing.
2115HttpStatus: 400
2116
2117Value: 8004
2118Name: ANASTASIS_GENERIC_MALFORMED_CONTENT_LENGTH
2119Description: The "Content-length" field for the upload is malformed.
2120HttpStatus: 400
2121
2122Value: 8005
2123Name: ANASTASIS_GENERIC_ORDER_CREATE_BACKEND_ERROR
2124Description: The backend failed to setup an order with the payment processor.
2125HttpStatus: 502
2126
2127Value: 8006
2128Name: ANASTASIS_GENERIC_PAYMENT_CHECK_UNAUTHORIZED
2129Description: The backend was not authorized to check for payment with the payment processor.
2130HttpStatus: 500
2131
2132Value: 8007
2133Name: ANASTASIS_GENERIC_PAYMENT_CHECK_START_FAILED
2134Description: The backend could not check payment status with the payment processor.
2135HttpStatus: 500
2136
2137Value: 8008
2138Name: ANASTASIS_GENERIC_PROVIDER_UNREACHABLE
2139Description: The Anastasis provider could not be reached.
2140HttpStatus: 0
2141
2142Value: 8009
2143Name: ANASTASIS_PAYMENT_GENERIC_TIMEOUT
2144Description: HTTP server experienced a timeout while awaiting promised payment.
2145HttpStatus: 408
2146
2147
2148Value: 8108
2149Name: ANASTASIS_TRUTH_UNKNOWN
2150Description: The key share is unknown to the provider.
2151HttpStatus: 404
2152
2153Value: 8109
2154Name: ANASTASIS_TRUTH_AUTHORIZATION_METHOD_NO_LONGER_SUPPORTED
2155Description: The authorization method used for the key share is no longer supported by the provider.
2156HttpStatus: 500
2157
2158Value: 8110
2159Name: ANASTASIS_TRUTH_CHALLENGE_RESPONSE_REQUIRED
2160Description: The client needs to respond to the challenge.
2161HttpStatus: 403
2162
2163Value: 8111
2164Name: ANASTASIS_TRUTH_CHALLENGE_FAILED
2165Description: The client's response to the challenge was invalid.
2166HttpStatus: 403
2167
2168Value: 8112
2169Name: ANASTASIS_TRUTH_CHALLENGE_UNKNOWN
2170Description: The backend is not aware of having issued the provided challenge code. Either this is the wrong code, or it has expired.
2171HttpStatus: 404
2172
2173Value: 8114
2174Name: ANASTASIS_TRUTH_AUTHORIZATION_START_FAILED
2175Description: The backend failed to initiate the authorization process.
2176HttpStatus: 500
2177
2178Value: 8115
2179Name: ANASTASIS_TRUTH_KEY_SHARE_GONE
2180Description: The authorization succeeded, but the key share is no longer available.
2181HttpStatus: 404
2182
2183Value: 8116
2184Name: ANASTASIS_TRUTH_ORDER_DISAPPEARED
2185Description: The backend forgot the order we asked the client to pay for
2186HttpStatus: 502
2187
2188Value: 8117
2189Name: ANASTASIS_TRUTH_BACKEND_EXCHANGE_BAD
2190Description: The backend itself reported a bad exchange interaction.
2191HttpStatus: 502
2192
2193Value: 8118
2194Name: ANASTASIS_TRUTH_UNEXPECTED_PAYMENT_STATUS
2195Description: The backend reported a payment status we did not expect.
2196HttpStatus: 500
2197
2198Value: 8119
2199Name: ANASTASIS_TRUTH_PAYMENT_CREATE_BACKEND_ERROR
2200Description: The backend failed to setup the order for payment.
2201HttpStatus: 502
2202
2203Value: 8120
2204Name: ANASTASIS_TRUTH_DECRYPTION_FAILED
2205Description: The decryption of the key share failed with the provided key.
2206HttpStatus: 400
2207
2208Value: 8121
2209Name: ANASTASIS_TRUTH_RATE_LIMITED
2210Description: The request rate is too high. The server is refusing requests to guard against brute-force attacks.
2211HttpStatus: 429
2212
2213Value: 8123
2214Name: ANASTASIS_TRUTH_CHALLENGE_WRONG_METHOD
2215Description: A request to issue a challenge is not valid for this authentication method.
2216HttpStatus: 400
2217
2218Value: 8150
2219Name: ANASTASIS_TRUTH_UPLOAD_UUID_EXISTS
2220Description: The backend failed to store the key share because the UUID is already in use.
2221HttpStatus: 409
2222
2223Value: 8151
2224Name: ANASTASIS_TRUTH_UPLOAD_METHOD_NOT_SUPPORTED
2225Description: The backend failed to store the key share because the authorization method is not supported.
2226HttpStatus: 400
2227
2228
2229
2230Value: 8200
2231Name: ANASTASIS_SMS_PHONE_INVALID
2232Description: The provided phone number is not an acceptable number.
2233HttpStatus: 409
2234
2235Value: 8201
2236Name: ANASTASIS_SMS_HELPER_EXEC_FAILED
2237Description: Failed to run the SMS transmission helper process.
2238HttpStatus: 500
2239
2240Value: 8202
2241Name: ANASTASIS_SMS_HELPER_COMMAND_FAILED
2242Description: Provider failed to send SMS. Helper terminated with a non-successful result.
2243HttpStatus: 500
2244
2245
2246Value: 8210
2247Name: ANASTASIS_EMAIL_INVALID
2248Description: The provided email address is not an acceptable address.
2249HttpStatus: 409
2250
2251Value: 8211
2252Name: ANASTASIS_EMAIL_HELPER_EXEC_FAILED
2253Description: Failed to run the E-mail transmission helper process.
2254HttpStatus: 500
2255
2256Value: 8212
2257Name: ANASTASIS_EMAIL_HELPER_COMMAND_FAILED
2258Description: Provider failed to send E-mail. Helper terminated with a non-successful result.
2259HttpStatus: 500
2260
2261
2262Value: 8220
2263Name: ANASTASIS_POST_INVALID
2264Description: The provided postal address is not an acceptable address.
2265HttpStatus: 409
2266
2267Value: 8221
2268Name: ANASTASIS_POST_HELPER_EXEC_FAILED
2269Description: Failed to run the mail transmission helper process.
2270HttpStatus: 500
2271
2272Value: 8222
2273Name: ANASTASIS_POST_HELPER_COMMAND_FAILED
2274Description: Provider failed to send mail. Helper terminated with a non-successful result.
2275HttpStatus: 500
2276
2277
2278Value: 8230
2279Name: ANASTASIS_IBAN_INVALID
2280Description: The provided IBAN address is not an acceptable IBAN.
2281HttpStatus: 409
2282
2283Value: 8231
2284Name: ANASTASIS_IBAN_MISSING_TRANSFER
2285Description: The provider has not yet received the IBAN wire transfer authorizing the disclosure of the key share.
2286HttpStatus: 403
2287
2288
2289Value: 8240
2290Name: ANASTASIS_TOTP_KEY_MISSING
2291Description: The backend did not find a TOTP key in the data provided.
2292HttpStatus: 409
2293
2294Value: 8241
2295Name: ANASTASIS_TOTP_KEY_INVALID
2296Description: The key provided does not satisfy the format restrictions for an Anastasis TOTP key.
2297HttpStatus: 409
2298
2299
2300Value: 8301
2301Name: ANASTASIS_POLICY_BAD_IF_NONE_MATCH
2302Description: The given if-none-match header is malformed.
2303HttpStatus: 400
2304
2305Value: 8304
2306Name: ANASTASIS_POLICY_OUT_OF_MEMORY_ON_CONTENT_LENGTH
2307Description: The server is out of memory to handle the upload. Trying again later may succeed.
2308HttpStatus: 413
2309
2310Value: 8305
2311Name: ANASTASIS_POLICY_BAD_SIGNATURE
2312Description: The signature provided in the "Anastasis-Policy-Signature" header is malformed or missing.
2313HttpStatus: 400
2314
2315Value: 8306
2316Name: ANASTASIS_POLICY_BAD_IF_MATCH
2317Description: The given if-match header is malformed.
2318HttpStatus: 400
2319
2320Value: 8307
2321Name: ANASTASIS_POLICY_INVALID_UPLOAD
2322Description: The uploaded data does not match the Etag.
2323HttpStatus: 400
2324
2325Value: 8350
2326Name: ANASTASIS_POLICY_NOT_FOUND
2327Description: The provider is unaware of the requested policy.
2328HttpStatus: 404
2329
2330
2331
2332Value: 8400
2333Name: ANASTASIS_REDUCER_ACTION_INVALID
2334Description: The given action is invalid for the current state of the reducer.
2335HttpStatus: 0
2336
2337Value: 8401
2338Name: ANASTASIS_REDUCER_STATE_INVALID
2339Description: The given state of the reducer is invalid.
2340HttpStatus: 0
2341
2342Value: 8402
2343Name: ANASTASIS_REDUCER_INPUT_INVALID
2344Description: The given input to the reducer is invalid.
2345HttpStatus: 0
2346
2347Value: 8403
2348Name: ANASTASIS_REDUCER_AUTHENTICATION_METHOD_NOT_SUPPORTED
2349Description: The selected authentication method does not work for the Anastasis provider.
2350HttpStatus: 0
2351
2352Value: 8404
2353Name: ANASTASIS_REDUCER_INPUT_INVALID_FOR_STATE
2354Description: The given input and action do not work for the current state.
2355HttpStatus: 0
2356
2357Value: 8405
2358Name: ANASTASIS_REDUCER_BACKEND_FAILURE
2359Description: We experienced an unexpected failure interacting with the backend.
2360HttpStatus: 0
2361
2362Value: 8406
2363Name: ANASTASIS_REDUCER_RESOURCE_MALFORMED
2364Description: The contents of a resource file did not match our expectations.
2365HttpStatus: 0
2366
2367Value: 8407
2368Name: ANASTASIS_REDUCER_RESOURCE_MISSING
2369Description: A required resource file is missing.
2370HttpStatus: 0
2371
2372Value: 8408
2373Name: ANASTASIS_REDUCER_INPUT_REGEX_FAILED
2374Description: An input did not match the regular expression.
2375HttpStatus: 0
2376
2377Value: 8409
2378Name: ANASTASIS_REDUCER_INPUT_VALIDATION_FAILED
2379Description: An input did not match the custom validation logic.
2380HttpStatus: 0
2381
2382Value: 8410
2383Name: ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED
2384Description: 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.
2385HttpStatus: 0
2386
2387Value: 8411
2388Name: ANASTASIS_REDUCER_BACKUP_PROVIDER_FAILED
2389Description: Anastasis provider reported a fatal failure.
2390HttpStatus: 0
2391
2392Value: 8412
2393Name: ANASTASIS_REDUCER_PROVIDER_CONFIG_FAILED
2394Description: Anastasis provider failed to respond to the configuration request.
2395HttpStatus: 0
2396
2397Value: 8413
2398Name: ANASTASIS_REDUCER_POLICY_MALFORMED
2399Description: The policy we downloaded is malformed. Must have been a client error while creating the backup.
2400HttpStatus: 0
2401
2402Value: 8414
2403Name: ANASTASIS_REDUCER_NETWORK_FAILED
2404Description: We failed to obtain the policy, likely due to a network issue.
2405HttpStatus: 0
2406
2407Value: 8415
2408Name: ANASTASIS_REDUCER_SECRET_MALFORMED
2409Description: The recovered secret did not match the required syntax.
2410HttpStatus: 0
2411
2412Value: 8416
2413Name: ANASTASIS_REDUCER_CHALLENGE_DATA_TOO_BIG
2414Description: The challenge data provided is too large for the available providers.
2415HttpStatus: 0
2416
2417Value: 8417
2418Name: ANASTASIS_REDUCER_SECRET_TOO_BIG
2419Description: The provided core secret is too large for some of the providers.
2420HttpStatus: 0
2421
2422Value: 8418
2423Name: ANASTASIS_REDUCER_PROVIDER_INVALID_CONFIG
2424Description: The provider returned in invalid configuration.
2425HttpStatus: 0
2426
2427Value: 8419
2428Name: ANASTASIS_REDUCER_INTERNAL_ERROR
2429Description: The reducer encountered an internal error, likely a bug that needs to be reported.
2430HttpStatus: 0
2431
2432Value: 8420
2433Name: ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED
2434Description: The reducer already synchronized with all providers.
2435HttpStatus: 0
2436
2437
2438# 9000 - 9599: LibEuFin.
2439
2440Value: 9000
2441Name: LIBEUFIN_NEXUS_GENERIC_ERROR
2442Description: A generic error happened in the LibEuFin nexus. See the enclose details JSON for more information.
2443HttpStatus: 0
2444
2445Value: 9001
2446Name: LIBEUFIN_NEXUS_UNCAUGHT_EXCEPTION
2447Description: An uncaught exception happened in the LibEuFin nexus service.
2448HttpStatus: 500
2449
2450Value: 9500
2451Name: LIBEUFIN_SANDBOX_GENERIC_ERROR
2452Description: A generic error happened in the LibEuFin sandbox. See the enclose details JSON for more information.
2453HttpStatus: 0
2454
2455Value: 9501
2456Name: LIBEUFIN_SANDBOX_UNCAUGHT_EXCEPTION
2457Description: An uncaught exception happened in the LibEuFin sandbox service.
2458HttpStatus: 500
2459
2460# 9600 - 9749: Taldir
2461Value: 9600
2462Name: TALDIR_METHOD_NOT_SUPPORTED
2463Description: This validation method is not supported by the service.
2464HttpStatus: 404
2465
2466Value: 9601
2467Name: TALDIR_REGISTER_RATE_LIMITED
2468Description: Number of allowed attempts for initiating a challenge exceeded.
2469HttpStatus: 429
2470
2471# Some of our build systems expect the range to be < 10k, so let's keep it like this for now.
2472Value: 9999
2473Name: END
2474Description: End of error code range.
2475HttpStatus: 0
diff --git a/gnu-taler-error-codes/.#registry.rec b/gnu-taler-error-codes/.#registry.rec
new file mode 120000
index 0000000..15721f1
--- /dev/null
+++ b/gnu-taler-error-codes/.#registry.rec
@@ -0,0 +1 @@
priscilla@dhcp-147-87-107-42.1382:1669107738 \ No newline at end of file