View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0010724 | Taler | merchant backoffice SPA | public | 2025-12-04 20:11 | 2025-12-05 14:52 |
| Reporter | htgoebel | Assigned To | vlada.svirsh | ||
| Priority | normal | Severity | major | Reproducibility | always |
| Status | assigned | Resolution | open | ||
| Product Version | 1.0 | ||||
| Target Version | 1.5 | ||||
| Summary | 0010724: Refund "pending" even after wire deadline | ||||
| Description | If a refund was not obtained be the customer, the order status still reports refund_pending as true and the refund's pending state as true. | ||||
| Steps To Reproduce | Create an order with short deadlines, pay it and create a refund, but DO NOT obtain the refund in the wallet. After the wire deadline passed use e.g. curl to query the order status. Except from the order status: 'order_id': '2025.338-00247EBTGAGNR', 'pay_deadline': {'t_s': 1764874500}, 'refund_deadline': {'t_s': 1764874560}, 'timestamp': {'t_s': 1764874391}, 'wire_transfer_deadline': {'t_s': 1764874560}}, 'last_payment': {'t_s': 1764874399}, 'order_status': 'paid', 'order_status_url': 'https://backend.demo.taler.net/instances/sandbox/orders/2025.338-00247EBTGAGNR', 'refund_amount': 'KUDOS:0.02', 'refund_details': [{'amount': 'KUDOS:0.02', 'pending': True, 'reason': 'duplicate', 'timestamp': {'t_s': 1764874434}}], 'refund_pending': True, 'refunded': True, 'wire_details': [{'amount': 'KUDOS:0.02', 'confirmed': False, 'exchange_url': 'https://exchange.demo.taler.net/', 'execution_time': {'t_s': 1764874399}, 'wtid': '312S1C67R87PMBGASP4RNA2RJGBM7ANVNG23QAXV32QFGQCZ1RBG'}], 'wire_reports': [], 'wired': True} | ||||
| Additional Information | Taler Backoffice 1.2.2 (23:1:11) | ||||
| Tags | No tags attached. | ||||
| related to | 0010695 | assigned | vlada.svirsh | Can create refund for wired order |
| related to | 0010725 | resolved | sebasjm | UX: Refund URL shown even after wire deadline |
| related to | 0010726 | assigned | Florian Dold | Wallet pseudo-accepts refunds even after wire deadline |
|
|
That's correct. Refund_pending = false means that the wallet *did* get the refund. The point is that here now "wired = true", and that means that any pending refund can no longer succeed. So you do need to consider all the bits in combination: if refund_pending = true *and* wired = true, it means the wallet will never get it. |
|
|
This is, however, something the SPA needs to show nicely, so for example no longer showing the refund as "pending" but as "failed". |
|
|
This is how it looks when a merchant 1) create an order of KUDOS 3 2) merchant refund KUDOS 1 3) customer takes the refund 4) merchant refund KUDOS 1 5) customer DON'T take the last refund 6) wire transfer deadline passes I think is clear that the first one was taken in the UI, the second one didn't, the wiredeadline passed. The refund URI is not shown anymore. The merchant backend reports KUDOS:0.4 and KUDOS:0.6 which I think is wrong (!) because the merchant specified KUDOS:1 and I think this is a details of the coins used by the wallet should not be relevant here and backend should return KUDOS:1 |
|
|
i think the spa is ok and backend should not return refund by coin |
|
|
Well, customer/protocol picks up refunds by coin, so little choice there in terms of data model. But SPA could reconcile, maybe? |
|
|
Let's see if Vlada has good design ideas here... |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2025-12-04 20:11 | htgoebel | New Issue | |
| 2025-12-04 20:13 | htgoebel | Relationship added | related to 0010725 |
| 2025-12-04 20:24 | htgoebel | Relationship added | related to 0010726 |
| 2025-12-04 22:40 | Christian Grothoff | Note Added: 0026745 | |
| 2025-12-04 22:40 | Christian Grothoff | Assigned To | => sebasjm |
| 2025-12-04 22:40 | Christian Grothoff | Status | new => assigned |
| 2025-12-04 22:40 | Christian Grothoff | Relationship added | related to 0010695 |
| 2025-12-04 22:40 | Christian Grothoff | Note Added: 0026746 | |
| 2025-12-04 22:41 | Christian Grothoff | Severity | minor => major |
| 2025-12-04 22:41 | Christian Grothoff | Category | merchant backend => merchant backoffice SPA |
| 2025-12-04 22:41 | Christian Grothoff | Product Version | => 1.0 |
| 2025-12-04 22:41 | Christian Grothoff | Target Version | => 1.3 |
| 2025-12-05 14:45 | sebasjm | Note Added: 0026783 | |
| 2025-12-05 14:45 | sebasjm | File Added: image.png | |
| 2025-12-05 14:46 | sebasjm | Assigned To | sebasjm => Christian Grothoff |
| 2025-12-05 14:46 | sebasjm | Status | assigned => feedback |
| 2025-12-05 14:46 | sebasjm | Note Added: 0026784 | |
| 2025-12-05 14:51 | Christian Grothoff | Note Added: 0026785 | |
| 2025-12-05 14:51 | Christian Grothoff | Assigned To | Christian Grothoff => vlada.svirsh |
| 2025-12-05 14:51 | Christian Grothoff | Note Added: 0026786 | |
| 2025-12-05 14:52 | Christian Grothoff | Status | feedback => assigned |
| 2025-12-05 14:52 | Christian Grothoff | Target Version | 1.3 => 1.5 |