commit 8284976d287029366874f2b96cb6040ecbb71a22 parent 64cc16310eccaea99117e01116c6ef5528ab3215 Author: Christian Grothoff <christian@grothoff.org> Date: Tue, 7 Apr 2026 12:48:51 +0200 document ECs more consistently Diffstat:
45 files changed, 333 insertions(+), 27 deletions(-)
diff --git a/core/exchange/get-aml-OFFICER_PUB-attributes-H_NORMALIZED_PAYTO.rst b/core/exchange/get-aml-OFFICER_PUB-attributes-H_NORMALIZED_PAYTO.rst @@ -47,9 +47,14 @@ ``TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_GET_SIGNATURE_INVALID``. - The specific officer is unknown or disabled. Returned with a code of ``TALER_EC_EXCHANGE_GENERIC_AML_OFFICER_ACCESS_DENIED``. + :http:statuscode:`404 Not found`: + The target account is unknown to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_TARGET_ACCOUNT_UNKNOWN``. :http:statuscode:`406 Not Acceptable`: The requested MIME type for the response is not supported. - This is returned with an empty body, so no error code. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_REQUESTED_FORMAT_UNSUPPORTED``. :http:statuscode:`500 Internal server error`: The server had an internal problem handling the request. The error code is usually a ``TALER_EC_GENERIC_DB_FETCH_FAILED``. @@ -57,6 +62,8 @@ The requested functionality is not implemented. Usually returned if the PDF generator is not available at this backend and the requested format was application/pdf. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_NO_TYPST_OR_PDFTK``. .. ts:def:: KycAttributesResponse diff --git a/core/exchange/get-aml-OFFICER_PUB-transfers-credit.rst b/core/exchange/get-aml-OFFICER_PUB-transfers-credit.rst @@ -51,6 +51,10 @@ The designated AML account is not known. :http:statuscode:`409 Conflict`: The designated AML account is not enabled. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_FETCH_FAILED``. .. ts:def:: ExchangeTransferList diff --git a/core/exchange/get-coins-COIN_PUB-history.rst b/core/exchange/get-coins-COIN_PUB-history.rst @@ -27,3 +27,10 @@ The coin is unknown to the exchange. This response comes with a standard `ErrorDetail` response with a code of ``TALER_EC_EXCHANGE_GENERIC_COIN_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_SOFT_FAILURE``, or + ``TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE``. diff --git a/core/exchange/get-contracts-CONTRACT_PUB.rst b/core/exchange/get-contracts-CONTRACT_PUB.rst @@ -12,7 +12,12 @@ a code of ``TALER_EC_EXCHANGE_CONTRACTS_INVALID_CONTRACT_PUB``. :http:statuscode:`404 Not found`: The contract is unknown. - This response comes with a standard `ErrorDetail` response. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_CONTRACTS_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/exchange/get-deposits-H_WIRE-MERCHANT_PUB-H_CONTRACT_TERMS-COIN_PUB.rst b/core/exchange/get-deposits-H_WIRE-MERCHANT_PUB-H_CONTRACT_TERMS-COIN_PUB.rst @@ -33,14 +33,25 @@ :http:statuscode:`400 Bad request`: A path parameter is malformed. This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_H_WIRE``, + ``TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_MERCHANT_PUB``, + ``TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_H_CONTRACT_TERMS``, or + ``TALER_EC_EXCHANGE_DEPOSITS_GET_INVALID_COIN_PUB``. :http:statuscode:`403 Forbidden`: - A signature is invalid. - This response comes with a standard `ErrorDetail` response. + The merchant signature is invalid. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_DEPOSITS_GET_MERCHANT_SIGNATURE_INVALID``. :http:statuscode:`404 Not found`: The deposit operation is unknown to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_DEPOSITS_GET_NOT_FOUND``. :http:statuscode:`500 Internal Server Error`: The exchange had an internal error processing the request. This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``. **Details:** diff --git a/core/exchange/get-keys.rst b/core/exchange/get-keys.rst @@ -22,6 +22,10 @@ This response comes with a standard `ErrorDetail` response with a code of ``TALER_EC_EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE`` or ``TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE``. :http:statuscode:`503 Service Unavailable`: The exchange has no valid denomination keys available. This response comes with a standard `ErrorDetail` response with diff --git a/core/exchange/get-kyc-check-H_NORMALIZED_PAYTO.rst b/core/exchange/get-kyc-check-H_NORMALIZED_PAYTO.rst @@ -82,11 +82,17 @@ The provided signature is not acceptable for the given account. The response will be an `KycCheckAccountExpectedResponse` object which specifies the expected account public key. :http:statuscode:`404 Not found`: The account identified by the normalized payto hash is unknown. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_KYC_CHECK_REQUEST_UNKNOWN``. :http:statuscode:`409 Conflict`: The bank account is not (yet) associated with a public key. The account owner must do a wire transfer to the exchange with the account public key in the wire transfer subject to enable authentication. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_KYC_CHECK_AUTHORIZATION_KEY_UNKNOWN``. :http:statuscode:`500 Internal Server Error`: The exchange had an internal error processing the request. This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``. **Details:** diff --git a/core/exchange/get-kyc-info-ACCESS_TOKEN.rst b/core/exchange/get-kyc-info-ACCESS_TOKEN.rst @@ -49,6 +49,13 @@ The access token is invalid or the account is not authorized. This response comes with a standard `ErrorDetail` response with a code of ``TALER_EC_EXCHANGE_KYC_INFO_AUTHORIZATION_FAILED``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_COMMIT_FAILED``, or + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``. **Details:** diff --git a/core/exchange/get-kyc-proof-PROVIDER_NAME.rst b/core/exchange/get-kyc-proof-PROVIDER_NAME.rst @@ -61,8 +61,15 @@ The provided authorization token is invalid. :http:statuscode:`404 Not found`: The payment target is unknown. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN`` or + ``TALER_EC_EXCHANGE_KYC_PROOF_REQUEST_UNKNOWN``. :http:statuscode:`500 Internal Server Error`: The exchange encountered an internal error processing the request. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. :http:statuscode:`502 Bad Gateway`: The exchange received an invalid reply from the legitimization service. diff --git a/core/exchange/get-kyc-webhook-PROVIDER_NAME-star.rst b/core/exchange/get-kyc-webhook-PROVIDER_NAME-star.rst @@ -20,3 +20,11 @@ The operation succeeded. :http:statuscode:`404 Not found`: The specified logic is unknown. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_KYC_GENERIC_LOGIC_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, or + ``TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION``. diff --git a/core/exchange/get-management-keys.rst b/core/exchange/get-management-keys.rst @@ -9,6 +9,19 @@ :http:statuscode:`200 OK`: The exchange responds with a `FutureKeysResponse` object. This request should virtually always be successful. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE``. + :http:statuscode:`502 Bad Gateway`: + A security module helper is unavailable. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_DENOMINATION_HELPER_UNAVAILABLE`` or + ``TALER_EC_EXCHANGE_SIGNKEY_HELPER_UNAVAILABLE``. + :http:statuscode:`503 Service Unavailable`: + The exchange is not yet ready (keys not loaded). + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING``. **Details:** diff --git a/core/exchange/get-purses-PURSE_PUB-merge.rst b/core/exchange/get-purses-PURSE_PUB-merge.rst @@ -23,13 +23,21 @@ about the purse. The response will include a `PurseStatus` object. :http:statuscode:`400 Bad Request`: - The ``$PURSE_PUB`` is malformed. - This response comes with a standard `ErrorDetail` response with - a code of ``TALER_EC_EXCHANGE_GENERIC_PURSE_PUB_MALFORMED``. + The request is malformed. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_GENERIC_PURSE_PUB_MALFORMED`` or + ``TALER_EC_EXCHANGE_PURSES_INVALID_WAIT_TARGET``. :http:statuscode:`404 Not found`: The purse is unknown to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_PURSE_UNKNOWN``. :http:statuscode:`410 Gone`: The purse expired before the deposit or merge was completed. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/exchange/get-reserves-RESERVE_PUB-attest.rst b/core/exchange/get-reserves-RESERVE_PUB-attest.rst @@ -15,8 +15,14 @@ a code of ``TALER_EC_GENERIC_RESERVE_PUB_MALFORMED``. :http:statuscode:`404 Not found`: The reserve key does not belong to a reserve known to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN``. :http:statuscode:`409 Conflict`: The exchange does not have the requested KYC information. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/exchange/get-reserves-RESERVE_PUB-history.rst b/core/exchange/get-reserves-RESERVE_PUB-history.rst @@ -32,9 +32,19 @@ The reserve history matches the one identified by the "If-none-match" HTTP header of the request. :http:statuscode:`403 Forbidden`: The *TALER_SIGNATURE_RESERVE_HISTORY_REQUEST* is invalid. - This response comes with a standard `ErrorDetail` response. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_RESERVE_HISTORY_BAD_SIGNATURE``. :http:statuscode:`404 Not found`: The reserve key does not belong to a reserve known to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_SOFT_FAILURE``, or + ``TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE``. **Details:** diff --git a/core/exchange/get-reserves-RESERVE_PUB.rst b/core/exchange/get-reserves-RESERVE_PUB.rst @@ -12,6 +12,14 @@ The exchange responds with a `ReserveSummary` object; the reserve was known to the exchange. :http:statuscode:`404 Not found`: The reserve key does not belong to a reserve known to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_SOFT_FAILURE``. **Details:** diff --git a/core/exchange/get-transfers-WTID.rst b/core/exchange/get-transfers-WTID.rst @@ -22,6 +22,7 @@ the request. Error codes used are: - ``TALER_EC_GENERIC_DB_FETCH_FAILED`` - ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE`` + - ``TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE`` - ``TALER_EC_EXCHANGE_TRANSFERS_GET_WIRE_FEE_NOT_FOUND`` - ``TALER_EC_EXCHANGE_TRANSFERS_GET_WIRE_FEE_INCONSISTENT`` diff --git a/core/exchange/post-aml-OFFICER_PUB-decision.rst b/core/exchange/post-aml-OFFICER_PUB-decision.rst @@ -13,6 +13,8 @@ The AML decision has been executed and recorded successfully. :http:statuscode:`400 Bad request`: The request was malformed. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`403 Forbidden`: The signature is invalid (or the AML officer not known). Returned with an error code of diff --git a/core/exchange/post-auditors-AUDITOR_PUB-H_DENOM_PUB.rst b/core/exchange/post-auditors-AUDITOR_PUB-H_DENOM_PUB.rst @@ -34,6 +34,12 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-batch-deposit.rst b/core/exchange/post-batch-deposit.rst @@ -71,6 +71,13 @@ The client must pass KYC checks before proceeding with the deposit. The response will be an `LegitimizationNeededResponse` object. @since protocol **v21**. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_START_FAILED``, or + ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/exchange/post-blinding-prepare.rst b/core/exchange/post-blinding-prepare.rst @@ -18,8 +18,10 @@ expired). :http:statuscode:`400 Bad Request`: The request body is malformed or a parameter is invalid. - This response comes with a standard `ErrorDetail` response with - a code of ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_PARAMETER_MALFORMED`` or + ``TALER_EC_EXCHANGE_GENERIC_NEW_DENOMS_ARRAY_SIZE_EXCESSIVE``. :http:statuscode:`404 Not found`: A denomination key is not known to the exchange. The response is a `DenominationUnknownMessage`. @@ -33,6 +35,10 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING``. **Details:** diff --git a/core/exchange/post-kyc-start-ID.rst b/core/exchange/post-kyc-start-ID.rst @@ -33,11 +33,13 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. - :http:statuscode:`400 Internal Server Error`: + :http:statuscode:`500 Internal Server Error`: The server had an internal problem processing the request. Returned with error codes of: - ``TALER_EC_EXCHANGE_KYC_GENERIC_LOGIC_BUG`` - ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE`` + - ``TALER_EC_GENERIC_DB_FETCH_FAILED`` + - ``TALER_EC_GENERIC_DB_STORE_FAILED`` **Details:** diff --git a/core/exchange/post-kyc-upload-ID.rst b/core/exchange/post-kyc-upload-ID.rst @@ -27,7 +27,22 @@ a code of ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not Found`: The ``$ID`` is unknown to the exchange. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_KYC_CHECK_REQUEST_UNKNOWN`` or + ``TALER_EC_GENERIC_ENDPOINT_UNKNOWN``. :http:statuscode:`409 Conflict`: The upload conflicts with a previous upload. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_KYC_FORM_ALREADY_UPLOADED``. :http:statuscode:`413 Request Entity Too Large`: The body is too large. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``, + ``TALER_EC_GENERIC_DB_SETUP_FAILED``, or + ``TALER_EC_EXCHANGE_KYC_GENERIC_AML_LOGIC_BUG``. diff --git a/core/exchange/post-kyc-wallet.rst b/core/exchange/post-kyc-wallet.rst @@ -35,7 +35,8 @@ KYC is disabled at this exchange. :http:statuscode:`403 Forbidden`: The provided signature is invalid. - This response comes with a standard `ErrorDetail` response. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_KYC_WALLET_SIGNATURE_INVALID``. :http:statuscode:`413 Request entity too large`: The uploaded body is to long, it exceeds the size limit. Returned with an error code of diff --git a/core/exchange/post-management-aml-officers.rst b/core/exchange/post-management-aml-officers.rst @@ -22,6 +22,10 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-auditors-AUDITOR_PUB-disable.rst b/core/exchange/post-management-auditors-AUDITOR_PUB-disable.rst @@ -31,6 +31,12 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-auditors.rst b/core/exchange/post-management-auditors.rst @@ -18,6 +18,12 @@ The exchange has a more recent request related to this auditor key (replay detected). Returned with an error code of ``TALER_EC_EXCHANGE_MANAGEMENT_AUDITOR_MORE_RECENT_PRESENT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-denominations-H_DENOM_PUB-revoke.rst b/core/exchange/post-management-denominations-H_DENOM_PUB-revoke.rst @@ -16,6 +16,10 @@ The provided signature is invalid. Returned with an error code of ``TALER_EC_EXCHANGE_MANAGEMENT_DENOMINATION_REVOKE_SIGNATURE_INVALID``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-global-fees.rst b/core/exchange/post-management-global-fees.rst @@ -21,6 +21,12 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-keys.rst b/core/exchange/post-management-keys.rst @@ -14,8 +14,16 @@ The request was successfully processed. :http:statuscode:`403 Forbidden`: A provided signature is invalid. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_MANAGEMENT_KEYS_DENOMKEY_ADD_SIGNATURE_INVALID`` or + ``TALER_EC_EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_ADD_SIGNATURE_INVALID``. :http:statuscode:`404 Not found`: One of the keys for which a signature was provided is unknown to the exchange. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_GENERIC_DENOMINATION_KEY_UNKNOWN`` or + ``TALER_EC_EXCHANGE_MANAGEMENT_KEYS_SIGNKEY_UNKNOWN``. :http:statuscode:`409 Conflict`: The denomination or signing key meta data conflicts with existing keys. This response comes with a standard `ErrorDetail` response with @@ -25,6 +33,14 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING``, or + ``TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION``. **Details:** diff --git a/core/exchange/post-management-partners.rst b/core/exchange/post-management-partners.rst @@ -13,12 +13,20 @@ The partner has been added successfully. :http:statuscode:`403 Forbidden`: The signature is invalid. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_MANAGEMENT_ADD_PARTNER_SIGNATURE_INVALID``. :http:statuscode:`409 Conflict`: The exchange has previously received a conflicting configuration message. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_MANAGEMENT_ADD_PARTNER_DATA_CONFLICT``. :http:statuscode:`413 Request entity too large`: The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-signkeys-EXCHANGE_PUB-revoke.rst b/core/exchange/post-management-signkeys-EXCHANGE_PUB-revoke.rst @@ -14,6 +14,12 @@ The request was successfully processed. :http:statuscode:`403 Forbidden`: The provided signature is invalid. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_MANAGEMENT_SIGNKEY_REVOKE_SIGNATURE_INVALID``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-wire-disable.rst b/core/exchange/post-management-wire-disable.rst @@ -29,6 +29,12 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-wire-fee.rst b/core/exchange/post-management-wire-fee.rst @@ -17,6 +17,12 @@ The exchange has a conflicting wire fee already set up. Returned with an errro code of ``TALER_EC_EXCHANGE_MANAGEMENT_WIRE_FEE_MISMATCH``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-management-wire.rst b/core/exchange/post-management-wire.rst @@ -27,6 +27,12 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/exchange/post-melt.rst b/core/exchange/post-melt.rst @@ -59,6 +59,16 @@ It is before the validity start time. The response is a `DenominationGoneMessage` with ``TALER_EC_EXCHANGE_GENERIC_DENOMINATION_VALIDITY_IN_FUTURE``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``, + ``TALER_EC_GENERIC_DB_COMMIT_FAILED``, + ``TALER_EC_GENERIC_DB_START_FAILED``, + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``, or + ``TALER_EC_EXCHANGE_REFRESHES_REVEAL_COST_CALCULATION_OVERFLOW``. :http:statuscode:`503 Service Unavailable`: The exchange currently has no signing keys available. This response comes with a standard `ErrorDetail` response with diff --git a/core/exchange/post-purses-PURSE_PUB-create.rst b/core/exchange/post-purses-PURSE_PUB-create.rst @@ -64,8 +64,12 @@ The exchange encountered an internal error. This response comes with a standard `ErrorDetail` response. Possible error codes include - ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING`` or - ``TALER_EC_EXCHANGE_GENERIC_GLOBAL_FEES_MISSING``. + ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING``, + ``TALER_EC_EXCHANGE_GENERIC_GLOBAL_FEES_MISSING``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_START_FAILED``, or + ``TALER_EC_GENERIC_FAILED_COMPUTE_AMOUNT``. **Details:** diff --git a/core/exchange/post-purses-PURSE_PUB-deposit.rst b/core/exchange/post-purses-PURSE_PUB-deposit.rst @@ -43,6 +43,14 @@ The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_START_FAILED``, or + ``TALER_EC_GENERIC_FAILED_COMPUTE_AMOUNT``. **Details:** diff --git a/core/exchange/post-purses-PURSE_PUB-merge.rst b/core/exchange/post-purses-PURSE_PUB-merge.rst @@ -20,19 +20,28 @@ :http:statuscode:`402 Payment Required`: The purse is not yet full and more money needs to be deposited before the merge can be made. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_PURSE_NOT_FULL``. :http:statuscode:`403 Forbidden`: The signature of the merge request or the reserve was invalid. This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_PURSE_MERGE_INVALID_MERGE_SIGNATURE`` or + ``TALER_EC_EXCHANGE_PURSE_MERGE_INVALID_RESERVE_SIGNATURE``. :http:statuscode:`404 Not found`: The merge operation failed as we could not find the purse or the partner exchange. This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_GENERIC_PURSE_UNKNOWN`` or + ``TALER_EC_EXCHANGE_MERGE_PURSE_PARTNER_UNKNOWN``. :http:statuscode:`409 Conflict`: The purse was already merged into a different reserve. The response will include a `MergeConflict` object. :http:statuscode:`410 Gone`: The purse has already expired and thus can no longer be merged. - This response comes with a standard `ErrorDetail` response. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_PURSE_EXPIRED``. :http:statuscode:`413 Request entity too large`: The uploaded body is to long, it exceeds the size limit. Returned with an error code of @@ -41,6 +50,13 @@ This account has not yet passed the KYC checks. The client must pass KYC checks before proceeding with the merge. The response will be an `LegitimizationNeededResponse` object. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, or + ``TALER_EC_EXCHANGE_GENERIC_WIRE_FEES_MISSING``. **Details:** diff --git a/core/exchange/post-recoup-refresh.rst b/core/exchange/post-recoup-refresh.rst @@ -72,7 +72,9 @@ The exchange encountered an internal error. This response comes with a standard `ErrorDetail` response. Possible error codes include - ``TALER_EC_EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED``. + ``TALER_EC_EXCHANGE_RECOUP_REFRESH_BLINDING_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, or + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``. **Details:** diff --git a/core/exchange/post-recoup-withdraw.rst b/core/exchange/post-recoup-withdraw.rst @@ -57,9 +57,12 @@ Clients must evaluate the error code provided to understand which of the cases this is and handle it accordingly. :http:statuscode:`500 Internal Server Error`: - The exchange encountered an internal error, for example a blinding - failure (``TALER_EC_EXCHANGE_RECOUP_BLINDING_FAILED``). + The exchange encountered an internal error. This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_EXCHANGE_RECOUP_BLINDING_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, or + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``. **Details:** diff --git a/core/exchange/post-reserves-RESERVE_PUB-attest.rst b/core/exchange/post-reserves-RESERVE_PUB-attest.rst @@ -13,20 +13,31 @@ :http:statuscode:`200 OK`: The exchange responds with a `ReserveAttestResponse` object. :http:statuscode:`400 Bad Request`: - The ``$RESERVE_PUB`` is malformed. - This response comes with a standard `ErrorDetail` response with - a code of ``TALER_EC_GENERIC_RESERVE_PUB_MALFORMED``. + The request is malformed. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_RESERVE_PUB_MALFORMED`` or + ``TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW``. :http:statuscode:`403 Forbidden`: The *TALER_SIGNATURE_WALLET_KYC_DETAILS* signature is invalid. - This response comes with a standard `ErrorDetail` response. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_RESERVES_ATTEST_BAD_SIGNATURE``. :http:statuscode:`404 Not found`: The reserve key does not belong to a reserve known to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN``. :http:statuscode:`409 Conflict`: The exchange does not have the requested KYC information. :http:statuscode:`413 Request entity too large`: The uploaded body is to long, it exceeds the size limit. Returned with an error code of ``TALER_EC_GENERIC_UPLOAD_EXCEEDS_LIMIT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_JSON_ALLOCATION_FAILURE``. **Details:** diff --git a/core/exchange/post-reserves-RESERVE_PUB-close.rst b/core/exchange/post-reserves-RESERVE_PUB-close.rst @@ -24,12 +24,17 @@ a code of ``TALER_EC_EXCHANGE_GENERIC_CLOCK_SKEW``. :http:statuscode:`403 Forbidden`: The *TALER_SIGNATURE_WALLET_RESERVE_CLOSE* signature is invalid. - This response comes with a standard `ErrorDetail` response. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_RESERVES_CLOSE_BAD_SIGNATURE``. :http:statuscode:`404 Not found`: The reserve key does not belong to a reserve known to the exchange. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_GENERIC_RESERVE_UNKNOWN``. :http:statuscode:`409 Conflict`: No target account was given, and the exchange does not know an origin account for this reserve. + This response comes with a standard `ErrorDetail` response with + a code of ``TALER_EC_EXCHANGE_RESERVES_CLOSE_NO_TARGET_ACCOUNT``. :http:statuscode:`413 Request entity too large`: The uploaded body is to long, it exceeds the size limit. Returned with an error code of @@ -39,6 +44,13 @@ funds to a non-origin account is not allowed. The client must pass KYC checks before the reserve can be opened. The response will be an `LegitimizationNeededResponse` object. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``, or + ``TALER_EC_EXCHANGE_WIRE_FEES_NOT_CONFIGURED``. **Details:** diff --git a/core/exchange/post-reserves-RESERVE_PUB-open.rst b/core/exchange/post-reserves-RESERVE_PUB-open.rst @@ -44,8 +44,11 @@ The exchange encountered an internal error. This response comes with a standard `ErrorDetail` response. Possible error codes include - ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING`` or - ``TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION``. + ``TALER_EC_EXCHANGE_GENERIC_KEYS_MISSING``, + ``TALER_EC_EXCHANGE_GENERIC_BAD_CONFIGURATION``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_STORE_FAILED``, or + ``TALER_EC_GENERIC_FAILED_COMPUTE_AMOUNT``. **Details:** diff --git a/core/exchange/post-reserves-RESERVE_PUB-purse.rst b/core/exchange/post-reserves-RESERVE_PUB-purse.rst @@ -66,6 +66,13 @@ This account has not yet passed the KYC checks. The client must pass KYC checks before proceeding with the merge. The response will be an `LegitimizationNeededResponse` object. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal error. + This response comes with a standard `ErrorDetail` response. + Possible error codes include + ``TALER_EC_GENERIC_DB_STORE_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. :http:statuscode:`503 Service unavailable`: The server could not process the request because it is currently unavailable. Error codes include: diff --git a/core/exchange/post-withdraw.rst b/core/exchange/post-withdraw.rst @@ -29,7 +29,9 @@ The request body is malformed or a parameter is invalid. This response comes with a standard `ErrorDetail` response. Possible error codes include ``TALER_EC_GENERIC_PARAMETER_MALFORMED``, - ``TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH``, or + ``TALER_EC_GENERIC_PARAMETER_MISSING``, + ``TALER_EC_EXCHANGE_GENERIC_CIPHER_MISMATCH``, + ``TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_OVERFLOW``, or ``TALER_EC_EXCHANGE_WITHDRAW_IDEMPOTENT_PLANCHET``. :http:statuscode:`403 Forbidden`: A signature is invalid. This is usually the reserve signature. @@ -130,7 +132,10 @@ The exchange encountered an internal error during the withdrawal. This response comes with a standard `ErrorDetail` response. Possible error codes include - ``TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW`` or + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, + ``TALER_EC_GENERIC_DB_INVARIANT_FAILURE``, + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``, + ``TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_FEE_OVERFLOW``, or ``TALER_EC_EXCHANGE_WITHDRAW_AMOUNT_OVERFLOW``. :http:statuscode:`501 Not implemented`: The client has provided a cipher that is not supported.