View Issue Details

IDProjectCategoryView StatusLast Update
0006363Talermechant backendpublic2023-09-23 15:09
ReporterFlorian Dold Assigned ToChristian Grothoff  
PriorityhighSeverityfeatureReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.9.3Fixed in Version0.9.3 
Summary0006363: allow merchants to query more information about the deposit status
DescriptionQuoting from the e-mail discussion:

>> I'm not really sure what to do there in practice, as "Taler 1.0" doesn't
>> really have any way for the merchant to ask about the status of the
>> transfer other than trying to call the exchange.
> Well, we do have:
> We could easily add a HTTP "Failed Dependency" status code to the API
> here and define a message format to indicate details about the problem
> to the merchant (and prescribe resolution strategies).
> This would mostly require another taler-exchange-XXX process to _query_
> LibEuFin for R-transactions, *and* a change to the exchange DB schema.
> More messy: this will require additional changes to the merchant
> backend. Please file a bug on this on Mantis, but I think we should
> target Taler v1.5 for this, given the scope of the changes and need for
> testing -- and the hopefully reasonably low likelihood of occurrence. At
> least I think we should be fine to manually handle the first generation
> of complaints for R-transactions, and that might even be better than
> trying to automate a process where we may not fully understand all the
> ways these things fail in practice.
TagsNo tags attached.


related to 0006992 closedAntoine A need new "generic-credit" facade 


Christian Grothoff

2020-07-06 11:00

manager   ~0016388

Some status information is now provided ('wired'), alas automatically querying LibEuFin for transactions as _merchant_ is missing: right now, the merchant has to manually POST incoming transactions to the backend.

Writing a taler-merchant-wirewatch tool should be done, but later.

Christian Grothoff

2021-05-09 13:48

manager   ~0017804

DD13 will include the required wire API changes (as we need to change the wire API for DD13 anyway).

Christian Grothoff

2021-05-09 19:45

manager   ~0017805

Discussed with Florian: wire API should NOT be used for this, but a separate libEuFin facade created.

Christian Grothoff

2022-12-20 23:23

manager   ~0019527

Marcello: can we please semi-urgently discuss this? I think this would be very good for Basel, and if you can _easily_ add the facade (which I would expect), I could likely get Priscilla to do the merchant backend legwork in January...

Christian Grothoff

2023-04-10 13:25

manager   ~0020047

Marcello (correctly) suggests to try to get this working using the Anastasis facade first.

Christian Grothoff

2023-04-12 15:12

manager   ~0020079

taler-merchant-wirewatch skeleton now exists. Todo: parse subject line, persist progress in new DB table, add man-page + test.

Christian Grothoff

2023-04-12 16:10

manager   ~0020080

Parsing, persisting and man-page are done. Testing is left.

Christian Grothoff

2023-04-13 19:29

manager   ~0020089

src/testing/ is now a new test for this feature. However, it currently fails with a 500 internal server error from libeufin.
1) obviously we shouldn't ever fail with 500, so that should be fixed, _maybe_ a 502 is appropriate. So first the HTTP status should probably be fixed.
2) I do not understand _why_ we fail (what is wrong with the setup/script).

Marcello: could you please look into both of these soon? Thanks!


2023-04-14 17:16

reporter   ~0020095

The error is from Nexus alone, _before_ even reaching the bank: the 502 error would
not apply in this case.

That's the response along the 500 status:

  "code" : 9000,
  "hint" : "nexus error, see detail",
  "detail" : "EBICS (outgoing) document is invalid"

That happens because the EBICS document it is sending to the bank has one
invalid value, which is the EBICS partner ID (in this case). The log below from
libeufin-nexus-stderr.log shows the details:

16:55:23.343 [eventLoopGroupProxy-4-1] WARN tech.libeufin.util - Validation failed: org.x
ml.sax.SAXParseException; lineNumber: 1; columnNumber: 235; cvc-pattern-valid: Value '{gnu
net_partner}' is not facet-valid with respect to pattern '[a-zA-Z0-9,=]{1,35}' for type 'P
16:55:23.349 [eventLoopGroupProxy-4-1] ERROR - Caught exception while
handling '/bank-connections/gnunet-connection/connect (EBICS (outgoing) document is invali
d (HTTP status 500 Internal Server Error))

Try to adjust the value in "--partner-id" in the CLI's "new-ebicssubscriber" subcommand to one
that matches the pattern shown above in the logs.

Christian Grothoff

2023-04-16 10:54

manager   ~0020096

After your fix, it still doesn't work: the facade doesn't return the transaction! I've tried adding an explicit fetch-transactions in addition to the existing "sleep 3", but neither seems to make the transfer show up in the facade!? Please help!

Christian Grothoff

2023-04-16 11:34

manager   ~0020097

With the very latest wallet, the withdraw step fails (wallet regression). => Assigning to Florian.

Florian Dold

2023-04-17 14:10

manager   ~0020104

