taler-docs

Documentation for GNU Taler components, APIs and protocols
Log | Files | Refs | README | LICENSE

commit 5bd341b983246b66ccbe8a8fdd4a684bd813be4b
parent 7ddbc732e3147c96673b17e3d0bf6a3130d1dff1
Author: Christian Grothoff <christian@grothoff.org>
Date:   Wed, 25 Mar 2026 00:05:39 +0100

document various canonical HTTP status codes and the associated EC codes

Diffstat:
Mcore/merchant/delete-management-instances-INSTANCE.rst | 6++++++
Mcore/merchant/delete-private-accounts-H_WIRE.rst | 9+++++++++
Mcore/merchant/delete-private-categories-CATEGORY_ID.rst | 8++++++++
Mcore/merchant/delete-private-donau-DONAU_SERIAL.rst | 8++++++++
Mcore/merchant/delete-private-groups-GROUP_SERIAL.rst | 8+++++++-
Mcore/merchant/delete-private-orders-ORDER_ID.rst | 7+++++++
Mcore/merchant/delete-private-otp-devices-DEVICE_ID.rst | 6++++++
Mcore/merchant/delete-private-pots-POT_SERIAL.rst | 8+++++++-
Mcore/merchant/delete-private-products-PRODUCT_ID.rst | 7+++++++
Mcore/merchant/delete-private-reports-REPORT_SERIAL.rst | 8+++++++-
Mcore/merchant/delete-private-templates-TEMPLATE_ID.rst | 6++++++
Mcore/merchant/delete-private-token.rst | 6++++++
Mcore/merchant/delete-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst | 4++++
Mcore/merchant/delete-private-tokens-SERIAL.rst | 6++++++
Mcore/merchant/delete-private-transfers-TID.rst | 10++++++++++
Mcore/merchant/delete-private-units-UNIT.rst | 5+++++
Mcore/merchant/delete-private-webhooks-WEBHOOK_ID.rst | 7++++++-
Mcore/merchant/get-config.rst | 2++
Mcore/merchant/get-exchanges.rst | 3+++
Mcore/merchant/get-management-instances-INSTANCE.rst | 9+++++++++
Mcore/merchant/get-management-instances.rst | 2++
Mcore/merchant/get-orders-ORDER_ID.rst | 8++++++++
Mcore/merchant/get-private-accounts-H_WIRE.rst | 7+++++++
Mcore/merchant/get-private-accounts.rst | 3+++
Mcore/merchant/get-private-categories-CATEGORY_ID.rst | 9+++++++++
Mcore/merchant/get-private-categories.rst | 3+++
Mcore/merchant/get-private-donau.rst | 3+++
Mcore/merchant/get-private-groups.rst | 6++++++
Mcore/merchant/get-private-incoming-ID.rst | 9++++++++-
Mcore/merchant/get-private-incoming.rst | 3+++
Mcore/merchant/get-private-kyc.rst | 10++++++++++
Mcore/merchant/get-private-orders-ORDER_ID.rst | 3+++
Mcore/merchant/get-private-orders.rst | 10++++++++++
Mcore/merchant/get-private-otp-devices-DEVICE_ID.rst | 5+++++
Mcore/merchant/get-private-otp-devices.rst | 5+++++
Mcore/merchant/get-private-pos.rst | 3+++
Mcore/merchant/get-private-pots-POT_SERIAL.rst | 7++++++-
Mcore/merchant/get-private-pots.rst | 6++++++
Mcore/merchant/get-private-products-PRODUCT_ID.rst | 5+++++
Mcore/merchant/get-private-products.rst | 5+++++
Mcore/merchant/get-private-reports-REPORT_SERIAL.rst | 7++++++-
Mcore/merchant/get-private-reports.rst | 6++++++
Mcore/merchant/get-private-statistics-amount-SLUG.rst | 6++++++
Mcore/merchant/get-private-statistics-counter-SLUG.rst | 6++++++
Mcore/merchant/get-private-templates-TEMPLATE_ID.rst | 5+++++
Mcore/merchant/get-private-templates.rst | 5+++++
Mcore/merchant/get-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst | 5+++++
Mcore/merchant/get-private-tokenfamilies.rst | 3+++
Mcore/merchant/get-private-tokens.rst | 3+++
Mcore/merchant/get-private-transfers.rst | 7+++++++
Mcore/merchant/get-private-units-UNIT.rst | 5+++++
Mcore/merchant/get-private-units.rst | 5+++++
Mcore/merchant/get-private-webhooks-WEBHOOK_ID.rst | 5+++++
Mcore/merchant/get-private-webhooks.rst | 5+++++
Mcore/merchant/get-products-IMAGE_HASH-image.rst | 3+++
Mcore/merchant/get-sessions-SESSION_ID.rst | 7+++++++
Mcore/merchant/get-templates-TEMPLATE_ID.rst | 5+++++
Mcore/merchant/patch-management-instances-INSTANCE.rst | 10++++++++++
Mcore/merchant/patch-private-accounts-H_WIRE.rst | 6++++++
Mcore/merchant/patch-private-categories-CATEGORY_ID.rst | 10++++++++++
Mcore/merchant/patch-private-groups-GROUP_ID.rst | 8++++++++
Mcore/merchant/patch-private-orders-ORDER_ID-forget.rst | 5+++++
Mcore/merchant/patch-private-otp-devices-DEVICE_ID.rst | 5+++++
Mcore/merchant/patch-private-pots-POT_ID.rst | 9+++++++++
Mcore/merchant/patch-private-products-PRODUCT_ID.rst | 5+++++
Mcore/merchant/patch-private-reports-REPORT_ID.rst | 7+++++++
Mcore/merchant/patch-private-templates-TEMPLATE_ID.rst | 5+++++
Mcore/merchant/patch-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst | 10++++++++++
Mcore/merchant/patch-private-units-UNIT.rst | 9+++++++++
Mcore/merchant/patch-private-webhooks-WEBHOOK_ID.rst | 5+++++
Mcore/merchant/post-challenge-CHALLENGE_ID-confirm.rst | 3+++
Mcore/merchant/post-challenge-CHALLENGE_ID.rst | 8+++++++-
Mcore/merchant/post-instances-INSTANCE-forgot-password.rst | 8++++++++
Mcore/merchant/post-instances.rst | 10++++++++++
Mcore/merchant/post-management-instances-INSTANCE-auth.rst | 8++++++++
Mcore/merchant/post-management-instances.rst | 6++++++
Mcore/merchant/post-orders-ORDER_ID-abort.rst | 3+++
Mcore/merchant/post-orders-ORDER_ID-claim.rst | 3+++
Mcore/merchant/post-orders-ORDER_ID-refund.rst | 3+++
Mcore/merchant/post-private-accounts.rst | 5+++++
Mcore/merchant/post-private-categories.rst | 8++++++++
Mcore/merchant/post-private-donau.rst | 5+++++
Mcore/merchant/post-private-groups.rst | 6++++++
Mcore/merchant/post-private-orders-ORDER_ID-refund.rst | 5+++++
Mcore/merchant/post-private-orders.rst | 5+++++
Mcore/merchant/post-private-otp-devices.rst | 7+++++++
Mcore/merchant/post-private-pots.rst | 6++++++
Mcore/merchant/post-private-products-PRODUCT_ID-lock.rst | 5+++++
Mcore/merchant/post-private-products.rst | 5+++++
Mcore/merchant/post-private-templates.rst | 5+++++
Mcore/merchant/post-private-token.rst | 3+++
Mcore/merchant/post-private-tokenfamilies.rst | 5+++++
Mcore/merchant/post-private-transfers.rst | 5+++++
Mcore/merchant/post-private-units.rst | 5+++++
Mcore/merchant/post-private-webhooks.rst | 5+++++
Mcore/merchant/post-templates-TEMPLATE_ID.rst | 8++++++++
96 files changed, 564 insertions(+), 8 deletions(-)

