View Issue Details

IDProjectCategoryView StatusLast Update
0011168Talermerchant backoffice SPApublic2026-02-28 20:15
ReporterChristian Grothoff Assigned Tosebasjm  
PriorityimmediateSeverityblockReproducibilityalways
Status resolvedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version1.5Fixed in Version1.5 
Summary0011168: SPC QR code shown in merchant SPA is invalid!
DescriptionMy bank app rejects the SPC QR code shown by my.taler-ops.ch as invalid.
Note that it should also be shown by default and more prominently, but the fact that it may not be recognized is the blocker.
TagsNo tags attached.

Activities

Christian Grothoff

2026-02-27 22:45

manager   ~0027936

QR code decodes to:
""
SPC
0200
1
CHXXXXXXXXXXXXXXXX
S
Taler Operations AG


2502
Biel-Bienne
CH
















NON

KYC:2Q4QKY2KBD3NPKQS9GMGX59W4N00JD9F1398N80C9YEG6JHH3PC0
EPD
""

Christian Grothoff

2026-02-27 22:47

manager   ~0027937

Clear problems: amount and currency are missing (but mandatory)!

Christian Grothoff

2026-02-27 23:05

manager   ~0027938

This scans, but still fails later:
"""
SPC
0200
1
CH6208704XXXXXXXXXX
S
Taler Operations AG


2502
Biel-Bienne
CH







0.01
CHF







NON

KYC:2Q4QKY2KBD3NPKQS9GMGX59W4N00JD9F1398N80C9YEG6JHH3PC0
EPD
""" (note: no new-line after EPD).

Christian Grothoff

2026-02-27 23:07

manager   ~0027939

Ah, found the issue: the bank account encoded is NOT the TOPS account, but the *origin* account. That's bad! You need to put the TOPS IBAN, not the IBAN of the *sender* in that position!

sebasjm

2026-02-28 00:24

developer   ~0027940

iban seems to be right but amount added after in fe23834e4..0b15b3567

the currency is taken by the default currency of the merchant /config and value 1

sebasjm

2026-02-28 00:25

developer   ~0027941

I sent you some screenshot for testing, i don't have a swiss banking app

Christian Grothoff

2026-02-28 11:41

manager   ~0027942

The new QR code works, but the amount should be CHF 0.01, not CHF 1. Also, the QR code should be above the manual wire transfer instructions (and always visible), and not at the bottom.

Christian Grothoff

2026-02-28 11:46

manager   ~0027943

I think we need to *soon* get the 'tiny amount' from the /keys of the exchange (because it won't always be 0.01 for all currencies) and to support short wire transfer subjects (0010392) we anyway need to dynamically talk to the bank (!). So probably better to move the entire QR code generation logic into the C code base and give you an API to request the QR code from the merchant backend. WDYT?

Christian Grothoff

2026-02-28 11:47

manager   ~0027944

Q: should such an endpoint return an image or just the *text* to be encoded in the QR code? The C backend already contains libqrencode, so it *can* generate the image. Might make the JavaScript part more lightweight, right?

sebasjm

2026-02-28 17:52

developer   ~0027945

only the text, the client software can encode that as a SVG or what's better for the device

Christian Grothoff

2026-02-28 18:33

manager   ~0027946

9513fe00..0edd1dd3 adds a new endpoint for this to the specification (not yet implemented).

Christian Grothoff

2026-02-28 20:15

manager   ~0027948

I think we can declare the urgent issue as done, and leave the rest for 0011169.

Issue History

Date Modified Username Field Change
2026-02-27 22:43 Christian Grothoff New Issue
2026-02-27 22:43 Christian Grothoff Status new => assigned
2026-02-27 22:43 Christian Grothoff Assigned To => sebasjm
2026-02-27 22:45 Christian Grothoff Note Added: 0027936
2026-02-27 22:47 Christian Grothoff Note Added: 0027937
2026-02-27 23:05 Christian Grothoff Note Added: 0027938
2026-02-27 23:07 Christian Grothoff Note Added: 0027939
2026-02-28 00:24 sebasjm Note Added: 0027940
2026-02-28 00:25 sebasjm Status assigned => feedback
2026-02-28 00:25 sebasjm Note Added: 0027941
2026-02-28 00:25 sebasjm Assigned To sebasjm => Christian Grothoff
2026-02-28 11:41 Christian Grothoff Note Added: 0027942
2026-02-28 11:41 Christian Grothoff Assigned To Christian Grothoff => sebasjm
2026-02-28 11:41 Christian Grothoff Status feedback => assigned
2026-02-28 11:46 Christian Grothoff Note Added: 0027943
2026-02-28 11:47 Christian Grothoff Note Added: 0027944
2026-02-28 17:52 sebasjm Note Added: 0027945
2026-02-28 17:52 sebasjm Assigned To sebasjm => Christian Grothoff
2026-02-28 18:33 Christian Grothoff Note Added: 0027946
2026-02-28 20:15 Christian Grothoff Note Added: 0027948
2026-02-28 20:15 Christian Grothoff Assigned To Christian Grothoff => sebasjm
2026-02-28 20:15 Christian Grothoff Status assigned => resolved
2026-02-28 20:15 Christian Grothoff Resolution open => fixed
2026-02-28 20:15 Christian Grothoff Fixed in Version => 1.5