View Issue Details

IDProjectCategoryView StatusLast Update
0010724Talermerchant backoffice SPApublic2025-12-05 14:52
Reporterhtgoebel Assigned Tovlada.svirsh  
PrioritynormalSeveritymajorReproducibilityalways
Status assignedResolutionopen 
Product Version1.0 
Target Version1.5 
Summary0010724: Refund "pending" even after wire deadline
DescriptionIf 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 ReproduceCreate 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 InformationTaler Backoffice 1.2.2 (23:1:11)
TagsNo tags attached.

Relationships

related to 0010695 assignedvlada.svirsh Can create refund for wired order 
related to 0010725 resolvedsebasjm UX: Refund URL shown even after wire deadline 
related to 0010726 assignedFlorian Dold Wallet pseudo-accepts refunds even after wire deadline 

Activities

Christian Grothoff

2025-12-04 22:40

manager   ~0026745

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.

Christian Grothoff

2025-12-04 22:40

manager   ~0026746

This is, however, something the SPA needs to show nicely, so for example no longer showing the refund as "pending" but as "failed".

sebasjm

2025-12-05 14:45

developer   ~0026783

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
image.png (86,389 bytes)   
image.png (86,389 bytes)   

sebasjm

2025-12-05 14:46

developer   ~0026784

i think the spa is ok and backend should not return refund by coin

Christian Grothoff

2025-12-05 14:51

manager   ~0026785

Well, customer/protocol picks up refunds by coin, so little choice there in terms of data model. But SPA could reconcile, maybe?

Christian Grothoff

2025-12-05 14:51

manager   ~0026786

Let's see if Vlada has good design ideas here...

Issue History

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