diff --git a/core/merchant/delete-management-instances-INSTANCE.rst b/core/merchant/delete-management-instances-INSTANCE.rst @@ -31,8 +31,14 @@ the request must be authorized using the ``admin`` instance. :http:statuscode:`404 Not found`: The instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN``. :http:statuscode:`409 Conflict`: The instance cannot be deleted because it has pending offers, or the instance cannot be purged because it has successfully processed payments that have not passed the ``TAX_RECORD_EXPIRATION`` time. The latter case only applies if ``purge`` was set. + Returned with ``TALER_EC_MERCHANT_PRIVATE_DELETE_INSTANCES_PURGE_REQUIRED``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-accounts-H_WIRE.rst b/core/merchant/delete-private-accounts-H_WIRE.rst @@ -6,5 +6,14 @@ :http:statuscode:`204 No content`: The backend has successfully deactivated the account. + :http:statuscode:`400 Bad Request`: + The ``$H_WIRE`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend does not know the instance or the account. + Returned with ``TALER_EC_MERCHANT_GENERIC_ACCOUNT_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-categories-CATEGORY_ID.rst b/core/merchant/delete-private-categories-CATEGORY_ID.rst @@ -9,5 +9,13 @@ :http:statuscode:`204 No Content`: The category was deleted. + :http:statuscode:`400 Bad Request`: + The ``$CATEGORY_ID`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not Found`: The category was possibly already deleted or is unknown. + Returned with ``TALER_EC_MERCHANT_GENERIC_CATEGORY_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-donau-DONAU_SERIAL.rst b/core/merchant/delete-private-donau-DONAU_SERIAL.rst @@ -8,5 +8,13 @@ :http:statuscode:`204 No content`: Charity link removed. + :http:statuscode:`400 Bad Request`: + The ``$DONAU_SERIAL`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: No such charity link exists. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-groups-GROUP_SERIAL.rst b/core/merchant/delete-private-groups-GROUP_SERIAL.rst @@ -8,6 +8,12 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the group. - + :http:statuscode:`400 Bad Request`: + The group ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The group or the instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_PRODUCT_GROUP_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-orders-ORDER_ID.rst b/core/merchant/delete-private-orders-ORDER_ID.rst @@ -8,7 +8,14 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the order. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend does not know the instance or the order. :http:statuscode:`409 Conflict`: The backend refuses to delete the order. + Returned with ``TALER_EC_MERCHANT_PRIVATE_DELETE_ORDERS_ALREADY_PAID`` or + ``TALER_EC_MERCHANT_PRIVATE_DELETE_ORDERS_AWAITING_PAYMENT``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-otp-devices-DEVICE_ID.rst b/core/merchant/delete-private-otp-devices-DEVICE_ID.rst @@ -6,5 +6,11 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the OTP device. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend does not know the instance or the OTP device. + Returned with ``TALER_EC_MERCHANT_GENERIC_OTP_DEVICE_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-pots-POT_SERIAL.rst b/core/merchant/delete-private-pots-POT_SERIAL.rst @@ -11,6 +11,12 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the pot. - + :http:statuscode:`400 Bad Request`: + The pot ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The pot or the instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_MONEY_POT_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-products-PRODUCT_ID.rst b/core/merchant/delete-private-products-PRODUCT_ID.rst @@ -9,7 +9,14 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the product. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend does not know the instance or the product. + Returned with ``TALER_EC_MERCHANT_GENERIC_PRODUCT_UNKNOWN``. :http:statuscode:`409 Conflict`: The backend refuses to delete the product because it is locked. + Returned with ``TALER_EC_MERCHANT_PRIVATE_DELETE_PRODUCTS_CONFLICTING_LOCK``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-reports-REPORT_SERIAL.rst b/core/merchant/delete-private-reports-REPORT_SERIAL.rst @@ -8,6 +8,12 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the report. - + :http:statuscode:`400 Bad Request`: + The report ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The report or the instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_REPORT_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-templates-TEMPLATE_ID.rst b/core/merchant/delete-private-templates-TEMPLATE_ID.rst @@ -8,5 +8,11 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the template. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend does not know the instance or the template. + Returned with ``TALER_EC_MERCHANT_GENERIC_TEMPLATE_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-token.rst b/core/merchant/delete-private-token.rst @@ -6,3 +6,9 @@ :http:statuscode:`204 No content`: The access token used to authorize this request was revoked. + :http:statuscode:`400 Bad Request`: + The authorization header token is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst b/core/merchant/delete-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst @@ -12,3 +12,7 @@ :http:statuscode:`404 Not found`: The merchant backend is unaware of the token family or instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-tokens-SERIAL.rst b/core/merchant/delete-private-tokens-SERIAL.rst @@ -15,5 +15,11 @@ Invalid or missing credentials. :http:statuscode:`403 Forbidden`: Missing permission. + :http:statuscode:`400 Bad Request`: + The ``$SERIAL`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The token was not found. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-transfers-TID.rst b/core/merchant/delete-private-transfers-TID.rst @@ -9,7 +9,17 @@ :http:statuscode:`204 No content`: The transfer was deleted. + :http:statuscode:`400 Bad Request`: + The ``$TID`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The transfer was already unknown. + Returned with ``TALER_EC_MERCHANT_GENERIC_TRANSFER_UNKNOWN``. :http:statuscode:`409 Conflict`: The transfer cannot be deleted anymore. + Returned with ``TALER_EC_MERCHANT_PRIVATE_DELETE_TRANSFERS_ALREADY_CONFIRMED``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-units-UNIT.rst b/core/merchant/delete-private-units-UNIT.rst @@ -8,7 +8,12 @@ :http:statuscode:`204 No content`: The unit was removed. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The unit is unknown to the backend. :http:statuscode:`409 Conflict`: Built-in units cannot be deleted. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/delete-private-webhooks-WEBHOOK_ID.rst b/core/merchant/delete-private-webhooks-WEBHOOK_ID.rst @@ -8,6 +8,11 @@ :http:statuscode:`204 No content`: The backend has successfully deleted the webhook. - + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The webhook(ID) or the instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_WEBHOOK_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/get-config.rst b/core/merchant/get-config.rst @@ -6,6 +6,8 @@ :http:statuscode:`200 OK`: The body is a `MerchantVersionResponse`. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. **Details:** diff --git a/core/merchant/get-exchanges.rst b/core/merchant/get-exchanges.rst @@ -7,6 +7,9 @@ :http:statuscode:`200 OK`: The body is a `ExchangeStatusResponse`. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-management-instances-INSTANCE.rst b/core/merchant/get-management-instances-INSTANCE.rst @@ -16,6 +16,11 @@ :http:statuscode:`200 OK`: The backend has successfully returned the list of instances stored. Returns a `QueryInstancesResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`404 Not found`: + The instance is unknown. + Returned with ``TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN``. **Details:** @@ -85,6 +90,10 @@ // @since **v23** default_wire_transfer_rounding_interval: RoundingInterval; + // Bank accounts of the merchant instance. + // FIXME: since when? + accounts: BankAccountEntry[]; + // Authentication configuration. // Does not contain the token when token auth is configured. auth: { diff --git a/core/merchant/get-management-instances.rst b/core/merchant/get-management-instances.rst @@ -10,6 +10,8 @@ :http:statuscode:`200 OK`: The backend has successfully returned the list of instances stored. Returns a `InstancesResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. **Details:** diff --git a/core/merchant/get-orders-ORDER_ID.rst b/core/merchant/get-orders-ORDER_ID.rst @@ -69,12 +69,20 @@ The merchant backend is unaware of the order. :http:statuscode:`406 Not acceptable`: The merchant backend could not load the template required to generate a reply in the desired format. (Likely HTML templates were not properly installed.) + :http:statuscode:`409 Conflict`: + The request is inconsistent. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. **Details:** .. ts:def:: StatusPaidResponse interface StatusPaidResponse { + // FIXME: since when? + // URL for the user to be redirected to if available. + fulfillment_url?: string; + // Was the payment refunded (even partially, via refund or abort)? refunded: boolean; diff --git a/core/merchant/get-private-accounts-H_WIRE.rst b/core/merchant/get-private-accounts-H_WIRE.rst @@ -10,8 +10,15 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific bank account. Returns a `BankAccountDetail`. + :http:statuscode:`400 Bad Request`: + The ``$H_WIRE`` parameter is malformed. + Returned with ``TALER_EC_MERCHANT_GENERIC_H_WIRE_MALFORMED``. :http:statuscode:`404 Not found`: The bank account or instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_ACCOUNT_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-accounts.rst b/core/merchant/get-private-accounts.rst @@ -11,6 +11,9 @@ The backend has successfully returned all the accounts. Returns a `AccountsSummaryResponse`. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-categories-CATEGORY_ID.rst b/core/merchant/get-private-categories-CATEGORY_ID.rst @@ -10,6 +10,15 @@ :http:statuscode:`200 Ok`: The body is a `CategoryProductListResponse`. + :http:statuscode:`400 Bad Request`: + The ``$CATEGORY_ID`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`404 Not found`: + The category is unknown. + Returned with ``TALER_EC_MERCHANT_GENERIC_CATEGORY_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-categories.rst b/core/merchant/get-private-categories.rst @@ -10,6 +10,9 @@ :http:statuscode:`200 Ok`: The body is a `CategoryListResponse`. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-donau.rst b/core/merchant/get-private-donau.rst @@ -12,6 +12,9 @@ Missing or invalid credentials. :http:statuscode:`404 Not found`: The merchant instance is unknown. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-groups.rst b/core/merchant/get-private-groups.rst @@ -18,8 +18,14 @@ The backend has successfully returned all the groups. Returns a `GroupsSummaryResponse`. + :http:statuscode:`400 Bad Request`: + A query parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-incoming-ID.rst b/core/merchant/get-private-incoming-ID.rst @@ -11,12 +11,18 @@ :http:statuscode:`200 OK`: The body of the response is a `ExpectedTransferDetailResponse`. + :http:statuscode:`400 Bad Request`: + The transfer ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The expected wire transfer ``$ID`` is unknown. :http:statuscode:`409 Conflict`: The exchange did not yet provide the transaction details (the ``last_http_status`` of the `ExpectedTransferDetails` is not 200). The information may be available later but is not yet. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** @@ -73,7 +79,8 @@ // do not (yet) have an answer from the exchange. // Does not imply that the wire transfer was settled. // Since protocol **v27**. - validated: boolean; + // FIXME: since when? Renamed from ``validated`` to ``confirmed``. + confirmed: boolean; } diff --git a/core/merchant/get-private-incoming.rst b/core/merchant/get-private-incoming.rst @@ -27,6 +27,9 @@ :http:statuscode:`200 OK`: The body of the response is a `ExpectedTransferListResponse`. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-kyc.rst b/core/merchant/get-private-kyc.rst @@ -73,6 +73,16 @@ The ``ETag`` in the response did not change compared to the one given in the ``If-none-match`` HTTP header specified by the client. @since protocol **v25**. + :http:statuscode:`400 Bad Request`: + A query parameter is malformed. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`404 Not found`: + The instance is unknown to the backend. + :http:statuscode:`406 Not acceptable`: + The merchant backend could not produce a response in the desired format. + :http:statuscode:`503 Service unavailable`: + The merchant backend is temporarily unable to process the request. **Details:** diff --git a/core/merchant/get-private-orders-ORDER_ID.rst b/core/merchant/get-private-orders-ORDER_ID.rst @@ -38,6 +38,9 @@ The order or instance is unknown to the backend. Error code is set to either ``MERCHANT_GENERIC_ORDER_UNKNOWN`` or ``MERCHANT_GENERIC_INSTANCE_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-orders.rst b/core/merchant/get-private-orders.rst @@ -29,6 +29,16 @@ :http:statuscode:`200 OK`: The response is an `OrderHistory`. + :http:statuscode:`400 Bad Request`: + A query parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`404 Not found`: + The instance is unknown. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-otp-devices-DEVICE_ID.rst b/core/merchant/get-private-otp-devices-DEVICE_ID.rst @@ -21,8 +21,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific OTP device. Returns a `OtpDeviceDetails`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The OTP device or instance is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-otp-devices.rst b/core/merchant/get-private-otp-devices.rst @@ -8,8 +8,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned all the templates. Returns a `OtpDeviceSummaryResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-pos.rst b/core/merchant/get-private-pos.rst @@ -13,6 +13,9 @@ a `FullInventoryDetailsResponse`. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-pots-POT_SERIAL.rst b/core/merchant/get-private-pots-POT_SERIAL.rst @@ -8,9 +8,14 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific pot. Returns a `PotDetailResponse`. - + :http:statuscode:`400 Bad Request`: + The pot ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The pot or instance is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-pots.rst b/core/merchant/get-private-pots.rst @@ -18,8 +18,14 @@ The backend has successfully returned all the pots. Returns a `PotsSummaryResponse`. + :http:statuscode:`400 Bad Request`: + A query parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-products-PRODUCT_ID.rst b/core/merchant/get-private-products-PRODUCT_ID.rst @@ -9,8 +9,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned the inventory. Returns a `ProductDetailResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The product (ID) is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-products.rst b/core/merchant/get-private-products.rst @@ -18,8 +18,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned the inventory. Returns a `InventorySummaryResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-reports-REPORT_SERIAL.rst b/core/merchant/get-private-reports-REPORT_SERIAL.rst @@ -9,9 +9,14 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific report. Returns a `ReportDetailResponse`. - + :http:statuscode:`400 Bad Request`: + The report ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The report or instance is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-reports.rst b/core/merchant/get-private-reports.rst @@ -18,8 +18,14 @@ The backend has successfully returned all the reports. Returns a `ReportsSummaryResponse`. + :http:statuscode:`400 Bad Request`: + A query parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-statistics-amount-SLUG.rst b/core/merchant/get-private-statistics-amount-SLUG.rst @@ -16,10 +16,16 @@ :http:statuscode:`200 Ok`: The body will be a `MerchantStatisticsAmountResponse` + :http:statuscode:`400 Bad Request`: + The ``by`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`401 Unauthorized`: The request is unauthorized. :http:statuscode:`404 Not found`: The instance is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-statistics-counter-SLUG.rst b/core/merchant/get-private-statistics-counter-SLUG.rst @@ -16,10 +16,16 @@ :http:statuscode:`200 Ok`: The body will be a `MerchantStatisticsCounterResponse` + :http:statuscode:`400 Bad Request`: + The ``by`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`401 Unauthorized`: The request is unauthorized. :http:statuscode:`404 Not found`: The instance is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-templates-TEMPLATE_ID.rst b/core/merchant/get-private-templates-TEMPLATE_ID.rst @@ -10,8 +10,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific template. Returns a `TemplateDetails`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The instance or template(ID) is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-templates.rst b/core/merchant/get-private-templates.rst @@ -9,8 +9,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned all the templates. Returns a `TemplateSummaryResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst b/core/merchant/get-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst @@ -10,8 +10,13 @@ The merchant backend has successfully returned the detailed information about a specific token family. Returns a `TokenFamilyDetails`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The merchant backend is unaware of the token family or instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-tokenfamilies.rst b/core/merchant/get-private-tokenfamilies.rst @@ -12,6 +12,9 @@ :http:statuscode:`404 Not found`: The merchant backend is unaware of the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-tokens.rst b/core/merchant/get-private-tokens.rst @@ -23,6 +23,9 @@ Invalid or missing credentials. :http:statuscode:`403 Forbidden`: Missing rights. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-transfers.rst b/core/merchant/get-private-transfers.rst @@ -26,6 +26,13 @@ :http:statuscode:`200 OK`: The body of the response is a `TransferList`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`404 Not found`: + The instance is unknown. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-units-UNIT.rst b/core/merchant/get-private-units-UNIT.rst @@ -8,5 +8,10 @@ :http:statuscode:`200 OK`: The backend returned the unit definition. The body is a `MerchantUnit`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The unit is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. diff --git a/core/merchant/get-private-units.rst b/core/merchant/get-private-units.rst @@ -8,6 +8,11 @@ :http:statuscode:`200 OK`: The backend returned the unit catalog. The body is a `UnitListResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-webhooks-WEBHOOK_ID.rst b/core/merchant/get-private-webhooks-WEBHOOK_ID.rst @@ -9,8 +9,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific webhook. Returns a `WebhookDetails`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The webhook(ID) is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-private-webhooks.rst b/core/merchant/get-private-webhooks.rst @@ -9,8 +9,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned all the webhooks. Returns a `WebhookSummaryResponse`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The backend has does not know about the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-products-IMAGE_HASH-image.rst b/core/merchant/get-products-IMAGE_HASH-image.rst @@ -14,6 +14,9 @@ The hash is not a valid hex-encoded SHA-256 digest. :http:statuscode:`404 Not found`: No image is known for the given hash. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. .. ts:def:: ProductImageResponse diff --git a/core/merchant/get-sessions-SESSION_ID.rst b/core/merchant/get-sessions-SESSION_ID.rst @@ -25,12 +25,19 @@ :http:statuscode:`200 OK`: The response is a `GetSessionStatusPaidResponse`. Returned if an order that paid for the respective session exists and was paid. + :http:statuscode:`400 Bad Request`: + A required parameter is missing or malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MISSING`` or + ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`202 Accepted`: The response is a `GetSessionStatusUnpaidResponse`. Returned if an order that paid for the respective session exists, but not yet paid. :http:statuscode:`404 Not found`: The merchant backend is unaware of an order matching the given session. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/get-templates-TEMPLATE_ID.rst b/core/merchant/get-templates-TEMPLATE_ID.rst @@ -9,8 +9,13 @@ :http:statuscode:`200 OK`: The backend has successfully returned the detailed information about a specific template. Returns a `WalletTemplateDetailsRequest`. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. :http:statuscode:`404 Not found`: The instance or template(ID) is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/patch-management-instances-INSTANCE.rst b/core/merchant/patch-management-instances-INSTANCE.rst @@ -18,8 +18,18 @@ :http:statuscode:`204 No content`: The backend has successfully created the instance. + :http:statuscode:`400 Bad Request`: + The request body is malformed or a parameter is invalid. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED`` or + ``TALER_EC_GENERIC_PARAMETER_MISSING``. :http:statuscode:`404 Not found`: This instance is unknown and thus cannot be reconfigured. + :http:statuscode:`409 Conflict`: + The instance configuration requires a purge before it can be changed. + Returned with ``TALER_EC_MERCHANT_PRIVATE_PATCH_INSTANCES_PURGE_REQUIRED``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/patch-private-accounts-H_WIRE.rst b/core/merchant/patch-private-accounts-H_WIRE.rst @@ -12,8 +12,14 @@ :http:statuscode:`204 No content`: The account has successfully modified. + :http:statuscode:`400 Bad Request`: + The ``$H_WIRE`` parameter or request body is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The account (``H_WIRE``) is unknown to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/patch-private-categories-CATEGORY_ID.rst b/core/merchant/patch-private-categories-CATEGORY_ID.rst @@ -13,3 +13,13 @@ :http:statuscode:`204 No Content`: The category was modified successfully. + :http:statuscode:`400 Bad Request`: + The ``$CATEGORY_ID`` parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`404 Not found`: + The category is unknown. + Returned with ``TALER_EC_MERCHANT_GENERIC_CATEGORY_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/patch-private-groups-GROUP_ID.rst b/core/merchant/patch-private-groups-GROUP_ID.rst @@ -12,7 +12,15 @@ :http:statuscode:`204 No content`: The group has successfully modified. + :http:statuscode:`400 Bad Request`: + The group ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The group or instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_PRODUCT_GROUP_UNKNOWN``. :http:statuscode:`409 Conflict`: The specified group name is already in use. + Returned with ``TALER_EC_MERCHANT_PRIVATE_PRODUCT_GROUP_CONFLICTING_NAME``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/patch-private-orders-ORDER_ID-forget.rst b/core/merchant/patch-private-orders-ORDER_ID-forget.rst @@ -39,6 +39,11 @@ :http:statuscode:`409 Conflict`: The request includes a field that was not marked as forgettable, so the merchant cannot delete that field. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_START_FAILED``, + ``TALER_EC_GENERIC_DB_FETCH_FAILED``, or + ``TALER_EC_GENERIC_DB_COMMIT_FAILED``. **Details:** diff --git a/core/merchant/patch-private-otp-devices-DEVICE_ID.rst b/core/merchant/patch-private-otp-devices-DEVICE_ID.rst @@ -12,11 +12,16 @@ :http:statuscode:`204 No content`: The template has successfully modified. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The template(ID) is unknown to the backend. :http:statuscode:`409 Conflict`: The provided information is inconsistent with the current state of the template. Changes made is the same with another store. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/patch-private-pots-POT_ID.rst b/core/merchant/patch-private-pots-POT_ID.rst @@ -12,11 +12,20 @@ :http:statuscode:`204 No content`: The pot has successfully modified. + :http:statuscode:`400 Bad Request`: + The pot ID parameter is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The pot or instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_MONEY_POT_UNKNOWN``. :http:statuscode:`409 Conflict`: The pot total did not match the expected total and thus resetting the pot failed. + Returned with ``TALER_EC_MERCHANT_PRIVATE_MONEY_POT_CONFLICTING_TOTAL`` or + ``TALER_EC_MERCHANT_PRIVATE_MONEY_POT_CONFLICTING_NAME``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/patch-private-products-PRODUCT_ID.rst b/core/merchant/patch-private-products-PRODUCT_ID.rst @@ -21,6 +21,8 @@ :http:statuscode:`204 No content`: The backend has successfully expanded the inventory. + :http:statuscode:`400 Bad Request`: + The request body is malformed or a validation check failed. :http:statuscode:`404 Not found`: The instance, product, category, product group or money pot specified are unknown. Possible error ``code`` values are thus: @@ -33,6 +35,9 @@ :http:statuscode:`409 Conflict`: The provided information is inconsistent with the current state of the inventory. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. .. ts:def:: ProductPatchDetailRequest diff --git a/core/merchant/patch-private-reports-REPORT_ID.rst b/core/merchant/patch-private-reports-REPORT_ID.rst @@ -12,5 +12,12 @@ :http:statuscode:`204 No content`: The report has successfully modified. + :http:statuscode:`400 Bad Request`: + The report ID parameter or request body is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The report or instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_REPORT_UNKNOWN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/patch-private-templates-TEMPLATE_ID.rst b/core/merchant/patch-private-templates-TEMPLATE_ID.rst @@ -12,11 +12,16 @@ :http:statuscode:`204 No content`: The template has successfully modified. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The template(ID) is unknown to the backend. :http:statuscode:`409 Conflict`: The provided information is inconsistent with the current state of the template. Changes made is the same with another store. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/patch-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst b/core/merchant/patch-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst @@ -13,8 +13,18 @@ :http:statuscode:`204 No Content`: The token family was successsful updated. + :http:statuscode:`400 Bad Request`: + The request body is malformed (e.g. valid_after >= valid_before). + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. + :http:statuscode:`404 Not found`: The merchant backend is unaware of the token family or instance. + Returned with ``TALER_EC_MERCHANT_PATCH_TOKEN_FAMILY_NOT_FOUND``. + + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. **Details:** diff --git a/core/merchant/patch-private-units-UNIT.rst b/core/merchant/patch-private-units-UNIT.rst @@ -12,8 +12,17 @@ :http:statuscode:`204 No content`: The backend updated the unit. + :http:statuscode:`400 Bad Request`: + The request body is malformed. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The unit is unknown to the backend. + :http:statuscode:`409 Conflict`: + The unit is a builtin unit and cannot be modified. + Returned with ``TALER_EC_MERCHANT_GENERIC_UNIT_BUILTIN``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. Built-in units allow changing ``unit_allow_fraction``, ``unit_precision_level``, and ``unit_active``; other fields are immutable for built-ins. diff --git a/core/merchant/patch-private-webhooks-WEBHOOK_ID.rst b/core/merchant/patch-private-webhooks-WEBHOOK_ID.rst @@ -12,10 +12,15 @@ :http:statuscode:`204 No content`: The webhook has successfully modified. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The webhook(ID) is unknown to the backend. :http:statuscode:`409 Conflict`: The provided information is inconsistent with the current state of the webhook. Changes made is the same with another store. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-challenge-CHALLENGE_ID-confirm.rst b/core/merchant/post-challenge-CHALLENGE_ID-confirm.rst @@ -38,3 +38,6 @@ :http:statuscode:`429 Too many requests`: Too many failed confirmation attempts, a new TAN must be requested. Returned with ``TALER_EC_MERCHANT_TAN_TOO_MANY_ATTEMPTS``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/post-challenge-CHALLENGE_ID.rst b/core/merchant/post-challenge-CHALLENGE_ID.rst @@ -30,9 +30,15 @@ Too many challenges are active right now, you must wait or confirm current challenges. Returned with ``TALER_EC_MERCHANT_TAN_TOO_EARLY``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. + :http:statuscode:`501 Not Implemented`: + The challenge channel (e.g. TOTP) is not yet supported. + Returned with ``TALER_EC_GENERIC_FEATURE_NOT_IMPLEMENTED``. :http:statuscode:`502 Bad Gateway`: TAN transmition via ``tan_channel`` failed. - Returned with ``TALER_EC_MERCHANT_MFA_HELPER_EXEC_FAILED``. + Returned with ``TALER_EC_MERCHANT_TAN_MFA_HELPER_EXEC_FAILED``. **Details:** diff --git a/core/merchant/post-instances-INSTANCE-forgot-password.rst b/core/merchant/post-instances-INSTANCE-forgot-password.rst @@ -21,5 +21,13 @@ the `ChallengeResponse`. @since **v21** :http:statuscode:`204 No content`: The backend has successfully changed the credentials for the instance. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`403 Forbidden`: + MFA channels are not available for this instance. + Returned with ``TALER_EC_MERCHANT_GENERIC_MFA_MISSING``. :http:statuscode:`404 Not found`: This instance is unknown and thus cannot be reconfigured. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/post-instances.rst b/core/merchant/post-instances.rst @@ -29,6 +29,13 @@ :http:statuscode:`204 No Content`: The backend has successfully created the instance. No login token was requested, so nothing is returned. + :http:statuscode:`400 Bad Request`: + The request body is malformed or a required field is missing. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED`` or + ``TALER_EC_GENERIC_PARAMETER_MISSING``. + :http:statuscode:`403 Forbidden`: + Self-provisioning is not enabled. + Returned with ``TALER_EC_MERCHANT_GENERIC_UNAUTHORIZED``. :http:statuscode:`409 Conflict`: This instance already exists, but with other configuration options. Use "PATCH" to update an instance configuration. Alternatively, @@ -36,3 +43,6 @@ currency supported by this backend. Another possible conflict would be if a deleted but not purged instance is known under this ID to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. diff --git a/core/merchant/post-management-instances-INSTANCE-auth.rst b/core/merchant/post-management-instances-INSTANCE-auth.rst @@ -16,8 +16,16 @@ 2FA is required for this operation. This returns the `ChallengeResponse` response. @since **v21** :http:statuscode:`204 No content`: The backend has successfully changed the credentials for the instance. + :http:statuscode:`401 Unauthorized`: + The request is unauthorized. + :http:statuscode:`403 Forbidden`: + MFA channels are not available for this instance. + Returned with ``TALER_EC_MERCHANT_GENERIC_MFA_MISSING``. :http:statuscode:`404 Not found`: This instance is unknown and thus cannot be reconfigured. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-management-instances.rst b/core/merchant/post-management-instances.rst @@ -17,6 +17,9 @@ This returns the `ChallengeResponse`. @since **v21** :http:statuscode:`204 No content`: The backend has successfully created the instance. + :http:statuscode:`400 Bad Request`: + The request body is malformed or a required field is missing. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED`` or ``TALER_EC_GENERIC_PARAMETER_MISSING``. :http:statuscode:`409 Conflict`: This instance already exists, but with other configuration options. Use "PATCH" to update an instance configuration. Alternatively, @@ -24,6 +27,9 @@ currency supported by this backend. Another possible conflict would be if a deleted but not purged instance is known under this ID to the backend. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-orders-ORDER_ID-abort.rst b/core/merchant/post-orders-ORDER_ID-abort.rst @@ -39,6 +39,9 @@ :http:statuscode:`502 Bad gateway`: The merchant's interaction with the exchange failed in some way. The error from the exchange is included. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. :http:statuscode:`504 Gateway timeout`: The merchant's interaction with the exchange took too long. The client might want to try again later. diff --git a/core/merchant/post-orders-ORDER_ID-claim.rst b/core/merchant/post-orders-ORDER_ID-claim.rst @@ -19,6 +19,9 @@ The backend is unaware of the instance or order. :http:statuscode:`409 Conflict`: Someone else has already claimed the same order ID with a different nonce. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-orders-ORDER_ID-refund.rst b/core/merchant/post-orders-ORDER_ID-refund.rst @@ -20,6 +20,9 @@ :http:statuscode:`410 Gone`: The wire deadline has past and it is too late to grant a refund. Since protocol **v24**. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. **Details:** diff --git a/core/merchant/post-private-accounts.rst b/core/merchant/post-private-accounts.rst @@ -18,11 +18,16 @@ This returns the `ChallengeResponse`. @since **v21** :http:statuscode:`404 Not found`: The merchant instance is unknown or it is not in our data. + :http:statuscode:`403 Forbidden`: + MFA channels are not available or permission denied. :http:statuscode:`409 Conflict`: The provided information is inconsistent with the current state of the instance. Usually this means we already have this account, but with conflicting credit facade information. Inactive accounts can be reactivated using this method even if the credit facade information differs from the previous state. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-categories.rst b/core/merchant/post-private-categories.rst @@ -13,6 +13,14 @@ :http:statuscode:`200 Ok`: The response is a `CategoryCreatedResponse`. + :http:statuscode:`400 Bad Request`: + The request body is malformed. + :http:statuscode:`409 Conflict`: + A category with this name already exists. + Returned with ``TALER_EC_MERCHANT_PRIVATE_POST_CATEGORIES_CONFLICT_CATEGORY_EXISTS``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-donau.rst b/core/merchant/post-private-donau.rst @@ -31,5 +31,10 @@ :http:statuscode:`409 Conflict`: * The charity is already linked with different parameters, or * The charity’s public key does **not** match the merchant instance’s public key. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. :http:statuscode:`502 Bad gateway`: Communication with the Donau service failed. + :http:statuscode:`503 Service Unavailable`: + The Donau service could not be reached. diff --git a/core/merchant/post-private-groups.rst b/core/merchant/post-private-groups.rst @@ -15,6 +15,12 @@ :http:statuscode:`404 Not found`: The merchant instance is unknown. + :http:statuscode:`409 Conflict`: + A group with this name already exists. + Returned with ``TALER_EC_MERCHANT_PRIVATE_PRODUCT_GROUP_CONFLICTING_NAME``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-orders-ORDER_ID-refund.rst b/core/merchant/post-private-orders-ORDER_ID-refund.rst @@ -14,6 +14,8 @@ :http:statuscode:`200 OK`: The refund amount has been increased, the backend responds with a `MerchantRefundResponse`. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`403 Forbidden`: For the given order, the refund delay was zero and thus refunds are categorically not allowed. @@ -31,6 +33,9 @@ to the customer. The body is an `ErrorDetail` with an error code of ``MERCHANT_POST_ORDERS_ID_REFUND_EXCHANGE_TRANSACTION_LIMIT_VIOLATION``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-orders.rst b/core/merchant/post-private-orders.rst @@ -33,6 +33,8 @@ :http:statuscode:`200 OK`: The backend has successfully created the proposal. The response is a :ts:type:`PostOrderResponse`. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: Possible reasons are: @@ -64,6 +66,9 @@ Since **v25**, the body is an `OrderRefusedErrorDetailResponse` with an error code of ``MERCHANT_PRIVATE_POST_ORDERS_AMOUNT_EXCEEDS_LEGAL_LIMITS``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-otp-devices.rst b/core/merchant/post-private-otp-devices.rst @@ -12,8 +12,15 @@ :http:statuscode:`204 No content`: The creation of the template is successful. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The merchant instance is unknown or it is not in our data. + :http:statuscode:`409 Conflict`: + An OTP device with this ID already exists with different details. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-pots.rst b/core/merchant/post-private-pots.rst @@ -15,6 +15,12 @@ :http:statuscode:`404 Not found`: The merchant instance is unknown. + :http:statuscode:`409 Conflict`: + A pot with this name already exists. + Returned with ``TALER_EC_MERCHANT_PRIVATE_MONEY_POT_CONFLICTING_NAME``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-products-PRODUCT_ID-lock.rst b/core/merchant/post-private-products-PRODUCT_ID-lock.rst @@ -26,10 +26,15 @@ :http:statuscode:`204 No content`: The backend has successfully locked (or unlocked) the requested ``quantity``. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The backend has does not know this product. :http:statuscode:`410 Gone`: The backend does not have enough of product in stock. Returns an `OutOfStockResponse`. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-products.rst b/core/merchant/post-private-products.rst @@ -12,6 +12,8 @@ :http:statuscode:`204 No content`: The backend has successfully expanded the inventory. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The instance, category, product group or money pot specified are unknown. Possible error ``code`` values are thus: @@ -25,6 +27,9 @@ The backend already knows a product with this product ID, but with different details. Returned with a ``code`` of ``TALER_EC_MERCHANT_PRIVATE_POST_PRODUCTS_CONFLICT_PRODUCT_EXISTS``. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-templates.rst b/core/merchant/post-private-templates.rst @@ -13,8 +13,13 @@ :http:statuscode:`204 No content`: The creation of the template is successful. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The merchant instance is unknown or it is not in our data. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-token.rst b/core/merchant/post-private-token.rst @@ -23,6 +23,9 @@ :http:statuscode:`202 Accepted`: 2FA is required for this operation. This returns the `ChallengeResponse`. @since **v21** + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-tokenfamilies.rst b/core/merchant/post-private-tokenfamilies.rst @@ -13,8 +13,13 @@ :http:statuscode:`204 No content`: The token family was created successfully. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The merchant backend is unaware of the instance. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-transfers.rst b/core/merchant/post-private-transfers.rst @@ -17,8 +17,13 @@ The wire transfer is now confirmed at the merchant. :http:statuscode:`404 Not found`: The instance or account are unknown to the exchange. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`409 Conflict`: The wire transfer identifier is already known to us, but for a different amount. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-private-units.rst b/core/merchant/post-private-units.rst @@ -12,8 +12,13 @@ :http:statuscode:`204 No content`: The backend added the unit. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`409 Conflict`: A built-in unit with the same short name already exists. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. .. ts:def:: UnitAddRequest diff --git a/core/merchant/post-private-webhooks.rst b/core/merchant/post-private-webhooks.rst @@ -13,8 +13,13 @@ :http:statuscode:`204 No content`: The creation of the webhook is successsful. + :http:statuscode:`400 Bad Request`: + The request body is malformed. :http:statuscode:`404 Not found`: The merchant instance is unknown or it not in our data. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. **Details:** diff --git a/core/merchant/post-templates-TEMPLATE_ID.rst b/core/merchant/post-templates-TEMPLATE_ID.rst @@ -9,6 +9,14 @@ **Response:** + :http:statuscode:`400 Bad Request`: + The request body is malformed. + :http:statuscode:`404 Not found`: + The template or instance is unknown. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. + The response is exactly the same type of response as when creating an order using :ref:`POST /private/orders <post-order>`.