According to what MS said on the phone, the issue was with how that wallet was used. And that invocation should be fixed now.

Christian Grothoff

2023-04-23 17:52

manager   ~0020131

Design discussion:
- configuration for taler-merchant-wirewatch should entirely move into the database
- tmw should NOT use the REST API (no credentials!)
- tmw should support multiple instances (from one process)
- merchant-exchange interaction for transfers should be moved into a separate helper process (triggered by NOTIFY)

Christian Grothoff

2023-04-23 17:53

manager   ~0020132


Christian Grothoff

2023-04-23 20:25

manager   ~0020134

31e5e07..dba2b83 documents the API change to allow user to configure taler-merchant-wirewatch per instance.

Christian Grothoff

2023-04-23 23:06

manager   ~0020135

Credentials and progress tracking are now stored in merchant backend together with accounts. Missing is moving the merchant-exchange interaction into a separate helper.


2023-04-26 19:21

developer   ~0020164

pushed 9df2547cc..03d3cce82

need an updated merchant to test it out

Christian Grothoff

2023-05-04 10:51

manager   ~0020173

6396057..9316c05 should fix taler-merchant-exchange and removes now dead logic from the POST /transfers endpoint.
Assuming the SPA can handle the 204 instead of the 200 for the POST /transfers endpoint (reported separately on mattermost), this should fix "everything" for this bug.

Issue History

Date Modified Username Field Change
2020-06-03 13:31 Florian Dold New Issue
2020-06-03 13:31 Florian Dold Status new => assigned
2020-06-03 13:31 Florian Dold Assigned To => Christian Grothoff
2020-07-06 11:00 Christian Grothoff Note Added: 0016388
2020-07-06 11:00 Christian Grothoff Assigned To Christian Grothoff =>
2020-07-06 11:00 Christian Grothoff Status assigned => confirmed
2020-07-16 15:16 Christian Grothoff Severity minor => feature
2020-12-20 20:29 Christian Grothoff Category exchange => mechant backend
2020-12-26 17:16 Christian Grothoff Assigned To => Christian Grothoff
2020-12-26 17:16 Christian Grothoff Status confirmed => assigned
2021-01-30 23:58 Christian Grothoff Status assigned => confirmed
2021-01-30 23:58 Christian Grothoff Assigned To Christian Grothoff =>
2021-04-19 19:10 Christian Grothoff Assigned To => Christian Grothoff
2021-04-19 19:10 Christian Grothoff Status confirmed => assigned
2021-05-09 13:48 Christian Grothoff Note Added: 0017804
2021-05-09 19:45 Christian Grothoff Note Added: 0017805
2021-07-13 06:48 Christian Grothoff Assigned To Christian Grothoff =>
2021-07-13 06:48 Christian Grothoff Status assigned => confirmed
2022-12-20 23:22 Christian Grothoff Assigned To => Christian Grothoff
2022-12-20 23:22 Christian Grothoff Status confirmed => assigned
2022-12-20 23:23 Christian Grothoff Note Added: 0019527
2022-12-20 23:24 Christian Grothoff Target Version => 0.9.2
2023-02-17 17:50 Florian Dold Target Version 0.9.2 => 0.9.3
2023-04-09 23:13 Christian Grothoff Priority normal => high
2023-04-10 13:25 Christian Grothoff Note Added: 0020047
2023-04-12 15:12 Christian Grothoff Note Added: 0020079
2023-04-12 16:10 Christian Grothoff Note Added: 0020080
2023-04-13 19:29 Christian Grothoff Note Added: 0020089
2023-04-13 19:29 Christian Grothoff Assigned To Christian Grothoff => MS
2023-04-13 20:43 Christian Grothoff Relationship added related to 0006992
2023-04-14 17:16 MS Note Added: 0020095
2023-04-16 10:54 Christian Grothoff Note Added: 0020096
2023-04-16 11:33 Christian Grothoff Assigned To MS => Florian Dold
2023-04-16 11:34 Christian Grothoff Note Added: 0020097
2023-04-17 14:10 Florian Dold Note Added: 0020104
2023-04-17 14:10 Florian Dold Assigned To Florian Dold => Christian Grothoff
2023-04-23 17:52 Christian Grothoff Note Added: 0020131
2023-04-23 17:53 Christian Grothoff Note Added: 0020132
2023-04-23 20:25 Christian Grothoff Note Added: 0020134
2023-04-23 23:06 Christian Grothoff Note Added: 0020135
2023-04-26 19:21 sebasjm Note Added: 0020164
2023-04-26 19:21 sebasjm Status assigned => feedback
2023-05-04 10:51 Christian Grothoff Note Added: 0020173
2023-05-04 10:52 Christian Grothoff Status feedback => resolved
2023-05-04 10:52 Christian Grothoff Resolution open => fixed
2023-05-04 10:52 Christian Grothoff Fixed in Version => 0.9.3
2023-09-23 15:09 Christian Grothoff Status resolved => closed