@llm4ts/shell 2.11.0 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/flows/epic-stories.js +25 -5
  2. package/flows/lib/epic-stories.js +76 -8
  3. package/kits/soap-ace/README.md +313 -0
  4. package/kits/soap-ace/fixtures/demo-bank-soap/RUNBOOK.md +102 -0
  5. package/kits/soap-ace/fixtures/demo-bank-soap/design/api-design.md +620 -0
  6. package/kits/soap-ace/fixtures/demo-bank-soap/responses/cercaConti.xml +3 -0
  7. package/kits/soap-ace/fixtures/demo-bank-soap/responses/cercaMovimenti.xml +3 -0
  8. package/kits/soap-ace/fixtures/demo-bank-soap/responses/confermaBonifico.xml +3 -0
  9. package/kits/soap-ace/fixtures/demo-bank-soap/responses/dettaglioConto.xml +3 -0
  10. package/kits/soap-ace/fixtures/demo-bank-soap/responses/inserisciBonifico.xml +3 -0
  11. package/kits/soap-ace/fixtures/demo-bank-soap/responses/revocaBonifico.xml +3 -0
  12. package/kits/soap-ace/fixtures/demo-bank-soap/soapui/DemoBank-soapui-project.xml +39 -0
  13. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/DemoBank.wsdl +186 -0
  14. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/LegacyRpc.wsdl +29 -0
  15. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/xsd/banking.xsd +10 -0
  16. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/xsd/bonifici.xsd +107 -0
  17. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/xsd/common.xsd +93 -0
  18. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/xsd/conti.xsd +71 -0
  19. package/kits/soap-ace/fixtures/demo-bank-soap/wsdl/xsd/movimenti.xsd +55 -0
  20. package/kits/soap-ace/flows/lib/soap/Analysis.js +508 -0
  21. package/kits/soap-ace/flows/lib/soap/Auth.js +179 -0
  22. package/kits/soap-ace/flows/lib/soap/Call.js +186 -0
  23. package/kits/soap-ace/flows/lib/soap/CallPolicy.js +50 -0
  24. package/kits/soap-ace/flows/lib/soap/Catalog.js +157 -0
  25. package/kits/soap-ace/flows/lib/soap/Classification.js +254 -0
  26. package/kits/soap-ace/flows/lib/soap/Design.js +497 -0
  27. package/kits/soap-ace/flows/lib/soap/DesignProposal.js +204 -0
  28. package/kits/soap-ace/flows/lib/soap/Discover.js +139 -0
  29. package/kits/soap-ace/flows/lib/soap/Envelope.js +132 -0
  30. package/kits/soap-ace/flows/lib/soap/Epic.js +239 -0
  31. package/kits/soap-ace/flows/lib/soap/Instance.js +675 -0
  32. package/kits/soap-ace/flows/lib/soap/Mapping.js +130 -0
  33. package/kits/soap-ace/flows/lib/soap/Masking.js +508 -0
  34. package/kits/soap-ace/flows/lib/soap/OpenApi.js +288 -0
  35. package/kits/soap-ace/flows/lib/soap/Samples.js +287 -0
  36. package/kits/soap-ace/flows/lib/soap/Scenarios.js +132 -0
  37. package/kits/soap-ace/flows/lib/soap/SoapUiImport.js +200 -0
  38. package/kits/soap-ace/flows/lib/soap/Stub.js +34 -0
  39. package/kits/soap-ace/flows/lib/soap/Transport.js +167 -0
  40. package/kits/soap-ace/flows/lib/soap/Wsdl.js +533 -0
  41. package/kits/soap-ace/flows/lib/soap/Xml.js +453 -0
  42. package/kits/soap-ace/flows/lib/soap/Xsd.js +471 -0
  43. package/kits/soap-ace/flows/lib/soap/Yaml.js +309 -0
  44. package/kits/soap-ace/flows/soap-design.js +167 -0
  45. package/kits/soap-ace/flows/soap-discover.js +85 -0
  46. package/kits/soap-ace/flows/soap-epic.js +204 -0
  47. package/kits/soap-ace/flows/soap-sample.js +265 -0
  48. package/kits/soap-ace/packs/ace12-rest/api-style.md +63 -0
  49. package/kits/soap-ace/packs/ace12-rest/pack.md +18 -0
  50. package/kits/soap-ace/packs/ace12-rest/prompts/implement.md +8 -0
  51. package/kits/soap-ace/packs/ace12-rest/reviewers/contract.md +5 -0
  52. package/kits/soap-ace/patterns/PAT-ACE-001-esito-to-problem.md +8 -0
  53. package/kits/soap-ace/patterns/PAT-ACE-002-fault-to-problem.md +8 -0
  54. package/kits/soap-ace/patterns/PAT-ACE-003-amounts-and-enums.md +8 -0
  55. package/kits/soap-ace/patterns/PAT-ACE-004-pagination.md +7 -0
  56. package/kits/soap-ace/patterns/PAT-ACE-005-nil-and-absence.md +7 -0
  57. package/kits/soap-ace/scaffolds/ace12-rest-api/CONTRIBUTING.md +56 -0
  58. package/kits/soap-ace/scaffolds/ace12-rest-api/README.md +16 -0
  59. package/kits/soap-ace/scaffolds/ace12-rest-api/scripts/ace-gates-container.sh +8 -0
  60. package/kits/soap-ace/scaffolds/ace12-rest-api/scripts/ace-gates.sh +41 -0
  61. package/package.json +4 -4
