View Issue Details

IDProjectCategoryView StatusLast Update
0010695Talermerchant portal webuipublic2025-12-21 20:46
Reporterhtgoebel Assigned Tosebasjm Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PriorityhighSeveritymajorReproducibilityalways
Status closedResolutionfixed 
Product Version1.0 
Target Version1.3Fixed in Version1.3 
Summary0010695: Can create refund for wired order
DescriptionUsing the API one can create refunds for orders that have been wired already, see screenshot.

Expected: To get Gone or another error message.
Steps To Reproduce- In the SPA create a payment with short deadlines and pay it.
- Wait for the wire transfer deadline to be reached.
- Use curl or another tools to create a refund for this order using the API.
==> This will return 200 and a MerchantRefundResponse
- Go to the SPA, reload and view thise order's details
==> A "refund" will be shown
TagsNo tags attached.
Attached Files
Screenshot_20251201_192837.png (19,471 bytes)   
Screenshot_20251201_192837.png (19,471 bytes)   

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0010726 informingFlorian Dold Wallet pseudo-accepts refunds even after wire deadline 
related to 0010724 closedsebasjm Refund "pending" even after wire deadline 
related to 0010725 closedsebasjm UX: Refund URL shown even after wire deadline 

Activities

Christian Grothoff

2025-12-04 21:16

manager   ~0026743

The BIG issue here is that the merchant backend SPA fails to render the "refund_pending" field of the backend response:

https://docs.taler.net/core/api-merchant.html#inspecting-orders

As a result, the viewer cannot distinguish refunds that were *approved* from those that *succeeded*. We can argue that refunds after the wire deadline should not be approved anymore (easy to implement), but more importantly the SPA needs to distinguish clearly between refunds that did happen (wallet got the money) and those that were approved but the wallet did NOT get the money (for whatever reason).

Christian Grothoff

2025-12-04 21:30

manager   ~0026744

Merchant adjusted to 410 past wire deadline in b9c64ba7..4f8b3cf9

sebasjm

2025-12-05 13:37

developer   ~0026780

refund that did happen are shown as "refund taken" and refund that was approved by the merchant is shown as "refunded amount"

also pending refund "pending" vs "taken" are shown green vs red

In this screenshot you can see both with the fix of 0010725 where the refund URI is not there anymore after wire deadline happened.

If you think that still confusing i can add a banner that says "the rest of the refund $ (refunded - taken)"
image.png (27,961 bytes)   
image.png (27,961 bytes)   
image-2.png (94,967 bytes)   
image-2.png (94,967 bytes)   

sebasjm

2025-12-05 13:38

developer   ~0026781

i think the spa is clear

Christian Grothoff

2025-12-05 19:53

manager   ~0026796

Let's see if vlada comes up with an idea for how to make it clearer!

vlada.svirsh

2025-12-14 11:48

developer   ~0026960

Last edited: 2025-12-14 12:07

Refund created -> Confirmed by consumer -> Refund completed / Refund failed (on hover in timeline description why failed)
                             
Can we get all these states from the backend and show in the timeline?

Badges: "Refund in progress", "Refunded" if refund completed

sebasjm

2025-12-14 13:09

developer   ~0026964

Refund created: is the red icon. I will change the text from "refund to "refund created"

confirmed by the consumer: I don't this makes any sense, what are you expecting? QR code scanned but not claimed? this is much details not needed, and I think merchant doesn't bring this info.

Refund completed: is the green icon. I will change the text from "refund" to "refund completed"

Refund failed: the backend doesn't inform this state but we can define one here. If the refund is not completed after the wire transfer detail. I will change the text and add a (i) icon with the description of why is impossible to complete the refund.

htgoebel

2025-12-14 14:27

developer   ~0026970

Sounds good to me.

re. "confirmed by the consumer": I agree that this is not relevant for the merchant. For the merchant it is relevant whether he/she self has the coins or the customer has them.

sebasjm

2025-12-14 19:58

developer   ~0026975

7032a2da0..50f768fa6

Issue History

Date ModifiedUsernameFieldChange
2025-12-01 18:29htgoebelNew Issue
2025-12-01 18:29htgoebelFile Added: Screenshot_20251201_192837.png
2025-12-02 10:14StefanRelationship addedrelated to 0010630
2025-12-02 22:00Christian GrothoffAssigned To => Christian Grothoff
2025-12-02 22:00Christian GrothoffStatusnew => assigned
2025-12-03 13:49vecirexRelationship deletedrelated to 0010630
2025-12-04 20:59Christian GrothoffPrioritynormal => high
2025-12-04 20:59Christian GrothoffProduct Version => 1.0
2025-12-04 20:59Christian GrothoffTarget Version => 1.3
2025-12-04 21:16Christian GrothoffNote Added: 0026743
2025-12-04 21:17Christian GrothoffAssigned ToChristian Grothoff => sebasjm
2025-12-04 21:17Christian GrothoffSeverityminor => major
2025-12-04 21:17Christian GrothoffCategorymerchant backend => merchant backoffice SPA
2025-12-04 21:30Christian GrothoffNote Added: 0026744
2025-12-04 21:37Christian GrothoffRelationship addedrelated to 0010726
2025-12-04 21:40Christian GrothoffRelationship addedrelated to 0010724
2025-12-04 21:41Christian GrothoffRelationship addedrelated to 0010725
2025-12-05 13:37sebasjmNote Added: 0026780
2025-12-05 13:37sebasjmFile Added: image.png
2025-12-05 13:37sebasjmFile Added: image-2.png
2025-12-05 13:38sebasjmAssigned Tosebasjm => Christian Grothoff
2025-12-05 13:38sebasjmStatusassigned => feedback
2025-12-05 13:38sebasjmNote Added: 0026781
2025-12-05 19:52Christian GrothoffAssigned ToChristian Grothoff => vlada.svirsh
2025-12-05 19:53Christian GrothoffNote Added: 0026796
2025-12-05 19:53Christian GrothoffStatusfeedback => assigned
2025-12-05 19:53Christian GrothoffTarget Version1.3 => 1.5
2025-12-14 11:48vlada.svirshNote Added: 0026960
2025-12-14 11:49vlada.svirshAssigned Tovlada.svirsh => sebasjm
2025-12-14 11:58vlada.svirshNote Edited: 0026960
2025-12-14 12:07vlada.svirshNote Edited: 0026960
2025-12-14 13:09sebasjmNote Added: 0026964
2025-12-14 14:27htgoebelNote Added: 0026970
2025-12-14 19:58sebasjmStatusassigned => informing
2025-12-14 19:58sebasjmResolutionopen => fixed
2025-12-14 19:58sebasjmNote Added: 0026975
2025-12-15 10:45Christian GrothoffTarget Version1.5 => 1.3
2025-12-15 10:46Christian GrothoffFixed in Version => 1.3
2025-12-21 20:46Christian GrothoffStatusinforming => closed
2026-08-23 14:18Florian DoldCategorymerchant backoffice SPA => merchant portal webui