View Issue Details

IDProjectCategoryView StatusLast Update
0009515Talermerchant backoffice SPApublic2026-04-22 17:44
Reportervlada.svirsh Assigned ToBohdan  
PrioritynormalSeverityfeatureReproducibilityN/A
Status assignedResolutionopen 
Target Version1.8 
Summary0009515: QR code for PoS setup
DescriptionIn the "Access token" page, create the possibility to generate a QR code with all necessary information for activation of the PoS application just by scanning this QR.
Tagsgood first issue

Relationships

child of 0009499 confirmed need easier way to activate account 

Activities

sebasjm

2026-04-20 16:49

developer   ~0028414

This is not yet actionable since there is no spec documented.
I found this example in the Taler POS " taler-pos://backend.demo.taler.net/#/username=<username>&password=<password> "

which uses an unusual fragment to separate the params from url and access token is not supported.

sebasjm

2026-04-20 17:38

developer   ~0028415

I have created this draft implementation to check how PoS creates the config but no look with the POS app
image.png (90,320 bytes)   
image.png (90,320 bytes)   
image-2.png (29,091 bytes)   
image-2.png (29,091 bytes)   
image-3.png (61,311 bytes)   
image-3.png (61,311 bytes)   

sebasjm

2026-04-20 17:57

developer   ~0028416

5949a356a..a2fe54a89

only visible on expert mode

Bohdan

2026-04-20 21:49

developer   ~0028424

Firstly, about the #, yes, a bit not standard, but I guess this was a move to make sure that backend logs do not contain usernames and passwords.

From what I see, the QR code you have sent is recognized by pos, the only problem in my case was the fact that the merchant.taler is not found :((((

Otherwise, absolutely valid point about access tokens, I will try to make a DD for this in the next couple of days, just for the matter of structure, quite sure it will be
"taler-pos://backend.demo.taler.net/#/username=<username>&access_token=<token>"

sebasjm

2026-04-22 17:21

developer   ~0028439

Last edited: 2026-04-22 17:23

For taler:// URIs we have this https://lsd.gnunet.org/lsd0006/ I'm not sure that a DD is the best way to define it. Please check with CG

The taler-pos:// doesn't have an `action` section so are we going to use this for only one purpose?
We also have the bank/merchant integration ( a merchant can setup it's instance with a bank user&password for auto-reconciliation) which lacks of an good URI for the same mechanism so I don't think this only belongs to pos.
 
> but I guess this was a move to make sure that backend logs do not contain usernames and passwords.

Password should never be in the URI and not exposed as QR code. The access_token has ha `secret-token:` prefix for that purpose. So the # makes no sense. Please make it consistent like others URIs

Last, if the merchant portal print the QR code on screen but another person scan it first we should have a way for the user to know that is it's own device. This is bad because it will allow to sell product at lower price. IMO we need a flow of
1) print qr code on screen with a temp access_token (we can do this with a low duration)
2) pos app scans it, and generate a NEW access_token with refreshable property and high duration
3) merchant portal automatically switchs to a view with a confirmation "is this your device?" with buttons "yes" and "no, try again"

similar to the taler://withdraw

PD: the current backend API doesn't expose information to correlate the temp access_token generated in (1) with the new access token generated at (3) so now it will poll for any new tokens. @gc

Christian Grothoff

2026-04-22 17:43

manager   ~0028440

Last edited: 2026-04-22 17:44

I suggest: taler-pos://backend.demo.taler.net/instances/username#accesstoken -- limits accidental logging, doesn't expose password. If missing, PoS app can ask for password.

Issue History

Date Modified Username Field Change
2025-02-06 13:20 vlada.svirsh New Issue
2025-02-06 13:20 vlada.svirsh Status new => assigned
2025-02-06 13:20 vlada.svirsh Assigned To => sebasjm
2025-02-07 00:06 Christian Grothoff Target Version => post-1.0
2025-04-17 23:35 Christian Grothoff Assigned To sebasjm =>
2025-04-17 23:35 Christian Grothoff Status assigned => confirmed
2025-04-17 23:35 Christian Grothoff Target Version post-1.0 => 1.5
2025-04-17 23:35 Christian Grothoff Relationship added duplicate of 0009499
2025-07-11 22:22 Christian Grothoff Tag Attached: good first issue
2025-12-07 10:51 Christian Grothoff Target Version 1.5 => 1.8
2026-02-26 22:07 Christian Grothoff Relationship replaced related to 0009499
2026-02-26 22:07 Christian Grothoff Relationship replaced child of 0009499
2026-02-26 22:08 Christian Grothoff Assigned To => sebasjm
2026-02-26 22:08 Christian Grothoff Status confirmed => assigned
2026-02-26 22:08 Christian Grothoff Status assigned => confirmed
2026-04-20 16:49 sebasjm Assigned To sebasjm => vlada.svirsh
2026-04-20 16:49 sebasjm Status confirmed => feedback
2026-04-20 16:49 sebasjm Note Added: 0028414
2026-04-20 17:38 sebasjm Note Added: 0028415
2026-04-20 17:38 sebasjm File Added: image.png
2026-04-20 17:38 sebasjm File Added: image-2.png
2026-04-20 17:38 sebasjm File Added: image-3.png
2026-04-20 17:57 sebasjm Note Added: 0028416
2026-04-20 21:49 Bohdan Note Added: 0028424
2026-04-20 21:54 Bohdan Assigned To vlada.svirsh => Bohdan
2026-04-20 21:54 Bohdan Status feedback => assigned
2026-04-22 17:21 sebasjm Note Added: 0028439
2026-04-22 17:23 sebasjm Note Edited: 0028439
2026-04-22 17:43 Christian Grothoff Note Added: 0028440
2026-04-22 17:44 Christian Grothoff Note Edited: 0028440