taler-docs

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

commit e25c28c264b3d5eafb2402efda9051e4e9e145fd
parent 112a2c62df10e9b04a042258498dd41b750736cb
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 21 Dec 2025 19:59:22 +0100

clarify spec: PaymentDeniedLegallyResponse only applies on /pay, not on order creation (#10737/#10635)

Diffstat:
Mcore/api-merchant.rst | 34++++++++++++++--------------------
1 file changed, 14 insertions(+), 20 deletions(-)

diff --git a/core/api-merchant.rst b/core/api-merchant.rst @@ -871,11 +871,16 @@ Making the payment interface PaymentDeniedLegallyResponse { - // Base URL of the exchanges that denied the payment. - // The wallet should refresh the coins from these - // exchanges, but may try to pay with coins from - // other exchanges. - exchange_base_urls: string[]; + // Numeric `error code <error-codes>` unique to the condition. + // Error code, must be + // TALER_EC_MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_LEGALLY_REFUSED. + code: Integer; + + // Base URL of the exchanges that denied the payment. + // The wallet should refresh the coins from these + // exchanges, but may try to pay with coins from + // other exchanges. + exchange_base_urls: string[]; } @@ -1263,15 +1268,6 @@ the contract. Refunds must be approved by the merchant's business logic. :http:statuscode:`410 Gone`: The wire deadline has past and it is too late to grant a refund. Since protocol **v24**. - :http:statuscode:`451 Unavailable for Legal Reasons`: - The refund could not be awarded because of legal - reasons (an exchange refused). The wallet should - show an error message and suggest to the user to - get in touch with the merchant to try to get the - refund in a different way. - The body is a `PaymentDeniedLegallyResponse` with - details about the exchange causing the failure. - Since protocol **v17**. **Details:** @@ -3600,9 +3596,8 @@ Creating orders The :ref:`KYC status <merchantkycstatus>` API can be used to determine details about how to proceed with the KYC process. - The body is a `PaymentDeniedLegallyResponse` with - details about the exchange(s) causing the failure. - Since protocol **v17**. + The body is an `ErrorDetail` with an error + code of `MERCHANT_POST_ORDERS_ID_PAY_EXCHANGE_LEGALLY_REFUSED`. **Details:** @@ -4371,9 +4366,8 @@ Approving Refunds reasons (an exchange would refuse). The merchant staff needs to find another way to give a refund to the customer. - The body is a `PaymentDeniedLegallyResponse` with - details about the exchange causing the failure. - Since protocol **v17**. + The body is an `ErrorDetail` with an error + code of `MERCHANT_POST_ORDERS_ID_REFUND_EXCHANGE_TRANSACTION_LIMIT_VIOLATION`. **Details:**