anastasis

Credential backup and recovery protocol and service
Log | Files | Refs | Submodules | README | LICENSE

anastasis_error_codes.h (211655B)


      1 /*
      2      This file is part of GNU Taler
      3      Copyright (C) 2012-2020 Taler Systems SA
      4 
      5      GNU Taler is free software: you can redistribute it and/or modify it
      6      under the terms of the GNU Lesser General Public License as published
      7      by the Free Software Foundation, either version 3 of the License,
      8      or (at your option) any later version.
      9 
     10      GNU Taler is distributed in the hope that it will be useful, but
     11      WITHOUT ANY WARRANTY; without even the implied warranty of
     12      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13      Lesser General Public License for more details.
     14 
     15      You should have received a copy of the GNU Lesser General Public License
     16      along with this program.  If not, see <http://www.gnu.org/licenses/>.
     17 
     18      SPDX-License-Identifier: LGPL3.0-or-later
     19 
     20      Note: the LGPL does not apply to all components of GNU Taler,
     21      but it does apply to this file.
     22  */
     23 /**
     24   * @file include/taler/anastasis_error_codes.h
     25   * @brief GNU Taler error codes, generated via https://gana.gnunet.org/
     26   *
     27   * Do NOT edit this file, it is generated!
     28   */
     29 #ifndef GNU_ANASTASIS_ERROR_CODES_H
     30 #define GNU_ANASTASIS_ERROR_CODES_H
     31 
     32 #ifdef __cplusplus
     33 extern "C" {
     34 #if 0 /* keep Emacsens' auto-indent happy */
     35 }
     36 #endif
     37 #endif
     38 
     39 #include <limits.h>
     40 
     41 
     42 /**
     43  * Taler error codes.
     44  */
     45 enum TALER_ErrorCode
     46 {
     47 
     48 
     49   /**
     50    * Special code to indicate success (no error).
     51    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
     52    * (A value of 0 indicates that the error is generated client-side).
     53    */
     54   TALER_EC_NONE = 0,
     55 
     56 
     57   /**
     58    * 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.
     59    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
     60    * (A value of 0 indicates that the error is generated client-side).
     61    */
     62   TALER_EC_INVALID = 1,
     63 
     64 
     65   /**
     66    * 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.
     67    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
     68    * (A value of 0 indicates that the error is generated client-side).
     69    */
     70   TALER_EC_GENERIC_CLIENT_INTERNAL_ERROR = 2,
     71 
     72 
     73   /**
     74    * The client does not support the protocol version advertised by the server.
     75    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
     76    * (A value of 0 indicates that the error is generated client-side).
     77    */
     78   TALER_EC_GENERIC_CLIENT_UNSUPPORTED_PROTOCOL_VERSION = 3,
     79 
     80 
     81   /**
     82    * 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.
     83    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
     84    * (A value of 0 indicates that the error is generated client-side).
     85    */
     86   TALER_EC_GENERIC_INVALID_RESPONSE = 10,
     87 
     88 
     89   /**
     90    * The operation timed out. Trying again might help. Check the network connection.
     91    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
     92    * (A value of 0 indicates that the error is generated client-side).
     93    */
     94   TALER_EC_GENERIC_TIMEOUT = 11,
     95 
     96 
     97   /**
     98    * 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.
     99    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
    100    * (A value of 0 indicates that the error is generated client-side).
    101    */
    102   TALER_EC_GENERIC_VERSION_MALFORMED = 12,
    103 
    104 
    105   /**
    106    * 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.
    107    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
    108    * (A value of 0 indicates that the error is generated client-side).
    109    */
    110   TALER_EC_GENERIC_REPLY_MALFORMED = 13,
    111 
    112 
    113   /**
    114    * 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.
    115    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
    116    * (A value of 0 indicates that the error is generated client-side).
    117    */
    118   TALER_EC_GENERIC_CONFIGURATION_INVALID = 14,
    119 
    120 
    121   /**
    122    * 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.
    123    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
    124    * (A value of 0 indicates that the error is generated client-side).
    125    */
    126   TALER_EC_GENERIC_UNEXPECTED_REQUEST_ERROR = 15,
    127 
    128 
    129   /**
    130    * 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.
    131    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    132    * (A value of 0 indicates that the error is generated client-side).
    133    */
    134   TALER_EC_GENERIC_TOKEN_PERMISSION_INSUFFICIENT = 16,
    135 
    136 
    137   /**
    138    * 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.
    139    * Returned with an HTTP status code of #MHD_HTTP_METHOD_NOT_ALLOWED (405).
    140    * (A value of 0 indicates that the error is generated client-side).
    141    */
    142   TALER_EC_GENERIC_METHOD_INVALID = 20,
    143 
    144 
    145   /**
    146    * 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.
    147    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    148    * (A value of 0 indicates that the error is generated client-side).
    149    */
    150   TALER_EC_GENERIC_ENDPOINT_UNKNOWN = 21,
    151 
    152 
    153   /**
    154    * 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.
    155    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    156    * (A value of 0 indicates that the error is generated client-side).
    157    */
    158   TALER_EC_GENERIC_JSON_INVALID = 22,
    159 
    160 
    161   /**
    162    * 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.
    163    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    164    * (A value of 0 indicates that the error is generated client-side).
    165    */
    166   TALER_EC_GENERIC_HTTP_HEADERS_MALFORMED = 23,
    167 
    168 
    169   /**
    170    * 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.
    171    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    172    * (A value of 0 indicates that the error is generated client-side).
    173    */
    174   TALER_EC_GENERIC_PAYTO_URI_MALFORMED = 24,
    175 
    176 
    177   /**
    178    * 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.
    179    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    180    * (A value of 0 indicates that the error is generated client-side).
    181    */
    182   TALER_EC_GENERIC_PARAMETER_MISSING = 25,
    183 
    184 
    185   /**
    186    * 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.
    187    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    188    * (A value of 0 indicates that the error is generated client-side).
    189    */
    190   TALER_EC_GENERIC_PARAMETER_MALFORMED = 26,
    191 
    192 
    193   /**
    194    * The reserve public key was malformed.
    195    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    196    * (A value of 0 indicates that the error is generated client-side).
    197    */
    198   TALER_EC_GENERIC_RESERVE_PUB_MALFORMED = 27,
    199 
    200 
    201   /**
    202    * 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.
    203    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    204    * (A value of 0 indicates that the error is generated client-side).
    205    */
    206   TALER_EC_GENERIC_COMPRESSION_INVALID = 28,
    207 
    208 
    209   /**
    210    * A segment in the path of the URL provided by the client is malformed. Check that you are using the correct encoding for the URL.
    211    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    212    * (A value of 0 indicates that the error is generated client-side).
    213    */
    214   TALER_EC_GENERIC_PATH_SEGMENT_MALFORMED = 29,
    215 
    216 
    217   /**
    218    * 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.
    219    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    220    * (A value of 0 indicates that the error is generated client-side).
    221    */
    222   TALER_EC_GENERIC_CURRENCY_MISMATCH = 30,
    223 
    224 
    225   /**
    226    * 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.
    227    * Returned with an HTTP status code of #MHD_HTTP_URI_TOO_LONG (414).
    228    * (A value of 0 indicates that the error is generated client-side).
    229    */
    230   TALER_EC_GENERIC_URI_TOO_LONG = 31,
    231 
    232 
    233   /**
    234    * 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.
    235    * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).
    236    * (A value of 0 indicates that the error is generated client-side).
    237    */
    238   TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT = 32,
    239 
    240 
    241   /**
    242    * The service refused the request due to lack of proper authorization. Accessing this endpoint requires an access token from the account owner.
    243    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
    244    * (A value of 0 indicates that the error is generated client-side).
    245    */
    246   TALER_EC_GENERIC_UNAUTHORIZED = 40,
    247 
    248 
    249   /**
    250    * The service refused the request as the given authorization token is unknown. You should request a valid access token from the account owner.
    251    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
    252    * (A value of 0 indicates that the error is generated client-side).
    253    */
    254   TALER_EC_GENERIC_TOKEN_UNKNOWN = 41,
    255 
    256 
    257   /**
    258    * The service refused the request as the given authorization token expired. You should request a fresh authorization token from the account owner.
    259    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
    260    * (A value of 0 indicates that the error is generated client-side).
    261    */
    262   TALER_EC_GENERIC_TOKEN_EXPIRED = 42,
    263 
    264 
    265   /**
    266    * The service refused the request as the given authorization token is invalid or malformed. You should check that you have the right credentials.
    267    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
    268    * (A value of 0 indicates that the error is generated client-side).
    269    */
    270   TALER_EC_GENERIC_TOKEN_MALFORMED = 43,
    271 
    272 
    273   /**
    274    * The service refused the request due to lack of proper rights on the resource. You may need different credentials to be allowed to perform this operation.
    275    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    276    * (A value of 0 indicates that the error is generated client-side).
    277    */
    278   TALER_EC_GENERIC_FORBIDDEN = 44,
    279 
    280 
    281   /**
    282    * 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.
    283    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    284    * (A value of 0 indicates that the error is generated client-side).
    285    */
    286   TALER_EC_GENERIC_DB_SETUP_FAILED = 50,
    287 
    288 
    289   /**
    290    * The service encountered an error event to just start the database transaction. The system administrator should check that the database is running.
    291    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    292    * (A value of 0 indicates that the error is generated client-side).
    293    */
    294   TALER_EC_GENERIC_DB_START_FAILED = 51,
    295 
    296 
    297   /**
    298    * The service failed to store information in its database. The system administrator should check that the database is running and review the service logs.
    299    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    300    * (A value of 0 indicates that the error is generated client-side).
    301    */
    302   TALER_EC_GENERIC_DB_STORE_FAILED = 52,
    303 
    304 
    305   /**
    306    * The service failed to fetch information from its database. The system administrator should check that the database is running and review the service logs.
    307    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    308    * (A value of 0 indicates that the error is generated client-side).
    309    */
    310   TALER_EC_GENERIC_DB_FETCH_FAILED = 53,
    311 
    312 
    313   /**
    314    * 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.
    315    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    316    * (A value of 0 indicates that the error is generated client-side).
    317    */
    318   TALER_EC_GENERIC_DB_COMMIT_FAILED = 54,
    319 
    320 
    321   /**
    322    * 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.
    323    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    324    * (A value of 0 indicates that the error is generated client-side).
    325    */
    326   TALER_EC_GENERIC_DB_SOFT_FAILURE = 55,
    327 
    328 
    329   /**
    330    * 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.
    331    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    332    * (A value of 0 indicates that the error is generated client-side).
    333    */
    334   TALER_EC_GENERIC_DB_INVARIANT_FAILURE = 56,
    335 
    336 
    337   /**
    338    * 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.
    339    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    340    * (A value of 0 indicates that the error is generated client-side).
    341    */
    342   TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE = 60,
    343 
    344 
    345   /**
    346    * 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.
    347    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    348    * (A value of 0 indicates that the error is generated client-side).
    349    */
    350   TALER_EC_GENERIC_FAILED_COMPUTE_JSON_HASH = 61,
    351 
    352 
    353   /**
    354    * The service could not compute an amount. Check if you are using the latest available version and/or file a report with the developers.
    355    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    356    * (A value of 0 indicates that the error is generated client-side).
    357    */
    358   TALER_EC_GENERIC_FAILED_COMPUTE_AMOUNT = 62,
    359 
    360 
    361   /**
    362    * 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.
    363    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    364    * (A value of 0 indicates that the error is generated client-side).
    365    */
    366   TALER_EC_GENERIC_PARSER_OUT_OF_MEMORY = 70,
    367 
    368 
    369   /**
    370    * 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.
    371    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    372    * (A value of 0 indicates that the error is generated client-side).
    373    */
    374   TALER_EC_GENERIC_ALLOCATION_FAILURE = 71,
    375 
    376 
    377   /**
    378    * 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.
    379    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    380    * (A value of 0 indicates that the error is generated client-side).
    381    */
    382   TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE = 72,
    383 
    384 
    385   /**
    386    * 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.
    387    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    388    * (A value of 0 indicates that the error is generated client-side).
    389    */
    390   TALER_EC_GENERIC_CURL_ALLOCATION_FAILURE = 73,
    391 
    392 
    393   /**
    394    * 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.
    395    * Returned with an HTTP status code of #MHD_HTTP_NOT_ACCEPTABLE (406).
    396    * (A value of 0 indicates that the error is generated client-side).
    397    */
    398   TALER_EC_GENERIC_FAILED_TO_LOAD_TEMPLATE = 74,
    399 
    400 
    401   /**
    402    * 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.
    403    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    404    * (A value of 0 indicates that the error is generated client-side).
    405    */
    406   TALER_EC_GENERIC_FAILED_TO_EXPAND_TEMPLATE = 75,
    407 
    408 
    409   /**
    410    * The requested feature is not implemented by the server. The system administrator of the server may try to update the software or build it with other options to enable the feature.
    411    * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).
    412    * (A value of 0 indicates that the error is generated client-side).
    413    */
    414   TALER_EC_GENERIC_FEATURE_NOT_IMPLEMENTED = 76,
    415 
    416 
    417   /**
    418    * Exchange is badly configured and thus cannot operate.
    419    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    420    * (A value of 0 indicates that the error is generated client-side).
    421    */
    422   TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION = 1000,
    423 
    424 
    425   /**
    426    * Operation specified unknown for this endpoint.
    427    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    428    * (A value of 0 indicates that the error is generated client-side).
    429    */
    430   TALER_EC_EXCHANGE_GENERIC_OPERATION_UNKNOWN = 1001,
    431 
    432 
    433   /**
    434    * The number of segments included in the URI does not match the number of segments expected by the endpoint.
    435    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    436    * (A value of 0 indicates that the error is generated client-side).
    437    */
    438   TALER_EC_EXCHANGE_GENERIC_WRONG_NUMBER_OF_SEGMENTS = 1002,
    439 
    440 
    441   /**
    442    * The same coin was already used with a different denomination previously.
    443    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    444    * (A value of 0 indicates that the error is generated client-side).
    445    */
    446   TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_DENOMINATION_KEY = 1003,
    447 
    448 
    449   /**
    450    * The public key of given to a "/coins/" endpoint of the exchange was malformed.
    451    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    452    * (A value of 0 indicates that the error is generated client-side).
    453    */
    454   TALER_EC_EXCHANGE_GENERIC_COINS_INVALID_COIN_PUB = 1004,
    455 
    456 
    457   /**
    458    * The exchange is not aware of the denomination key the wallet requested for the operation.
    459    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    460    * (A value of 0 indicates that the error is generated client-side).
    461    */
    462   TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN = 1005,
    463 
    464 
    465   /**
    466    * The signature of the denomination key over the coin is not valid.
    467    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    468    * (A value of 0 indicates that the error is generated client-side).
    469    */
    470   TALER_EC_EXCHANGE_DENOMINATION_SIGNATURE_INVALID = 1006,
    471 
    472 
    473   /**
    474    * 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.
    475    * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).
    476    * (A value of 0 indicates that the error is generated client-side).
    477    */
    478   TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING = 1007,
    479 
    480 
    481   /**
    482    * Validity period of the denomination lies in the future.
    483    * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).
    484    * (A value of 0 indicates that the error is generated client-side).
    485    */
    486   TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE = 1008,
    487 
    488 
    489   /**
    490    * Denomination key of the coin is past its expiration time for the requested operation.
    491    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
    492    * (A value of 0 indicates that the error is generated client-side).
    493    */
    494   TALER_EC_EXCHANGE_GENERIC_DENOMINATION_EXPIRED = 1009,
    495 
    496 
    497   /**
    498    * Denomination key of the coin has been revoked.
    499    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
    500    * (A value of 0 indicates that the error is generated client-side).
    501    */
    502   TALER_EC_EXCHANGE_GENERIC_DENOMINATION_REVOKED = 1010,
    503 
    504 
    505   /**
    506    * An operation where the exchange interacted with a security module timed out.
    507    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    508    * (A value of 0 indicates that the error is generated client-side).
    509    */
    510   TALER_EC_EXCHANGE_GENERIC_SECMOD_TIMEOUT = 1011,
    511 
    512 
    513   /**
    514    * 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".
    515    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    516    * (A value of 0 indicates that the error is generated client-side).
    517    */
    518   TALER_EC_EXCHANGE_GENERIC_INSUFFICIENT_FUNDS = 1012,
    519 
    520 
    521   /**
    522    * The exchange had an internal error reconstructing the transaction history of the coin that was being processed.
    523    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    524    * (A value of 0 indicates that the error is generated client-side).
    525    */
    526   TALER_EC_EXCHANGE_GENERIC_COIN_HISTORY_COMPUTATION_FAILED = 1013,
    527 
    528 
    529   /**
    530    * The exchange failed to obtain the transaction history of the given coin from the database while generating an insufficient funds errors.
    531    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    532    * (A value of 0 indicates that the error is generated client-side).
    533    */
    534   TALER_EC_EXCHANGE_GENERIC_HISTORY_DB_ERROR_INSUFFICIENT_FUNDS = 1014,
    535 
    536 
    537   /**
    538    * The same coin was already used with a different age hash previously.
    539    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    540    * (A value of 0 indicates that the error is generated client-side).
    541    */
    542   TALER_EC_EXCHANGE_GENERIC_COIN_CONFLICTING_AGE_HASH = 1015,
    543 
    544 
    545   /**
    546    * The requested operation is not valid for the cipher used by the selected denomination.
    547    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    548    * (A value of 0 indicates that the error is generated client-side).
    549    */
    550   TALER_EC_EXCHANGE_GENERIC_INVALID_DENOMINATION_CIPHER_FOR_OPERATION = 1016,
    551 
    552 
    553   /**
    554    * The provided arguments for the operation use inconsistent ciphers.
    555    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    556    * (A value of 0 indicates that the error is generated client-side).
    557    */
    558   TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH = 1017,
    559 
    560 
    561   /**
    562    * The number of denominations specified in the request exceeds the limit of the exchange.
    563    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    564    * (A value of 0 indicates that the error is generated client-side).
    565    */
    566   TALER_EC_EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE = 1018,
    567 
    568 
    569   /**
    570    * The coin is not known to the exchange (yet).
    571    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    572    * (A value of 0 indicates that the error is generated client-side).
    573    */
    574   TALER_EC_EXCHANGE_GENERIC_COIN_UNKNOWN = 1019,
    575 
    576 
    577   /**
    578    * The time at the server is too far off from the time specified in the request. Most likely the client system time is wrong.
    579    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    580    * (A value of 0 indicates that the error is generated client-side).
    581    */
    582   TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW = 1020,
    583 
    584 
    585   /**
    586    * The specified amount for the coin is higher than the value of the denomination of the coin.
    587    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    588    * (A value of 0 indicates that the error is generated client-side).
    589    */
    590   TALER_EC_EXCHANGE_GENERIC_AMOUNT_EXCEEDS_DENOMINATION_VALUE = 1021,
    591 
    592 
    593   /**
    594    * The exchange was not properly configured with global fees.
    595    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    596    * (A value of 0 indicates that the error is generated client-side).
    597    */
    598   TALER_EC_EXCHANGE_GENERIC_GLOBAL_FEES_MISSING = 1022,
    599 
    600 
    601   /**
    602    * The exchange was not properly configured with wire fees.
    603    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    604    * (A value of 0 indicates that the error is generated client-side).
    605    */
    606   TALER_EC_EXCHANGE_GENERIC_WIRE_FEES_MISSING = 1023,
    607 
    608 
    609   /**
    610    * The purse public key was malformed.
    611    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    612    * (A value of 0 indicates that the error is generated client-side).
    613    */
    614   TALER_EC_EXCHANGE_GENERIC_PURSE_PUB_MALFORMED = 1024,
    615 
    616 
    617   /**
    618    * The purse is unknown.
    619    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    620    * (A value of 0 indicates that the error is generated client-side).
    621    */
    622   TALER_EC_EXCHANGE_GENERIC_PURSE_UNKNOWN = 1025,
    623 
    624 
    625   /**
    626    * The purse has expired.
    627    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
    628    * (A value of 0 indicates that the error is generated client-side).
    629    */
    630   TALER_EC_EXCHANGE_GENERIC_PURSE_EXPIRED = 1026,
    631 
    632 
    633   /**
    634    * The exchange has no information about the "reserve_pub" that was given.
    635    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    636    * (A value of 0 indicates that the error is generated client-side).
    637    */
    638   TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN = 1027,
    639 
    640 
    641   /**
    642    * The exchange is not allowed to proceed with the operation until the client has satisfied a KYC check.
    643    * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).
    644    * (A value of 0 indicates that the error is generated client-side).
    645    */
    646   TALER_EC_EXCHANGE_GENERIC_KYC_REQUIRED = 1028,
    647 
    648 
    649   /**
    650    * Inconsistency between provided age commitment and attest: either none or both must be provided
    651    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    652    * (A value of 0 indicates that the error is generated client-side).
    653    */
    654   TALER_EC_EXCHANGE_PURSE_DEPOSIT_COIN_CONFLICTING_ATTEST_VS_AGE_COMMITMENT =
    655     1029,
    656 
    657 
    658   /**
    659    * The provided attestation for the minimum age couldn't be verified by the exchange.
    660    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    661    * (A value of 0 indicates that the error is generated client-side).
    662    */
    663   TALER_EC_EXCHANGE_PURSE_DEPOSIT_COIN_AGE_ATTESTATION_FAILURE = 1030,
    664 
    665 
    666   /**
    667    * The purse was deleted.
    668    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
    669    * (A value of 0 indicates that the error is generated client-side).
    670    */
    671   TALER_EC_EXCHANGE_GENERIC_PURSE_DELETED = 1031,
    672 
    673 
    674   /**
    675    * The public key of the AML officer in the URL was malformed.
    676    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    677    * (A value of 0 indicates that the error is generated client-side).
    678    */
    679   TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_PUB_MALFORMED = 1032,
    680 
    681 
    682   /**
    683    * The signature affirming the GET request of the AML officer is invalid.
    684    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    685    * (A value of 0 indicates that the error is generated client-side).
    686    */
    687   TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID = 1033,
    688 
    689 
    690   /**
    691    * The specified AML officer does not have access at this time.
    692    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    693    * (A value of 0 indicates that the error is generated client-side).
    694    */
    695   TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED = 1034,
    696 
    697 
    698   /**
    699    * 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.
    700    * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).
    701    * (A value of 0 indicates that the error is generated client-side).
    702    */
    703   TALER_EC_EXCHANGE_GENERIC_AML_PENDING = 1035,
    704 
    705 
    706   /**
    707    * The requested operation is denied as the account was frozen on suspicion of money laundering. Please contact the exchange operator.
    708    * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).
    709    * (A value of 0 indicates that the error is generated client-side).
    710    */
    711   TALER_EC_EXCHANGE_GENERIC_AML_FROZEN = 1036,
    712 
    713 
    714   /**
    715    * The exchange failed to start a KYC attribute conversion helper process. It is likely configured incorrectly.
    716    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    717    * (A value of 0 indicates that the error is generated client-side).
    718    */
    719   TALER_EC_EXCHANGE_GENERIC_KYC_CONVERTER_FAILED = 1037,
    720 
    721 
    722   /**
    723    * The KYC operation failed. This could be because the KYC provider rejected the KYC data provided, or because the user aborted the KYC process.
    724    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    725    * (A value of 0 indicates that the error is generated client-side).
    726    */
    727   TALER_EC_EXCHANGE_GENERIC_KYC_FAILED = 1038,
    728 
    729 
    730   /**
    731    * A fallback measure for a KYC operation failed. This is a bug. Users should contact the exchange operator.
    732    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    733    * (A value of 0 indicates that the error is generated client-side).
    734    */
    735   TALER_EC_EXCHANGE_GENERIC_KYC_FALLBACK_FAILED = 1039,
    736 
    737 
    738   /**
    739    * The specified fallback measure for a KYC operation is unknown. This is a bug. Users should contact the exchange operator.
    740    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    741    * (A value of 0 indicates that the error is generated client-side).
    742    */
    743   TALER_EC_EXCHANGE_GENERIC_KYC_FALLBACK_UNKNOWN = 1040,
    744 
    745 
    746   /**
    747    * The exchange is not aware of the bank account (payto URI or hash thereof) specified in the request and thus cannot perform the requested operation. The client should check that the select account is correct.
    748    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    749    * (A value of 0 indicates that the error is generated client-side).
    750    */
    751   TALER_EC_EXCHANGE_GENERIC_BANK_ACCOUNT_UNKNOWN = 1041,
    752 
    753 
    754   /**
    755    * The AML processing at the exchange did not terminate in an adequate timeframe. This is likely a configuration problem at the payment service provider. Users should contact the exchange operator.
    756    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    757    * (A value of 0 indicates that the error is generated client-side).
    758    */
    759   TALER_EC_EXCHANGE_GENERIC_AML_PROGRAM_RECURSION_DETECTED = 1042,
    760 
    761 
    762   /**
    763    * A check against sanction lists failed. This is indicative of an internal error in the sanction list processing logic. This needs to be investigated by the exchange operator.
    764    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    765    * (A value of 0 indicates that the error is generated client-side).
    766    */
    767   TALER_EC_EXCHANGE_GENERIC_KYC_SANCTION_LIST_CHECK_FAILED = 1043,
    768 
    769 
    770   /**
    771    * The exchange did not find information about the specified transaction in the database.
    772    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
    773    * (A value of 0 indicates that the error is generated client-side).
    774    */
    775   TALER_EC_EXCHANGE_DEPOSITS_GET_NOT_FOUND = 1100,
    776 
    777 
    778   /**
    779    * The wire hash of given to a "/deposits/" handler was malformed.
    780    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    781    * (A value of 0 indicates that the error is generated client-side).
    782    */
    783   TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE = 1101,
    784 
    785 
    786   /**
    787    * The merchant key of given to a "/deposits/" handler was malformed.
    788    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    789    * (A value of 0 indicates that the error is generated client-side).
    790    */
    791   TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB = 1102,
    792 
    793 
    794   /**
    795    * The hash of the contract terms given to a "/deposits/" handler was malformed.
    796    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    797    * (A value of 0 indicates that the error is generated client-side).
    798    */
    799   TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS = 1103,
    800 
    801 
    802   /**
    803    * The coin public key of given to a "/deposits/" handler was malformed.
    804    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    805    * (A value of 0 indicates that the error is generated client-side).
    806    */
    807   TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_COIN_PUB = 1104,
    808 
    809 
    810   /**
    811    * The signature returned by the exchange in a /deposits/ request was malformed.
    812    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
    813    * (A value of 0 indicates that the error is generated client-side).
    814    */
    815   TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_SIGNATURE_BY_EXCHANGE = 1105,
    816 
    817 
    818   /**
    819    * The signature of the merchant is invalid.
    820    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    821    * (A value of 0 indicates that the error is generated client-side).
    822    */
    823   TALER_EC_EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID = 1106,
    824 
    825 
    826   /**
    827    * The provided policy data was not accepted
    828    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    829    * (A value of 0 indicates that the error is generated client-side).
    830    */
    831   TALER_EC_EXCHANGE_DEPOSITS_POLICY_NOT_ACCEPTED = 1107,
    832 
    833 
    834   /**
    835    * 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.
    836    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    837    * (A value of 0 indicates that the error is generated client-side).
    838    */
    839   TALER_EC_EXCHANGE_WITHDRAW_INSUFFICIENT_FUNDS = 1150,
    840 
    841 
    842   /**
    843    * 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.
    844    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    845    * (A value of 0 indicates that the error is generated client-side).
    846    */
    847   TALER_EC_EXCHANGE_AGE_WITHDRAW_INSUFFICIENT_FUNDS = 1151,
    848 
    849 
    850   /**
    851    * 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.
    852    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    853    * (A value of 0 indicates that the error is generated client-side).
    854    */
    855   TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW = 1152,
    856 
    857 
    858   /**
    859    * The exchange failed to create the signature using the denomination key.
    860    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    861    * (A value of 0 indicates that the error is generated client-side).
    862    */
    863   TALER_EC_EXCHANGE_WITHDRAW_SIGNATURE_FAILED = 1153,
    864 
    865 
    866   /**
    867    * The signature of the reserve is not valid.
    868    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    869    * (A value of 0 indicates that the error is generated client-side).
    870    */
    871   TALER_EC_EXCHANGE_WITHDRAW_RESERVE_SIGNATURE_INVALID = 1154,
    872 
    873 
    874   /**
    875    * When computing the reserve history, we ended up with a negative overall balance, which should be impossible.
    876    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    877    * (A value of 0 indicates that the error is generated client-side).
    878    */
    879   TALER_EC_EXCHANGE_RESERVE_HISTORY_ERROR_INSUFFICIENT_FUNDS = 1155,
    880 
    881 
    882   /**
    883    * The reserve did not have sufficient funds in it to pay for a full reserve history statement.
    884    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    885    * (A value of 0 indicates that the error is generated client-side).
    886    */
    887   TALER_EC_EXCHANGE_GET_RESERVE_HISTORY_ERROR_INSUFFICIENT_BALANCE = 1156,
    888 
    889 
    890   /**
    891    * Withdraw period of the coin to be withdrawn is in the past.
    892    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
    893    * (A value of 0 indicates that the error is generated client-side).
    894    */
    895   TALER_EC_EXCHANGE_WITHDRAW_DENOMINATION_KEY_LOST = 1158,
    896 
    897 
    898   /**
    899    * The client failed to unblind the blind signature.
    900    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
    901    * (A value of 0 indicates that the error is generated client-side).
    902    */
    903   TALER_EC_EXCHANGE_WITHDRAW_UNBLIND_FAILURE = 1159,
    904 
    905 
    906   /**
    907    * The client reused a withdraw nonce, which is not allowed.
    908    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    909    * (A value of 0 indicates that the error is generated client-side).
    910    */
    911   TALER_EC_EXCHANGE_WITHDRAW_NONCE_REUSE = 1160,
    912 
    913 
    914   /**
    915    * The client provided an unknown commitment for an age-withdraw request.
    916    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    917    * (A value of 0 indicates that the error is generated client-side).
    918    */
    919   TALER_EC_EXCHANGE_WITHDRAW_COMMITMENT_UNKNOWN = 1161,
    920 
    921 
    922   /**
    923    * The total sum of amounts from the denominations did overflow.
    924    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
    925    * (A value of 0 indicates that the error is generated client-side).
    926    */
    927   TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_OVERFLOW = 1162,
    928 
    929 
    930   /**
    931    * The total sum of value and fees from the denominations differs from the committed amount with fees.
    932    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    933    * (A value of 0 indicates that the error is generated client-side).
    934    */
    935   TALER_EC_EXCHANGE_AGE_WITHDRAW_AMOUNT_INCORRECT = 1163,
    936 
    937 
    938   /**
    939    * The original commitment differs from the calculated hash
    940    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    941    * (A value of 0 indicates that the error is generated client-side).
    942    */
    943   TALER_EC_EXCHANGE_WITHDRAW_REVEAL_INVALID_HASH = 1164,
    944 
    945 
    946   /**
    947    * The maximum age in the commitment is too large for the reserve
    948    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    949    * (A value of 0 indicates that the error is generated client-side).
    950    */
    951   TALER_EC_EXCHANGE_WITHDRAW_MAXIMUM_AGE_TOO_LARGE = 1165,
    952 
    953 
    954   /**
    955    * The batch withdraw included a planchet that was already withdrawn. This is not allowed.
    956    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    957    * (A value of 0 indicates that the error is generated client-side).
    958    */
    959   TALER_EC_EXCHANGE_WITHDRAW_IDEMPOTENT_PLANCHET = 1175,
    960 
    961 
    962   /**
    963    * The signature made by the coin over the deposit permission is not valid.
    964    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
    965    * (A value of 0 indicates that the error is generated client-side).
    966    */
    967   TALER_EC_EXCHANGE_DEPOSIT_COIN_SIGNATURE_INVALID = 1205,
    968 
    969 
    970   /**
    971    * The same coin was already deposited for the same merchant and contract with other details.
    972    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
    973    * (A value of 0 indicates that the error is generated client-side).
    974    */
    975   TALER_EC_EXCHANGE_DEPOSIT_CONFLICTING_CONTRACT = 1206,
    976 
    977 
    978   /**
    979    * The stated value of the coin after the deposit fee is subtracted would be negative.
    980    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    981    * (A value of 0 indicates that the error is generated client-side).
    982    */
    983   TALER_EC_EXCHANGE_DEPOSIT_NEGATIVE_VALUE_AFTER_FEE = 1207,
    984 
    985 
    986   /**
    987    * The stated refund deadline is after the wire deadline.
    988    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    989    * (A value of 0 indicates that the error is generated client-side).
    990    */
    991   TALER_EC_EXCHANGE_DEPOSIT_REFUND_DEADLINE_AFTER_WIRE_DEADLINE = 1208,
    992 
    993 
    994   /**
    995    * The stated wire deadline is "never", which makes no sense.
    996    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
    997    * (A value of 0 indicates that the error is generated client-side).
    998    */
    999   TALER_EC_EXCHANGE_DEPOSIT_WIRE_DEADLINE_IS_NEVER = 1209,
   1000 
   1001 
   1002   /**
   1003    * 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.
   1004    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1005    * (A value of 0 indicates that the error is generated client-side).
   1006    */
   1007   TALER_EC_EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_JSON = 1210,
   1008 
   1009 
   1010   /**
   1011    * The hash of the given wire address does not match the wire hash specified in the proposal data.
   1012    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1013    * (A value of 0 indicates that the error is generated client-side).
   1014    */
   1015   TALER_EC_EXCHANGE_DEPOSIT_INVALID_WIRE_FORMAT_CONTRACT_HASH_CONFLICT = 1211,
   1016 
   1017 
   1018   /**
   1019    * The signature provided by the exchange is not valid.
   1020    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1021    * (A value of 0 indicates that the error is generated client-side).
   1022    */
   1023   TALER_EC_EXCHANGE_DEPOSIT_INVALID_SIGNATURE_BY_EXCHANGE = 1221,
   1024 
   1025 
   1026   /**
   1027    * The deposited amount is smaller than the deposit fee, which would result in a negative contribution.
   1028    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1029    * (A value of 0 indicates that the error is generated client-side).
   1030    */
   1031   TALER_EC_EXCHANGE_DEPOSIT_FEE_ABOVE_AMOUNT = 1222,
   1032 
   1033 
   1034   /**
   1035    * The proof of policy fulfillment was invalid.
   1036    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1037    * (A value of 0 indicates that the error is generated client-side).
   1038    */
   1039   TALER_EC_EXCHANGE_EXTENSIONS_INVALID_FULFILLMENT = 1240,
   1040 
   1041 
   1042   /**
   1043    * The coin history was requested with a bad signature.
   1044    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1045    * (A value of 0 indicates that the error is generated client-side).
   1046    */
   1047   TALER_EC_EXCHANGE_COIN_HISTORY_BAD_SIGNATURE = 1251,
   1048 
   1049 
   1050   /**
   1051    * The reserve history was requested with a bad signature.
   1052    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1053    * (A value of 0 indicates that the error is generated client-side).
   1054    */
   1055   TALER_EC_EXCHANGE_RESERVE_HISTORY_BAD_SIGNATURE = 1252,
   1056 
   1057 
   1058   /**
   1059    * The exchange encountered melt fees exceeding the melted coin's contribution.
   1060    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1061    * (A value of 0 indicates that the error is generated client-side).
   1062    */
   1063   TALER_EC_EXCHANGE_MELT_FEES_EXCEED_CONTRIBUTION = 1302,
   1064 
   1065 
   1066   /**
   1067    * The signature made with the coin to be melted is invalid.
   1068    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1069    * (A value of 0 indicates that the error is generated client-side).
   1070    */
   1071   TALER_EC_EXCHANGE_MELT_COIN_SIGNATURE_INVALID = 1303,
   1072 
   1073 
   1074   /**
   1075    * 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).
   1076    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1077    * (A value of 0 indicates that the error is generated client-side).
   1078    */
   1079   TALER_EC_EXCHANGE_MELT_COIN_EXPIRED_NO_ZOMBIE = 1305,
   1080 
   1081 
   1082   /**
   1083    * The signature returned by the exchange in a melt request was malformed.
   1084    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1085    * (A value of 0 indicates that the error is generated client-side).
   1086    */
   1087   TALER_EC_EXCHANGE_MELT_INVALID_SIGNATURE_BY_EXCHANGE = 1306,
   1088 
   1089 
   1090   /**
   1091    * The provided transfer keys do not match up with the original commitment.  Information about the original commitment is included in the response.
   1092    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1093    * (A value of 0 indicates that the error is generated client-side).
   1094    */
   1095   TALER_EC_EXCHANGE_REFRESHES_REVEAL_COMMITMENT_VIOLATION = 1353,
   1096 
   1097 
   1098   /**
   1099    * Failed to produce the blinded signatures over the coins to be returned.
   1100    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1101    * (A value of 0 indicates that the error is generated client-side).
   1102    */
   1103   TALER_EC_EXCHANGE_REFRESHES_REVEAL_SIGNING_ERROR = 1354,
   1104 
   1105 
   1106   /**
   1107    * The exchange is unaware of the refresh session specified in the request.
   1108    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1109    * (A value of 0 indicates that the error is generated client-side).
   1110    */
   1111   TALER_EC_EXCHANGE_REFRESHES_REVEAL_SESSION_UNKNOWN = 1355,
   1112 
   1113 
   1114   /**
   1115    * The size of the cut-and-choose dimension of the private transfer keys request does not match #TALER_CNC_KAPPA - 1.
   1116    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1117    * (A value of 0 indicates that the error is generated client-side).
   1118    */
   1119   TALER_EC_EXCHANGE_REFRESHES_REVEAL_CNC_TRANSFER_ARRAY_SIZE_INVALID = 1356,
   1120 
   1121 
   1122   /**
   1123    * The number of envelopes given does not match the number of denomination keys given.
   1124    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1125    * (A value of 0 indicates that the error is generated client-side).
   1126    */
   1127   TALER_EC_EXCHANGE_REFRESHES_REVEAL_NEW_DENOMS_ARRAY_SIZE_MISMATCH = 1358,
   1128 
   1129 
   1130   /**
   1131    * The exchange encountered a numeric overflow totaling up the cost for the refresh operation.
   1132    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1133    * (A value of 0 indicates that the error is generated client-side).
   1134    */
   1135   TALER_EC_EXCHANGE_REFRESHES_REVEAL_COST_CALCULATION_OVERFLOW = 1359,
   1136 
   1137 
   1138   /**
   1139    * The exchange's cost calculation shows that the melt amount is below the costs of the transaction.
   1140    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1141    * (A value of 0 indicates that the error is generated client-side).
   1142    */
   1143   TALER_EC_EXCHANGE_REFRESHES_REVEAL_AMOUNT_INSUFFICIENT = 1360,
   1144 
   1145 
   1146   /**
   1147    * The signature made with the coin over the link data is invalid.
   1148    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1149    * (A value of 0 indicates that the error is generated client-side).
   1150    */
   1151   TALER_EC_EXCHANGE_REFRESHES_REVEAL_LINK_SIGNATURE_INVALID = 1361,
   1152 
   1153 
   1154   /**
   1155    * The refresh session hash given to a /refreshes/ handler was malformed.
   1156    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1157    * (A value of 0 indicates that the error is generated client-side).
   1158    */
   1159   TALER_EC_EXCHANGE_REFRESHES_REVEAL_INVALID_RCH = 1362,
   1160 
   1161 
   1162   /**
   1163    * Operation specified invalid for this endpoint.
   1164    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1165    * (A value of 0 indicates that the error is generated client-side).
   1166    */
   1167   TALER_EC_EXCHANGE_REFRESHES_REVEAL_OPERATION_INVALID = 1363,
   1168 
   1169 
   1170   /**
   1171    * The client provided age commitment data, but age restriction is not supported on this server.
   1172    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1173    * (A value of 0 indicates that the error is generated client-side).
   1174    */
   1175   TALER_EC_EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_NOT_SUPPORTED = 1364,
   1176 
   1177 
   1178   /**
   1179    * The client provided invalid age commitment data: missing, not an array, or  array of invalid size.
   1180    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1181    * (A value of 0 indicates that the error is generated client-side).
   1182    */
   1183   TALER_EC_EXCHANGE_REFRESHES_REVEAL_AGE_RESTRICTION_COMMITMENT_INVALID = 1365,
   1184 
   1185 
   1186   /**
   1187    * The coin specified in the link request is unknown to the exchange.
   1188    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1189    * (A value of 0 indicates that the error is generated client-side).
   1190    */
   1191   TALER_EC_EXCHANGE_LINK_COIN_UNKNOWN = 1400,
   1192 
   1193 
   1194   /**
   1195    * The public key of given to a /transfers/ handler was malformed.
   1196    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1197    * (A value of 0 indicates that the error is generated client-side).
   1198    */
   1199   TALER_EC_EXCHANGE_TRANSFERS_GET_WTID_MALFORMED = 1450,
   1200 
   1201 
   1202   /**
   1203    * The exchange did not find information about the specified wire transfer identifier in the database.
   1204    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1205    * (A value of 0 indicates that the error is generated client-side).
   1206    */
   1207   TALER_EC_EXCHANGE_TRANSFERS_GET_WTID_NOT_FOUND = 1451,
   1208 
   1209 
   1210   /**
   1211    * The exchange did not find information about the wire transfer fees it charged.
   1212    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1213    * (A value of 0 indicates that the error is generated client-side).
   1214    */
   1215   TALER_EC_EXCHANGE_TRANSFERS_GET_WIRE_FEE_NOT_FOUND = 1452,
   1216 
   1217 
   1218   /**
   1219    * The exchange found a wire fee that was above the total transfer value (and thus could not have been charged).
   1220    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1221    * (A value of 0 indicates that the error is generated client-side).
   1222    */
   1223   TALER_EC_EXCHANGE_TRANSFERS_GET_WIRE_FEE_INCONSISTENT = 1453,
   1224 
   1225 
   1226   /**
   1227    * The wait target of the URL was not in the set of expected values.
   1228    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1229    * (A value of 0 indicates that the error is generated client-side).
   1230    */
   1231   TALER_EC_EXCHANGE_PURSES_INVALID_WAIT_TARGET = 1475,
   1232 
   1233 
   1234   /**
   1235    * The signature on the purse status returned by the exchange was invalid.
   1236    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1237    * (A value of 0 indicates that the error is generated client-side).
   1238    */
   1239   TALER_EC_EXCHANGE_PURSES_GET_INVALID_SIGNATURE_BY_EXCHANGE = 1476,
   1240 
   1241 
   1242   /**
   1243    * 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.
   1244    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1245    * (A value of 0 indicates that the error is generated client-side).
   1246    */
   1247   TALER_EC_EXCHANGE_REFUND_COIN_NOT_FOUND = 1500,
   1248 
   1249 
   1250   /**
   1251    * 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.
   1252    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1253    * (A value of 0 indicates that the error is generated client-side).
   1254    */
   1255   TALER_EC_EXCHANGE_REFUND_CONFLICT_DEPOSIT_INSUFFICIENT = 1501,
   1256 
   1257 
   1258   /**
   1259    * 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).
   1260    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1261    * (A value of 0 indicates that the error is generated client-side).
   1262    */
   1263   TALER_EC_EXCHANGE_REFUND_DEPOSIT_NOT_FOUND = 1502,
   1264 
   1265 
   1266   /**
   1267    * 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.)
   1268    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   1269    * (A value of 0 indicates that the error is generated client-side).
   1270    */
   1271   TALER_EC_EXCHANGE_REFUND_MERCHANT_ALREADY_PAID = 1503,
   1272 
   1273 
   1274   /**
   1275    * 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.
   1276    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1277    * (A value of 0 indicates that the error is generated client-side).
   1278    */
   1279   TALER_EC_EXCHANGE_REFUND_FEE_TOO_LOW = 1504,
   1280 
   1281 
   1282   /**
   1283    * The refunded amount is smaller than the refund fee, which would result in a negative refund.
   1284    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1285    * (A value of 0 indicates that the error is generated client-side).
   1286    */
   1287   TALER_EC_EXCHANGE_REFUND_FEE_ABOVE_AMOUNT = 1505,
   1288 
   1289 
   1290   /**
   1291    * The signature of the merchant is invalid.
   1292    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1293    * (A value of 0 indicates that the error is generated client-side).
   1294    */
   1295   TALER_EC_EXCHANGE_REFUND_MERCHANT_SIGNATURE_INVALID = 1506,
   1296 
   1297 
   1298   /**
   1299    * Merchant backend failed to create the refund confirmation signature.
   1300    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1301    * (A value of 0 indicates that the error is generated client-side).
   1302    */
   1303   TALER_EC_EXCHANGE_REFUND_MERCHANT_SIGNING_FAILED = 1507,
   1304 
   1305 
   1306   /**
   1307    * The signature returned by the exchange in a refund request was malformed.
   1308    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1309    * (A value of 0 indicates that the error is generated client-side).
   1310    */
   1311   TALER_EC_EXCHANGE_REFUND_INVALID_SIGNATURE_BY_EXCHANGE = 1508,
   1312 
   1313 
   1314   /**
   1315    * The failure proof returned by the exchange is incorrect.
   1316    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1317    * (A value of 0 indicates that the error is generated client-side).
   1318    */
   1319   TALER_EC_EXCHANGE_REFUND_INVALID_FAILURE_PROOF_BY_EXCHANGE = 1509,
   1320 
   1321 
   1322   /**
   1323    * Conflicting refund granted before with different amount but same refund transaction ID.
   1324    * Returned with an HTTP status code of #MHD_HTTP_FAILED_DEPENDENCY (424).
   1325    * (A value of 0 indicates that the error is generated client-side).
   1326    */
   1327   TALER_EC_EXCHANGE_REFUND_INCONSISTENT_AMOUNT = 1510,
   1328 
   1329 
   1330   /**
   1331    * The given coin signature is invalid for the request.
   1332    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1333    * (A value of 0 indicates that the error is generated client-side).
   1334    */
   1335   TALER_EC_EXCHANGE_RECOUP_SIGNATURE_INVALID = 1550,
   1336 
   1337 
   1338   /**
   1339    * The exchange could not find the corresponding withdraw operation. The request is denied.
   1340    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1341    * (A value of 0 indicates that the error is generated client-side).
   1342    */
   1343   TALER_EC_EXCHANGE_RECOUP_WITHDRAW_NOT_FOUND = 1551,
   1344 
   1345 
   1346   /**
   1347    * The coin's remaining balance is zero.  The request is denied.
   1348    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1349    * (A value of 0 indicates that the error is generated client-side).
   1350    */
   1351   TALER_EC_EXCHANGE_RECOUP_COIN_BALANCE_ZERO = 1552,
   1352 
   1353 
   1354   /**
   1355    * The exchange failed to reproduce the coin's blinding.
   1356    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1357    * (A value of 0 indicates that the error is generated client-side).
   1358    */
   1359   TALER_EC_EXCHANGE_RECOUP_BLINDING_FAILED = 1553,
   1360 
   1361 
   1362   /**
   1363    * The coin's remaining balance is zero.  The request is denied.
   1364    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1365    * (A value of 0 indicates that the error is generated client-side).
   1366    */
   1367   TALER_EC_EXCHANGE_RECOUP_COIN_BALANCE_NEGATIVE = 1554,
   1368 
   1369 
   1370   /**
   1371    * The coin's denomination has not been revoked yet.
   1372    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1373    * (A value of 0 indicates that the error is generated client-side).
   1374    */
   1375   TALER_EC_EXCHANGE_RECOUP_NOT_ELIGIBLE = 1555,
   1376 
   1377 
   1378   /**
   1379    * The given coin signature is invalid for the request.
   1380    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1381    * (A value of 0 indicates that the error is generated client-side).
   1382    */
   1383   TALER_EC_EXCHANGE_RECOUP_REFRESH_SIGNATURE_INVALID = 1575,
   1384 
   1385 
   1386   /**
   1387    * The exchange could not find the corresponding melt operation. The request is denied.
   1388    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1389    * (A value of 0 indicates that the error is generated client-side).
   1390    */
   1391   TALER_EC_EXCHANGE_RECOUP_REFRESH_MELT_NOT_FOUND = 1576,
   1392 
   1393 
   1394   /**
   1395    * The exchange failed to reproduce the coin's blinding.
   1396    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1397    * (A value of 0 indicates that the error is generated client-side).
   1398    */
   1399   TALER_EC_EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED = 1578,
   1400 
   1401 
   1402   /**
   1403    * The coin's denomination has not been revoked yet.
   1404    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1405    * (A value of 0 indicates that the error is generated client-side).
   1406    */
   1407   TALER_EC_EXCHANGE_RECOUP_REFRESH_NOT_ELIGIBLE = 1580,
   1408 
   1409 
   1410   /**
   1411    * This exchange does not allow clients to request /keys for times other than the current (exchange) time.
   1412    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1413    * (A value of 0 indicates that the error is generated client-side).
   1414    */
   1415   TALER_EC_EXCHANGE_KEYS_TIMETRAVEL_FORBIDDEN = 1600,
   1416 
   1417 
   1418   /**
   1419    * A signature in the server's response was malformed.
   1420    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1421    * (A value of 0 indicates that the error is generated client-side).
   1422    */
   1423   TALER_EC_EXCHANGE_WIRE_SIGNATURE_INVALID = 1650,
   1424 
   1425 
   1426   /**
   1427    * No bank accounts are enabled for the exchange. The administrator should enable-account using the taler-exchange-offline tool.
   1428    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1429    * (A value of 0 indicates that the error is generated client-side).
   1430    */
   1431   TALER_EC_EXCHANGE_WIRE_NO_ACCOUNTS_CONFIGURED = 1651,
   1432 
   1433 
   1434   /**
   1435    * The payto:// URI stored in the exchange database for its bank account is malformed.
   1436    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1437    * (A value of 0 indicates that the error is generated client-side).
   1438    */
   1439   TALER_EC_EXCHANGE_WIRE_INVALID_PAYTO_CONFIGURED = 1652,
   1440 
   1441 
   1442   /**
   1443    * 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.
   1444    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1445    * (A value of 0 indicates that the error is generated client-side).
   1446    */
   1447   TALER_EC_EXCHANGE_WIRE_FEES_NOT_CONFIGURED = 1653,
   1448 
   1449 
   1450   /**
   1451    * This purse was previously created with different meta data.
   1452    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1453    * (A value of 0 indicates that the error is generated client-side).
   1454    */
   1455   TALER_EC_EXCHANGE_RESERVES_PURSE_CREATE_CONFLICTING_META_DATA = 1675,
   1456 
   1457 
   1458   /**
   1459    * This purse was previously merged with different meta data.
   1460    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1461    * (A value of 0 indicates that the error is generated client-side).
   1462    */
   1463   TALER_EC_EXCHANGE_RESERVES_PURSE_MERGE_CONFLICTING_META_DATA = 1676,
   1464 
   1465 
   1466   /**
   1467    * The reserve has insufficient funds to create another purse.
   1468    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1469    * (A value of 0 indicates that the error is generated client-side).
   1470    */
   1471   TALER_EC_EXCHANGE_RESERVES_PURSE_CREATE_INSUFFICIENT_FUNDS = 1677,
   1472 
   1473 
   1474   /**
   1475    * The purse fee specified for the request is lower than the purse fee charged by the exchange at this time.
   1476    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1477    * (A value of 0 indicates that the error is generated client-side).
   1478    */
   1479   TALER_EC_EXCHANGE_RESERVES_PURSE_FEE_TOO_LOW = 1678,
   1480 
   1481 
   1482   /**
   1483    * The payment request cannot be deleted anymore, as it either already completed or timed out.
   1484    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1485    * (A value of 0 indicates that the error is generated client-side).
   1486    */
   1487   TALER_EC_EXCHANGE_PURSE_DELETE_ALREADY_DECIDED = 1679,
   1488 
   1489 
   1490   /**
   1491    * The signature affirming the purse deletion is invalid.
   1492    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1493    * (A value of 0 indicates that the error is generated client-side).
   1494    */
   1495   TALER_EC_EXCHANGE_PURSE_DELETE_SIGNATURE_INVALID = 1680,
   1496 
   1497 
   1498   /**
   1499    * Withdrawal from the reserve requires age restriction to be set.
   1500    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1501    * (A value of 0 indicates that the error is generated client-side).
   1502    */
   1503   TALER_EC_EXCHANGE_RESERVES_AGE_RESTRICTION_REQUIRED = 1681,
   1504 
   1505 
   1506   /**
   1507    * The exchange failed to talk to the process responsible for its private denomination keys or the helpers had no denominations (properly) configured.
   1508    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   1509    * (A value of 0 indicates that the error is generated client-side).
   1510    */
   1511   TALER_EC_EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE = 1700,
   1512 
   1513 
   1514   /**
   1515    * The response from the denomination key helper process was malformed.
   1516    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1517    * (A value of 0 indicates that the error is generated client-side).
   1518    */
   1519   TALER_EC_EXCHANGE_DENOMINATION_HELPER_BUG = 1701,
   1520 
   1521 
   1522   /**
   1523    * The helper refuses to sign with the key, because it is too early: the validity period has not yet started.
   1524    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1525    * (A value of 0 indicates that the error is generated client-side).
   1526    */
   1527   TALER_EC_EXCHANGE_DENOMINATION_HELPER_TOO_EARLY = 1702,
   1528 
   1529 
   1530   /**
   1531    * The signature of the exchange on the reply was invalid.
   1532    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1533    * (A value of 0 indicates that the error is generated client-side).
   1534    */
   1535   TALER_EC_EXCHANGE_PURSE_DEPOSIT_EXCHANGE_SIGNATURE_INVALID = 1725,
   1536 
   1537 
   1538   /**
   1539    * The exchange failed to talk to the process responsible for its private signing keys.
   1540    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   1541    * (A value of 0 indicates that the error is generated client-side).
   1542    */
   1543   TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE = 1750,
   1544 
   1545 
   1546   /**
   1547    * The response from the online signing key helper process was malformed.
   1548    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1549    * (A value of 0 indicates that the error is generated client-side).
   1550    */
   1551   TALER_EC_EXCHANGE_SIGNKEY_HELPER_BUG = 1751,
   1552 
   1553 
   1554   /**
   1555    * The helper refuses to sign with the key, because it is too early: the validity period has not yet started.
   1556    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1557    * (A value of 0 indicates that the error is generated client-side).
   1558    */
   1559   TALER_EC_EXCHANGE_SIGNKEY_HELPER_TOO_EARLY = 1752,
   1560 
   1561 
   1562   /**
   1563    * The signatures from the master exchange public key are missing, thus the exchange cannot currently sign its API responses. The exchange operator must use taler-exchange-offline to sign the current key material.
   1564    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   1565    * (A value of 0 indicates that the error is generated client-side).
   1566    */
   1567   TALER_EC_EXCHANGE_SIGNKEY_HELPER_OFFLINE_MISSING = 1753,
   1568 
   1569 
   1570   /**
   1571    * The purse expiration time is in the past at the time of its creation.
   1572    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1573    * (A value of 0 indicates that the error is generated client-side).
   1574    */
   1575   TALER_EC_EXCHANGE_RESERVES_PURSE_EXPIRATION_BEFORE_NOW = 1775,
   1576 
   1577 
   1578   /**
   1579    * The purse expiration time is set to never, which is not allowed.
   1580    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1581    * (A value of 0 indicates that the error is generated client-side).
   1582    */
   1583   TALER_EC_EXCHANGE_RESERVES_PURSE_EXPIRATION_IS_NEVER = 1776,
   1584 
   1585 
   1586   /**
   1587    * The signature affirming the merge of the purse is invalid.
   1588    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1589    * (A value of 0 indicates that the error is generated client-side).
   1590    */
   1591   TALER_EC_EXCHANGE_RESERVES_PURSE_MERGE_SIGNATURE_INVALID = 1777,
   1592 
   1593 
   1594   /**
   1595    * The signature by the reserve affirming the merge is invalid.
   1596    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1597    * (A value of 0 indicates that the error is generated client-side).
   1598    */
   1599   TALER_EC_EXCHANGE_RESERVES_RESERVE_MERGE_SIGNATURE_INVALID = 1778,
   1600 
   1601 
   1602   /**
   1603    * The signature by the reserve affirming the open operation is invalid.
   1604    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1605    * (A value of 0 indicates that the error is generated client-side).
   1606    */
   1607   TALER_EC_EXCHANGE_RESERVES_OPEN_BAD_SIGNATURE = 1785,
   1608 
   1609 
   1610   /**
   1611    * The signature by the reserve affirming the close operation is invalid.
   1612    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1613    * (A value of 0 indicates that the error is generated client-side).
   1614    */
   1615   TALER_EC_EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE = 1786,
   1616 
   1617 
   1618   /**
   1619    * The signature by the reserve affirming the attestion request is invalid.
   1620    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1621    * (A value of 0 indicates that the error is generated client-side).
   1622    */
   1623   TALER_EC_EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE = 1787,
   1624 
   1625 
   1626   /**
   1627    * 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.
   1628    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1629    * (A value of 0 indicates that the error is generated client-side).
   1630    */
   1631   TALER_EC_EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT = 1788,
   1632 
   1633 
   1634   /**
   1635    * The reserve balance is insufficient to pay for the open operation.
   1636    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1637    * (A value of 0 indicates that the error is generated client-side).
   1638    */
   1639   TALER_EC_EXCHANGE_RESERVES_OPEN_INSUFFICIENT_FUNDS = 1789,
   1640 
   1641 
   1642   /**
   1643    * The auditor that was supposed to be disabled is unknown to this exchange.
   1644    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1645    * (A value of 0 indicates that the error is generated client-side).
   1646    */
   1647   TALER_EC_EXCHANGE_MANAGEMENT_AUDITOR_NOT_FOUND = 1800,
   1648 
   1649 
   1650   /**
   1651    * The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).
   1652    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1653    * (A value of 0 indicates that the error is generated client-side).
   1654    */
   1655   TALER_EC_EXCHANGE_MANAGEMENT_AUDITOR_MORE_RECENT_PRESENT = 1801,
   1656 
   1657 
   1658   /**
   1659    * The signature to add or enable the auditor does not validate.
   1660    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1661    * (A value of 0 indicates that the error is generated client-side).
   1662    */
   1663   TALER_EC_EXCHANGE_MANAGEMENT_AUDITOR_ADD_SIGNATURE_INVALID = 1802,
   1664 
   1665 
   1666   /**
   1667    * The signature to disable the auditor does not validate.
   1668    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1669    * (A value of 0 indicates that the error is generated client-side).
   1670    */
   1671   TALER_EC_EXCHANGE_MANAGEMENT_AUDITOR_DEL_SIGNATURE_INVALID = 1803,
   1672 
   1673 
   1674   /**
   1675    * The signature to revoke the denomination does not validate.
   1676    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1677    * (A value of 0 indicates that the error is generated client-side).
   1678    */
   1679   TALER_EC_EXCHANGE_MANAGEMENT_DENOMINATION_REVOKE_SIGNATURE_INVALID = 1804,
   1680 
   1681 
   1682   /**
   1683    * The signature to revoke the online signing key does not validate.
   1684    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1685    * (A value of 0 indicates that the error is generated client-side).
   1686    */
   1687   TALER_EC_EXCHANGE_MANAGEMENT_SIGNKEY_REVOKE_SIGNATURE_INVALID = 1805,
   1688 
   1689 
   1690   /**
   1691    * The exchange has a more recently signed conflicting instruction and is thus refusing the current change (replay detected).
   1692    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1693    * (A value of 0 indicates that the error is generated client-side).
   1694    */
   1695   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_MORE_RECENT_PRESENT = 1806,
   1696 
   1697 
   1698   /**
   1699    * The signingkey specified is unknown to the exchange.
   1700    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1701    * (A value of 0 indicates that the error is generated client-side).
   1702    */
   1703   TALER_EC_EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_UNKNOWN = 1807,
   1704 
   1705 
   1706   /**
   1707    * The signature to publish wire account does not validate.
   1708    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1709    * (A value of 0 indicates that the error is generated client-side).
   1710    */
   1711   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_DETAILS_SIGNATURE_INVALID = 1808,
   1712 
   1713 
   1714   /**
   1715    * The signature to add the wire account does not validate.
   1716    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1717    * (A value of 0 indicates that the error is generated client-side).
   1718    */
   1719   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_ADD_SIGNATURE_INVALID = 1809,
   1720 
   1721 
   1722   /**
   1723    * The signature to disable the wire account does not validate.
   1724    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1725    * (A value of 0 indicates that the error is generated client-side).
   1726    */
   1727   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_DEL_SIGNATURE_INVALID = 1810,
   1728 
   1729 
   1730   /**
   1731    * The wire account to be disabled is unknown to the exchange.
   1732    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1733    * (A value of 0 indicates that the error is generated client-side).
   1734    */
   1735   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_NOT_FOUND = 1811,
   1736 
   1737 
   1738   /**
   1739    * The signature to affirm wire fees does not validate.
   1740    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1741    * (A value of 0 indicates that the error is generated client-side).
   1742    */
   1743   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_FEE_SIGNATURE_INVALID = 1812,
   1744 
   1745 
   1746   /**
   1747    * The signature conflicts with a previous signature affirming different fees.
   1748    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1749    * (A value of 0 indicates that the error is generated client-side).
   1750    */
   1751   TALER_EC_EXCHANGE_MANAGEMENT_WIRE_FEE_MISMATCH = 1813,
   1752 
   1753 
   1754   /**
   1755    * The signature affirming the denomination key is invalid.
   1756    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1757    * (A value of 0 indicates that the error is generated client-side).
   1758    */
   1759   TALER_EC_EXCHANGE_MANAGEMENT_KEYS_DENOMKEY_ADD_SIGNATURE_INVALID = 1814,
   1760 
   1761 
   1762   /**
   1763    * The signature affirming the signing key is invalid.
   1764    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1765    * (A value of 0 indicates that the error is generated client-side).
   1766    */
   1767   TALER_EC_EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID = 1815,
   1768 
   1769 
   1770   /**
   1771    * The signature conflicts with a previous signature affirming different fees.
   1772    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1773    * (A value of 0 indicates that the error is generated client-side).
   1774    */
   1775   TALER_EC_EXCHANGE_MANAGEMENT_GLOBAL_FEE_MISMATCH = 1816,
   1776 
   1777 
   1778   /**
   1779    * The signature affirming the fee structure is invalid.
   1780    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1781    * (A value of 0 indicates that the error is generated client-side).
   1782    */
   1783   TALER_EC_EXCHANGE_MANAGEMENT_GLOBAL_FEE_SIGNATURE_INVALID = 1817,
   1784 
   1785 
   1786   /**
   1787    * The signature affirming the profit drain is invalid.
   1788    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1789    * (A value of 0 indicates that the error is generated client-side).
   1790    */
   1791   TALER_EC_EXCHANGE_MANAGEMENT_DRAIN_PROFITS_SIGNATURE_INVALID = 1818,
   1792 
   1793 
   1794   /**
   1795    * The signature affirming the AML decision is invalid.
   1796    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1797    * (A value of 0 indicates that the error is generated client-side).
   1798    */
   1799   TALER_EC_EXCHANGE_AML_DECISION_ADD_SIGNATURE_INVALID = 1825,
   1800 
   1801 
   1802   /**
   1803    * The AML officer specified is not allowed to make AML decisions right now.
   1804    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1805    * (A value of 0 indicates that the error is generated client-side).
   1806    */
   1807   TALER_EC_EXCHANGE_AML_DECISION_INVALID_OFFICER = 1826,
   1808 
   1809 
   1810   /**
   1811    * There is a more recent AML decision on file. The decision was rejected as timestamps of AML decisions must be monotonically increasing.
   1812    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1813    * (A value of 0 indicates that the error is generated client-side).
   1814    */
   1815   TALER_EC_EXCHANGE_AML_DECISION_MORE_RECENT_PRESENT = 1827,
   1816 
   1817 
   1818   /**
   1819    * There AML decision would impose an AML check of a type that is not provided by any KYC provider known to the exchange.
   1820    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1821    * (A value of 0 indicates that the error is generated client-side).
   1822    */
   1823   TALER_EC_EXCHANGE_AML_DECISION_UNKNOWN_CHECK = 1828,
   1824 
   1825 
   1826   /**
   1827    * The signature affirming the change in the AML officer status is invalid.
   1828    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1829    * (A value of 0 indicates that the error is generated client-side).
   1830    */
   1831   TALER_EC_EXCHANGE_MANAGEMENT_UPDATE_AML_OFFICER_SIGNATURE_INVALID = 1830,
   1832 
   1833 
   1834   /**
   1835    * A more recent decision about the AML officer status is known to the exchange.
   1836    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1837    * (A value of 0 indicates that the error is generated client-side).
   1838    */
   1839   TALER_EC_EXCHANGE_MANAGEMENT_AML_OFFICERS_MORE_RECENT_PRESENT = 1831,
   1840 
   1841 
   1842   /**
   1843    * The exchange already has this denomination key configured, but with different meta data. This should not be possible, contact the developers for support.
   1844    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1845    * (A value of 0 indicates that the error is generated client-side).
   1846    */
   1847   TALER_EC_EXCHANGE_MANAGEMENT_CONFLICTING_DENOMINATION_META_DATA = 1832,
   1848 
   1849 
   1850   /**
   1851    * The exchange already has this signing key configured, but with different meta data. This should not be possible, contact the developers for support.
   1852    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1853    * (A value of 0 indicates that the error is generated client-side).
   1854    */
   1855   TALER_EC_EXCHANGE_MANAGEMENT_CONFLICTING_SIGNKEY_META_DATA = 1833,
   1856 
   1857 
   1858   /**
   1859    * The purse was previously created with different meta data.
   1860    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1861    * (A value of 0 indicates that the error is generated client-side).
   1862    */
   1863   TALER_EC_EXCHANGE_PURSE_CREATE_CONFLICTING_META_DATA = 1850,
   1864 
   1865 
   1866   /**
   1867    * The purse was previously created with a different contract.
   1868    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1869    * (A value of 0 indicates that the error is generated client-side).
   1870    */
   1871   TALER_EC_EXCHANGE_PURSE_CREATE_CONFLICTING_CONTRACT_STORED = 1851,
   1872 
   1873 
   1874   /**
   1875    * A coin signature for a deposit into the purse is invalid.
   1876    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1877    * (A value of 0 indicates that the error is generated client-side).
   1878    */
   1879   TALER_EC_EXCHANGE_PURSE_CREATE_COIN_SIGNATURE_INVALID = 1852,
   1880 
   1881 
   1882   /**
   1883    * The purse expiration time is in the past.
   1884    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1885    * (A value of 0 indicates that the error is generated client-side).
   1886    */
   1887   TALER_EC_EXCHANGE_PURSE_CREATE_EXPIRATION_BEFORE_NOW = 1853,
   1888 
   1889 
   1890   /**
   1891    * The purse expiration time is "never".
   1892    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1893    * (A value of 0 indicates that the error is generated client-side).
   1894    */
   1895   TALER_EC_EXCHANGE_PURSE_CREATE_EXPIRATION_IS_NEVER = 1854,
   1896 
   1897 
   1898   /**
   1899    * The purse signature over the purse meta data is invalid.
   1900    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1901    * (A value of 0 indicates that the error is generated client-side).
   1902    */
   1903   TALER_EC_EXCHANGE_PURSE_CREATE_SIGNATURE_INVALID = 1855,
   1904 
   1905 
   1906   /**
   1907    * The signature over the encrypted contract is invalid.
   1908    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1909    * (A value of 0 indicates that the error is generated client-side).
   1910    */
   1911   TALER_EC_EXCHANGE_PURSE_ECONTRACT_SIGNATURE_INVALID = 1856,
   1912 
   1913 
   1914   /**
   1915    * The signature from the exchange over the confirmation is invalid.
   1916    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1917    * (A value of 0 indicates that the error is generated client-side).
   1918    */
   1919   TALER_EC_EXCHANGE_PURSE_CREATE_EXCHANGE_SIGNATURE_INVALID = 1857,
   1920 
   1921 
   1922   /**
   1923    * The coin was previously deposited with different meta data.
   1924    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1925    * (A value of 0 indicates that the error is generated client-side).
   1926    */
   1927   TALER_EC_EXCHANGE_PURSE_DEPOSIT_CONFLICTING_META_DATA = 1858,
   1928 
   1929 
   1930   /**
   1931    * The encrypted contract was previously uploaded with different meta data.
   1932    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1933    * (A value of 0 indicates that the error is generated client-side).
   1934    */
   1935   TALER_EC_EXCHANGE_PURSE_ECONTRACT_CONFLICTING_META_DATA = 1859,
   1936 
   1937 
   1938   /**
   1939    * The deposited amount is less than the purse fee.
   1940    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   1941    * (A value of 0 indicates that the error is generated client-side).
   1942    */
   1943   TALER_EC_EXCHANGE_CREATE_PURSE_NEGATIVE_VALUE_AFTER_FEE = 1860,
   1944 
   1945 
   1946   /**
   1947    * The signature using the merge key is invalid.
   1948    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1949    * (A value of 0 indicates that the error is generated client-side).
   1950    */
   1951   TALER_EC_EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE = 1876,
   1952 
   1953 
   1954   /**
   1955    * The signature using the reserve key is invalid.
   1956    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1957    * (A value of 0 indicates that the error is generated client-side).
   1958    */
   1959   TALER_EC_EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE = 1877,
   1960 
   1961 
   1962   /**
   1963    * The targeted purse is not yet full and thus cannot be merged. Retrying the request later may succeed.
   1964    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1965    * (A value of 0 indicates that the error is generated client-side).
   1966    */
   1967   TALER_EC_EXCHANGE_PURSE_NOT_FULL = 1878,
   1968 
   1969 
   1970   /**
   1971    * The signature from the exchange over the confirmation is invalid.
   1972    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   1973    * (A value of 0 indicates that the error is generated client-side).
   1974    */
   1975   TALER_EC_EXCHANGE_PURSE_MERGE_EXCHANGE_SIGNATURE_INVALID = 1879,
   1976 
   1977 
   1978   /**
   1979    * The exchange of the target account is not a partner of this exchange.
   1980    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   1981    * (A value of 0 indicates that the error is generated client-side).
   1982    */
   1983   TALER_EC_EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN = 1880,
   1984 
   1985 
   1986   /**
   1987    * The signature affirming the new partner is invalid.
   1988    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   1989    * (A value of 0 indicates that the error is generated client-side).
   1990    */
   1991   TALER_EC_EXCHANGE_MANAGEMENT_ADD_PARTNER_SIGNATURE_INVALID = 1890,
   1992 
   1993 
   1994   /**
   1995    * Conflicting data for the partner already exists with the exchange.
   1996    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   1997    * (A value of 0 indicates that the error is generated client-side).
   1998    */
   1999   TALER_EC_EXCHANGE_MANAGEMENT_ADD_PARTNER_DATA_CONFLICT = 1891,
   2000 
   2001 
   2002   /**
   2003    * The auditor signature over the denomination meta data is invalid.
   2004    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2005    * (A value of 0 indicates that the error is generated client-side).
   2006    */
   2007   TALER_EC_EXCHANGE_AUDITORS_AUDITOR_SIGNATURE_INVALID = 1900,
   2008 
   2009 
   2010   /**
   2011    * The auditor that was specified is unknown to this exchange.
   2012    * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).
   2013    * (A value of 0 indicates that the error is generated client-side).
   2014    */
   2015   TALER_EC_EXCHANGE_AUDITORS_AUDITOR_UNKNOWN = 1901,
   2016 
   2017 
   2018   /**
   2019    * The auditor that was specified is no longer used by this exchange.
   2020    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   2021    * (A value of 0 indicates that the error is generated client-side).
   2022    */
   2023   TALER_EC_EXCHANGE_AUDITORS_AUDITOR_INACTIVE = 1902,
   2024 
   2025 
   2026   /**
   2027    * The exchange tried to run an AML program, but that program did not terminate on time. Contact the exchange operator to address the AML program bug or performance issue. If it is not a performance issue, the timeout might have to be increased (requires changes to the source code).
   2028    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2029    * (A value of 0 indicates that the error is generated client-side).
   2030    */
   2031   TALER_EC_EXCHANGE_KYC_GENERIC_AML_PROGRAM_TIMEOUT = 1918,
   2032 
   2033 
   2034   /**
   2035    * The KYC info access token is not recognized. Hence the request was denied.
   2036    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2037    * (A value of 0 indicates that the error is generated client-side).
   2038    */
   2039   TALER_EC_EXCHANGE_KYC_INFO_AUTHORIZATION_FAILED = 1919,
   2040 
   2041 
   2042   /**
   2043    * The exchange got stuck in a long series of (likely recursive) KYC rules without user-inputs that did not result in a timely conclusion. This is a configuration failure. Please contact the administrator.
   2044    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2045    * (A value of 0 indicates that the error is generated client-side).
   2046    */
   2047   TALER_EC_EXCHANGE_KYC_RECURSIVE_RULE_DETECTED = 1920,
   2048 
   2049 
   2050   /**
   2051    * The submitted KYC data lacks an attribute that is required by the KYC form. Please submit the complete form.
   2052    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2053    * (A value of 0 indicates that the error is generated client-side).
   2054    */
   2055   TALER_EC_EXCHANGE_KYC_AML_FORM_INCOMPLETE = 1921,
   2056 
   2057 
   2058   /**
   2059    * The request requires an AML program which is no longer configured at the exchange. Contact the exchange operator to address the configuration issue.
   2060    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2061    * (A value of 0 indicates that the error is generated client-side).
   2062    */
   2063   TALER_EC_EXCHANGE_KYC_GENERIC_AML_PROGRAM_GONE = 1922,
   2064 
   2065 
   2066   /**
   2067    * The given check is not of type 'form' and thus using this handler for form submission is incorrect.
   2068    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2069    * (A value of 0 indicates that the error is generated client-side).
   2070    */
   2071   TALER_EC_EXCHANGE_KYC_NOT_A_FORM = 1923,
   2072 
   2073 
   2074   /**
   2075    * The request requires a check which is no longer configured at the exchange. Contact the exchange operator to address the configuration issue.
   2076    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2077    * (A value of 0 indicates that the error is generated client-side).
   2078    */
   2079   TALER_EC_EXCHANGE_KYC_GENERIC_CHECK_GONE = 1924,
   2080 
   2081 
   2082   /**
   2083    * The signature affirming the wallet's KYC request was invalid.
   2084    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2085    * (A value of 0 indicates that the error is generated client-side).
   2086    */
   2087   TALER_EC_EXCHANGE_KYC_WALLET_SIGNATURE_INVALID = 1925,
   2088 
   2089 
   2090   /**
   2091    * The exchange received an unexpected malformed response from its KYC backend.
   2092    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2093    * (A value of 0 indicates that the error is generated client-side).
   2094    */
   2095   TALER_EC_EXCHANGE_KYC_PROOF_BACKEND_INVALID_RESPONSE = 1926,
   2096 
   2097 
   2098   /**
   2099    * The backend signaled an unexpected failure.
   2100    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2101    * (A value of 0 indicates that the error is generated client-side).
   2102    */
   2103   TALER_EC_EXCHANGE_KYC_PROOF_BACKEND_ERROR = 1927,
   2104 
   2105 
   2106   /**
   2107    * The backend signaled an authorization failure.
   2108    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2109    * (A value of 0 indicates that the error is generated client-side).
   2110    */
   2111   TALER_EC_EXCHANGE_KYC_PROOF_BACKEND_AUTHORIZATION_FAILED = 1928,
   2112 
   2113 
   2114   /**
   2115    * The exchange is unaware of having made an the authorization request.
   2116    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2117    * (A value of 0 indicates that the error is generated client-side).
   2118    */
   2119   TALER_EC_EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN = 1929,
   2120 
   2121 
   2122   /**
   2123    * The KYC authorization signature was invalid. Hence the request was denied.
   2124    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2125    * (A value of 0 indicates that the error is generated client-side).
   2126    */
   2127   TALER_EC_EXCHANGE_KYC_CHECK_AUTHORIZATION_FAILED = 1930,
   2128 
   2129 
   2130   /**
   2131    * The request used a logic specifier that is not known to the exchange.
   2132    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2133    * (A value of 0 indicates that the error is generated client-side).
   2134    */
   2135   TALER_EC_EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN = 1931,
   2136 
   2137 
   2138   /**
   2139    * The request requires a logic which is no longer configured at the exchange.
   2140    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2141    * (A value of 0 indicates that the error is generated client-side).
   2142    */
   2143   TALER_EC_EXCHANGE_KYC_GENERIC_LOGIC_GONE = 1932,
   2144 
   2145 
   2146   /**
   2147    * The logic plugin had a bug in its interaction with the KYC provider.
   2148    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2149    * (A value of 0 indicates that the error is generated client-side).
   2150    */
   2151   TALER_EC_EXCHANGE_KYC_GENERIC_LOGIC_BUG = 1933,
   2152 
   2153 
   2154   /**
   2155    * 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.
   2156    * Returned with an HTTP status code of #MHD_HTTP_NETWORK_AUTHENTICATION_REQUIRED (511).
   2157    * (A value of 0 indicates that the error is generated client-side).
   2158    */
   2159   TALER_EC_EXCHANGE_KYC_GENERIC_PROVIDER_ACCESS_REFUSED = 1934,
   2160 
   2161 
   2162   /**
   2163    * 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.
   2164    * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).
   2165    * (A value of 0 indicates that the error is generated client-side).
   2166    */
   2167   TALER_EC_EXCHANGE_KYC_GENERIC_PROVIDER_TIMEOUT = 1935,
   2168 
   2169 
   2170   /**
   2171    * The KYC provider responded with a status that was completely unexpected by the KYC logic of the exchange.
   2172    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2173    * (A value of 0 indicates that the error is generated client-side).
   2174    */
   2175   TALER_EC_EXCHANGE_KYC_GENERIC_PROVIDER_UNEXPECTED_REPLY = 1936,
   2176 
   2177 
   2178   /**
   2179    * The rate limit of the exchange at the KYC provider has been exceeded. Trying much later might work.
   2180    * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).
   2181    * (A value of 0 indicates that the error is generated client-side).
   2182    */
   2183   TALER_EC_EXCHANGE_KYC_GENERIC_PROVIDER_RATE_LIMIT_EXCEEDED = 1937,
   2184 
   2185 
   2186   /**
   2187    * The request to the webhook lacked proper authorization or authentication data.
   2188    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
   2189    * (A value of 0 indicates that the error is generated client-side).
   2190    */
   2191   TALER_EC_EXCHANGE_KYC_WEBHOOK_UNAUTHORIZED = 1938,
   2192 
   2193 
   2194   /**
   2195    * The exchange is unaware of the requested payto URI with respect to the KYC status.
   2196    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2197    * (A value of 0 indicates that the error is generated client-side).
   2198    */
   2199   TALER_EC_EXCHANGE_KYC_CHECK_REQUEST_UNKNOWN = 1939,
   2200 
   2201 
   2202   /**
   2203    * The exchange has no account public key to check the KYC authorization signature against. Hence the request was denied. The user should do a wire transfer to the exchange with the KYC authorization key in the subject.
   2204    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2205    * (A value of 0 indicates that the error is generated client-side).
   2206    */
   2207   TALER_EC_EXCHANGE_KYC_CHECK_AUTHORIZATION_KEY_UNKNOWN = 1940,
   2208 
   2209 
   2210   /**
   2211    * The form has been previously uploaded, and may only be filed once. The user should be redirected to their main KYC page and see if any other steps need to be taken.
   2212    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2213    * (A value of 0 indicates that the error is generated client-side).
   2214    */
   2215   TALER_EC_EXCHANGE_KYC_FORM_ALREADY_UPLOADED = 1941,
   2216 
   2217 
   2218   /**
   2219    * The internal state of the exchange specifying KYC measures is malformed. Please contact technical support.
   2220    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2221    * (A value of 0 indicates that the error is generated client-side).
   2222    */
   2223   TALER_EC_EXCHANGE_KYC_MEASURES_MALFORMED = 1942,
   2224 
   2225 
   2226   /**
   2227    * The specified index does not refer to a valid KYC measure. Please check the URL.
   2228    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2229    * (A value of 0 indicates that the error is generated client-side).
   2230    */
   2231   TALER_EC_EXCHANGE_KYC_MEASURE_INDEX_INVALID = 1943,
   2232 
   2233 
   2234   /**
   2235    * The operation is not supported by the selected KYC logic. This is either caused by a configuration change or some invalid use of the API. Please contact technical support.
   2236    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2237    * (A value of 0 indicates that the error is generated client-side).
   2238    */
   2239   TALER_EC_EXCHANGE_KYC_INVALID_LOGIC_TO_CHECK = 1944,
   2240 
   2241 
   2242   /**
   2243    * The AML program failed. This is either caused by a configuration change or a bug. Please contact technical support.
   2244    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2245    * (A value of 0 indicates that the error is generated client-side).
   2246    */
   2247   TALER_EC_EXCHANGE_KYC_AML_PROGRAM_FAILURE = 1945,
   2248 
   2249 
   2250   /**
   2251    * The AML program returned a malformed result. This is a bug. Please contact technical support.
   2252    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2253    * (A value of 0 indicates that the error is generated client-side).
   2254    */
   2255   TALER_EC_EXCHANGE_KYC_AML_PROGRAM_MALFORMED_RESULT = 1946,
   2256 
   2257 
   2258   /**
   2259    * The response from the KYC provider lacked required attributes. Please contact technical support.
   2260    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2261    * (A value of 0 indicates that the error is generated client-side).
   2262    */
   2263   TALER_EC_EXCHANGE_KYC_GENERIC_PROVIDER_INCOMPLETE_REPLY = 1947,
   2264 
   2265 
   2266   /**
   2267    * The context of the KYC check lacked required fields. This is a bug. Please contact technical support.
   2268    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2269    * (A value of 0 indicates that the error is generated client-side).
   2270    */
   2271   TALER_EC_EXCHANGE_KYC_GENERIC_PROVIDER_INCOMPLETE_CONTEXT = 1948,
   2272 
   2273 
   2274   /**
   2275    * The logic plugin had a bug in its AML processing. This is a bug. Please contact technical support.
   2276    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2277    * (A value of 0 indicates that the error is generated client-side).
   2278    */
   2279   TALER_EC_EXCHANGE_KYC_GENERIC_AML_LOGIC_BUG = 1949,
   2280 
   2281 
   2282   /**
   2283    * The exchange does not know a contract under the given contract public key.
   2284    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2285    * (A value of 0 indicates that the error is generated client-side).
   2286    */
   2287   TALER_EC_EXCHANGE_CONTRACTS_UNKNOWN = 1950,
   2288 
   2289 
   2290   /**
   2291    * The URL does not encode a valid exchange public key in its path.
   2292    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2293    * (A value of 0 indicates that the error is generated client-side).
   2294    */
   2295   TALER_EC_EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB = 1951,
   2296 
   2297 
   2298   /**
   2299    * The returned encrypted contract did not decrypt.
   2300    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2301    * (A value of 0 indicates that the error is generated client-side).
   2302    */
   2303   TALER_EC_EXCHANGE_CONTRACTS_DECRYPTION_FAILED = 1952,
   2304 
   2305 
   2306   /**
   2307    * The signature on the encrypted contract did not validate.
   2308    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2309    * (A value of 0 indicates that the error is generated client-side).
   2310    */
   2311   TALER_EC_EXCHANGE_CONTRACTS_SIGNATURE_INVALID = 1953,
   2312 
   2313 
   2314   /**
   2315    * The decrypted contract was malformed.
   2316    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2317    * (A value of 0 indicates that the error is generated client-side).
   2318    */
   2319   TALER_EC_EXCHANGE_CONTRACTS_DECODING_FAILED = 1954,
   2320 
   2321 
   2322   /**
   2323    * A coin signature for a deposit into the purse is invalid.
   2324    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2325    * (A value of 0 indicates that the error is generated client-side).
   2326    */
   2327   TALER_EC_EXCHANGE_PURSE_DEPOSIT_COIN_SIGNATURE_INVALID = 1975,
   2328 
   2329 
   2330   /**
   2331    * It is too late to deposit coins into the purse.
   2332    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   2333    * (A value of 0 indicates that the error is generated client-side).
   2334    */
   2335   TALER_EC_EXCHANGE_PURSE_DEPOSIT_DECIDED_ALREADY = 1976,
   2336 
   2337 
   2338   /**
   2339    * The exchange is currently processing the KYC status and is not able to return a response yet.
   2340    * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).
   2341    * (A value of 0 indicates that the error is generated client-side).
   2342    */
   2343   TALER_EC_EXCHANGE_KYC_INFO_BUSY = 1977,
   2344 
   2345 
   2346   /**
   2347    * TOTP key is not valid.
   2348    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2349    * (A value of 0 indicates that the error is generated client-side).
   2350    */
   2351   TALER_EC_EXCHANGE_TOTP_KEY_INVALID = 1980,
   2352 
   2353 
   2354   /**
   2355    * The backend could not find the merchant instance specified in the request.
   2356    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2357    * (A value of 0 indicates that the error is generated client-side).
   2358    */
   2359   TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN = 2000,
   2360 
   2361 
   2362   /**
   2363    * The start and end-times in the wire fee structure leave a hole. This is not allowed.
   2364    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2365    * (A value of 0 indicates that the error is generated client-side).
   2366    */
   2367   TALER_EC_MERCHANT_GENERIC_HOLE_IN_WIRE_FEE_STRUCTURE = 2001,
   2368 
   2369 
   2370   /**
   2371    * The merchant was unable to obtain a valid answer to /wire from the exchange.
   2372    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2373    * (A value of 0 indicates that the error is generated client-side).
   2374    */
   2375   TALER_EC_MERCHANT_GENERIC_EXCHANGE_WIRE_REQUEST_FAILED = 2002,
   2376 
   2377 
   2378   /**
   2379    * The product category is not known to the backend.
   2380    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2381    * (A value of 0 indicates that the error is generated client-side).
   2382    */
   2383   TALER_EC_MERCHANT_GENERIC_CATEGORY_UNKNOWN = 2003,
   2384 
   2385 
   2386   /**
   2387    * The proposal is not known to the backend.
   2388    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2389    * (A value of 0 indicates that the error is generated client-side).
   2390    */
   2391   TALER_EC_MERCHANT_GENERIC_ORDER_UNKNOWN = 2005,
   2392 
   2393 
   2394   /**
   2395    * 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.
   2396    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2397    * (A value of 0 indicates that the error is generated client-side).
   2398    */
   2399   TALER_EC_MERCHANT_GENERIC_PRODUCT_UNKNOWN = 2006,
   2400 
   2401 
   2402   /**
   2403    * The reward ID is unknown.  This could happen if the reward has expired.
   2404    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2405    * (A value of 0 indicates that the error is generated client-side).
   2406    */
   2407   TALER_EC_MERCHANT_GENERIC_REWARD_ID_UNKNOWN = 2007,
   2408 
   2409 
   2410   /**
   2411    * The contract obtained from the merchant backend was malformed.
   2412    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2413    * (A value of 0 indicates that the error is generated client-side).
   2414    */
   2415   TALER_EC_MERCHANT_GENERIC_DB_CONTRACT_CONTENT_INVALID = 2008,
   2416 
   2417 
   2418   /**
   2419    * The order we found does not match the provided contract hash.
   2420    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2421    * (A value of 0 indicates that the error is generated client-side).
   2422    */
   2423   TALER_EC_MERCHANT_GENERIC_CONTRACT_HASH_DOES_NOT_MATCH_ORDER = 2009,
   2424 
   2425 
   2426   /**
   2427    * The exchange failed to provide a valid response to the merchant's /keys request.
   2428    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2429    * (A value of 0 indicates that the error is generated client-side).
   2430    */
   2431   TALER_EC_MERCHANT_GENERIC_EXCHANGE_KEYS_FAILURE = 2010,
   2432 
   2433 
   2434   /**
   2435    * The exchange failed to respond to the merchant on time.
   2436    * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).
   2437    * (A value of 0 indicates that the error is generated client-side).
   2438    */
   2439   TALER_EC_MERCHANT_GENERIC_EXCHANGE_TIMEOUT = 2011,
   2440 
   2441 
   2442   /**
   2443    * The merchant failed to talk to the exchange.
   2444    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2445    * (A value of 0 indicates that the error is generated client-side).
   2446    */
   2447   TALER_EC_MERCHANT_GENERIC_EXCHANGE_CONNECT_FAILURE = 2012,
   2448 
   2449 
   2450   /**
   2451    * The exchange returned a maformed response.
   2452    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2453    * (A value of 0 indicates that the error is generated client-side).
   2454    */
   2455   TALER_EC_MERCHANT_GENERIC_EXCHANGE_REPLY_MALFORMED = 2013,
   2456 
   2457 
   2458   /**
   2459    * The exchange returned an unexpected response status.
   2460    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2461    * (A value of 0 indicates that the error is generated client-side).
   2462    */
   2463   TALER_EC_MERCHANT_GENERIC_EXCHANGE_UNEXPECTED_STATUS = 2014,
   2464 
   2465 
   2466   /**
   2467    * The merchant refused the request due to lack of authorization.
   2468    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
   2469    * (A value of 0 indicates that the error is generated client-side).
   2470    */
   2471   TALER_EC_MERCHANT_GENERIC_UNAUTHORIZED = 2015,
   2472 
   2473 
   2474   /**
   2475    * The merchant instance specified in the request was deleted.
   2476    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2477    * (A value of 0 indicates that the error is generated client-side).
   2478    */
   2479   TALER_EC_MERCHANT_GENERIC_INSTANCE_DELETED = 2016,
   2480 
   2481 
   2482   /**
   2483    * The backend could not find the inbound wire transfer specified in the request.
   2484    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2485    * (A value of 0 indicates that the error is generated client-side).
   2486    */
   2487   TALER_EC_MERCHANT_GENERIC_TRANSFER_UNKNOWN = 2017,
   2488 
   2489 
   2490   /**
   2491    * The backend could not find the template(id) because it is not exist.
   2492    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2493    * (A value of 0 indicates that the error is generated client-side).
   2494    */
   2495   TALER_EC_MERCHANT_GENERIC_TEMPLATE_UNKNOWN = 2018,
   2496 
   2497 
   2498   /**
   2499    * The backend could not find the webhook(id) because it is not exist.
   2500    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2501    * (A value of 0 indicates that the error is generated client-side).
   2502    */
   2503   TALER_EC_MERCHANT_GENERIC_WEBHOOK_UNKNOWN = 2019,
   2504 
   2505 
   2506   /**
   2507    * The backend could not find the webhook(serial) because it is not exist.
   2508    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2509    * (A value of 0 indicates that the error is generated client-side).
   2510    */
   2511   TALER_EC_MERCHANT_GENERIC_PENDING_WEBHOOK_UNKNOWN = 2020,
   2512 
   2513 
   2514   /**
   2515    * The backend could not find the OTP device(id) because it is not exist.
   2516    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2517    * (A value of 0 indicates that the error is generated client-side).
   2518    */
   2519   TALER_EC_MERCHANT_GENERIC_OTP_DEVICE_UNKNOWN = 2021,
   2520 
   2521 
   2522   /**
   2523    * The account is not known to the backend.
   2524    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2525    * (A value of 0 indicates that the error is generated client-side).
   2526    */
   2527   TALER_EC_MERCHANT_GENERIC_ACCOUNT_UNKNOWN = 2022,
   2528 
   2529 
   2530   /**
   2531    * The wire hash was malformed.
   2532    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2533    * (A value of 0 indicates that the error is generated client-side).
   2534    */
   2535   TALER_EC_MERCHANT_GENERIC_H_WIRE_MALFORMED = 2023,
   2536 
   2537 
   2538   /**
   2539    * The currency specified in the operation does not work with the current state of the given resource.
   2540    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2541    * (A value of 0 indicates that the error is generated client-side).
   2542    */
   2543   TALER_EC_MERCHANT_GENERIC_CURRENCY_MISMATCH = 2024,
   2544 
   2545 
   2546   /**
   2547    * The exchange specified in the operation is not trusted by this exchange. The client should limit its operation to exchanges enabled by the merchant, or ask the merchant to enable additional exchanges in the configuration.
   2548    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2549    * (A value of 0 indicates that the error is generated client-side).
   2550    */
   2551   TALER_EC_MERCHANT_GENERIC_EXCHANGE_UNTRUSTED = 2025,
   2552 
   2553 
   2554   /**
   2555    * The token family is not known to the backend.
   2556    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2557    * (A value of 0 indicates that the error is generated client-side).
   2558    */
   2559   TALER_EC_MERCHANT_GENERIC_TOKEN_FAMILY_UNKNOWN = 2026,
   2560 
   2561 
   2562   /**
   2563    * The token family key is not known to the backend. Check the local system time on the client, maybe an expired (or not yet valid) token was used.
   2564    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2565    * (A value of 0 indicates that the error is generated client-side).
   2566    */
   2567   TALER_EC_MERCHANT_GENERIC_TOKEN_KEY_UNKNOWN = 2027,
   2568 
   2569 
   2570   /**
   2571    * The merchant backend is not configured to support the DONAU protocol.
   2572    * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).
   2573    * (A value of 0 indicates that the error is generated client-side).
   2574    */
   2575   TALER_EC_MERCHANT_GENERIC_DONAU_NOT_CONFIGURED = 2028,
   2576 
   2577 
   2578   /**
   2579    * The public signing key given in the exchange response is not in the current keys response.  It is possible that the operation will succeed later after the merchant has downloaded an updated keys response.
   2580    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2581    * (A value of 0 indicates that the error is generated client-side).
   2582    */
   2583   TALER_EC_MERCHANT_EXCHANGE_SIGN_PUB_UNKNOWN = 2029,
   2584 
   2585 
   2586   /**
   2587    * The merchant backend does not support the requested feature.
   2588    * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).
   2589    * (A value of 0 indicates that the error is generated client-side).
   2590    */
   2591   TALER_EC_MERCHANT_GENERIC_FEATURE_NOT_AVAILABLE = 2030,
   2592 
   2593 
   2594   /**
   2595    * The exchange failed to provide a valid answer to the tracking request, thus those details are not in the response.
   2596    * Returned with an HTTP status code of #MHD_HTTP_OK (200).
   2597    * (A value of 0 indicates that the error is generated client-side).
   2598    */
   2599   TALER_EC_MERCHANT_GET_ORDERS_EXCHANGE_TRACKING_FAILURE = 2100,
   2600 
   2601 
   2602   /**
   2603    * The merchant backend failed to construct the request for tracking to the exchange, thus tracking details are not in the response.
   2604    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2605    * (A value of 0 indicates that the error is generated client-side).
   2606    */
   2607   TALER_EC_MERCHANT_GET_ORDERS_ID_EXCHANGE_REQUEST_FAILURE = 2103,
   2608 
   2609 
   2610   /**
   2611    * The merchant backend failed trying to contact the exchange for tracking details, thus those details are not in the response.
   2612    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2613    * (A value of 0 indicates that the error is generated client-side).
   2614    */
   2615   TALER_EC_MERCHANT_GET_ORDERS_ID_EXCHANGE_LOOKUP_START_FAILURE = 2104,
   2616 
   2617 
   2618   /**
   2619    * The claim token used to authenticate the client is invalid for this order.
   2620    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2621    * (A value of 0 indicates that the error is generated client-side).
   2622    */
   2623   TALER_EC_MERCHANT_GET_ORDERS_ID_INVALID_TOKEN = 2105,
   2624 
   2625 
   2626   /**
   2627    * The contract terms hash used to authenticate the client is invalid for this order.
   2628    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2629    * (A value of 0 indicates that the error is generated client-side).
   2630    */
   2631   TALER_EC_MERCHANT_GET_ORDERS_ID_INVALID_CONTRACT_HASH = 2106,
   2632 
   2633 
   2634   /**
   2635    * The contract terms version is not invalid.
   2636    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2637    * (A value of 0 indicates that the error is generated client-side).
   2638    */
   2639   TALER_EC_MERCHANT_GET_ORDERS_ID_INVALID_CONTRACT_VERSION = 2107,
   2640 
   2641 
   2642   /**
   2643    * The provided TAN code is invalid for this challenge.
   2644    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2645    * (A value of 0 indicates that the error is generated client-side).
   2646    */
   2647   TALER_EC_MERCHANT_TAN_CHALLENGE_FAILED = 2125,
   2648 
   2649 
   2650   /**
   2651    * The backend is not aware of the specified MFA challenge.
   2652    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   2653    * (A value of 0 indicates that the error is generated client-side).
   2654    */
   2655   TALER_EC_MERCHANT_TAN_CHALLENGE_UNKNOWN = 2126,
   2656 
   2657 
   2658   /**
   2659    * There have been too many attempts to solve the challenge. A new TAN must be requested.
   2660    * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).
   2661    * (A value of 0 indicates that the error is generated client-side).
   2662    */
   2663   TALER_EC_MERCHANT_TAN_TOO_MANY_ATTEMPTS = 2127,
   2664 
   2665 
   2666   /**
   2667    * The backend failed to launch a helper process required for the multi-factor authentication step. The backend operator should check the logs and fix the Taler merchant backend configuration.
   2668    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2669    * (A value of 0 indicates that the error is generated client-side).
   2670    */
   2671   TALER_EC_MERCHANT_TAN_MFA_HELPER_EXEC_FAILED = 2128,
   2672 
   2673 
   2674   /**
   2675    * The challenge was already solved. Thus, we refuse to send it again.
   2676    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   2677    * (A value of 0 indicates that the error is generated client-side).
   2678    */
   2679   TALER_EC_MERCHANT_TAN_CHALLENGE_SOLVED = 2129,
   2680 
   2681 
   2682   /**
   2683    * It is too early to request another transmission of the challenge. The client should wait and see if they received the previous challenge.
   2684    * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).
   2685    * (A value of 0 indicates that the error is generated client-side).
   2686    */
   2687   TALER_EC_MERCHANT_TAN_TOO_EARLY = 2130,
   2688 
   2689 
   2690   /**
   2691    * There have been too many attempts to solve MFA. The client may attempt again in the future.
   2692    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2693    * (A value of 0 indicates that the error is generated client-side).
   2694    */
   2695   TALER_EC_MERCHANT_MFA_FORBIDDEN = 2131,
   2696 
   2697 
   2698   /**
   2699    * The exchange responded saying that funds were insufficient (for example, due to double-spending).
   2700    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2701    * (A value of 0 indicates that the error is generated client-side).
   2702    */
   2703   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_FUNDS = 2150,
   2704 
   2705 
   2706   /**
   2707    * The denomination key used for payment is not listed among the denomination keys of the exchange.
   2708    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2709    * (A value of 0 indicates that the error is generated client-side).
   2710    */
   2711   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_NOT_FOUND = 2151,
   2712 
   2713 
   2714   /**
   2715    * The denomination key used for payment is not audited by an auditor approved by the merchant.
   2716    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2717    * (A value of 0 indicates that the error is generated client-side).
   2718    */
   2719   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_KEY_AUDITOR_FAILURE = 2152,
   2720 
   2721 
   2722   /**
   2723    * There was an integer overflow totaling up the amounts or deposit fees in the payment.
   2724    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2725    * (A value of 0 indicates that the error is generated client-side).
   2726    */
   2727   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_AMOUNT_OVERFLOW = 2153,
   2728 
   2729 
   2730   /**
   2731    * The deposit fees exceed the total value of the payment.
   2732    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2733    * (A value of 0 indicates that the error is generated client-side).
   2734    */
   2735   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_FEES_EXCEED_PAYMENT = 2154,
   2736 
   2737 
   2738   /**
   2739    * 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.
   2740    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2741    * (A value of 0 indicates that the error is generated client-side).
   2742    */
   2743   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_INSUFFICIENT_DUE_TO_FEES = 2155,
   2744 
   2745 
   2746   /**
   2747    * Even if we do not consider deposit and wire fees, the payment is insufficient to satisfy the required amount for the contract.
   2748    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2749    * (A value of 0 indicates that the error is generated client-side).
   2750    */
   2751   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_PAYMENT_INSUFFICIENT = 2156,
   2752 
   2753 
   2754   /**
   2755    * The signature over the contract of one of the coins was invalid.
   2756    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2757    * (A value of 0 indicates that the error is generated client-side).
   2758    */
   2759   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_COIN_SIGNATURE_INVALID = 2157,
   2760 
   2761 
   2762   /**
   2763    * 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.
   2764    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2765    * (A value of 0 indicates that the error is generated client-side).
   2766    */
   2767   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_LOOKUP_FAILED = 2158,
   2768 
   2769 
   2770   /**
   2771    * The refund deadline in the contract is after the transfer deadline.
   2772    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2773    * (A value of 0 indicates that the error is generated client-side).
   2774    */
   2775   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_REFUND_DEADLINE_PAST_WIRE_TRANSFER_DEADLINE
   2776     = 2159,
   2777 
   2778 
   2779   /**
   2780    * The order was already paid (maybe by another wallet).
   2781    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2782    * (A value of 0 indicates that the error is generated client-side).
   2783    */
   2784   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_ALREADY_PAID = 2160,
   2785 
   2786 
   2787   /**
   2788    * The payment is too late, the offer has expired.
   2789    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   2790    * (A value of 0 indicates that the error is generated client-side).
   2791    */
   2792   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_OFFER_EXPIRED = 2161,
   2793 
   2794 
   2795   /**
   2796    * 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.
   2797    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2798    * (A value of 0 indicates that the error is generated client-side).
   2799    */
   2800   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_MERCHANT_FIELD_MISSING = 2162,
   2801 
   2802 
   2803   /**
   2804    * Failed to locate merchant's account information matching the wire hash given in the proposal.
   2805    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2806    * (A value of 0 indicates that the error is generated client-side).
   2807    */
   2808   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_WIRE_HASH_UNKNOWN = 2163,
   2809 
   2810 
   2811   /**
   2812    * The deposit time for the denomination has expired.
   2813    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   2814    * (A value of 0 indicates that the error is generated client-side).
   2815    */
   2816   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_DENOMINATION_DEPOSIT_EXPIRED = 2165,
   2817 
   2818 
   2819   /**
   2820    * The exchange of the deposited coin charges a wire fee that could not be added to the total (total amount too high).
   2821    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2822    * (A value of 0 indicates that the error is generated client-side).
   2823    */
   2824   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_WIRE_FEE_ADDITION_FAILED = 2166,
   2825 
   2826 
   2827   /**
   2828    * 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.
   2829    * Returned with an HTTP status code of #MHD_HTTP_PAYMENT_REQUIRED (402).
   2830    * (A value of 0 indicates that the error is generated client-side).
   2831    */
   2832   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_REFUNDED = 2167,
   2833 
   2834 
   2835   /**
   2836    * According to our database, we have refunded more than we were paid (which should not be possible).
   2837    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   2838    * (A value of 0 indicates that the error is generated client-side).
   2839    */
   2840   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_REFUNDS_EXCEED_PAYMENTS = 2168,
   2841 
   2842 
   2843   /**
   2844    * Legacy stuff. Remove me with protocol v1.
   2845    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   2846    * (A value of 0 indicates that the error is generated client-side).
   2847    */
   2848   TALER_EC_DEAD_QQQ_PAY_MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE
   2849     = 2169,
   2850 
   2851 
   2852   /**
   2853    * The payment failed at the exchange.
   2854    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   2855    * (A value of 0 indicates that the error is generated client-side).
   2856    */
   2857   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_FAILED = 2170,
   2858 
   2859 
   2860   /**
   2861    * 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.
   2862    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2863    * (A value of 0 indicates that the error is generated client-side).
   2864    */
   2865   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_MISSING = 2171,
   2866 
   2867 
   2868   /**
   2869    * 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.
   2870    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2871    * (A value of 0 indicates that the error is generated client-side).
   2872    */
   2873   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_SIZE_MISMATCH = 2172,
   2874 
   2875 
   2876   /**
   2877    * 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.
   2878    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2879    * (A value of 0 indicates that the error is generated client-side).
   2880    */
   2881   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_AGE_VERIFICATION_FAILED = 2173,
   2882 
   2883 
   2884   /**
   2885    * 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.
   2886    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2887    * (A value of 0 indicates that the error is generated client-side).
   2888    */
   2889   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_AGE_COMMITMENT_HASH_MISSING = 2174,
   2890 
   2891 
   2892   /**
   2893    * 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.
   2894    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2895    * (A value of 0 indicates that the error is generated client-side).
   2896    */
   2897   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_WIRE_METHOD_UNSUPPORTED = 2175,
   2898 
   2899 
   2900   /**
   2901    * The payment requires the wallet to select a choice from the choices array and pass it in the 'choice_index' field of the request.
   2902    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2903    * (A value of 0 indicates that the error is generated client-side).
   2904    */
   2905   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_CHOICE_INDEX_MISSING = 2176,
   2906 
   2907 
   2908   /**
   2909    * The 'choice_index' field is invalid.
   2910    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2911    * (A value of 0 indicates that the error is generated client-side).
   2912    */
   2913   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_CHOICE_INDEX_OUT_OF_BOUNDS = 2177,
   2914 
   2915 
   2916   /**
   2917    * The provided 'tokens' array does not match with the required input tokens of the order.
   2918    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2919    * (A value of 0 indicates that the error is generated client-side).
   2920    */
   2921   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_INPUT_TOKENS_MISMATCH = 2178,
   2922 
   2923 
   2924   /**
   2925    * Invalid token issue signature (blindly signed by merchant) for provided token.
   2926    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2927    * (A value of 0 indicates that the error is generated client-side).
   2928    */
   2929   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_TOKEN_ISSUE_SIG_INVALID = 2179,
   2930 
   2931 
   2932   /**
   2933    * Invalid token use signature (EdDSA, signed by wallet) for provided token.
   2934    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2935    * (A value of 0 indicates that the error is generated client-side).
   2936    */
   2937   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_TOKEN_USE_SIG_INVALID = 2180,
   2938 
   2939 
   2940   /**
   2941    * The provided number of tokens does not match the required number.
   2942    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2943    * (A value of 0 indicates that the error is generated client-side).
   2944    */
   2945   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_TOKEN_COUNT_MISMATCH = 2181,
   2946 
   2947 
   2948   /**
   2949    * The provided number of token envelopes does not match the specified number.
   2950    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2951    * (A value of 0 indicates that the error is generated client-side).
   2952    */
   2953   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_TOKEN_ENVELOPE_COUNT_MISMATCH = 2182,
   2954 
   2955 
   2956   /**
   2957    * Invalid token because it was already used, is expired or not yet valid.
   2958    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2959    * (A value of 0 indicates that the error is generated client-side).
   2960    */
   2961   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_TOKEN_INVALID = 2183,
   2962 
   2963 
   2964   /**
   2965    * The payment violates a transaction limit configured at the given exchange. The wallet has a bug in that it failed to check exchange limits during coin selection. Please report the bug to your wallet developer.
   2966    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2967    * (A value of 0 indicates that the error is generated client-side).
   2968    */
   2969   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_TRANSACTION_LIMIT_VIOLATION =
   2970     2184,
   2971 
   2972 
   2973   /**
   2974    * The donation amount provided in the BKPS does not match the amount of the order choice.
   2975    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   2976    * (A value of 0 indicates that the error is generated client-side).
   2977    */
   2978   TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_DONATION_AMOUNT_MISMATCH = 2185,
   2979 
   2980 
   2981   /**
   2982    * The contract hash does not match the given order ID.
   2983    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   2984    * (A value of 0 indicates that the error is generated client-side).
   2985    */
   2986   TALER_EC_MERCHANT_POST_ORDERS_ID_PAID_CONTRACT_HASH_MISMATCH = 2200,
   2987 
   2988 
   2989   /**
   2990    * The signature of the merchant is not valid for the given contract hash.
   2991    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   2992    * (A value of 0 indicates that the error is generated client-side).
   2993    */
   2994   TALER_EC_MERCHANT_POST_ORDERS_ID_PAID_COIN_SIGNATURE_INVALID = 2201,
   2995 
   2996 
   2997   /**
   2998    * A token family with this ID but conflicting data exists.
   2999    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3000    * (A value of 0 indicates that the error is generated client-side).
   3001    */
   3002   TALER_EC_MERCHANT_POST_TOKEN_FAMILY_CONFLICT = 2225,
   3003 
   3004 
   3005   /**
   3006    * The backend is unaware of a token family with the given ID.
   3007    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3008    * (A value of 0 indicates that the error is generated client-side).
   3009    */
   3010   TALER_EC_MERCHANT_PATCH_TOKEN_FAMILY_NOT_FOUND = 2226,
   3011 
   3012 
   3013   /**
   3014    * The merchant failed to send the exchange the refund request.
   3015    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   3016    * (A value of 0 indicates that the error is generated client-side).
   3017    */
   3018   TALER_EC_MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_REFUND_FAILED = 2251,
   3019 
   3020 
   3021   /**
   3022    * The merchant failed to find the exchange to process the lookup.
   3023    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   3024    * (A value of 0 indicates that the error is generated client-side).
   3025    */
   3026   TALER_EC_MERCHANT_POST_ORDERS_ID_ABORT_EXCHANGE_LOOKUP_FAILED = 2252,
   3027 
   3028 
   3029   /**
   3030    * The merchant could not find the contract.
   3031    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3032    * (A value of 0 indicates that the error is generated client-side).
   3033    */
   3034   TALER_EC_MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_NOT_FOUND = 2253,
   3035 
   3036 
   3037   /**
   3038    * The payment was already completed and thus cannot be aborted anymore.
   3039    * Returned with an HTTP status code of #MHD_HTTP_PRECONDITION_FAILED (412).
   3040    * (A value of 0 indicates that the error is generated client-side).
   3041    */
   3042   TALER_EC_MERCHANT_POST_ORDERS_ID_ABORT_REFUND_REFUSED_PAYMENT_COMPLETE = 2254,
   3043 
   3044 
   3045   /**
   3046    * The hash provided by the wallet does not match the order.
   3047    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   3048    * (A value of 0 indicates that the error is generated client-side).
   3049    */
   3050   TALER_EC_MERCHANT_POST_ORDERS_ID_ABORT_CONTRACT_HASH_MISSMATCH = 2255,
   3051 
   3052 
   3053   /**
   3054    * The array of coins cannot be empty.
   3055    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3056    * (A value of 0 indicates that the error is generated client-side).
   3057    */
   3058   TALER_EC_MERCHANT_POST_ORDERS_ID_ABORT_COINS_ARRAY_EMPTY = 2256,
   3059 
   3060 
   3061   /**
   3062    * We are waiting for the exchange to provide us with key material before checking the wire transfer.
   3063    * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).
   3064    * (A value of 0 indicates that the error is generated client-side).
   3065    */
   3066   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_AWAITING_KEYS = 2258,
   3067 
   3068 
   3069   /**
   3070    * We are waiting for the exchange to provide us with the list of aggregated transactions.
   3071    * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).
   3072    * (A value of 0 indicates that the error is generated client-side).
   3073    */
   3074   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_AWAITING_LIST = 2259,
   3075 
   3076 
   3077   /**
   3078    * The endpoint indicated in the wire transfer does not belong to a GNU Taler exchange.
   3079    * Returned with an HTTP status code of #MHD_HTTP_OK (200).
   3080    * (A value of 0 indicates that the error is generated client-side).
   3081    */
   3082   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_FATAL_NO_EXCHANGE = 2260,
   3083 
   3084 
   3085   /**
   3086    * The exchange indicated in the wire transfer claims to know nothing about the wire transfer.
   3087    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3088    * (A value of 0 indicates that the error is generated client-side).
   3089    */
   3090   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_FATAL_NOT_FOUND = 2261,
   3091 
   3092 
   3093   /**
   3094    * The interaction with the exchange is delayed due to rate limiting.
   3095    * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).
   3096    * (A value of 0 indicates that the error is generated client-side).
   3097    */
   3098   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_RATE_LIMITED = 2262,
   3099 
   3100 
   3101   /**
   3102    * We experienced a transient failure in our interaction with the exchange.
   3103    * Returned with an HTTP status code of #MHD_HTTP_ACCEPTED (202).
   3104    * (A value of 0 indicates that the error is generated client-side).
   3105    */
   3106   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_TRANSIENT_FAILURE = 2263,
   3107 
   3108 
   3109   /**
   3110    * The response from the exchange was unacceptable and should be reviewed with an auditor.
   3111    * Returned with an HTTP status code of #MHD_HTTP_OK (200).
   3112    * (A value of 0 indicates that the error is generated client-side).
   3113    */
   3114   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_HARD_FAILURE = 2264,
   3115 
   3116 
   3117   /**
   3118    * We could not claim the order because the backend is unaware of it.
   3119    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3120    * (A value of 0 indicates that the error is generated client-side).
   3121    */
   3122   TALER_EC_MERCHANT_POST_ORDERS_ID_CLAIM_NOT_FOUND = 2300,
   3123 
   3124 
   3125   /**
   3126    * We could not claim the order because someone else claimed it first.
   3127    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3128    * (A value of 0 indicates that the error is generated client-side).
   3129    */
   3130   TALER_EC_MERCHANT_POST_ORDERS_ID_CLAIM_ALREADY_CLAIMED = 2301,
   3131 
   3132 
   3133   /**
   3134    * The client-side experienced an internal failure.
   3135    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3136    * (A value of 0 indicates that the error is generated client-side).
   3137    */
   3138   TALER_EC_MERCHANT_POST_ORDERS_ID_CLAIM_CLIENT_INTERNAL_FAILURE = 2302,
   3139 
   3140 
   3141   /**
   3142    * The backend failed to sign the refund request.
   3143    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3144    * (A value of 0 indicates that the error is generated client-side).
   3145    */
   3146   TALER_EC_MERCHANT_POST_ORDERS_ID_REFUND_SIGNATURE_FAILED = 2350,
   3147 
   3148 
   3149   /**
   3150    * The client failed to unblind the signature returned by the merchant.
   3151    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3152    * (A value of 0 indicates that the error is generated client-side).
   3153    */
   3154   TALER_EC_MERCHANT_REWARD_PICKUP_UNBLIND_FAILURE = 2400,
   3155 
   3156 
   3157   /**
   3158    * The exchange returned a failure code for the withdraw operation.
   3159    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   3160    * (A value of 0 indicates that the error is generated client-side).
   3161    */
   3162   TALER_EC_MERCHANT_REWARD_PICKUP_EXCHANGE_ERROR = 2403,
   3163 
   3164 
   3165   /**
   3166    * The merchant failed to add up the amounts to compute the pick up value.
   3167    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   3168    * (A value of 0 indicates that the error is generated client-side).
   3169    */
   3170   TALER_EC_MERCHANT_REWARD_PICKUP_SUMMATION_FAILED = 2404,
   3171 
   3172 
   3173   /**
   3174    * The reward expired.
   3175    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   3176    * (A value of 0 indicates that the error is generated client-side).
   3177    */
   3178   TALER_EC_MERCHANT_REWARD_PICKUP_HAS_EXPIRED = 2405,
   3179 
   3180 
   3181   /**
   3182    * The requested withdraw amount exceeds the amount remaining to be picked up.
   3183    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3184    * (A value of 0 indicates that the error is generated client-side).
   3185    */
   3186   TALER_EC_MERCHANT_REWARD_PICKUP_AMOUNT_EXCEEDS_REWARD_REMAINING = 2406,
   3187 
   3188 
   3189   /**
   3190    * The merchant did not find the specified denomination key in the exchange's key set.
   3191    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3192    * (A value of 0 indicates that the error is generated client-side).
   3193    */
   3194   TALER_EC_MERCHANT_REWARD_PICKUP_DENOMINATION_UNKNOWN = 2407,
   3195 
   3196 
   3197   /**
   3198    * The merchant instance has no active bank accounts configured. However, at least one bank account must be available to create new orders.
   3199    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3200    * (A value of 0 indicates that the error is generated client-side).
   3201    */
   3202   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_INSTANCE_CONFIGURATION_LACKS_WIRE = 2500
   3203   ,
   3204 
   3205 
   3206   /**
   3207    * The proposal had no timestamp and the merchant backend failed to obtain the current local time.
   3208    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   3209    * (A value of 0 indicates that the error is generated client-side).
   3210    */
   3211   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_NO_LOCALTIME = 2501,
   3212 
   3213 
   3214   /**
   3215    * The order provided to the backend could not be parsed; likely some required fields were missing or ill-formed.
   3216    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3217    * (A value of 0 indicates that the error is generated client-side).
   3218    */
   3219   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_PROPOSAL_PARSE_ERROR = 2502,
   3220 
   3221 
   3222   /**
   3223    * A conflicting order (sharing the same order identifier) already exists at this merchant backend instance.
   3224    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3225    * (A value of 0 indicates that the error is generated client-side).
   3226    */
   3227   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_ALREADY_EXISTS = 2503,
   3228 
   3229 
   3230   /**
   3231    * The order creation request is invalid because the given wire deadline is before the refund deadline.
   3232    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3233    * (A value of 0 indicates that the error is generated client-side).
   3234    */
   3235   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_REFUND_AFTER_WIRE_DEADLINE = 2504,
   3236 
   3237 
   3238   /**
   3239    * The order creation request is invalid because the delivery date given is in the past.
   3240    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3241    * (A value of 0 indicates that the error is generated client-side).
   3242    */
   3243   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_DELIVERY_DATE_IN_PAST = 2505,
   3244 
   3245 
   3246   /**
   3247    * The order creation request is invalid because a wire deadline of "never" is not allowed.
   3248    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3249    * (A value of 0 indicates that the error is generated client-side).
   3250    */
   3251   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_WIRE_DEADLINE_IS_NEVER = 2506,
   3252 
   3253 
   3254   /**
   3255    * The order creation request is invalid because the given payment deadline is in the past.
   3256    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3257    * (A value of 0 indicates that the error is generated client-side).
   3258    */
   3259   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_PAY_DEADLINE_IN_PAST = 2507,
   3260 
   3261 
   3262   /**
   3263    * The order creation request is invalid because the given refund deadline is in the past.
   3264    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3265    * (A value of 0 indicates that the error is generated client-side).
   3266    */
   3267   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_REFUND_DEADLINE_IN_PAST = 2508,
   3268 
   3269 
   3270   /**
   3271    * 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.) One likely cause for this is that the taler-merchant-exchangekeyupdate process is not running.
   3272    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3273    * (A value of 0 indicates that the error is generated client-side).
   3274    */
   3275   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_NO_EXCHANGES_FOR_WIRE_METHOD = 2509,
   3276 
   3277 
   3278   /**
   3279    * One of the paths to forget is malformed.
   3280    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3281    * (A value of 0 indicates that the error is generated client-side).
   3282    */
   3283   TALER_EC_MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_SYNTAX_INCORRECT = 2510,
   3284 
   3285 
   3286   /**
   3287    * One of the paths to forget was not marked as forgettable.
   3288    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3289    * (A value of 0 indicates that the error is generated client-side).
   3290    */
   3291   TALER_EC_MERCHANT_PRIVATE_PATCH_ORDERS_ID_FORGET_PATH_NOT_FORGETTABLE = 2511,
   3292 
   3293 
   3294   /**
   3295    * The refund amount would violate a refund transaction limit configured at the given exchange. Please find another way to refund the customer, and inquire with your legislator why they make strange banking regulations.
   3296    * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).
   3297    * (A value of 0 indicates that the error is generated client-side).
   3298    */
   3299   TALER_EC_MERCHANT_POST_ORDERS_ID_REFUND_EXCHANGE_TRANSACTION_LIMIT_VIOLATION =
   3300     2512,
   3301 
   3302 
   3303   /**
   3304    * The total order amount exceeds hard legal transaction limits from the available exchanges, thus a customer could never legally make this payment. You may try to increase your limits by passing legitimization checks with exchange operators. You could also inquire with your legislator why the limits are prohibitively low for your business.
   3305    * Returned with an HTTP status code of #MHD_HTTP_UNAVAILABLE_FOR_LEGAL_REASONS (451).
   3306    * (A value of 0 indicates that the error is generated client-side).
   3307    */
   3308   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_AMOUNT_EXCEEDS_LEGAL_LIMITS = 2513,
   3309 
   3310 
   3311   /**
   3312    * A currency specified to be paid in the contract is not supported by any exchange that this instance can currently use. Possible solutions include (1) specifying a different currency, (2) adding additional suitable exchange operators to the merchant backend configuration, or (3) satisfying compliance rules of an configured exchange to begin using the service of that provider.
   3313    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3314    * (A value of 0 indicates that the error is generated client-side).
   3315    */
   3316   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_NO_EXCHANGE_FOR_CURRENCY = 2514,
   3317 
   3318 
   3319   /**
   3320    * 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.
   3321    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3322    * (A value of 0 indicates that the error is generated client-side).
   3323    */
   3324   TALER_EC_MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT = 2520,
   3325 
   3326 
   3327   /**
   3328    * The order provided to the backend could not be deleted as the order was already paid.
   3329    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3330    * (A value of 0 indicates that the error is generated client-side).
   3331    */
   3332   TALER_EC_MERCHANT_PRIVATE_DELETE_ORDERS_ALREADY_PAID = 2521,
   3333 
   3334 
   3335   /**
   3336    * 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.
   3337    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3338    * (A value of 0 indicates that the error is generated client-side).
   3339    */
   3340   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_INCONSISTENT_AMOUNT = 2530,
   3341 
   3342 
   3343   /**
   3344    * Only paid orders can be refunded, and the frontend specified an unpaid order to issue a refund for.
   3345    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3346    * (A value of 0 indicates that the error is generated client-side).
   3347    */
   3348   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_ORDER_UNPAID = 2531,
   3349 
   3350 
   3351   /**
   3352    * The refund delay was set to 0 and thus no refunds are ever allowed for this order.
   3353    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   3354    * (A value of 0 indicates that the error is generated client-side).
   3355    */
   3356   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_ID_REFUND_NOT_ALLOWED_BY_CONTRACT = 2532
   3357   ,
   3358 
   3359 
   3360   /**
   3361    * The token family slug provided in this order could not be found in the merchant database.
   3362    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3363    * (A value of 0 indicates that the error is generated client-side).
   3364    */
   3365   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_TOKEN_FAMILY_SLUG_UNKNOWN = 2533,
   3366 
   3367 
   3368   /**
   3369    * A token family referenced in this order is either expired or not valid yet.
   3370    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3371    * (A value of 0 indicates that the error is generated client-side).
   3372    */
   3373   TALER_EC_MERCHANT_PRIVATE_POST_ORDERS_TOKEN_FAMILY_NOT_VALID = 2534,
   3374 
   3375 
   3376   /**
   3377    * The exchange says it does not know this transfer.
   3378    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   3379    * (A value of 0 indicates that the error is generated client-side).
   3380    */
   3381   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_EXCHANGE_UNKNOWN = 2550,
   3382 
   3383 
   3384   /**
   3385    * We internally failed to execute the /track/transfer request.
   3386    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   3387    * (A value of 0 indicates that the error is generated client-side).
   3388    */
   3389   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_REQUEST_ERROR = 2551,
   3390 
   3391 
   3392   /**
   3393    * The amount transferred differs between what was submitted and what the exchange claimed.
   3394    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3395    * (A value of 0 indicates that the error is generated client-side).
   3396    */
   3397   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_TRANSFERS = 2552,
   3398 
   3399 
   3400   /**
   3401    * The exchange gave conflicting information about a coin which has been wire transferred.
   3402    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3403    * (A value of 0 indicates that the error is generated client-side).
   3404    */
   3405   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_REPORTS = 2553,
   3406 
   3407 
   3408   /**
   3409    * The exchange charged a different wire fee than what it originally advertised, and it is higher.
   3410    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   3411    * (A value of 0 indicates that the error is generated client-side).
   3412    */
   3413   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_BAD_WIRE_FEE = 2554,
   3414 
   3415 
   3416   /**
   3417    * We did not find the account that the transfer was made to.
   3418    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3419    * (A value of 0 indicates that the error is generated client-side).
   3420    */
   3421   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_ACCOUNT_NOT_FOUND = 2555,
   3422 
   3423 
   3424   /**
   3425    * The backend could not delete the transfer as the echange already replied to our inquiry about it and we have integrated the result.
   3426    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3427    * (A value of 0 indicates that the error is generated client-side).
   3428    */
   3429   TALER_EC_MERCHANT_PRIVATE_DELETE_TRANSFERS_ALREADY_CONFIRMED = 2556,
   3430 
   3431 
   3432   /**
   3433    * The backend could not persist the wire transfer due to the state of the backend. This usually means that the bank account specified is not known to the backend for this instance.
   3434    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3435    * (A value of 0 indicates that the error is generated client-side).
   3436    */
   3437   TALER_EC_MERCHANT_PRIVATE_POST_TRANSFERS_CONFLICTING_SUBMISSION = 2557,
   3438 
   3439 
   3440   /**
   3441    * The target bank account given by the exchange is not (or no longer) known at the merchant instance.
   3442    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3443    * (A value of 0 indicates that the error is generated client-side).
   3444    */
   3445   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_TARGET_ACCOUNT_UNKNOWN = 2558,
   3446 
   3447 
   3448   /**
   3449    * The amount transferred differs between what was submitted and what the exchange claimed.
   3450    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3451    * (A value of 0 indicates that the error is generated client-side).
   3452    */
   3453   TALER_EC_MERCHANT_EXCHANGE_TRANSFERS_CONFLICTING_TRANSFERS = 2563,
   3454 
   3455 
   3456   /**
   3457    * The merchant backend cannot create an instance under the given identifier as one already exists. Use PATCH to modify the existing entry.
   3458    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3459    * (A value of 0 indicates that the error is generated client-side).
   3460    */
   3461   TALER_EC_MERCHANT_PRIVATE_POST_INSTANCES_ALREADY_EXISTS = 2600,
   3462 
   3463 
   3464   /**
   3465    * The merchant backend cannot create an instance because the authentication configuration field is malformed.
   3466    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3467    * (A value of 0 indicates that the error is generated client-side).
   3468    */
   3469   TALER_EC_MERCHANT_PRIVATE_POST_INSTANCES_BAD_AUTH = 2601,
   3470 
   3471 
   3472   /**
   3473    * The merchant backend cannot update an instance's authentication settings because the provided authentication settings are malformed.
   3474    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3475    * (A value of 0 indicates that the error is generated client-side).
   3476    */
   3477   TALER_EC_MERCHANT_PRIVATE_POST_INSTANCE_AUTH_BAD_AUTH = 2602,
   3478 
   3479 
   3480   /**
   3481    * The merchant backend cannot create an instance under the given identifier, the previous one was deleted but must be purged first.
   3482    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3483    * (A value of 0 indicates that the error is generated client-side).
   3484    */
   3485   TALER_EC_MERCHANT_PRIVATE_POST_INSTANCES_PURGE_REQUIRED = 2603,
   3486 
   3487 
   3488   /**
   3489    * The merchant backend cannot update an instance under the given identifier, the previous one was deleted but must be purged first.
   3490    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3491    * (A value of 0 indicates that the error is generated client-side).
   3492    */
   3493   TALER_EC_MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED = 2625,
   3494 
   3495 
   3496   /**
   3497    * The bank account referenced in the requested operation was not found.
   3498    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3499    * (A value of 0 indicates that the error is generated client-side).
   3500    */
   3501   TALER_EC_MERCHANT_PRIVATE_ACCOUNT_DELETE_UNKNOWN_ACCOUNT = 2626,
   3502 
   3503 
   3504   /**
   3505    * The bank account specified in the request already exists at the merchant.
   3506    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3507    * (A value of 0 indicates that the error is generated client-side).
   3508    */
   3509   TALER_EC_MERCHANT_PRIVATE_ACCOUNT_EXISTS = 2627,
   3510 
   3511 
   3512   /**
   3513    * The product ID exists.
   3514    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3515    * (A value of 0 indicates that the error is generated client-side).
   3516    */
   3517   TALER_EC_MERCHANT_PRIVATE_POST_PRODUCTS_CONFLICT_PRODUCT_EXISTS = 2650,
   3518 
   3519 
   3520   /**
   3521    * A category with the same name exists already.
   3522    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3523    * (A value of 0 indicates that the error is generated client-side).
   3524    */
   3525   TALER_EC_MERCHANT_PRIVATE_POST_CATEGORIES_CONFLICT_CATEGORY_EXISTS = 2651,
   3526 
   3527 
   3528   /**
   3529    * The update would have reduced the total amount of product lost, which is not allowed.
   3530    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3531    * (A value of 0 indicates that the error is generated client-side).
   3532    */
   3533   TALER_EC_MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_REDUCED = 2660,
   3534 
   3535 
   3536   /**
   3537    * The update would have mean that more stocks were lost than what remains from total inventory after sales, which is not allowed.
   3538    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3539    * (A value of 0 indicates that the error is generated client-side).
   3540    */
   3541   TALER_EC_MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_LOST_EXCEEDS_STOCKS = 2661,
   3542 
   3543 
   3544   /**
   3545    * The update would have reduced the total amount of product in stock, which is not allowed.
   3546    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3547    * (A value of 0 indicates that the error is generated client-side).
   3548    */
   3549   TALER_EC_MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_STOCKED_REDUCED = 2662,
   3550 
   3551 
   3552   /**
   3553    * The update would have reduced the total amount of product sold, which is not allowed.
   3554    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3555    * (A value of 0 indicates that the error is generated client-side).
   3556    */
   3557   TALER_EC_MERCHANT_PRIVATE_PATCH_PRODUCTS_TOTAL_SOLD_REDUCED = 2663,
   3558 
   3559 
   3560   /**
   3561    * The lock request is for more products than we have left (unlocked) in stock.
   3562    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   3563    * (A value of 0 indicates that the error is generated client-side).
   3564    */
   3565   TALER_EC_MERCHANT_PRIVATE_POST_PRODUCTS_LOCK_INSUFFICIENT_STOCKS = 2670,
   3566 
   3567 
   3568   /**
   3569    * The deletion request is for a product that is locked.
   3570    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3571    * (A value of 0 indicates that the error is generated client-side).
   3572    */
   3573   TALER_EC_MERCHANT_PRIVATE_DELETE_PRODUCTS_CONFLICTING_LOCK = 2680,
   3574 
   3575 
   3576   /**
   3577    * The requested wire method is not supported by the exchange.
   3578    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3579    * (A value of 0 indicates that the error is generated client-side).
   3580    */
   3581   TALER_EC_MERCHANT_PRIVATE_POST_RESERVES_UNSUPPORTED_WIRE_METHOD = 2700,
   3582 
   3583 
   3584   /**
   3585    * The requested exchange does not allow rewards.
   3586    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3587    * (A value of 0 indicates that the error is generated client-side).
   3588    */
   3589   TALER_EC_MERCHANT_PRIVATE_POST_RESERVES_REWARDS_NOT_ALLOWED = 2701,
   3590 
   3591 
   3592   /**
   3593    * The reserve could not be deleted because it is unknown.
   3594    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3595    * (A value of 0 indicates that the error is generated client-side).
   3596    */
   3597   TALER_EC_MERCHANT_PRIVATE_DELETE_RESERVES_NO_SUCH_RESERVE = 2710,
   3598 
   3599 
   3600   /**
   3601    * The reserve that was used to fund the rewards has expired.
   3602    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   3603    * (A value of 0 indicates that the error is generated client-side).
   3604    */
   3605   TALER_EC_MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_EXPIRED = 2750,
   3606 
   3607 
   3608   /**
   3609    * The reserve that was used to fund the rewards was not found in the DB.
   3610    * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).
   3611    * (A value of 0 indicates that the error is generated client-side).
   3612    */
   3613   TALER_EC_MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_UNKNOWN = 2751,
   3614 
   3615 
   3616   /**
   3617    * 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.
   3618    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   3619    * (A value of 0 indicates that the error is generated client-side).
   3620    */
   3621   TALER_EC_MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_INSUFFICIENT_FUNDS = 2752,
   3622 
   3623 
   3624   /**
   3625    * The backend failed to find a reserve needed to authorize the reward.
   3626    * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).
   3627    * (A value of 0 indicates that the error is generated client-side).
   3628    */
   3629   TALER_EC_MERCHANT_PRIVATE_POST_REWARD_AUTHORIZE_RESERVE_NOT_FOUND = 2753,
   3630 
   3631 
   3632   /**
   3633    * The merchant backend encountered a failure in computing the deposit total.
   3634    * Returned with an HTTP status code of #MHD_HTTP_OK (200).
   3635    * (A value of 0 indicates that the error is generated client-side).
   3636    */
   3637   TALER_EC_MERCHANT_PRIVATE_GET_ORDERS_ID_AMOUNT_ARITHMETIC_FAILURE = 2800,
   3638 
   3639 
   3640   /**
   3641    * The template ID already exists.
   3642    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3643    * (A value of 0 indicates that the error is generated client-side).
   3644    */
   3645   TALER_EC_MERCHANT_PRIVATE_POST_TEMPLATES_CONFLICT_TEMPLATE_EXISTS = 2850,
   3646 
   3647 
   3648   /**
   3649    * The OTP device ID already exists.
   3650    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3651    * (A value of 0 indicates that the error is generated client-side).
   3652    */
   3653   TALER_EC_MERCHANT_PRIVATE_POST_OTP_DEVICES_CONFLICT_OTP_DEVICE_EXISTS = 2851,
   3654 
   3655 
   3656   /**
   3657    * Amount given in the using template and in the template contract. There is a conflict.
   3658    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3659    * (A value of 0 indicates that the error is generated client-side).
   3660    */
   3661   TALER_EC_MERCHANT_POST_USING_TEMPLATES_AMOUNT_CONFLICT_TEMPLATES_CONTRACT_AMOUNT
   3662     = 2860,
   3663 
   3664 
   3665   /**
   3666    * Subject given in the using template and in the template contract. There is a conflict.
   3667    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3668    * (A value of 0 indicates that the error is generated client-side).
   3669    */
   3670   TALER_EC_MERCHANT_POST_USING_TEMPLATES_SUMMARY_CONFLICT_TEMPLATES_CONTRACT_SUBJECT
   3671     = 2861,
   3672 
   3673 
   3674   /**
   3675    * Amount not given in the using template and in the template contract. There is a conflict.
   3676    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3677    * (A value of 0 indicates that the error is generated client-side).
   3678    */
   3679   TALER_EC_MERCHANT_POST_USING_TEMPLATES_NO_AMOUNT = 2862,
   3680 
   3681 
   3682   /**
   3683    * Subject not given in the using template and in the template contract. There is a conflict.
   3684    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3685    * (A value of 0 indicates that the error is generated client-side).
   3686    */
   3687   TALER_EC_MERCHANT_POST_USING_TEMPLATES_NO_SUMMARY = 2863,
   3688 
   3689 
   3690   /**
   3691    * The webhook ID elready exists.
   3692    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3693    * (A value of 0 indicates that the error is generated client-side).
   3694    */
   3695   TALER_EC_MERCHANT_PRIVATE_POST_WEBHOOKS_CONFLICT_WEBHOOK_EXISTS = 2900,
   3696 
   3697 
   3698   /**
   3699    * The webhook serial elready exists.
   3700    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3701    * (A value of 0 indicates that the error is generated client-side).
   3702    */
   3703   TALER_EC_MERCHANT_PRIVATE_POST_PENDING_WEBHOOKS_CONFLICT_PENDING_WEBHOOK_EXISTS
   3704     = 2910,
   3705 
   3706 
   3707   /**
   3708    * The auditor refused the connection due to a lack of authorization.
   3709    * Returned with an HTTP status code of #MHD_HTTP_UNAUTHORIZED (401).
   3710    * (A value of 0 indicates that the error is generated client-side).
   3711    */
   3712   TALER_EC_AUDITOR_GENERIC_UNAUTHORIZED = 3001,
   3713 
   3714 
   3715   /**
   3716    * This method is not allowed here.
   3717    * Returned with an HTTP status code of #MHD_HTTP_METHOD_NOT_ALLOWED (405).
   3718    * (A value of 0 indicates that the error is generated client-side).
   3719    */
   3720   TALER_EC_AUDITOR_GENERIC_METHOD_NOT_ALLOWED = 3002,
   3721 
   3722 
   3723   /**
   3724    * The signature from the exchange on the deposit confirmation is invalid.
   3725    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   3726    * (A value of 0 indicates that the error is generated client-side).
   3727    */
   3728   TALER_EC_AUDITOR_DEPOSIT_CONFIRMATION_SIGNATURE_INVALID = 3100,
   3729 
   3730 
   3731   /**
   3732    * The exchange key used for the signature on the deposit confirmation was revoked.
   3733    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   3734    * (A value of 0 indicates that the error is generated client-side).
   3735    */
   3736   TALER_EC_AUDITOR_EXCHANGE_SIGNING_KEY_REVOKED = 3101,
   3737 
   3738 
   3739   /**
   3740    * The requested resource could not be found.
   3741    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3742    * (A value of 0 indicates that the error is generated client-side).
   3743    */
   3744   TALER_EC_AUDITOR_RESOURCE_NOT_FOUND = 3102,
   3745 
   3746 
   3747   /**
   3748    * The URI is missing a path component.
   3749    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3750    * (A value of 0 indicates that the error is generated client-side).
   3751    */
   3752   TALER_EC_AUDITOR_URI_MISSING_PATH_COMPONENT = 3103,
   3753 
   3754 
   3755   /**
   3756    * Wire transfer attempted with credit and debit party being the same bank account.
   3757    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3758    * (A value of 0 indicates that the error is generated client-side).
   3759    */
   3760   TALER_EC_BANK_SAME_ACCOUNT = 5101,
   3761 
   3762 
   3763   /**
   3764    * Wire transfer impossible, due to financial limitation of the party that attempted the payment.
   3765    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3766    * (A value of 0 indicates that the error is generated client-side).
   3767    */
   3768   TALER_EC_BANK_UNALLOWED_DEBIT = 5102,
   3769 
   3770 
   3771   /**
   3772    * Negative numbers are not allowed (as value and/or fraction) to instantiate an amount object.
   3773    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3774    * (A value of 0 indicates that the error is generated client-side).
   3775    */
   3776   TALER_EC_BANK_NEGATIVE_NUMBER_AMOUNT = 5103,
   3777 
   3778 
   3779   /**
   3780    * A too big number was used (as value and/or fraction) to instantiate an amount object.
   3781    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3782    * (A value of 0 indicates that the error is generated client-side).
   3783    */
   3784   TALER_EC_BANK_NUMBER_TOO_BIG = 5104,
   3785 
   3786 
   3787   /**
   3788    * The bank account referenced in the requested operation was not found.
   3789    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3790    * (A value of 0 indicates that the error is generated client-side).
   3791    */
   3792   TALER_EC_BANK_UNKNOWN_ACCOUNT = 5106,
   3793 
   3794 
   3795   /**
   3796    * The transaction referenced in the requested operation (typically a reject operation), was not found.
   3797    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   3798    * (A value of 0 indicates that the error is generated client-side).
   3799    */
   3800   TALER_EC_BANK_TRANSACTION_NOT_FOUND = 5107,
   3801 
   3802 
   3803   /**
   3804    * Bank received a malformed amount string.
   3805    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3806    * (A value of 0 indicates that the error is generated client-side).
   3807    */
   3808   TALER_EC_BANK_BAD_FORMAT_AMOUNT = 5108,
   3809 
   3810 
   3811   /**
   3812    * The client does not own the account credited by the transaction which is to be rejected, so it has no rights do reject it.
   3813    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   3814    * (A value of 0 indicates that the error is generated client-side).
   3815    */
   3816   TALER_EC_BANK_REJECT_NO_RIGHTS = 5109,
   3817 
   3818 
   3819   /**
   3820    * This error code is returned when no known exception types captured the exception.
   3821    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   3822    * (A value of 0 indicates that the error is generated client-side).
   3823    */
   3824   TALER_EC_BANK_UNMANAGED_EXCEPTION = 5110,
   3825 
   3826 
   3827   /**
   3828    * 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.
   3829    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   3830    * (A value of 0 indicates that the error is generated client-side).
   3831    */
   3832   TALER_EC_BANK_SOFT_EXCEPTION = 5111,
   3833 
   3834 
   3835   /**
   3836    * The request UID for a request to transfer funds has already been used, but with different details for the transfer.
   3837    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3838    * (A value of 0 indicates that the error is generated client-side).
   3839    */
   3840   TALER_EC_BANK_TRANSFER_REQUEST_UID_REUSED = 5112,
   3841 
   3842 
   3843   /**
   3844    * The withdrawal operation already has a reserve selected.  The current request conflicts with the existing selection.
   3845    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3846    * (A value of 0 indicates that the error is generated client-side).
   3847    */
   3848   TALER_EC_BANK_WITHDRAWAL_OPERATION_RESERVE_SELECTION_CONFLICT = 5113,
   3849 
   3850 
   3851   /**
   3852    * The wire transfer subject duplicates an existing reserve public key. But wire transfer subjects must be unique.
   3853    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3854    * (A value of 0 indicates that the error is generated client-side).
   3855    */
   3856   TALER_EC_BANK_DUPLICATE_RESERVE_PUB_SUBJECT = 5114,
   3857 
   3858 
   3859   /**
   3860    * The client requested a transaction that is so far in the past, that it has been forgotten by the bank.
   3861    * Returned with an HTTP status code of #MHD_HTTP_GONE (410).
   3862    * (A value of 0 indicates that the error is generated client-side).
   3863    */
   3864   TALER_EC_BANK_ANCIENT_TRANSACTION_GONE = 5115,
   3865 
   3866 
   3867   /**
   3868    * The client attempted to abort a transaction that was already confirmed.
   3869    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3870    * (A value of 0 indicates that the error is generated client-side).
   3871    */
   3872   TALER_EC_BANK_ABORT_CONFIRM_CONFLICT = 5116,
   3873 
   3874 
   3875   /**
   3876    * The client attempted to confirm a transaction that was already aborted.
   3877    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3878    * (A value of 0 indicates that the error is generated client-side).
   3879    */
   3880   TALER_EC_BANK_CONFIRM_ABORT_CONFLICT = 5117,
   3881 
   3882 
   3883   /**
   3884    * The client attempted to register an account with the same name.
   3885    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3886    * (A value of 0 indicates that the error is generated client-side).
   3887    */
   3888   TALER_EC_BANK_REGISTER_CONFLICT = 5118,
   3889 
   3890 
   3891   /**
   3892    * The client attempted to confirm a withdrawal operation before the wallet posted the required details.
   3893    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   3894    * (A value of 0 indicates that the error is generated client-side).
   3895    */
   3896   TALER_EC_BANK_POST_WITHDRAWAL_OPERATION_REQUIRED = 5119,
   3897 
   3898 
   3899   /**
   3900    * The client tried to register a new account under a reserved username (like 'admin' for example).
   3901    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3902    * (A value of 0 indicates that the error is generated client-side).
   3903    */
   3904   TALER_EC_BANK_RESERVED_USERNAME_CONFLICT = 5120,
   3905 
   3906 
   3907   /**
   3908    * The client tried to register a new account with an username already in use.
   3909    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3910    * (A value of 0 indicates that the error is generated client-side).
   3911    */
   3912   TALER_EC_BANK_REGISTER_USERNAME_REUSE = 5121,
   3913 
   3914 
   3915   /**
   3916    * The client tried to register a new account with a payto:// URI already in use.
   3917    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3918    * (A value of 0 indicates that the error is generated client-side).
   3919    */
   3920   TALER_EC_BANK_REGISTER_PAYTO_URI_REUSE = 5122,
   3921 
   3922 
   3923   /**
   3924    * The client tried to delete an account with a non null balance.
   3925    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3926    * (A value of 0 indicates that the error is generated client-side).
   3927    */
   3928   TALER_EC_BANK_ACCOUNT_BALANCE_NOT_ZERO = 5123,
   3929 
   3930 
   3931   /**
   3932    * The client tried to create a transaction or an operation that credit an unknown account.
   3933    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3934    * (A value of 0 indicates that the error is generated client-side).
   3935    */
   3936   TALER_EC_BANK_UNKNOWN_CREDITOR = 5124,
   3937 
   3938 
   3939   /**
   3940    * The client tried to create a transaction or an operation that debit an unknown account.
   3941    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3942    * (A value of 0 indicates that the error is generated client-side).
   3943    */
   3944   TALER_EC_BANK_UNKNOWN_DEBTOR = 5125,
   3945 
   3946 
   3947   /**
   3948    * The client tried to perform an action prohibited for exchange accounts.
   3949    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3950    * (A value of 0 indicates that the error is generated client-side).
   3951    */
   3952   TALER_EC_BANK_ACCOUNT_IS_EXCHANGE = 5126,
   3953 
   3954 
   3955   /**
   3956    * The client tried to perform an action reserved for exchange accounts.
   3957    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3958    * (A value of 0 indicates that the error is generated client-side).
   3959    */
   3960   TALER_EC_BANK_ACCOUNT_IS_NOT_EXCHANGE = 5127,
   3961 
   3962 
   3963   /**
   3964    * Received currency conversion is wrong.
   3965    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3966    * (A value of 0 indicates that the error is generated client-side).
   3967    */
   3968   TALER_EC_BANK_BAD_CONVERSION = 5128,
   3969 
   3970 
   3971   /**
   3972    * The account referenced in this operation is missing tan info for the chosen channel.
   3973    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3974    * (A value of 0 indicates that the error is generated client-side).
   3975    */
   3976   TALER_EC_BANK_MISSING_TAN_INFO = 5129,
   3977 
   3978 
   3979   /**
   3980    * The client attempted to confirm a transaction with incomplete info.
   3981    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   3982    * (A value of 0 indicates that the error is generated client-side).
   3983    */
   3984   TALER_EC_BANK_CONFIRM_INCOMPLETE = 5130,
   3985 
   3986 
   3987   /**
   3988    * The request rate is too high. The server is refusing requests to guard against brute-force attacks.
   3989    * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).
   3990    * (A value of 0 indicates that the error is generated client-side).
   3991    */
   3992   TALER_EC_BANK_TAN_RATE_LIMITED = 5131,
   3993 
   3994 
   3995   /**
   3996    * This TAN channel is not supported.
   3997    * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).
   3998    * (A value of 0 indicates that the error is generated client-side).
   3999    */
   4000   TALER_EC_BANK_TAN_CHANNEL_NOT_SUPPORTED = 5132,
   4001 
   4002 
   4003   /**
   4004    * Failed to send TAN using the helper script. Either script is not found, or script timeout, or script terminated with a non-successful result.
   4005    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4006    * (A value of 0 indicates that the error is generated client-side).
   4007    */
   4008   TALER_EC_BANK_TAN_CHANNEL_SCRIPT_FAILED = 5133,
   4009 
   4010 
   4011   /**
   4012    * The client's response to the challenge was invalid.
   4013    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   4014    * (A value of 0 indicates that the error is generated client-side).
   4015    */
   4016   TALER_EC_BANK_TAN_CHALLENGE_FAILED = 5134,
   4017 
   4018 
   4019   /**
   4020    * A non-admin user has tried to change their legal name.
   4021    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4022    * (A value of 0 indicates that the error is generated client-side).
   4023    */
   4024   TALER_EC_BANK_NON_ADMIN_PATCH_LEGAL_NAME = 5135,
   4025 
   4026 
   4027   /**
   4028    * A non-admin user has tried to change their debt limit.
   4029    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4030    * (A value of 0 indicates that the error is generated client-side).
   4031    */
   4032   TALER_EC_BANK_NON_ADMIN_PATCH_DEBT_LIMIT = 5136,
   4033 
   4034 
   4035   /**
   4036    * A non-admin user has tried to change their password whihout providing the current one.
   4037    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4038    * (A value of 0 indicates that the error is generated client-side).
   4039    */
   4040   TALER_EC_BANK_NON_ADMIN_PATCH_MISSING_OLD_PASSWORD = 5137,
   4041 
   4042 
   4043   /**
   4044    * Provided old password does not match current password.
   4045    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4046    * (A value of 0 indicates that the error is generated client-side).
   4047    */
   4048   TALER_EC_BANK_PATCH_BAD_OLD_PASSWORD = 5138,
   4049 
   4050 
   4051   /**
   4052    * An admin user has tried to become an exchange.
   4053    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4054    * (A value of 0 indicates that the error is generated client-side).
   4055    */
   4056   TALER_EC_BANK_PATCH_ADMIN_EXCHANGE = 5139,
   4057 
   4058 
   4059   /**
   4060    * A non-admin user has tried to change their cashout account.
   4061    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4062    * (A value of 0 indicates that the error is generated client-side).
   4063    */
   4064   TALER_EC_BANK_NON_ADMIN_PATCH_CASHOUT = 5140,
   4065 
   4066 
   4067   /**
   4068    * A non-admin user has tried to change their contact info.
   4069    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4070    * (A value of 0 indicates that the error is generated client-side).
   4071    */
   4072   TALER_EC_BANK_NON_ADMIN_PATCH_CONTACT = 5141,
   4073 
   4074 
   4075   /**
   4076    * The client tried to create a transaction that credit the admin account.
   4077    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4078    * (A value of 0 indicates that the error is generated client-side).
   4079    */
   4080   TALER_EC_BANK_ADMIN_CREDITOR = 5142,
   4081 
   4082 
   4083   /**
   4084    * The referenced challenge was not found.
   4085    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4086    * (A value of 0 indicates that the error is generated client-side).
   4087    */
   4088   TALER_EC_BANK_CHALLENGE_NOT_FOUND = 5143,
   4089 
   4090 
   4091   /**
   4092    * The referenced challenge has expired.
   4093    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4094    * (A value of 0 indicates that the error is generated client-side).
   4095    */
   4096   TALER_EC_BANK_TAN_CHALLENGE_EXPIRED = 5144,
   4097 
   4098 
   4099   /**
   4100    * A non-admin user has tried to create an account with 2fa.
   4101    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4102    * (A value of 0 indicates that the error is generated client-side).
   4103    */
   4104   TALER_EC_BANK_NON_ADMIN_SET_TAN_CHANNEL = 5145,
   4105 
   4106 
   4107   /**
   4108    * A non-admin user has tried to set their minimum cashout amount.
   4109    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4110    * (A value of 0 indicates that the error is generated client-side).
   4111    */
   4112   TALER_EC_BANK_NON_ADMIN_SET_MIN_CASHOUT = 5146,
   4113 
   4114 
   4115   /**
   4116    * Amount of currency conversion it less than the minimum allowed.
   4117    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4118    * (A value of 0 indicates that the error is generated client-side).
   4119    */
   4120   TALER_EC_BANK_CONVERSION_AMOUNT_TO_SMALL = 5147,
   4121 
   4122 
   4123   /**
   4124    * Specified amount will not work for this withdrawal.
   4125    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4126    * (A value of 0 indicates that the error is generated client-side).
   4127    */
   4128   TALER_EC_BANK_AMOUNT_DIFFERS = 5148,
   4129 
   4130 
   4131   /**
   4132    * The backend requires an amount to be specified.
   4133    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4134    * (A value of 0 indicates that the error is generated client-side).
   4135    */
   4136   TALER_EC_BANK_AMOUNT_REQUIRED = 5149,
   4137 
   4138 
   4139   /**
   4140    * Provided password is too short.
   4141    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4142    * (A value of 0 indicates that the error is generated client-side).
   4143    */
   4144   TALER_EC_BANK_PASSWORD_TOO_SHORT = 5150,
   4145 
   4146 
   4147   /**
   4148    * Provided password is too long.
   4149    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4150    * (A value of 0 indicates that the error is generated client-side).
   4151    */
   4152   TALER_EC_BANK_PASSWORD_TOO_LONG = 5151,
   4153 
   4154 
   4155   /**
   4156    * Bank account is locked and cannot authenticate using his password.
   4157    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   4158    * (A value of 0 indicates that the error is generated client-side).
   4159    */
   4160   TALER_EC_BANK_ACCOUNT_LOCKED = 5152,
   4161 
   4162 
   4163   /**
   4164    * The client attempted to update a transaction' details that was already aborted.
   4165    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4166    * (A value of 0 indicates that the error is generated client-side).
   4167    */
   4168   TALER_EC_BANK_UPDATE_ABORT_CONFLICT = 5153,
   4169 
   4170 
   4171   /**
   4172    * The wtid for a request to transfer funds has already been used, but with a different request unpaid.
   4173    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4174    * (A value of 0 indicates that the error is generated client-side).
   4175    */
   4176   TALER_EC_BANK_TRANSFER_WTID_REUSED = 5154,
   4177 
   4178 
   4179   /**
   4180    * A non-admin user has tried to set their conversion rate class
   4181    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4182    * (A value of 0 indicates that the error is generated client-side).
   4183    */
   4184   TALER_EC_BANK_NON_ADMIN_SET_CONVERSION_RATE_CLASS = 5155,
   4185 
   4186 
   4187   /**
   4188    * The referenced conversion rate class was not found
   4189    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4190    * (A value of 0 indicates that the error is generated client-side).
   4191    */
   4192   TALER_EC_BANK_CONVERSION_RATE_CLASS_UNKNOWN = 5156,
   4193 
   4194 
   4195   /**
   4196    * The client tried to use an already taken name.
   4197    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4198    * (A value of 0 indicates that the error is generated client-side).
   4199    */
   4200   TALER_EC_BANK_NAME_REUSE = 5157,
   4201 
   4202 
   4203   /**
   4204    * The sync service failed find the account in its database.
   4205    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4206    * (A value of 0 indicates that the error is generated client-side).
   4207    */
   4208   TALER_EC_SYNC_ACCOUNT_UNKNOWN = 6100,
   4209 
   4210 
   4211   /**
   4212    * The SHA-512 hash provided in the If-None-Match header is malformed.
   4213    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4214    * (A value of 0 indicates that the error is generated client-side).
   4215    */
   4216   TALER_EC_SYNC_BAD_IF_NONE_MATCH = 6101,
   4217 
   4218 
   4219   /**
   4220    * The SHA-512 hash provided in the If-Match header is malformed or missing.
   4221    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4222    * (A value of 0 indicates that the error is generated client-side).
   4223    */
   4224   TALER_EC_SYNC_BAD_IF_MATCH = 6102,
   4225 
   4226 
   4227   /**
   4228    * The signature provided in the "Sync-Signature" header is malformed or missing.
   4229    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4230    * (A value of 0 indicates that the error is generated client-side).
   4231    */
   4232   TALER_EC_SYNC_BAD_SYNC_SIGNATURE = 6103,
   4233 
   4234 
   4235   /**
   4236    * The signature provided in the "Sync-Signature" header does not match the account, old or new Etags.
   4237    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   4238    * (A value of 0 indicates that the error is generated client-side).
   4239    */
   4240   TALER_EC_SYNC_INVALID_SIGNATURE = 6104,
   4241 
   4242 
   4243   /**
   4244    * The "Content-length" field for the upload is not a number.
   4245    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4246    * (A value of 0 indicates that the error is generated client-side).
   4247    */
   4248   TALER_EC_SYNC_MALFORMED_CONTENT_LENGTH = 6105,
   4249 
   4250 
   4251   /**
   4252    * The "Content-length" field for the upload is too big based on the server's terms of service.
   4253    * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).
   4254    * (A value of 0 indicates that the error is generated client-side).
   4255    */
   4256   TALER_EC_SYNC_EXCESSIVE_CONTENT_LENGTH = 6106,
   4257 
   4258 
   4259   /**
   4260    * The server is out of memory to handle the upload. Trying again later may succeed.
   4261    * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).
   4262    * (A value of 0 indicates that the error is generated client-side).
   4263    */
   4264   TALER_EC_SYNC_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 6107,
   4265 
   4266 
   4267   /**
   4268    * The uploaded data does not match the Etag.
   4269    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4270    * (A value of 0 indicates that the error is generated client-side).
   4271    */
   4272   TALER_EC_SYNC_INVALID_UPLOAD = 6108,
   4273 
   4274 
   4275   /**
   4276    * HTTP server experienced a timeout while awaiting promised payment.
   4277    * Returned with an HTTP status code of #MHD_HTTP_REQUEST_TIMEOUT (408).
   4278    * (A value of 0 indicates that the error is generated client-side).
   4279    */
   4280   TALER_EC_SYNC_PAYMENT_GENERIC_TIMEOUT = 6109,
   4281 
   4282 
   4283   /**
   4284    * Sync could not setup the payment request with its own backend.
   4285    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4286    * (A value of 0 indicates that the error is generated client-side).
   4287    */
   4288   TALER_EC_SYNC_PAYMENT_CREATE_BACKEND_ERROR = 6110,
   4289 
   4290 
   4291   /**
   4292    * The sync service failed find the backup to be updated in its database.
   4293    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4294    * (A value of 0 indicates that the error is generated client-side).
   4295    */
   4296   TALER_EC_SYNC_PREVIOUS_BACKUP_UNKNOWN = 6111,
   4297 
   4298 
   4299   /**
   4300    * The "Content-length" field for the upload is missing.
   4301    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4302    * (A value of 0 indicates that the error is generated client-side).
   4303    */
   4304   TALER_EC_SYNC_MISSING_CONTENT_LENGTH = 6112,
   4305 
   4306 
   4307   /**
   4308    * Sync had problems communicating with its payment backend.
   4309    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   4310    * (A value of 0 indicates that the error is generated client-side).
   4311    */
   4312   TALER_EC_SYNC_GENERIC_BACKEND_ERROR = 6113,
   4313 
   4314 
   4315   /**
   4316    * Sync experienced a timeout communicating with its payment backend.
   4317    * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).
   4318    * (A value of 0 indicates that the error is generated client-side).
   4319    */
   4320   TALER_EC_SYNC_GENERIC_BACKEND_TIMEOUT = 6114,
   4321 
   4322 
   4323   /**
   4324    * The wallet does not implement a version of the exchange protocol that is compatible with the protocol version of the exchange.
   4325    * Returned with an HTTP status code of #MHD_HTTP_NOT_IMPLEMENTED (501).
   4326    * (A value of 0 indicates that the error is generated client-side).
   4327    */
   4328   TALER_EC_WALLET_EXCHANGE_PROTOCOL_VERSION_INCOMPATIBLE = 7000,
   4329 
   4330 
   4331   /**
   4332    * The wallet encountered an unexpected exception.  This is likely a bug in the wallet implementation.
   4333    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4334    * (A value of 0 indicates that the error is generated client-side).
   4335    */
   4336   TALER_EC_WALLET_UNEXPECTED_EXCEPTION = 7001,
   4337 
   4338 
   4339   /**
   4340    * The wallet received a response from a server, but the response can't be parsed.
   4341    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4342    * (A value of 0 indicates that the error is generated client-side).
   4343    */
   4344   TALER_EC_WALLET_RECEIVED_MALFORMED_RESPONSE = 7002,
   4345 
   4346 
   4347   /**
   4348    * The wallet tried to make a network request, but it received no response.
   4349    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4350    * (A value of 0 indicates that the error is generated client-side).
   4351    */
   4352   TALER_EC_WALLET_NETWORK_ERROR = 7003,
   4353 
   4354 
   4355   /**
   4356    * The wallet tried to make a network request, but it was throttled.
   4357    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4358    * (A value of 0 indicates that the error is generated client-side).
   4359    */
   4360   TALER_EC_WALLET_HTTP_REQUEST_THROTTLED = 7004,
   4361 
   4362 
   4363   /**
   4364    * The wallet made a request to a service, but received an error response it does not know how to handle.
   4365    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4366    * (A value of 0 indicates that the error is generated client-side).
   4367    */
   4368   TALER_EC_WALLET_UNEXPECTED_REQUEST_ERROR = 7005,
   4369 
   4370 
   4371   /**
   4372    * The denominations offered by the exchange are insufficient.  Likely the exchange is badly configured or not maintained.
   4373    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4374    * (A value of 0 indicates that the error is generated client-side).
   4375    */
   4376   TALER_EC_WALLET_EXCHANGE_DENOMINATIONS_INSUFFICIENT = 7006,
   4377 
   4378 
   4379   /**
   4380    * The wallet does not support the operation requested by a client.
   4381    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4382    * (A value of 0 indicates that the error is generated client-side).
   4383    */
   4384   TALER_EC_WALLET_CORE_API_OPERATION_UNKNOWN = 7007,
   4385 
   4386 
   4387   /**
   4388    * The given taler://pay URI is invalid.
   4389    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4390    * (A value of 0 indicates that the error is generated client-side).
   4391    */
   4392   TALER_EC_WALLET_INVALID_TALER_PAY_URI = 7008,
   4393 
   4394 
   4395   /**
   4396    * The signature on a coin by the exchange's denomination key is invalid after unblinding it.
   4397    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4398    * (A value of 0 indicates that the error is generated client-side).
   4399    */
   4400   TALER_EC_WALLET_EXCHANGE_COIN_SIGNATURE_INVALID = 7009,
   4401 
   4402 
   4403   /**
   4404    * The exchange does not know about the reserve (yet), and thus withdrawal can't progress.
   4405    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4406    * (A value of 0 indicates that the error is generated client-side).
   4407    */
   4408   TALER_EC_WALLET_EXCHANGE_WITHDRAW_RESERVE_UNKNOWN_AT_EXCHANGE = 7010,
   4409 
   4410 
   4411   /**
   4412    * The wallet core service is not available.
   4413    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4414    * (A value of 0 indicates that the error is generated client-side).
   4415    */
   4416   TALER_EC_WALLET_CORE_NOT_AVAILABLE = 7011,
   4417 
   4418 
   4419   /**
   4420    * The bank has aborted a withdrawal operation, and thus a withdrawal can't complete.
   4421    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4422    * (A value of 0 indicates that the error is generated client-side).
   4423    */
   4424   TALER_EC_WALLET_WITHDRAWAL_OPERATION_ABORTED_BY_BANK = 7012,
   4425 
   4426 
   4427   /**
   4428    * An HTTP request made by the wallet timed out.
   4429    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4430    * (A value of 0 indicates that the error is generated client-side).
   4431    */
   4432   TALER_EC_WALLET_HTTP_REQUEST_GENERIC_TIMEOUT = 7013,
   4433 
   4434 
   4435   /**
   4436    * The order has already been claimed by another wallet.
   4437    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4438    * (A value of 0 indicates that the error is generated client-side).
   4439    */
   4440   TALER_EC_WALLET_ORDER_ALREADY_CLAIMED = 7014,
   4441 
   4442 
   4443   /**
   4444    * A group of withdrawal operations (typically for the same reserve at the same exchange) has errors and will be tried again later.
   4445    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4446    * (A value of 0 indicates that the error is generated client-side).
   4447    */
   4448   TALER_EC_WALLET_WITHDRAWAL_GROUP_INCOMPLETE = 7015,
   4449 
   4450 
   4451   /**
   4452    * The signature on a coin by the exchange's denomination key (obtained through the merchant via a reward) is invalid after unblinding it.
   4453    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4454    * (A value of 0 indicates that the error is generated client-side).
   4455    */
   4456   TALER_EC_WALLET_REWARD_COIN_SIGNATURE_INVALID = 7016,
   4457 
   4458 
   4459   /**
   4460    * The wallet does not implement a version of the bank integration API that is compatible with the version offered by the bank.
   4461    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4462    * (A value of 0 indicates that the error is generated client-side).
   4463    */
   4464   TALER_EC_WALLET_BANK_INTEGRATION_PROTOCOL_VERSION_INCOMPATIBLE = 7017,
   4465 
   4466 
   4467   /**
   4468    * 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.
   4469    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4470    * (A value of 0 indicates that the error is generated client-side).
   4471    */
   4472   TALER_EC_WALLET_CONTRACT_TERMS_BASE_URL_MISMATCH = 7018,
   4473 
   4474 
   4475   /**
   4476    * The merchant's signature on the contract terms is invalid.
   4477    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4478    * (A value of 0 indicates that the error is generated client-side).
   4479    */
   4480   TALER_EC_WALLET_CONTRACT_TERMS_SIGNATURE_INVALID = 7019,
   4481 
   4482 
   4483   /**
   4484    * The contract terms given by the merchant are malformed.
   4485    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4486    * (A value of 0 indicates that the error is generated client-side).
   4487    */
   4488   TALER_EC_WALLET_CONTRACT_TERMS_MALFORMED = 7020,
   4489 
   4490 
   4491   /**
   4492    * A pending operation failed, and thus the request can't be completed.
   4493    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4494    * (A value of 0 indicates that the error is generated client-side).
   4495    */
   4496   TALER_EC_WALLET_PENDING_OPERATION_FAILED = 7021,
   4497 
   4498 
   4499   /**
   4500    * A payment was attempted, but the merchant had an internal server error (5xx).
   4501    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4502    * (A value of 0 indicates that the error is generated client-side).
   4503    */
   4504   TALER_EC_WALLET_PAY_MERCHANT_SERVER_ERROR = 7022,
   4505 
   4506 
   4507   /**
   4508    * The crypto worker failed.
   4509    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4510    * (A value of 0 indicates that the error is generated client-side).
   4511    */
   4512   TALER_EC_WALLET_CRYPTO_WORKER_ERROR = 7023,
   4513 
   4514 
   4515   /**
   4516    * The crypto worker received a bad request.
   4517    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4518    * (A value of 0 indicates that the error is generated client-side).
   4519    */
   4520   TALER_EC_WALLET_CRYPTO_WORKER_BAD_REQUEST = 7024,
   4521 
   4522 
   4523   /**
   4524    * A KYC step is required before withdrawal can proceed.
   4525    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4526    * (A value of 0 indicates that the error is generated client-side).
   4527    */
   4528   TALER_EC_WALLET_WITHDRAWAL_KYC_REQUIRED = 7025,
   4529 
   4530 
   4531   /**
   4532    * The wallet does not have sufficient balance to create a deposit group.
   4533    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4534    * (A value of 0 indicates that the error is generated client-side).
   4535    */
   4536   TALER_EC_WALLET_DEPOSIT_GROUP_INSUFFICIENT_BALANCE = 7026,
   4537 
   4538 
   4539   /**
   4540    * The wallet does not have sufficient balance to create a peer push payment.
   4541    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4542    * (A value of 0 indicates that the error is generated client-side).
   4543    */
   4544   TALER_EC_WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE = 7027,
   4545 
   4546 
   4547   /**
   4548    * The wallet does not have sufficient balance to pay for an invoice.
   4549    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4550    * (A value of 0 indicates that the error is generated client-side).
   4551    */
   4552   TALER_EC_WALLET_PEER_PULL_PAYMENT_INSUFFICIENT_BALANCE = 7028,
   4553 
   4554 
   4555   /**
   4556    * A group of refresh operations has errors and will be tried again later.
   4557    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4558    * (A value of 0 indicates that the error is generated client-side).
   4559    */
   4560   TALER_EC_WALLET_REFRESH_GROUP_INCOMPLETE = 7029,
   4561 
   4562 
   4563   /**
   4564    * The exchange's self-reported base URL does not match the one that the wallet is using.
   4565    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4566    * (A value of 0 indicates that the error is generated client-side).
   4567    */
   4568   TALER_EC_WALLET_EXCHANGE_BASE_URL_MISMATCH = 7030,
   4569 
   4570 
   4571   /**
   4572    * The order has already been paid by another wallet.
   4573    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4574    * (A value of 0 indicates that the error is generated client-side).
   4575    */
   4576   TALER_EC_WALLET_ORDER_ALREADY_PAID = 7031,
   4577 
   4578 
   4579   /**
   4580    * An exchange that is required for some request is currently not available.
   4581    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4582    * (A value of 0 indicates that the error is generated client-side).
   4583    */
   4584   TALER_EC_WALLET_EXCHANGE_UNAVAILABLE = 7032,
   4585 
   4586 
   4587   /**
   4588    * An exchange entry is still used by the exchange, thus it can't be deleted without purging.
   4589    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4590    * (A value of 0 indicates that the error is generated client-side).
   4591    */
   4592   TALER_EC_WALLET_EXCHANGE_ENTRY_USED = 7033,
   4593 
   4594 
   4595   /**
   4596    * The wallet database is unavailable and the wallet thus is not operational.
   4597    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4598    * (A value of 0 indicates that the error is generated client-side).
   4599    */
   4600   TALER_EC_WALLET_DB_UNAVAILABLE = 7034,
   4601 
   4602 
   4603   /**
   4604    * A taler:// URI is malformed and can't be parsed.
   4605    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4606    * (A value of 0 indicates that the error is generated client-side).
   4607    */
   4608   TALER_EC_WALLET_TALER_URI_MALFORMED = 7035,
   4609 
   4610 
   4611   /**
   4612    * A wallet-core request was cancelled and thus can't provide a response.
   4613    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4614    * (A value of 0 indicates that the error is generated client-side).
   4615    */
   4616   TALER_EC_WALLET_CORE_REQUEST_CANCELLED = 7036,
   4617 
   4618 
   4619   /**
   4620    * A wallet-core request failed because the user needs to first accept the exchange's terms of service.
   4621    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4622    * (A value of 0 indicates that the error is generated client-side).
   4623    */
   4624   TALER_EC_WALLET_EXCHANGE_TOS_NOT_ACCEPTED = 7037,
   4625 
   4626 
   4627   /**
   4628    * An exchange entry could not be updated, as the exchange's new details conflict with the new details.
   4629    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4630    * (A value of 0 indicates that the error is generated client-side).
   4631    */
   4632   TALER_EC_WALLET_EXCHANGE_ENTRY_UPDATE_CONFLICT = 7038,
   4633 
   4634 
   4635   /**
   4636    * The wallet's information about the exchange is outdated.
   4637    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4638    * (A value of 0 indicates that the error is generated client-side).
   4639    */
   4640   TALER_EC_WALLET_EXCHANGE_ENTRY_OUTDATED = 7039,
   4641 
   4642 
   4643   /**
   4644    * The merchant needs to do KYC first, the payment could not be completed.
   4645    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4646    * (A value of 0 indicates that the error is generated client-side).
   4647    */
   4648   TALER_EC_WALLET_PAY_MERCHANT_KYC_MISSING = 7040,
   4649 
   4650 
   4651   /**
   4652    * A peer-pull-debit transaction was aborted because the exchange reported the purse as gone.
   4653    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4654    * (A value of 0 indicates that the error is generated client-side).
   4655    */
   4656   TALER_EC_WALLET_PEER_PULL_DEBIT_PURSE_GONE = 7041,
   4657 
   4658 
   4659   /**
   4660    * A transaction was aborted on explicit request by the user.
   4661    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4662    * (A value of 0 indicates that the error is generated client-side).
   4663    */
   4664   TALER_EC_WALLET_TRANSACTION_ABORTED_BY_USER = 7042,
   4665 
   4666 
   4667   /**
   4668    * A transaction was abandoned on explicit request by the user.
   4669    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4670    * (A value of 0 indicates that the error is generated client-side).
   4671    */
   4672   TALER_EC_WALLET_TRANSACTION_ABANDONED_BY_USER = 7043,
   4673 
   4674 
   4675   /**
   4676    * A payment was attempted, but the merchant claims the order is gone (likely expired).
   4677    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4678    * (A value of 0 indicates that the error is generated client-side).
   4679    */
   4680   TALER_EC_WALLET_PAY_MERCHANT_ORDER_GONE = 7044,
   4681 
   4682 
   4683   /**
   4684    * The wallet does not have an entry for the requested exchange.
   4685    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4686    * (A value of 0 indicates that the error is generated client-side).
   4687    */
   4688   TALER_EC_WALLET_EXCHANGE_ENTRY_NOT_FOUND = 7045,
   4689 
   4690 
   4691   /**
   4692    * The wallet is not able to process the request due to the transaction's state.
   4693    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4694    * (A value of 0 indicates that the error is generated client-side).
   4695    */
   4696   TALER_EC_WALLET_REQUEST_TRANSACTION_STATE_UNSUPPORTED = 7046,
   4697 
   4698 
   4699   /**
   4700    * A transaction could not be processed due to an unrecoverable protocol violation.
   4701    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4702    * (A value of 0 indicates that the error is generated client-side).
   4703    */
   4704   TALER_EC_WALLET_TRANSACTION_PROTOCOL_VIOLATION = 7047,
   4705 
   4706 
   4707   /**
   4708    * A parameter in the request is malformed or missing.
   4709    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4710    * (A value of 0 indicates that the error is generated client-side).
   4711    */
   4712   TALER_EC_WALLET_CORE_API_BAD_REQUEST = 7048,
   4713 
   4714 
   4715   /**
   4716    * We encountered a timeout with our payment backend.
   4717    * Returned with an HTTP status code of #MHD_HTTP_GATEWAY_TIMEOUT (504).
   4718    * (A value of 0 indicates that the error is generated client-side).
   4719    */
   4720   TALER_EC_ANASTASIS_GENERIC_BACKEND_TIMEOUT = 8000,
   4721 
   4722 
   4723   /**
   4724    * The backend requested payment, but the request is malformed.
   4725    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4726    * (A value of 0 indicates that the error is generated client-side).
   4727    */
   4728   TALER_EC_ANASTASIS_GENERIC_INVALID_PAYMENT_REQUEST = 8001,
   4729 
   4730 
   4731   /**
   4732    * The backend got an unexpected reply from the payment processor.
   4733    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   4734    * (A value of 0 indicates that the error is generated client-side).
   4735    */
   4736   TALER_EC_ANASTASIS_GENERIC_BACKEND_ERROR = 8002,
   4737 
   4738 
   4739   /**
   4740    * The "Content-length" field for the upload is missing.
   4741    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4742    * (A value of 0 indicates that the error is generated client-side).
   4743    */
   4744   TALER_EC_ANASTASIS_GENERIC_MISSING_CONTENT_LENGTH = 8003,
   4745 
   4746 
   4747   /**
   4748    * The "Content-length" field for the upload is malformed.
   4749    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4750    * (A value of 0 indicates that the error is generated client-side).
   4751    */
   4752   TALER_EC_ANASTASIS_GENERIC_MALFORMED_CONTENT_LENGTH = 8004,
   4753 
   4754 
   4755   /**
   4756    * The backend failed to setup an order with the payment processor.
   4757    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   4758    * (A value of 0 indicates that the error is generated client-side).
   4759    */
   4760   TALER_EC_ANASTASIS_GENERIC_ORDER_CREATE_BACKEND_ERROR = 8005,
   4761 
   4762 
   4763   /**
   4764    * The backend was not authorized to check for payment with the payment processor.
   4765    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4766    * (A value of 0 indicates that the error is generated client-side).
   4767    */
   4768   TALER_EC_ANASTASIS_GENERIC_PAYMENT_CHECK_UNAUTHORIZED = 8006,
   4769 
   4770 
   4771   /**
   4772    * The backend could not check payment status with the payment processor.
   4773    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4774    * (A value of 0 indicates that the error is generated client-side).
   4775    */
   4776   TALER_EC_ANASTASIS_GENERIC_PAYMENT_CHECK_START_FAILED = 8007,
   4777 
   4778 
   4779   /**
   4780    * The Anastasis provider could not be reached.
   4781    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   4782    * (A value of 0 indicates that the error is generated client-side).
   4783    */
   4784   TALER_EC_ANASTASIS_GENERIC_PROVIDER_UNREACHABLE = 8008,
   4785 
   4786 
   4787   /**
   4788    * HTTP server experienced a timeout while awaiting promised payment.
   4789    * Returned with an HTTP status code of #MHD_HTTP_REQUEST_TIMEOUT (408).
   4790    * (A value of 0 indicates that the error is generated client-side).
   4791    */
   4792   TALER_EC_ANASTASIS_PAYMENT_GENERIC_TIMEOUT = 8009,
   4793 
   4794 
   4795   /**
   4796    * The key share is unknown to the provider.
   4797    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4798    * (A value of 0 indicates that the error is generated client-side).
   4799    */
   4800   TALER_EC_ANASTASIS_TRUTH_UNKNOWN = 8108,
   4801 
   4802 
   4803   /**
   4804    * The authorization method used for the key share is no longer supported by the provider.
   4805    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4806    * (A value of 0 indicates that the error is generated client-side).
   4807    */
   4808   TALER_EC_ANASTASIS_TRUTH_AUTHORIZATION_METHOD_NO_LONGER_SUPPORTED = 8109,
   4809 
   4810 
   4811   /**
   4812    * The client needs to respond to the challenge.
   4813    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   4814    * (A value of 0 indicates that the error is generated client-side).
   4815    */
   4816   TALER_EC_ANASTASIS_TRUTH_CHALLENGE_RESPONSE_REQUIRED = 8110,
   4817 
   4818 
   4819   /**
   4820    * The client's response to the challenge was invalid.
   4821    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   4822    * (A value of 0 indicates that the error is generated client-side).
   4823    */
   4824   TALER_EC_ANASTASIS_TRUTH_CHALLENGE_FAILED = 8111,
   4825 
   4826 
   4827   /**
   4828    * The backend is not aware of having issued the provided challenge code. Either this is the wrong code, or it has expired.
   4829    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4830    * (A value of 0 indicates that the error is generated client-side).
   4831    */
   4832   TALER_EC_ANASTASIS_TRUTH_CHALLENGE_UNKNOWN = 8112,
   4833 
   4834 
   4835   /**
   4836    * The backend failed to initiate the authorization process.
   4837    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4838    * (A value of 0 indicates that the error is generated client-side).
   4839    */
   4840   TALER_EC_ANASTASIS_TRUTH_AUTHORIZATION_START_FAILED = 8114,
   4841 
   4842 
   4843   /**
   4844    * The authorization succeeded, but the key share is no longer available.
   4845    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   4846    * (A value of 0 indicates that the error is generated client-side).
   4847    */
   4848   TALER_EC_ANASTASIS_TRUTH_KEY_SHARE_GONE = 8115,
   4849 
   4850 
   4851   /**
   4852    * The backend forgot the order we asked the client to pay for
   4853    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   4854    * (A value of 0 indicates that the error is generated client-side).
   4855    */
   4856   TALER_EC_ANASTASIS_TRUTH_ORDER_DISAPPEARED = 8116,
   4857 
   4858 
   4859   /**
   4860    * The backend itself reported a bad exchange interaction.
   4861    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   4862    * (A value of 0 indicates that the error is generated client-side).
   4863    */
   4864   TALER_EC_ANASTASIS_TRUTH_BACKEND_EXCHANGE_BAD = 8117,
   4865 
   4866 
   4867   /**
   4868    * The backend reported a payment status we did not expect.
   4869    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4870    * (A value of 0 indicates that the error is generated client-side).
   4871    */
   4872   TALER_EC_ANASTASIS_TRUTH_UNEXPECTED_PAYMENT_STATUS = 8118,
   4873 
   4874 
   4875   /**
   4876    * The backend failed to setup the order for payment.
   4877    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   4878    * (A value of 0 indicates that the error is generated client-side).
   4879    */
   4880   TALER_EC_ANASTASIS_TRUTH_PAYMENT_CREATE_BACKEND_ERROR = 8119,
   4881 
   4882 
   4883   /**
   4884    * The decryption of the key share failed with the provided key.
   4885    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4886    * (A value of 0 indicates that the error is generated client-side).
   4887    */
   4888   TALER_EC_ANASTASIS_TRUTH_DECRYPTION_FAILED = 8120,
   4889 
   4890 
   4891   /**
   4892    * The request rate is too high. The server is refusing requests to guard against brute-force attacks.
   4893    * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).
   4894    * (A value of 0 indicates that the error is generated client-side).
   4895    */
   4896   TALER_EC_ANASTASIS_TRUTH_RATE_LIMITED = 8121,
   4897 
   4898 
   4899   /**
   4900    * A request to issue a challenge is not valid for this authentication method.
   4901    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4902    * (A value of 0 indicates that the error is generated client-side).
   4903    */
   4904   TALER_EC_ANASTASIS_TRUTH_CHALLENGE_WRONG_METHOD = 8123,
   4905 
   4906 
   4907   /**
   4908    * The backend failed to store the key share because the UUID is already in use.
   4909    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4910    * (A value of 0 indicates that the error is generated client-side).
   4911    */
   4912   TALER_EC_ANASTASIS_TRUTH_UPLOAD_UUID_EXISTS = 8150,
   4913 
   4914 
   4915   /**
   4916    * The backend failed to store the key share because the authorization method is not supported.
   4917    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   4918    * (A value of 0 indicates that the error is generated client-side).
   4919    */
   4920   TALER_EC_ANASTASIS_TRUTH_UPLOAD_METHOD_NOT_SUPPORTED = 8151,
   4921 
   4922 
   4923   /**
   4924    * The provided phone number is not an acceptable number.
   4925    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4926    * (A value of 0 indicates that the error is generated client-side).
   4927    */
   4928   TALER_EC_ANASTASIS_SMS_PHONE_INVALID = 8200,
   4929 
   4930 
   4931   /**
   4932    * Failed to run the SMS transmission helper process.
   4933    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4934    * (A value of 0 indicates that the error is generated client-side).
   4935    */
   4936   TALER_EC_ANASTASIS_SMS_HELPER_EXEC_FAILED = 8201,
   4937 
   4938 
   4939   /**
   4940    * Provider failed to send SMS. Helper terminated with a non-successful result.
   4941    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4942    * (A value of 0 indicates that the error is generated client-side).
   4943    */
   4944   TALER_EC_ANASTASIS_SMS_HELPER_COMMAND_FAILED = 8202,
   4945 
   4946 
   4947   /**
   4948    * The provided email address is not an acceptable address.
   4949    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4950    * (A value of 0 indicates that the error is generated client-side).
   4951    */
   4952   TALER_EC_ANASTASIS_EMAIL_INVALID = 8210,
   4953 
   4954 
   4955   /**
   4956    * Failed to run the E-mail transmission helper process.
   4957    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4958    * (A value of 0 indicates that the error is generated client-side).
   4959    */
   4960   TALER_EC_ANASTASIS_EMAIL_HELPER_EXEC_FAILED = 8211,
   4961 
   4962 
   4963   /**
   4964    * Provider failed to send E-mail. Helper terminated with a non-successful result.
   4965    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4966    * (A value of 0 indicates that the error is generated client-side).
   4967    */
   4968   TALER_EC_ANASTASIS_EMAIL_HELPER_COMMAND_FAILED = 8212,
   4969 
   4970 
   4971   /**
   4972    * The provided postal address is not an acceptable address.
   4973    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4974    * (A value of 0 indicates that the error is generated client-side).
   4975    */
   4976   TALER_EC_ANASTASIS_POST_INVALID = 8220,
   4977 
   4978 
   4979   /**
   4980    * Failed to run the mail transmission helper process.
   4981    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4982    * (A value of 0 indicates that the error is generated client-side).
   4983    */
   4984   TALER_EC_ANASTASIS_POST_HELPER_EXEC_FAILED = 8221,
   4985 
   4986 
   4987   /**
   4988    * Provider failed to send mail. Helper terminated with a non-successful result.
   4989    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   4990    * (A value of 0 indicates that the error is generated client-side).
   4991    */
   4992   TALER_EC_ANASTASIS_POST_HELPER_COMMAND_FAILED = 8222,
   4993 
   4994 
   4995   /**
   4996    * The provided IBAN address is not an acceptable IBAN.
   4997    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   4998    * (A value of 0 indicates that the error is generated client-side).
   4999    */
   5000   TALER_EC_ANASTASIS_IBAN_INVALID = 8230,
   5001 
   5002 
   5003   /**
   5004    * The provider has not yet received the IBAN wire transfer authorizing the disclosure of the key share.
   5005    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5006    * (A value of 0 indicates that the error is generated client-side).
   5007    */
   5008   TALER_EC_ANASTASIS_IBAN_MISSING_TRANSFER = 8231,
   5009 
   5010 
   5011   /**
   5012    * The backend did not find a TOTP key in the data provided.
   5013    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   5014    * (A value of 0 indicates that the error is generated client-side).
   5015    */
   5016   TALER_EC_ANASTASIS_TOTP_KEY_MISSING = 8240,
   5017 
   5018 
   5019   /**
   5020    * The key provided does not satisfy the format restrictions for an Anastasis TOTP key.
   5021    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   5022    * (A value of 0 indicates that the error is generated client-side).
   5023    */
   5024   TALER_EC_ANASTASIS_TOTP_KEY_INVALID = 8241,
   5025 
   5026 
   5027   /**
   5028    * The given if-none-match header is malformed.
   5029    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   5030    * (A value of 0 indicates that the error is generated client-side).
   5031    */
   5032   TALER_EC_ANASTASIS_POLICY_BAD_IF_NONE_MATCH = 8301,
   5033 
   5034 
   5035   /**
   5036    * The server is out of memory to handle the upload. Trying again later may succeed.
   5037    * Returned with an HTTP status code of #MHD_HTTP_CONTENT_TOO_LARGE (413).
   5038    * (A value of 0 indicates that the error is generated client-side).
   5039    */
   5040   TALER_EC_ANASTASIS_POLICY_OUT_OF_MEMORY_ON_CONTENT_LENGTH = 8304,
   5041 
   5042 
   5043   /**
   5044    * The signature provided in the "Anastasis-Policy-Signature" header is malformed or missing.
   5045    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   5046    * (A value of 0 indicates that the error is generated client-side).
   5047    */
   5048   TALER_EC_ANASTASIS_POLICY_BAD_SIGNATURE = 8305,
   5049 
   5050 
   5051   /**
   5052    * The given if-match header is malformed.
   5053    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   5054    * (A value of 0 indicates that the error is generated client-side).
   5055    */
   5056   TALER_EC_ANASTASIS_POLICY_BAD_IF_MATCH = 8306,
   5057 
   5058 
   5059   /**
   5060    * The uploaded data does not match the Etag.
   5061    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   5062    * (A value of 0 indicates that the error is generated client-side).
   5063    */
   5064   TALER_EC_ANASTASIS_POLICY_INVALID_UPLOAD = 8307,
   5065 
   5066 
   5067   /**
   5068    * The provider is unaware of the requested policy.
   5069    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5070    * (A value of 0 indicates that the error is generated client-side).
   5071    */
   5072   TALER_EC_ANASTASIS_POLICY_NOT_FOUND = 8350,
   5073 
   5074 
   5075   /**
   5076    * The given action is invalid for the current state of the reducer.
   5077    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5078    * (A value of 0 indicates that the error is generated client-side).
   5079    */
   5080   TALER_EC_ANASTASIS_REDUCER_ACTION_INVALID = 8400,
   5081 
   5082 
   5083   /**
   5084    * The given state of the reducer is invalid.
   5085    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5086    * (A value of 0 indicates that the error is generated client-side).
   5087    */
   5088   TALER_EC_ANASTASIS_REDUCER_STATE_INVALID = 8401,
   5089 
   5090 
   5091   /**
   5092    * The given input to the reducer is invalid.
   5093    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5094    * (A value of 0 indicates that the error is generated client-side).
   5095    */
   5096   TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID = 8402,
   5097 
   5098 
   5099   /**
   5100    * The selected authentication method does not work for the Anastasis provider.
   5101    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5102    * (A value of 0 indicates that the error is generated client-side).
   5103    */
   5104   TALER_EC_ANASTASIS_REDUCER_AUTHENTICATION_METHOD_NOT_SUPPORTED = 8403,
   5105 
   5106 
   5107   /**
   5108    * The given input and action do not work for the current state.
   5109    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5110    * (A value of 0 indicates that the error is generated client-side).
   5111    */
   5112   TALER_EC_ANASTASIS_REDUCER_INPUT_INVALID_FOR_STATE = 8404,
   5113 
   5114 
   5115   /**
   5116    * We experienced an unexpected failure interacting with the backend.
   5117    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5118    * (A value of 0 indicates that the error is generated client-side).
   5119    */
   5120   TALER_EC_ANASTASIS_REDUCER_BACKEND_FAILURE = 8405,
   5121 
   5122 
   5123   /**
   5124    * The contents of a resource file did not match our expectations.
   5125    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5126    * (A value of 0 indicates that the error is generated client-side).
   5127    */
   5128   TALER_EC_ANASTASIS_REDUCER_RESOURCE_MALFORMED = 8406,
   5129 
   5130 
   5131   /**
   5132    * A required resource file is missing.
   5133    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5134    * (A value of 0 indicates that the error is generated client-side).
   5135    */
   5136   TALER_EC_ANASTASIS_REDUCER_RESOURCE_MISSING = 8407,
   5137 
   5138 
   5139   /**
   5140    * An input did not match the regular expression.
   5141    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5142    * (A value of 0 indicates that the error is generated client-side).
   5143    */
   5144   TALER_EC_ANASTASIS_REDUCER_INPUT_REGEX_FAILED = 8408,
   5145 
   5146 
   5147   /**
   5148    * An input did not match the custom validation logic.
   5149    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5150    * (A value of 0 indicates that the error is generated client-side).
   5151    */
   5152   TALER_EC_ANASTASIS_REDUCER_INPUT_VALIDATION_FAILED = 8409,
   5153 
   5154 
   5155   /**
   5156    * 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.
   5157    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5158    * (A value of 0 indicates that the error is generated client-side).
   5159    */
   5160   TALER_EC_ANASTASIS_REDUCER_POLICY_LOOKUP_FAILED = 8410,
   5161 
   5162 
   5163   /**
   5164    * Anastasis provider reported a fatal failure.
   5165    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5166    * (A value of 0 indicates that the error is generated client-side).
   5167    */
   5168   TALER_EC_ANASTASIS_REDUCER_BACKUP_PROVIDER_FAILED = 8411,
   5169 
   5170 
   5171   /**
   5172    * Anastasis provider failed to respond to the configuration request.
   5173    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5174    * (A value of 0 indicates that the error is generated client-side).
   5175    */
   5176   TALER_EC_ANASTASIS_REDUCER_PROVIDER_CONFIG_FAILED = 8412,
   5177 
   5178 
   5179   /**
   5180    * The policy we downloaded is malformed. Must have been a client error while creating the backup.
   5181    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5182    * (A value of 0 indicates that the error is generated client-side).
   5183    */
   5184   TALER_EC_ANASTASIS_REDUCER_POLICY_MALFORMED = 8413,
   5185 
   5186 
   5187   /**
   5188    * We failed to obtain the policy, likely due to a network issue.
   5189    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5190    * (A value of 0 indicates that the error is generated client-side).
   5191    */
   5192   TALER_EC_ANASTASIS_REDUCER_NETWORK_FAILED = 8414,
   5193 
   5194 
   5195   /**
   5196    * The recovered secret did not match the required syntax.
   5197    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5198    * (A value of 0 indicates that the error is generated client-side).
   5199    */
   5200   TALER_EC_ANASTASIS_REDUCER_SECRET_MALFORMED = 8415,
   5201 
   5202 
   5203   /**
   5204    * The challenge data provided is too large for the available providers.
   5205    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5206    * (A value of 0 indicates that the error is generated client-side).
   5207    */
   5208   TALER_EC_ANASTASIS_REDUCER_CHALLENGE_DATA_TOO_BIG = 8416,
   5209 
   5210 
   5211   /**
   5212    * The provided core secret is too large for some of the providers.
   5213    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5214    * (A value of 0 indicates that the error is generated client-side).
   5215    */
   5216   TALER_EC_ANASTASIS_REDUCER_SECRET_TOO_BIG = 8417,
   5217 
   5218 
   5219   /**
   5220    * The provider returned in invalid configuration.
   5221    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5222    * (A value of 0 indicates that the error is generated client-side).
   5223    */
   5224   TALER_EC_ANASTASIS_REDUCER_PROVIDER_INVALID_CONFIG = 8418,
   5225 
   5226 
   5227   /**
   5228    * The reducer encountered an internal error, likely a bug that needs to be reported.
   5229    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5230    * (A value of 0 indicates that the error is generated client-side).
   5231    */
   5232   TALER_EC_ANASTASIS_REDUCER_INTERNAL_ERROR = 8419,
   5233 
   5234 
   5235   /**
   5236    * The reducer already synchronized with all providers.
   5237    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5238    * (A value of 0 indicates that the error is generated client-side).
   5239    */
   5240   TALER_EC_ANASTASIS_REDUCER_PROVIDERS_ALREADY_SYNCED = 8420,
   5241 
   5242 
   5243   /**
   5244    * 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.
   5245    * Returned with an HTTP status code of #MHD_HTTP_SERVICE_UNAVAILABLE (503).
   5246    * (A value of 0 indicates that the error is generated client-side).
   5247    */
   5248   TALER_EC_DONAU_GENERIC_KEYS_MISSING = 8607,
   5249 
   5250 
   5251   /**
   5252    * The signature of the charity key is not valid.
   5253    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5254    * (A value of 0 indicates that the error is generated client-side).
   5255    */
   5256   TALER_EC_DONAU_CHARITY_SIGNATURE_INVALID = 8608,
   5257 
   5258 
   5259   /**
   5260    * The charity is unknown.
   5261    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5262    * (A value of 0 indicates that the error is generated client-side).
   5263    */
   5264   TALER_EC_DONAU_CHARITY_NOT_FOUND = 8609,
   5265 
   5266 
   5267   /**
   5268    * The donation amount specified in the request exceeds the limit of the charity.
   5269    * Returned with an HTTP status code of #MHD_HTTP_BAD_REQUEST (400).
   5270    * (A value of 0 indicates that the error is generated client-side).
   5271    */
   5272   TALER_EC_DONAU_EXCEEDING_DONATION_LIMIT = 8610,
   5273 
   5274 
   5275   /**
   5276    * The Donau is not aware of the donation unit requested for the operation.
   5277    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5278    * (A value of 0 indicates that the error is generated client-side).
   5279    */
   5280   TALER_EC_DONAU_GENERIC_DONATION_UNIT_UNKNOWN = 8611,
   5281 
   5282 
   5283   /**
   5284    * The Donau failed to talk to the process responsible for its private donation unit keys or the helpers had no donation units (properly) configured.
   5285    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   5286    * (A value of 0 indicates that the error is generated client-side).
   5287    */
   5288   TALER_EC_DONAU_DONATION_UNIT_HELPER_UNAVAILABLE = 8612,
   5289 
   5290 
   5291   /**
   5292    * The Donau failed to talk to the process responsible for its private signing keys.
   5293    * Returned with an HTTP status code of #MHD_HTTP_BAD_GATEWAY (502).
   5294    * (A value of 0 indicates that the error is generated client-side).
   5295    */
   5296   TALER_EC_DONAU_SIGNKEY_HELPER_UNAVAILABLE = 8613,
   5297 
   5298 
   5299   /**
   5300    * The response from the online signing key helper process was malformed.
   5301    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   5302    * (A value of 0 indicates that the error is generated client-side).
   5303    */
   5304   TALER_EC_DONAU_SIGNKEY_HELPER_BUG = 8614,
   5305 
   5306 
   5307   /**
   5308    * The number of segments included in the URI does not match the number of segments expected by the endpoint.
   5309    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5310    * (A value of 0 indicates that the error is generated client-side).
   5311    */
   5312   TALER_EC_DONAU_GENERIC_WRONG_NUMBER_OF_SEGMENTS = 8615,
   5313 
   5314 
   5315   /**
   5316    * The signature of the donation receipt is not valid.
   5317    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5318    * (A value of 0 indicates that the error is generated client-side).
   5319    */
   5320   TALER_EC_DONAU_DONATION_RECEIPT_SIGNATURE_INVALID = 8616,
   5321 
   5322 
   5323   /**
   5324    * The client reused a unique donor identifier nonce, which is not allowed.
   5325    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   5326    * (A value of 0 indicates that the error is generated client-side).
   5327    */
   5328   TALER_EC_DONAU_DONOR_IDENTIFIER_NONCE_REUSE = 8617,
   5329 
   5330 
   5331   /**
   5332    * A generic error happened in the LibEuFin nexus.  See the enclose details JSON for more information.
   5333    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5334    * (A value of 0 indicates that the error is generated client-side).
   5335    */
   5336   TALER_EC_LIBEUFIN_NEXUS_GENERIC_ERROR = 9000,
   5337 
   5338 
   5339   /**
   5340    * An uncaught exception happened in the LibEuFin nexus service.
   5341    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   5342    * (A value of 0 indicates that the error is generated client-side).
   5343    */
   5344   TALER_EC_LIBEUFIN_NEXUS_UNCAUGHT_EXCEPTION = 9001,
   5345 
   5346 
   5347   /**
   5348    * A generic error happened in the LibEuFin sandbox.  See the enclose details JSON for more information.
   5349    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5350    * (A value of 0 indicates that the error is generated client-side).
   5351    */
   5352   TALER_EC_LIBEUFIN_SANDBOX_GENERIC_ERROR = 9500,
   5353 
   5354 
   5355   /**
   5356    * An uncaught exception happened in the LibEuFin sandbox service.
   5357    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   5358    * (A value of 0 indicates that the error is generated client-side).
   5359    */
   5360   TALER_EC_LIBEUFIN_SANDBOX_UNCAUGHT_EXCEPTION = 9501,
   5361 
   5362 
   5363   /**
   5364    * This validation method is not supported by the service.
   5365    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5366    * (A value of 0 indicates that the error is generated client-side).
   5367    */
   5368   TALER_EC_TALDIR_METHOD_NOT_SUPPORTED = 9600,
   5369 
   5370 
   5371   /**
   5372    * Number of allowed attempts for initiating a challenge exceeded.
   5373    * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).
   5374    * (A value of 0 indicates that the error is generated client-side).
   5375    */
   5376   TALER_EC_TALDIR_REGISTER_RATE_LIMITED = 9601,
   5377 
   5378 
   5379   /**
   5380    * The client is unknown or unauthorized.
   5381    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5382    * (A value of 0 indicates that the error is generated client-side).
   5383    */
   5384   TALER_EC_CHALLENGER_GENERIC_CLIENT_UNKNOWN = 9750,
   5385 
   5386 
   5387   /**
   5388    * The client is not authorized to use the given redirect URI.
   5389    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5390    * (A value of 0 indicates that the error is generated client-side).
   5391    */
   5392   TALER_EC_CHALLENGER_GENERIC_CLIENT_FORBIDDEN_BAD_REDIRECT_URI = 9751,
   5393 
   5394 
   5395   /**
   5396    * The service failed to execute its helper process to send the challenge.
   5397    * Returned with an HTTP status code of #MHD_HTTP_INTERNAL_SERVER_ERROR (500).
   5398    * (A value of 0 indicates that the error is generated client-side).
   5399    */
   5400   TALER_EC_CHALLENGER_HELPER_EXEC_FAILED = 9752,
   5401 
   5402 
   5403   /**
   5404    * The grant is unknown to the service (it could also have expired).
   5405    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5406    * (A value of 0 indicates that the error is generated client-side).
   5407    */
   5408   TALER_EC_CHALLENGER_GRANT_UNKNOWN = 9753,
   5409 
   5410 
   5411   /**
   5412    * The code given is not even well-formed.
   5413    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5414    * (A value of 0 indicates that the error is generated client-side).
   5415    */
   5416   TALER_EC_CHALLENGER_CLIENT_FORBIDDEN_BAD_CODE = 9754,
   5417 
   5418 
   5419   /**
   5420    * The service is not aware of the referenced validation process.
   5421    * Returned with an HTTP status code of #MHD_HTTP_NOT_FOUND (404).
   5422    * (A value of 0 indicates that the error is generated client-side).
   5423    */
   5424   TALER_EC_CHALLENGER_GENERIC_VALIDATION_UNKNOWN = 9755,
   5425 
   5426 
   5427   /**
   5428    * The code given is not valid.
   5429    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5430    * (A value of 0 indicates that the error is generated client-side).
   5431    */
   5432   TALER_EC_CHALLENGER_CLIENT_FORBIDDEN_INVALID_CODE = 9756,
   5433 
   5434 
   5435   /**
   5436    * Too many attempts have been made, validation is temporarily disabled for this address.
   5437    * Returned with an HTTP status code of #MHD_HTTP_TOO_MANY_REQUESTS (429).
   5438    * (A value of 0 indicates that the error is generated client-side).
   5439    */
   5440   TALER_EC_CHALLENGER_TOO_MANY_ATTEMPTS = 9757,
   5441 
   5442 
   5443   /**
   5444    * The PIN code provided is incorrect.
   5445    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5446    * (A value of 0 indicates that the error is generated client-side).
   5447    */
   5448   TALER_EC_CHALLENGER_INVALID_PIN = 9758,
   5449 
   5450 
   5451   /**
   5452    * The token cannot be valid as no address was ever provided by the client.
   5453    * Returned with an HTTP status code of #MHD_HTTP_CONFLICT (409).
   5454    * (A value of 0 indicates that the error is generated client-side).
   5455    */
   5456   TALER_EC_CHALLENGER_MISSING_ADDRESS = 9759,
   5457 
   5458 
   5459   /**
   5460    * The client is not allowed to change the address being validated.
   5461    * Returned with an HTTP status code of #MHD_HTTP_FORBIDDEN (403).
   5462    * (A value of 0 indicates that the error is generated client-side).
   5463    */
   5464   TALER_EC_CHALLENGER_CLIENT_FORBIDDEN_READ_ONLY = 9760,
   5465 
   5466 
   5467   /**
   5468    * End of error code range.
   5469    * Returned with an HTTP status code of #MHD_HTTP_UNINITIALIZED (0).
   5470    * (A value of 0 indicates that the error is generated client-side).
   5471    */
   5472   TALER_EC_END = 9999,
   5473 
   5474 
   5475 };
   5476 
   5477 
   5478 /**
   5479  * Returns a hint for a given error code.
   5480  *
   5481  * @param ec the error code.
   5482  * @return the hint if it could be found, otherwise "<no hint found>"
   5483  */
   5484 const char *
   5485 TALER_ErrorCode_get_hint (enum TALER_ErrorCode ec);
   5486 
   5487 
   5488 /**
   5489  * Return HTTP status for a given error code.
   5490  *
   5491  * @param ec the error code.
   5492  * @return the HTTP status code for the given @a ec, UINT_MAX if not found
   5493  */
   5494 unsigned int
   5495 TALER_ErrorCode_get_http_status (enum TALER_ErrorCode ec);
   5496 
   5497 
   5498 /**
   5499  * Return HTTP status for a given error code that is guaranteed
   5500  * to work (no corner cases).
   5501  *
   5502  * @param ec the error code.
   5503  * @return the HTTP status code for the given @a ec, 500 if
   5504  *         the @a ec is not found or is a client-side code
   5505  */
   5506 unsigned int
   5507 TALER_ErrorCode_get_http_status_safe (enum TALER_ErrorCode ec);
   5508 
   5509 
   5510 #if 0 /* keep Emacsens' auto-indent happy */
   5511 {
   5512 #endif
   5513 #ifdef __cplusplus
   5514 }
   5515 #endif
   5516 
   5517 #endif