View Issue Details

IDProjectCategoryView StatusLast Update
0010635Talermerchant backendpublic2025-11-19 21:06
Reportersebasjm Assigned ToChristian Grothoff  
PriorityhighSeveritymajorReproducibilityalways
Status assignedResolutionopen 
Product Version1.1 
Summary0010635: wrong response doesn't follow spec
Descriptiontrying to create an order when there is no bank account ready yet

$ curl 'http://merchant.taler.test/private/orders' --compressed -X POST -H 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:145.0) Gecko/20100101 Firefox/145.0' -H 'Accept: application/json' -H 'Accept-Language: en-US,en;q=0.5' -H 'Accept-Encoding: gzip, deflate' -H 'Referer: http://localhost:8080/' -H 'Content-Type: application/json' -H 'Authorization: Bearer secret-token:1DY5CKWM89HYGZET1N0VDAN13HBCXMJ727AVE7H3AQ9FASYYY09G' --data-raw '{"order":{"amount":"KUDOS:1","summary":"w","products":[],"pay_deadline":{"t_s":1763589074},"wire_transfer_deadline":{"t_s":1763754674},"refund_deadline":{"t_s":1763754674}},"inventory_products":[],"create_token":true}'

and i get

{
  "code": 2513,
  "hint": "The total order amount exceeds hard legal transaction limits from the available exchanges, thus a customer could never legally make this payment. You may try to increase your limits by passing legitimization checks with exchange operators. You could also inquire with your legislator why the limits are prohibitively low for your business."
}

which is understandable but the spa is waiting for what the specs says

https://docs.taler.net/core/api-merchant.html#post-[-instances-$INSTANCE]-private-orders
 
451 Unavailable for Legal Reasons:

    The order could not be created because of legal reasons, specifically no exchange would accept a payment at this time because we have not yet satisfied the respective legal requirements. The KYC status 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.

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[];

}
TagsNo tags attached.

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2025-11-19 21:06 sebasjm New Issue
2025-11-19 21:06 sebasjm Status new => assigned
2025-11-19 21:06 sebasjm Assigned To => Christian Grothoff