taler-docs

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

commit 73987cdb87d57b5fad1dff0b1353a3d96c52d2ec
parent 958474b1ad8b4e13ce932c20956a7bf51a4921a0
Author: Christian Grothoff <christian@grothoff.org>
Date:   Thu,  2 Apr 2026 22:58:35 +0200

more merchant EC spec clarifications (#10545)

Diffstat:
Mcore/merchant/delete-private-accounts-H_WIRE.rst | 5+++--
Mcore/merchant/delete-private-donau-DONAU_SERIAL.rst | 3++-
Mcore/merchant/delete-private-orders-ORDER_ID.rst | 4+++-
Mcore/merchant/delete-private-otp-devices-DEVICE_ID.rst | 3++-
Mcore/merchant/delete-private-products-PRODUCT_ID.rst | 3++-
Mcore/merchant/delete-private-templates-TEMPLATE_ID.rst | 3++-
Mcore/merchant/delete-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst | 1+
Mcore/merchant/delete-private-tokens-SERIAL.rst | 1+
Mcore/merchant/delete-private-transfers-TID.rst | 3++-
Mcore/merchant/delete-private-units-UNIT.rst | 8++++++--
Mcore/merchant/delete-private-webhooks-WEBHOOK_ID.rst | 3++-
Mcore/merchant/get-private-kyc.rst | 4++++
Mcore/merchant/get-private-otp-devices-DEVICE_ID.rst | 1+
Mcore/merchant/get-private-pots-POT_ID.rst | 1+
Mcore/merchant/get-private-products-PRODUCT_ID.rst | 1+
Mcore/merchant/get-private-reports-REPORT_ID.rst | 1+
Mcore/merchant/get-private-templates-TEMPLATE_ID.rst | 1+
Mcore/merchant/get-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst | 4+++-
Mcore/merchant/get-private-units-UNIT.rst | 1+
Mcore/merchant/get-private-webhooks-WEBHOOK_ID.rst | 1+
Mcore/merchant/get-products-IMAGE_HASH-image.rst | 2++
Mcore/merchant/get-sessions-SESSION_ID.rst | 1+
Mcore/merchant/get-templates-TEMPLATE_ID.rst | 4+++-
23 files changed, 46 insertions(+), 13 deletions(-)

diff --git a/core/merchant/delete-private-accounts-H_WIRE.rst b/core/merchant/delete-private-accounts-H_WIRE.rst @@ -13,7 +13,8 @@ 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``. + Returned with ``TALER_EC_MERCHANT_PRIVATE_ACCOUNT_DELETE_UNKNOWN_ACCOUNT``. :http:statuscode:`500 Internal Server Error`: The server experienced an internal failure. - Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. + 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 @@ -20,4 +20,5 @@ ``TALER_EC_MERCHANT_GENERIC_DONAU_UNKNOWN``. :http:statuscode:`500 Internal Server Error`: The server experienced an internal failure. - Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED``. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_DB_SOFT_FAILURE``. diff --git a/core/merchant/delete-private-orders-ORDER_ID.rst b/core/merchant/delete-private-orders-ORDER_ID.rst @@ -18,10 +18,12 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The backend does not know the instance or the order. + Returned with ``TALER_EC_MERCHANT_GENERIC_ORDER_UNKNOWN``. :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``. + Returned with ``TALER_EC_GENERIC_DB_COMMIT_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-otp-devices-DEVICE_ID.rst b/core/merchant/delete-private-otp-devices-DEVICE_ID.rst @@ -13,4 +13,5 @@ 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``. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-products-PRODUCT_ID.rst b/core/merchant/delete-private-products-PRODUCT_ID.rst @@ -20,4 +20,5 @@ 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``. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-templates-TEMPLATE_ID.rst b/core/merchant/delete-private-templates-TEMPLATE_ID.rst @@ -15,4 +15,5 @@ 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``. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst b/core/merchant/delete-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst @@ -11,6 +11,7 @@ The backend has successfully deleted the token family. :http:statuscode:`404 Not found`: The merchant backend is unaware of the token family or instance. + Returned with ``TALER_EC_MERCHANT_GENERIC_TOKEN_FAMILY_UNKNOWN``. :http:statuscode:`500 Internal Server Error`: The server experienced an internal failure. Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or diff --git a/core/merchant/delete-private-tokens-SERIAL.rst b/core/merchant/delete-private-tokens-SERIAL.rst @@ -20,6 +20,7 @@ Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: The token was not found. + Returned with ``TALER_EC_MERCHANT_GENERIC_ACCESS_TOKEN_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-transfers-TID.rst b/core/merchant/delete-private-transfers-TID.rst @@ -22,4 +22,5 @@ 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``. + Returned with ``TALER_EC_GENERIC_DB_COMMIT_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/delete-private-units-UNIT.rst b/core/merchant/delete-private-units-UNIT.rst @@ -11,9 +11,13 @@ :http:statuscode:`401 Unauthorized`: The request is unauthorized. :http:statuscode:`404 Not found`: - The unit is unknown to the backend. + The unit or instance is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_UNIT_UNKNOWN`` or + ``TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN``. :http:statuscode:`409 Conflict`: Built-in units cannot be deleted. + 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``. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_DB_SOFT_FAILURE``. diff --git a/core/merchant/delete-private-webhooks-WEBHOOK_ID.rst b/core/merchant/delete-private-webhooks-WEBHOOK_ID.rst @@ -15,4 +15,5 @@ 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``. + Returned with ``TALER_EC_GENERIC_DB_STORE_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. diff --git a/core/merchant/get-private-kyc.rst b/core/merchant/get-private-kyc.rst @@ -75,6 +75,7 @@ @since protocol **v25**. :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. Returned with ``TALER_EC_MERCHANT_GENERIC_UNAUTHORIZED``. @@ -83,6 +84,9 @@ Returned with ``TALER_EC_MERCHANT_GENERIC_INSTANCE_UNKNOWN``. :http:statuscode:`406 Not acceptable`: The merchant backend could not produce a response in the desired format. + :http:statuscode:`500 Internal Server Error`: + The server experienced an internal failure. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. :http:statuscode:`503 Service unavailable`: The merchant backend is temporarily unable to process the request. diff --git a/core/merchant/get-private-otp-devices-DEVICE_ID.rst b/core/merchant/get-private-otp-devices-DEVICE_ID.rst @@ -25,6 +25,7 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The OTP device or instance is unknown to the backend. + 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_FETCH_FAILED``. diff --git a/core/merchant/get-private-pots-POT_ID.rst b/core/merchant/get-private-pots-POT_ID.rst @@ -13,6 +13,7 @@ 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:`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-products-PRODUCT_ID.rst b/core/merchant/get-private-products-PRODUCT_ID.rst @@ -13,6 +13,7 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The product (ID) is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_PRODUCT_UNKNOWN``. :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-reports-REPORT_ID.rst b/core/merchant/get-private-reports-REPORT_ID.rst @@ -14,6 +14,7 @@ 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_FETCH_FAILED``. diff --git a/core/merchant/get-private-templates-TEMPLATE_ID.rst b/core/merchant/get-private-templates-TEMPLATE_ID.rst @@ -14,6 +14,7 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The instance or template(ID) is unknown to the backend. + 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_FETCH_FAILED``. diff --git a/core/merchant/get-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst b/core/merchant/get-private-tokenfamilies-TOKEN_FAMILY_SLUG.rst @@ -14,9 +14,11 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The merchant backend is unaware of the token family or instance. + Returned with ``TALER_EC_MERCHANT_GENERIC_TOKEN_FAMILY_UNKNOWN``. :http:statuscode:`500 Internal Server Error`: The server experienced an internal failure. - Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED``. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. **Details:** diff --git a/core/merchant/get-private-units-UNIT.rst b/core/merchant/get-private-units-UNIT.rst @@ -12,6 +12,7 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The unit is unknown to the backend. + Returned with ``TALER_EC_MERCHANT_GENERIC_UNIT_UNKNOWN``. :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-webhooks-WEBHOOK_ID.rst b/core/merchant/get-private-webhooks-WEBHOOK_ID.rst @@ -13,6 +13,7 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The webhook(ID) 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_FETCH_FAILED``. diff --git a/core/merchant/get-products-IMAGE_HASH-image.rst b/core/merchant/get-products-IMAGE_HASH-image.rst @@ -12,8 +12,10 @@ The body is a `ProductImageResponse`. :http:statuscode:`400 Bad Request`: The hash is not a valid hex-encoded SHA-256 digest. + Returned with ``TALER_EC_GENERIC_PARAMETER_MALFORMED``. :http:statuscode:`404 Not found`: No image is known for the given hash. + Returned with ``TALER_EC_MERCHANT_GENERIC_PRODUCT_UNKNOWN``. :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-sessions-SESSION_ID.rst b/core/merchant/get-sessions-SESSION_ID.rst @@ -35,6 +35,7 @@ but not yet paid. :http:statuscode:`404 Not found`: The merchant backend is unaware of an order matching the given session. + Returned with ``TALER_EC_MERCHANT_GENERIC_SESSION_UNKNOWN``. :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-templates-TEMPLATE_ID.rst b/core/merchant/get-templates-TEMPLATE_ID.rst @@ -13,9 +13,11 @@ The request is unauthorized. :http:statuscode:`404 Not found`: The instance or template(ID) is unknown to the backend. + 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_FETCH_FAILED``. + Returned with ``TALER_EC_GENERIC_DB_FETCH_FAILED`` or + ``TALER_EC_GENERIC_INTERNAL_INVARIANT_FAILURE``. **Details:**