View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010745 | Taler | merchant backend | public | 2025-12-08 20:54 | 2025-12-14 23:30 |
| Reporter | sebasjm | Assigned To | Christian Grothoff | ||
| Priority | normal | Severity | major | Reproducibility | have not tried |
| Status | resolved | Resolution | fixed | ||
| Product Version | 1.0 | ||||
| Target Version | 1.3 | Fixed in Version | 1.3 | ||
| Summary | 0010745: wrong wire transfer report on order details | ||||
| Description | the backend returns repeated wire id with different amounts, it should be merged as one also the sum doesn't match the expected wired amount into the bank account neither the wire transfer result * the order details has 2 wire transfer with same id (SJ3BCDN4V41YK8VHDZRFQMX3Z8R0F5B3S2RG2BM9W82DD6RM2K40) it should have one * both wire transfer sum KUDOS:1.51 + KUDOS:0.59 = KUDOS:2.1 * the same wire transfer in the transfer details shows KUDOS:2 side question: when the order may have more than one wire transfer? $ curl 'http://merchant.taler.test/private/orders/2025.339-61HXY0WMP7QG2' -H 'Authorization: Bearer secret-token:GH0M9R0R5CGQK80TBVYEEWJVJ9QDG3AC3SC2FPJGCQTYRZNW66Y0' { "wire_reports": [], "exchange_code": 0, "exchange_http_status": 0, "exchange_ec": 0, "exchange_hc": 0, "deposit_total": "KUDOS:2.12", "contract_terms": { "nonce": "QTTMNQW87BTSJWF73BHH4ZX53C6SVC89KHZQ04TNX48J0VK1J050", "amount": "KUDOS:3", "h_wire": "DMK7VW5PX646CDFPBRFZ9H1DBDYH9461NH1BC84KB9KAM3YMY1E35WFE804AA5X5AC128WZXZYZQNCQYZ71F3EWZJTGQAGDKFCYW2B0", "max_fee": "KUDOS:0", "summary": "we", "version": 0, "merchant": { "name": "qwe", "address": {}, "jurisdiction": {} }, "order_id": "2025.339-61HXY0WMP7QG2", "products": [], "exchanges": [ { "url": "http://exchange.taler.test/", "priority": 1024, "master_pub": "HJ08A1WQMD7XTB77K3H4XFZ9591EA07BW12XRPR991NR252SQDB0", "max_contribution": "KUDOS:3" } ], "timestamp": { "t_s": 1764941673 }, "minimum_age": 0, "wire_method": "iban", "merchant_pub": "6E1W70NJVJQ1AAA95CW715JRQ6D4AMRK3J1EC6SCTNZQT9XDSBW0", "pay_deadline": { "t_s": 1764941731 }, "refund_deadline": { "t_s": 1764941791 }, "merchant_base_url": "http://merchant.taler.test/", "wire_transfer_deadline": { "t_s": 1764941791 } }, "order_status": "paid", "last_payment": { "t_s": 1764941678 }, "refunded": true, "wired": true, "refund_pending": true, "refund_amount": "KUDOS:2", "wire_details": [ { "wtid": "SJ3BCDN4V41YK8VHDZRFQMX3Z8R0F5B3S2RG2BM9W82DD6RM2K40", "exchange_url": "http://exchange.taler.test/", "amount": "KUDOS:1.51", "execution_time": { "t_s": 1764941678 }, "confirmed": false }, { "wtid": "SJ3BCDN4V41YK8VHDZRFQMX3Z8R0F5B3S2RG2BM9W82DD6RM2K40", "exchange_url": "http://exchange.taler.test/", "amount": "KUDOS:0.59", "execution_time": { "t_s": 1764941678 }, "confirmed": false } ], "refund_details": [ { "amount": "KUDOS:0.4", "pending": true, "timestamp": { "t_s": 1764941725 }, "reason": "" }, { "amount": "KUDOS:1", "pending": false, "timestamp": { "t_s": 1764941687 }, "reason": "Duplicated" }, { "amount": "KUDOS:0.6", "pending": true, "timestamp": { "t_s": 1764941725 }, "reason": "" } ], "order_status_url": "http://merchant.taler.test/orders/2025.339-61HXY0WMP7QG2?token=RTMPEEFQEB954SPQ4C4HBEE9DR" } curl 'http://merchant.taler.test/private/incoming?payto_uri=payto%3A%2F%2Fiban%2FDE15970186998345619168%3Freceiver-name%3DHandsome%2520Measurement&limit=-6' \ -H 'Accept: application/json' \ -H 'Accept-Language: en-US,en;q=0.9' \ -H 'Authorization: Bearer secret-token:GH0M9R0R5CGQK80TBVYEEWJVJ9QDG3AC3SC2FPJGCQTYRZNW66Y0' \ -H 'Cache-Control: no-cache' \ -H 'Connection: keep-alive' \ -H 'Origin: http://localhost:8080' \ -H 'Pragma: no-cache' \ -H 'Referer: http://localhost:8080/' \ -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/139.0.0.0 Safari/537.36' \ --insecure { "incoming": [ { "expected_credit_amount": "KUDOS:2", "wtid": "SJ3BCDN4V41YK8VHDZRFQMX3Z8R0F5B3S2RG2BM9W82DD6RM2K40", "payto_uri": "payto://iban/DE15970186998345619168?receiver-name=Handsome%20Measurement", "exchange_url": "http://exchange.taler.test/", "expected_transfer_serial_id": 8, "execution_time": { "t_s": 1764941795 }, "validated": true, "confirmed": false, "last_http_status": 200, "last_ec": 0 }, // ... other wire transfers here ] } | ||||
| Tags | No tags attached. | ||||
|
|
here is another case, the order doesn't have refunds STEFAN flag = true $ curl 'http://merchant.taler.test/private/orders/2025.339-010DA20FKXN88' { "wire_reports": [], "exchange_code": 0, "exchange_http_status": 0, "exchange_ec": 0, "exchange_hc": 0, "deposit_total": "KUDOS:1.11", "contract_terms": { "nonce": "62QJPPEC621A74NMMWWSRX32YTJ0J9ZYFJTAMR3WBN9D2KKE82DG", "amount": "KUDOS:1", "h_wire": "DMK7VW5PX646CDFPBRFZ9H1DBDYH9461NH1BC84KB9KAM3YMY1E35WFE804AA5X5AC128WZXZYZQNCQYZ71F3EWZJTGQAGDKFCYW2B0", "max_fee": "KUDOS:0", "summary": "w", "version": 0, "merchant": { "name": "qwe", "address": {}, "jurisdiction": {} }, "order_id": "2025.339-010DA20FKXN88", "products": [], "exchanges": [ { "url": "http://exchange.taler.test/", "priority": 1024, "master_pub": "HJ08A1WQMD7XTB77K3H4XFZ9591EA07BW12XRPR991NR252SQDB0", "max_contribution": "KUDOS:1" } ], "timestamp": { "t_s": 1764941022 }, "minimum_age": 0, "wire_method": "iban", "merchant_pub": "6E1W70NJVJQ1AAA95CW715JRQ6D4AMRK3J1EC6SCTNZQT9XDSBW0", "pay_deadline": { "t_s": 1764941081 }, "refund_deadline": { "t_s": 1764941141 }, "merchant_base_url": "http://merchant.taler.test/", "wire_transfer_deadline": { "t_s": 1764941141 } }, "order_status": "paid", "last_payment": { "t_s": 1764941028 }, "refunded": false, "wired": true, "refund_pending": false, "refund_amount": "KUDOS:0", "wire_details": [ { "wtid": "DZXCRRWAHZD0TQWHMKJSS3JZ05ZR8D1TWGJAFFNFPSEZDBSNEYVG", "exchange_url": "http://exchange.taler.test/", "amount": "KUDOS:1.1", "execution_time": { "t_s": 1764941028 }, "confirmed": false } ], "refund_details": [], "order_status_url": "http://merchant.taler.test/orders/2025.339-010DA20FKXN88?token=A5W7J2BPY2292Y6WNZMXECGXCC" } |
|
|
Eh, did consider wire fees? I think the amounts could be totally fine here. Yes, a single order can have multiple wire transfers, starting with the payment being made with different exchanges. I agree that we probably should aggregate the amounts (likely currently reported per coin, not just per contract). |
|
|
8ad98a33..2c27aef2 combines multiple coin deposits into one record for the GET /private/orders/$ID API. |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2025-12-08 20:54 | sebasjm | New Issue | |
| 2025-12-08 20:54 | sebasjm | Status | new => assigned |
| 2025-12-08 20:54 | sebasjm | Assigned To | => Christian Grothoff |
| 2025-12-08 20:57 | sebasjm | Note Added: 0026828 | |
| 2025-12-08 20:58 | sebasjm | Note Edited: 0026828 | |
| 2025-12-09 07:23 | Christian Grothoff | Target Version | => 1.5 |
| 2025-12-12 21:15 | Christian Grothoff | Note Added: 0026944 | |
| 2025-12-14 23:29 | Christian Grothoff | Note Added: 0026977 | |
| 2025-12-14 23:30 | Christian Grothoff | Status | assigned => resolved |
| 2025-12-14 23:30 | Christian Grothoff | Resolution | open => fixed |
| 2025-12-14 23:30 | Christian Grothoff | Fixed in Version | => 1.3 |
| 2025-12-14 23:30 | Christian Grothoff | Product Version | => 1.0 |
| 2025-12-14 23:30 | Christian Grothoff | Target Version | 1.5 => 1.3 |