@@ -0,0 +1,620 @@
1
+ # REST design: Demo Bank accounts and credit transfers
2
+
3
+ Status: approved
4
+
5
+ Hand-written reference design for the demo-bank-soap fixture: what a good
6
+ soap-design proposal looks like, and the golden input of the OpenAPI
7
+ projection tests.
8
+
9
+ ## Design of record
10
+
11
+ ```json apidesign
12
+ {
13
+ "version": 1,
14
+ "title": "Demo Bank accounts and credit transfers",
15
+ "basePath": "/v1",
16
+ "endpoints": [
17
+ {
18
+ "method": "GET",
19
+ "path": "/accounts",
20
+ "operationId": "listAccounts",
21
+ "summary": "List the customer's current accounts",
22
+ "sources": [
23
+ "cercaConti"
24
+ ],
25
+ "parameters": [
26
+ {
27
+ "name": "X-Customer-Tax-Code",
28
+ "in": "header",
29
+ "required": true,
30
+ "type": "string",
31
+ "source": "codiceFiscale",
32
+ "description": "The customer's codice fiscale; a header keeps it out of URLs and access logs."
33
+ },
34
+ {
35
+ "name": "status",
36
+ "in": "query",
37
+ "required": false,
38
+ "type": "string",
39
+ "source": "stato",
40
+ "enum": [
41
+ "ACTIVE",
42
+ "BLOCKED",
43
+ "CLOSED"
44
+ ],
45
+ "enumMap": {
46
+ "ATTIVO": "ACTIVE",
47
+ "BLOCCATO": "BLOCKED",
48
+ "ESTINTO": "CLOSED"
49
+ }
50
+ }
51
+ ],
52
+ "responses": [
53
+ {
54
+ "status": 200,
55
+ "description": "The accounts",
56
+ "model": "Account",
57
+ "list": true,
58
+ "source": "conto[]"
59
+ }
60
+ ],
61
+ "errors": [
62
+ {
63
+ "status": 400,
64
+ "code": "invalid-tax-code",
65
+ "title": "The tax code is not valid",
66
+ "from": [
67
+ "KO01"
68
+ ]
69
+ }
70
+ ],
71
+ "evidence": [
72
+ "analysis/cercaConti: stato SOSPESO outside the WSDL enumeration, mapped to SUSPENDED",
73
+ "analysis/cercaConti: canale returned but not declared; not exposed"
74
+ ]
75
+ },
76
+ {
77
+ "method": "GET",
78
+ "path": "/accounts/{iban}",
79
+ "operationId": "getAccount",
80
+ "summary": "One account with its overdraft",
81
+ "sources": [
82
+ "dettaglioConto"
83
+ ],
84
+ "parameters": [
85
+ {
86
+ "name": "iban",
87
+ "in": "path",
88
+ "required": true,
89
+ "type": "string",
90
+ "source": "iban"
91
+ }
92
+ ],
93
+ "responses": [
94
+ {
95
+ "status": 200,
96
+ "description": "The account",
97
+ "model": "AccountDetail",
98
+ "source": ""
99
+ }
100
+ ],
101
+ "errors": [
102
+ {
103
+ "status": 404,
104
+ "code": "account-not-found",
105
+ "title": "No such account",
106
+ "from": [
107
+ "KO12"
108
+ ]
109
+ }
110
+ ],
111
+ "evidence": [
112
+ "analysis/dettaglioConto: fido sent as xsi:nil, exposed as a nullable overdraftLimit"
113
+ ]
114
+ },
115
+ {
116
+ "method": "GET",
117
+ "path": "/accounts/{iban}/movements",
118
+ "operationId": "listMovements",
119
+ "summary": "Booked movements in a date window, newest first",
120
+ "sources": [
121
+ "cercaMovimenti"
122
+ ],
123
+ "parameters": [
124
+ {
125
+ "name": "iban",
126
+ "in": "path",
127
+ "required": true,
128
+ "type": "string",
129
+ "source": "iban"
130
+ },
131
+ {
132
+ "name": "bookingDateFrom",
133
+ "in": "query",
134
+ "required": true,
135
+ "type": "string",
136
+ "source": "dataDa",
137
+ "format": "date"
138
+ },
139
+ {
140
+ "name": "bookingDateTo",
141
+ "in": "query",
142
+ "required": true,
143
+ "type": "string",
144
+ "source": "dataA",
145
+ "format": "date"
146
+ },
147
+ {
148
+ "name": "page",
149
+ "in": "query",
150
+ "required": false,
151
+ "type": "integer",
152
+ "source": "paginazione.numeroPagina",
153
+ "derivation": "defaults to 1"
154
+ },
155
+ {
156
+ "name": "size",
157
+ "in": "query",
158
+ "required": false,
159
+ "type": "integer",
160
+ "source": "paginazione.dimensionePagina",
161
+ "derivation": "defaults to 50, at most 100"
162
+ }
163
+ ],
164
+ "responses": [
165
+ {
166
+ "status": 200,
167
+ "description": "One page of movements",
168
+ "model": "Movement",
169
+ "list": true,
170
+ "paged": true,
171
+ "source": "movimento[]"
172
+ }
173
+ ],
174
+ "errors": [],
175
+ "evidence": [
176
+ "analysis/cercaMovimenti: page-number pagination with ultimaPagina and an optional totaleRecord"
177
+ ]
178
+ },
179
+ {
180
+ "method": "POST",
181
+ "path": "/credit-transfers",
182
+ "operationId": "createCreditTransfer",
183
+ "summary": "Register a SEPA credit transfer awaiting confirmation",
184
+ "sources": [
185
+ "inserisciBonifico"
186
+ ],
187
+ "parameters": [],
188
+ "requestBody": {
189
+ "model": "CreditTransferRequest",
190
+ "required": true
191
+ },
192
+ "responses": [
193
+ {
194
+ "status": 201,
195
+ "description": "Registered, pending confirmation",
196
+ "model": "CreditTransfer",
197
+ "source": ""
198
+ }
199
+ ],
200
+ "errors": [
201
+ {
202
+ "status": 422,
203
+ "code": "transfer-rejected",
204
+ "title": "The transfer cannot be registered",
205
+ "from": [
206
+ "ServizioFault"
207
+ ]
208
+ }
209
+ ],
210
+ "evidence": []
211
+ },
212
+ {
213
+ "method": "POST",
214
+ "path": "/credit-transfers/{transferId}/confirmation",
215
+ "operationId": "confirmCreditTransfer",
216
+ "summary": "Confirm a registered transfer with the OTP (SCA)",
217
+ "sources": [
218
+ "confermaBonifico"
219
+ ],
220
+ "parameters": [
221
+ {
222
+ "name": "transferId",
223
+ "in": "path",
224
+ "required": true,
225
+ "type": "string",
226
+ "source": "idBonifico"
227
+ }
228
+ ],
229
+ "requestBody": {
230
+ "model": "TransferConfirmationRequest",
231
+ "required": true
232
+ },
233
+ "responses": [
234
+ {
235
+ "status": 200,
236
+ "description": "Confirmed",
237
+ "model": "TransferConfirmation",
238
+ "source": ""
239
+ }
240
+ ],
241
+ "errors": [
242
+ {
243
+ "status": 422,
244
+ "code": "invalid-otp",
245
+ "title": "The OTP is not valid",
246
+ "from": [
247
+ "KO17"
248
+ ]
249
+ }
250
+ ],
251
+ "evidence": [
252
+ "analysis/confermaBonifico: KO17 arrives inside an HTTP 200 with esito; mapped to 422 invalid-otp"
253
+ ]
254
+ },
255
+ {
256
+ "method": "POST",
257
+ "path": "/credit-transfers/{transferId}/revocation",
258
+ "operationId": "revokeCreditTransfer",
259
+ "summary": "Revoke a transfer not yet executed",
260
+ "sources": [
261
+ "revocaBonifico"
262
+ ],
263
+ "parameters": [
264
+ {
265
+ "name": "transferId",
266
+ "in": "path",
267
+ "required": true,
268
+ "type": "string",
269
+ "source": "idBonifico"
270
+ }
271
+ ],
272
+ "responses": [
273
+ {
274
+ "status": 200,
275
+ "description": "Revoked",
276
+ "model": "TransferRevocation",
277
+ "source": ""
278
+ }
279
+ ],
280
+ "errors": [
281
+ {
282
+ "status": 409,
283
+ "code": "transfer-already-executed",
284
+ "title": "The transfer was already executed",
285
+ "from": [
286
+ "ServizioFault"
287
+ ]
288
+ }
289
+ ],
290
+ "evidence": [
291
+ "analysis/revocaBonifico: ServizioFault KO31 when the transfer was executed"
292
+ ]
293
+ }
294
+ ],
295
+ "models": [
296
+ {
297
+ "name": "Amount",
298
+ "description": "A monetary amount: decimal string and ISO 4217 currency.",
299
+ "sourceType": "ImportoType",
300
+ "properties": [
301
+ {
302
+ "name": "amount",
303
+ "type": "string",
304
+ "required": true,
305
+ "source": "valore",
306
+ "format": "decimal"
307
+ },
308
+ {
309
+ "name": "currency",
310
+ "type": "string",
311
+ "required": true,
312
+ "source": "divisa"
313
+ }
314
+ ]
315
+ },
316
+ {
317
+ "name": "Account",
318
+ "description": "A current account (conto).",
319
+ "sourceType": "ContoType",
320
+ "properties": [
321
+ {
322
+ "name": "iban",
323
+ "type": "string",
324
+ "required": true,
325
+ "source": "iban"
326
+ },
327
+ {
328
+ "name": "holderName",
329
+ "type": "string",
330
+ "required": true,
331
+ "source": "intestatario"
332
+ },
333
+ {
334
+ "name": "taxCode",
335
+ "type": "string",
336
+ "required": true,
337
+ "source": "codiceFiscale"
338
+ },
339
+ {
340
+ "name": "balance",
341
+ "type": "object",
342
+ "required": true,
343
+ "source": "saldo",
344
+ "ref": "Amount"
345
+ },
346
+ {
347
+ "name": "status",
348
+ "type": "string",
349
+ "required": true,
350
+ "source": "stato",
351
+ "enum": [
352
+ "ACTIVE",
353
+ "BLOCKED",
354
+ "CLOSED",
355
+ "SUSPENDED"
356
+ ],
357
+ "enumMap": {
358
+ "ATTIVO": "ACTIVE",
359
+ "BLOCCATO": "BLOCKED",
360
+ "ESTINTO": "CLOSED",
361
+ "SOSPESO": "SUSPENDED"
362
+ },
363
+ "description": "SUSPENDED is not in the WSDL enumeration but the service returns it (analysis/cercaConti)."
364
+ },
365
+ {
366
+ "name": "openingDate",
367
+ "type": "string",
368
+ "required": true,
369
+ "source": "dataApertura",
370
+ "format": "date"
371
+ },
372
+ {
373
+ "name": "branch",
374
+ "type": "string",
375
+ "required": false,
376
+ "source": "filiale"
377
+ }
378
+ ]
379
+ },
380
+ {
381
+ "name": "AccountDetail",
382
+ "sourceType": "dettaglioContoResponse",
383
+ "properties": [
384
+ {
385
+ "name": "account",
386
+ "type": "object",
387
+ "required": true,
388
+ "source": "conto",
389
+ "ref": "Account"
390
+ },
391
+ {
392
+ "name": "overdraftLimit",
393
+ "type": "object",
394
+ "required": false,
395
+ "source": "fido",
396
+ "ref": "Amount",
397
+ "nullable": true,
398
+ "description": "Null when the account has no overdraft (sent as xsi:nil)."
399
+ }
400
+ ]
401
+ },
402
+ {
403
+ "name": "Movement",
404
+ "sourceType": "MovimentoType",
405
+ "properties": [
406
+ {
407
+ "name": "id",
408
+ "type": "string",
409
+ "required": true,
410
+ "source": "idMovimento"
411
+ },
412
+ {
413
+ "name": "bookingDate",
414
+ "type": "string",
415
+ "required": true,
416
+ "source": "dataContabile",
417
+ "format": "date"
418
+ },
419
+ {
420
+ "name": "valueDate",
421
+ "type": "string",
422
+ "required": true,
423
+ "source": "dataValuta",
424
+ "format": "date"
425
+ },
426
+ {
427
+ "name": "amount",
428
+ "type": "object",
429
+ "required": true,
430
+ "source": "importo",
431
+ "ref": "Amount"
432
+ },
433
+ {
434
+ "name": "direction",
435
+ "type": "string",
436
+ "required": true,
437
+ "source": "segno",
438
+ "enum": [
439
+ "DEBIT",
440
+ "CREDIT"
441
+ ],
442
+ "enumMap": {
443
+ "D": "DEBIT",
444
+ "A": "CREDIT"
445
+ }
446
+ },
447
+ {
448
+ "name": "reason",
449
+ "type": "string",
450
+ "required": true,
451
+ "source": "causale"
452
+ },
453
+ {
454
+ "name": "description",
455
+ "type": "string",
456
+ "required": false,
457
+ "source": "descrizione"
458
+ }
459
+ ]
460
+ },
461
+ {
462
+ "name": "CreditTransferRequest",
463
+ "sourceType": "inserisciBonifico",
464
+ "properties": [
465
+ {
466
+ "name": "debtorIban",
467
+ "type": "string",
468
+ "required": true,
469
+ "source": "ibanOrdinante"
470
+ },
471
+ {
472
+ "name": "creditorName",
473
+ "type": "string",
474
+ "required": true,
475
+ "source": "beneficiario.nome"
476
+ },
477
+ {
478
+ "name": "creditorIban",
479
+ "type": "string",
480
+ "required": true,
481
+ "source": "beneficiario.iban"
482
+ },
483
+ {
484
+ "name": "amount",
485
+ "type": "object",
486
+ "required": true,
487
+ "source": "importo",
488
+ "ref": "Amount"
489
+ },
490
+ {
491
+ "name": "remittanceInformation",
492
+ "type": "string",
493
+ "required": true,
494
+ "source": "causale"
495
+ },
496
+ {
497
+ "name": "executionDate",
498
+ "type": "string",
499
+ "required": false,
500
+ "source": "dataEsecuzione",
501
+ "format": "date"
502
+ }
503
+ ]
504
+ },
505
+ {
506
+ "name": "CreditTransfer",
507
+ "sourceType": "inserisciBonificoResponse",
508
+ "properties": [
509
+ {
510
+ "name": "id",
511
+ "type": "string",
512
+ "required": true,
513
+ "source": "idBonifico"
514
+ },
515
+ {
516
+ "name": "status",
517
+ "type": "string",
518
+ "required": true,
519
+ "source": "stato",
520
+ "enum": [
521
+ "PENDING_CONFIRMATION",
522
+ "CONFIRMED",
523
+ "EXECUTED",
524
+ "REVOKED",
525
+ "REJECTED"
526
+ ],
527
+ "enumMap": {
528
+ "INSERITO": "PENDING_CONFIRMATION",
529
+ "CONFERMATO": "CONFIRMED",
530
+ "ESEGUITO": "EXECUTED",
531
+ "REVOCATO": "REVOKED",
532
+ "RIFIUTATO": "REJECTED"
533
+ }
534
+ },
535
+ {
536
+ "name": "fees",
537
+ "type": "object",
538
+ "required": false,
539
+ "source": "commissioni",
540
+ "ref": "Amount"
541
+ }
542
+ ]
543
+ },
544
+ {
545
+ "name": "TransferConfirmationRequest",
546
+ "sourceType": "confermaBonifico",
547
+ "properties": [
548
+ {
549
+ "name": "otp",
550
+ "type": "string",
551
+ "required": true,
552
+ "source": "codiceOtp"
553
+ }
554
+ ]
555
+ },
556
+ {
557
+ "name": "TransferConfirmation",
558
+ "sourceType": "confermaBonificoResponse",
559
+ "properties": [
560
+ {
561
+ "name": "status",
562
+ "type": "string",
563
+ "required": true,
564
+ "source": "stato",
565
+ "enum": [
566
+ "PENDING_CONFIRMATION",
567
+ "CONFIRMED",
568
+ "EXECUTED",
569
+ "REVOKED",
570
+ "REJECTED"
571
+ ],
572
+ "enumMap": {
573
+ "INSERITO": "PENDING_CONFIRMATION",
574
+ "CONFERMATO": "CONFIRMED",
575
+ "ESEGUITO": "EXECUTED",
576
+ "REVOCATO": "REVOKED",
577
+ "RIFIUTATO": "REJECTED"
578
+ }
579
+ },
580
+ {
581
+ "name": "transactionReference",
582
+ "type": "string",
583
+ "required": false,
584
+ "source": "cro"
585
+ }
586
+ ]
587
+ },
588
+ {
589
+ "name": "TransferRevocation",
590
+ "sourceType": "revocaBonificoResponse",
591
+ "properties": [
592
+ {
593
+ "name": "status",
594
+ "type": "string",
595
+ "required": true,
596
+ "source": "stato",
597
+ "enum": [
598
+ "PENDING_CONFIRMATION",
599
+ "CONFIRMED",
600
+ "EXECUTED",
601
+ "REVOKED",
602
+ "REJECTED"
603
+ ],
604
+ "enumMap": {
605
+ "INSERITO": "PENDING_CONFIRMATION",
606
+ "CONFERMATO": "CONFIRMED",
607
+ "ESEGUITO": "EXECUTED",
608
+ "REVOCATO": "REVOKED",
609
+ "RIFIUTATO": "REJECTED"
610
+ }
611
+ }
612
+ ]
613
+ }
614
+ ],
615
+ "excluded": [],
616
+ "notes": [
617
+ "The customer is identified by a header until the gateway derives it from the access token."
618
+ ]
619
+ }
620
+ ```
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Synthetic demo-bank response for cercaConti. No real data. -->
3
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ban="http://demobank.example/soap/banking" xmlns:cmn="http://demobank.example/soap/common"><soapenv:Header/><soapenv:Body><ban:cercaContiResponse><cmn:esito><cmn:codice>OK00</cmn:codice></cmn:esito><ban:conto><ban:iban>IT60X0542811101000000123456</ban:iban><ban:intestatario>Mario Rossi</ban:intestatario><ban:codiceFiscale>RSSMRA85T10A562S</ban:codiceFiscale><ban:saldo><cmn:valore>1523.40</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:saldo><ban:stato>ATTIVO</ban:stato><ban:dataApertura>2019-04-01</ban:dataApertura><ban:filiale>Milano 12</ban:filiale></ban:conto><ban:conto><ban:iban>IT02L1234512345123456789012</ban:iban><ban:intestatario>Mario Rossi</ban:intestatario><ban:codiceFiscale>RSSMRA85T10A562S</ban:codiceFiscale><ban:saldo><cmn:valore>0.00</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:saldo><ban:stato>BLOCCATO</ban:stato><ban:dataApertura>2019-04-01</ban:dataApertura></ban:conto></ban:cercaContiResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Synthetic demo-bank response for cercaMovimenti. No real data. -->
3
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ban="http://demobank.example/soap/banking" xmlns:cmn="http://demobank.example/soap/common"><soapenv:Header/><soapenv:Body><ban:cercaMovimentiResponse><cmn:esito><cmn:codice>OK00</cmn:codice></cmn:esito><ban:movimento><ban:idMovimento>MV000001</ban:idMovimento><ban:dataContabile>2026-03-11</ban:dataContabile><ban:dataValuta>2026-03-11</ban:dataValuta><ban:importo><cmn:valore>25.50</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:importo><ban:segno>D</ban:segno><ban:causale>PAGAMENTO POS</ban:causale></ban:movimento><ban:movimento><ban:idMovimento>MV000002</ban:idMovimento><ban:dataContabile>2026-03-12</ban:dataContabile><ban:dataValuta>2026-03-12</ban:dataValuta><ban:importo><cmn:valore>50.50</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:importo><ban:segno>A</ban:segno><ban:causale>BONIFICO DA IT02L1234512345123456789012</ban:causale></ban:movimento><ban:movimento><ban:idMovimento>MV000003</ban:idMovimento><ban:dataContabile>2026-03-13</ban:dataContabile><ban:dataValuta>2026-03-13</ban:dataValuta><ban:importo><cmn:valore>75.50</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:importo><ban:segno>D</ban:segno><ban:causale>PAGAMENTO POS</ban:causale></ban:movimento><ban:paginazione><cmn:numeroPagina>1</cmn:numeroPagina><cmn:ultimaPagina>false</cmn:ultimaPagina></ban:paginazione></ban:cercaMovimentiResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Synthetic demo-bank response for confermaBonifico. No real data. -->
3
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ban="http://demobank.example/soap/banking" xmlns:cmn="http://demobank.example/soap/common"><soapenv:Header/><soapenv:Body><ban:confermaBonificoResponse><cmn:esito><cmn:codice>KO17</cmn:codice><cmn:descrizione>Codice OTP non valido</cmn:descrizione></cmn:esito></ban:confermaBonificoResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Synthetic demo-bank response for dettaglioConto. No real data. -->
3
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ban="http://demobank.example/soap/banking" xmlns:cmn="http://demobank.example/soap/common"><soapenv:Header/><soapenv:Body><ban:dettaglioContoResponse><cmn:esito><cmn:codice>OK00</cmn:codice></cmn:esito><ban:conto><ban:iban>IT60X0542811101000000123456</ban:iban><ban:intestatario>Mario Rossi</ban:intestatario><ban:codiceFiscale>RSSMRA85T10A562S</ban:codiceFiscale><ban:saldo><cmn:valore>1523.40</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:saldo><ban:stato>ATTIVO</ban:stato><ban:dataApertura>2019-04-01</ban:dataApertura></ban:conto><ban:fido xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true"/></ban:dettaglioContoResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Synthetic demo-bank response for inserisciBonifico. No real data. -->
3
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ban="http://demobank.example/soap/banking" xmlns:cmn="http://demobank.example/soap/common"><soapenv:Header/><soapenv:Body><ban:inserisciBonificoResponse><cmn:esito><cmn:codice>OK00</cmn:codice></cmn:esito><ban:idBonifico>BN20260325001</ban:idBonifico><ban:stato>INSERITO</ban:stato><ban:commissioni><cmn:valore>0.50</cmn:valore><cmn:divisa>EUR</cmn:divisa></ban:commissioni></ban:inserisciBonificoResponse></soapenv:Body></soapenv:Envelope>
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Synthetic demo-bank response for revocaBonifico. No real data. -->
3
+ <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ban="http://demobank.example/soap/banking" xmlns:cmn="http://demobank.example/soap/common"><soapenv:Header/><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server</faultcode><faultstring>Bonifico gia eseguito</faultstring><detail><cmn:ServizioFault><cmn:codice>KO31</cmn:codice><cmn:messaggio>Bonifico BN20260301009 gia eseguito</cmn:messaggio></cmn:ServizioFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>