View Issue Details

IDProjectCategoryView StatusLast Update
0009719Talermerchant backendpublic2025-05-10 02:11
ReporterChristian Grothoff 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
PrioritynormalSeveritytextReproducibilityN/A
Status closedResolutionfixed 
Platformi7OSDebian GNU/LinuxOS Versionsqueeze
Product Versiongit (master) 
Target Version1.0Fixed in Version1.0 
Summary0009719: test 0-limit for deposit instant-triggers KYC requirement in SPA
DescriptionThis is the common use-case for GLS, and must work.
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

related to 0009487 closedsebasjm qc merchant KYC 

Activities

sebasjm

2025-04-10 20:24

developer   ~0024504

test-kyc-merchant-deposit already validate this, but AFAIK to get an up to date information from the merchant backend the merchant needs to try to create an order, otherwise is just cached in the database

sebasjm

2025-04-11 15:11

developer   ~0024513

kyc-merchant-deposit-rewrite has been updated to fail

Ends with
FATAL: test failed with exception Error: Too many retries

here https://git.taler.net/taler-typescript-core.git/tree/packages/taler-harness/src/integrationtests/test-kyc-merchant-deposit-rewrite.ts#n241

After retrying 10 times asking kyc status

Christian Grothoff

2025-04-11 19:07

manager   ~0024517

Well we see the following in the logs:

2025-04-11T20:57:15.490909+0200 taler-merchant-kyccheck-46502 INFO Will repeat inquiry in 6 days

That's after we got the KYC-still-required from the exchange. Naturally, your test doesn't then wait for 6 days.

There are several points to consider here thus:
1) 6 days is probably a bit high;
2) the test probably should still not rely on the background job to do this in a timely fashion, and instead should
start taler-merchant-kyccheck explicitly with timetravel (--timetravel) to force it to fetch the latest status.

I'll go and reduce it from 6 days to 6 hours, but please add the taler-merchant-kyccheck with timetravel (after the KYC was done!). Let's see if we then pass.

Christian Grothoff

2025-04-11 19:15

manager   ~0024518

ee77fb01..ce5fe921 increases kyc-check frequency to 6h as long as we have relevant soft zero-limits in the limits.

sebasjm

2025-04-11 20:07

developer   ~0024520

the test now does a timetravel +7 days before asking for kyc.

still the same behavior

Christian Grothoff

2025-04-14 18:51

manager   ~0024542

please modifiy to make sure to run the kyccheck in testmode (-t).

Florian Dold

2025-04-16 13:03

manager   ~0024575

I've added the "-t", but the command seems to hang. To reproduce, run

taler-harness run-integrationtests kyc-merchant-deposit-rewrite

with the latest taler-typescript-core.git.

Christian Grothoff

2025-04-18 12:44

manager   ~0024601

I now did a simple merchant setup against the tops-deployment, and after starting the taler-merchant-{httpd, exchangekeyupdate,kyccheck} processes against the attache config file, I get the following weird error message:
""
The payment service provider requires you to make a wire transfer using the account provided but this account is not compatible with the exchange. / Can't complete due to wire transfer incomptability.
""
(with the typo in 'incomptability'!). Aside from the error message having typos and being hard to understand, the /kyc endpoint did indeed return:

Object { payto_uri: "payto://iban/CH6208704048981247126?receiver-name=Christian%20Grothoff", h_wire: "YXAS165XPW4YXRZP998459MXNPMPNS24BDDMKVAM37JA1S4RQ880XEGMXFX1D9GFYJS7WBZW59XQZX0K42WTRD3BYXSE0D3C54KPW38", status: "kyc-wire-impossible", … }
payto_uri "payto://iban/CH6208704048981247126?receiver-name=Christian%20Grothoff"
h_wire "YXAS165XPW4YXRZP998459MXNPMPNS24BDDMKVAM37JA1S4RQ880XEGMXFX1D9GFYJS7WBZW59XQZX0K42WTRD3BYXSE0D3C54KPW38"
status "kyc-wire-impossible"
exchange_url "https://exchange.taler-ops.ch/"
no_keys false
auth_conflict true
exchange_http_status 404
exchange_code 1939
limits [ {…}, {…}, {…}, {…}, {…}, {…}, {…} ]
0 Object { operation_type: "TRANSACTION", threshold: "CHF:1000", soft_limit: false, … }
1 Object { operation_type: "MERGE", threshold: "CHF:2500", soft_limit: false, … }
2 Object { operation_type: "WITHDRAW", threshold: "CHF:2500", soft_limit: false, … }
3 Object { operation_type: "MERGE", threshold: "CHF:15000", soft_limit: false, … }
4 Object { operation_type: "WITHDRAW", threshold: "CHF:15000", soft_limit: false, … }
5 Object { operation_type: "DEPOSIT", threshold: "CHF:0", soft_limit: true, … }
6 Object { operation_type: "MERGE", threshold: "CHF:0", soft_limit: true, … }
payto_kycauths []

So the question is: why do we create "kyc-wire-impossible" here. Will investigate.

Christian Grothoff

2025-04-18 12:48

manager   ~0024602

I've fixed the bug, now we get the prope "action required". That said, we should definitively improve the error message.
For the description use:

"Incompatible core banking system"
for the long text (when clicking on the line) use
"The core banking system cannot perform wire transfers between the payment service provider's accounts and your bank accounts. Thus you cannot use this exchange."

Christian Grothoff

2025-04-18 13:06

manager   ~0024606

f23402f15..e95565b7a fixes the strings.

Issue History

Date ModifiedUsernameFieldChange
2025-04-09 15:21Christian GrothoffNew Issue
2025-04-09 15:21Christian GrothoffStatusnew => assigned
2025-04-09 15:21Christian GrothoffAssigned To => sebasjm
2025-04-10 20:24sebasjmNote Added: 0024504
2025-04-11 15:11sebasjmNote Added: 0024513
2025-04-11 15:12sebasjmAssigned Tosebasjm => Christian Grothoff
2025-04-11 15:12sebasjmCategorymerchant backoffice SPA => merchant backend
2025-04-11 19:07Christian GrothoffNote Added: 0024517
2025-04-11 19:15Christian GrothoffNote Added: 0024518
2025-04-11 19:15Christian GrothoffAssigned ToChristian Grothoff => sebasjm
2025-04-11 20:07sebasjmNote Added: 0024520
2025-04-11 20:07sebasjmAssigned Tosebasjm => Christian Grothoff
2025-04-14 18:51Christian GrothoffNote Added: 0024542
2025-04-14 18:51Christian GrothoffAssigned ToChristian Grothoff => Florian Dold
2025-04-16 13:03Florian DoldNote Added: 0024575
2025-04-16 13:03Florian DoldAssigned ToFlorian Dold => Christian Grothoff
2025-04-17 19:03Christian GrothoffRelationship addedrelated to 0009487
2025-04-18 12:44Christian GrothoffNote Added: 0024601
2025-04-18 12:48Christian GrothoffNote Added: 0024602
2025-04-18 12:48Christian GrothoffAssigned ToChristian Grothoff => sebasjm
2025-04-18 12:48Christian GrothoffSeverityfeature => text
2025-04-18 13:06Christian GrothoffNote Added: 0024606
2025-04-18 13:06Christian GrothoffStatusassigned => informing
2025-04-18 13:06Christian GrothoffResolutionopen => fixed
2025-04-18 13:06Christian GrothoffFixed in Version => 1.0
2025-05-10 02:11Christian GrothoffStatusinforming => closed