SIST-TP CWA 16926-1:2023
(Main)Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 1: Application Programming Interface (API) - Service Provider Interface (SPI) - Programmer's Reference
Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 1: Application Programming Interface (API) - Service Provider Interface (SPI) - Programmer's Reference
A key element of the Extensions for Financial Services is the definition of a set of APIs, a corresponding set of SPIs, and supporting services, providing access to financial services for Windows-based applications. The definition of the functionality of the services, of the architecture, and of the API and SPI sets, is outlined in this section, and described in detail in Sections 5 through 10.
The specification defines a standard set of interfaces such that, for example, an application that uses the API set to communicate with a particular Service Provider can work with a Service Provider of another conformant vendor, without any changes.
Although the Extensions for Financial Services define a general architecture for access to Service Providers from Windows-based applications, the initial focus of the CEN/XFS Workshop has been on providing access to peripheral devices that are unique to financial institutions. Since these devices are often complex, difficult to manage and proprietary, the development of a standardized interface to them from Windows-based applications and Windows operating systems can offer financial institutions and their solution providers immediate enhancements to productivity and flexibility.
Specifikacija vmesnika razširitev za finančne storitve (XFS), izdaja 3.50 - 1. del: Vmesnik za programiranje aplikacij (API) - Vmesnik ponudnika storitev (SPI) - Referenca za programerje
Ključni element razširitev za finančne storitve je opredelitev nabora vmesnikov za programiranje aplikacij (API), ustreznega nabora vmesnikov ponudnikov storitev (SPI) in podpornih storitev, ki zagotavljajo dostop do finančnih storitev za aplikacije, ki temeljijo na sistemu Windows. Opredelitev funkcionalnosti storitev, arhitekture ter naborov vmesnikov za programiranje aplikacij in vmesnikov ponudnikov storitev je predstavljena v tem razdelku ter podrobneje opisana v razdelkih 5 do 10.
Specifikacija določa standardni nabor vmesnikov, s pomočjo katerih lahko na primer aplikacija, ki uporablja nabor vmesnikov za programiranje aplikacij za komuniciranje z določenim ponudnikom storitev, deluje s ponudnikom storitev drugega ustreznega prodajalca brez kakršnih koli sprememb.
Čeprav razširitve za finančne storitve določajo splošno arhitekturo za dostop do ponudnikov storitev iz aplikacij, ki temeljijo na sistemu Windows, se je delavnica CEN/XFS sprva osredotočala na zagotovitev dostopa do perifernih naprav, edinstvenih za finančne institucije. Te naprave so pogosto kompleksne, lastniške in jih je težko upravljati, zato lahko razvoj standardiziranega vmesnika do teh naprav iz aplikacij, ki temeljijo na sistemu Windows, in operacijskih sistemov Windows finančnim institucijam ter njihovim ponudnikom rešitev zagotovi takojšnje izboljšave produktivnosti in prilagodljivosti.
General Information
Standards Content (Sample)
SLOVENSKI STANDARD
SIST CWA 16926-1:2023
01-marec-2023
Specifikacija vmesnika razširitev za finančne storitve (XFS), izdaja 3.50 - 1. del:
Vmesnik za programiranje aplikacij (API) - Vmesnik ponudnika storitev (SPI) -
Referenca za programerje
Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 1:
Application Programming Interface (API) - Service Provider Interface (SPI) -
Programmer's Reference
Ta slovenski standard je istoveten z: CWA 16926-1:2022
ICS:
35.200 Vmesniška in povezovalna Interface and interconnection
oprema equipment
35.240.15 Identifikacijske kartice. Čipne Identification cards. Chip
kartice. Biometrija cards. Biometrics
35.240.40 Uporabniške rešitve IT v IT applications in banking
bančništvu
SIST CWA 16926-1:2023 en,fr,de
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.
---------------------- Page: 1 ----------------------
SIST CWA 16926-1:2023
---------------------- Page: 2 ----------------------
SIST CWA 16926-1:2023
CEN
CWA 16926-1
WORKSHOP
December 2022
AGREEMENT
ICS 35.200; 35.240.15; 35.240.40
English version
Extensions for Financial Services (XFS) interface
specification Release 3.50 - Part 1: Application
Programming Interface (API) - Service Provider Interface
(SPI) - Programmer's Reference
This CEN Workshop Agreement has been drafted and approved by a Workshop of representatives of interested parties, the
constitution of which is indicated in the foreword of this Workshop Agreement.
The formal process followed by the Workshop in the development of this Workshop Agreement has been endorsed by the
National Members of CEN but neither the National Members of CEN nor the CEN-CENELEC Management Centre can be held
accountable for the technical content of this CEN Workshop Agreement or possible conflicts with standards or legislation.
This CEN Workshop Agreement can in no way be held as being an official standard developed by CEN and its Members.
This CEN Workshop Agreement is publicly available as a reference document from the CEN Members National Standard Bodies.
CEN members are the national standards bodies of Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France,
Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Republic of North
Macedonia, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye and United Kingdom.
EUROPEAN COMMITTEE FOR STANDARDIZATION
COMITÉ EUROPÉEN DE NORMALISATION
EUROPÄISCHES KOMITEE FÜR NORMUNG
CEN-CENELEC Management Centre: Rue de la Science 23, B-1040 Brussels
© 2022 CEN All rights of exploitation in any form and by any means reserved worldwide for CEN national Members.
Ref. No.:CWA 16926-1:2022 E
---------------------- Page: 3 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
Table of Contents
European Foreword . 6
1 Introduction . 10
1.1 Background to Release 3.50 . 10
2 References . 11
3 XFS (eXtensions for Financial Services) Overview . 12
3.1 Architecture . 13
3.2 API and SPI Summary . 16
3.3 Device Classes . 17
3.4 Unicode Encoding Summary . 18
4 Architectural and Implementation Issues . 19
4.1 The XFS Manager . 20
4.2 Service Providers . 21
4.2.1 Service Provider Functionality .21
4.2.2 Service Provider “Packaging” .21
4.3 Asynchronous, Synchronous and Immediate Functions . 22
4.3.1 Asynchronous Functions .22
4.3.2 Synchronous Functions .22
4.3.3 Immediate Functions .23
4.4 Processing API Functions . 24
4.5 Opening a Session . 25
4.6 Closing a Session . 26
4.7 Configuration Information . 27
4.8 Exclusive Service and Device Access . 31
4.8.1 Lock Policy for Independent Devices .31
4.8.2 Compound Devices .32
4.9 Timeout . 34
4.10 Function Status Return . 35
4.11 Notification Mechanisms - Registering for Events . 36
4.12 Application Processes, Threads and Blocking Functions . 38
4.13 Vendor Dependent Mode . 40
4.14 Memory Management . 41
4.15 Command Synchronization . 43
4.16 Binary Interface . 44
5 Application Programming Interface (API) Functions. 45
5.1 WFSCancelAsyncRequest . 47
5.2 WFSCancelBlockingCall . 48
5.3 WFSCleanUp . 49
5.4 WFSClose . 50
2
---------------------- Page: 4 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
5.5 WFSAsyncClose . 51
5.6 WFSCreateAppHandle . 52
5.7 WFSDeregister . 53
5.8 WFSAsyncDeregister . 54
5.9 WFSDestroyAppHandle . 56
5.10 WFSExecute . 57
5.11 WFSAsyncExecute. 59
5.12 WFSFreeResult . 61
5.13 WFSGetInfo . 62
5.14 WFSAsyncGetInfo . 64
5.15 WFSIsBlocking . 66
5.16 WFSLock . 67
5.17 WFSAsyncLock . 69
5.18 WFSOpen . 71
5.19 WFSAsyncOpen . 74
5.20 WFSRegister . 77
5.21 WFSAsyncRegister . 78
5.22 WFSSetBlockingHook . 80
5.23 WFSStartUp . 81
5.24 WFSUnhookBlockingHook . 83
5.25 WFSUnlock . 84
5.26 WFSAsyncUnlock . 85
6 Service Provider Interface (SPI) Functions . 86
6.1 WFPCancelAsyncRequest . 87
6.2 WFPClose . 88
6.3 WFPDeregister . 89
6.4 WFPExecute . 91
6.5 WFPGetInfo . 93
6.6 WFPLock . 95
6.7 WFPOpen . 96
6.8 WFPRegister . 99
6.9 WFPSetTraceLevel . 100
6.10 WFPUnloadService . 101
6.11 WFPUnlock . 102
7 Support Functions . 103
7.1 WFMAllocateBuffer . 103
7.2 WFMAllocateMore . 104
7.3 WFMFreeBuffer . 105
7.4 WFMGetTraceLevel . 106
7.5 WFMKillTimer . 107
3
---------------------- Page: 5 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
7.6 WFMOutputTraceData . 108
7.7 WFMReleaseDLL . 109
7.8 WFMSetTimer . 110
7.9 WFMSetTraceLevel . 111
8 Configuration Functions . 113
8.1 WFMCloseKey . 113
8.2 WFMCreateKey . 114
8.3 WFMDeleteKey . 115
8.4 WFMDeleteValue . 116
8.5 WFMEnumKey . 117
8.6 WFMEnumValue . 118
8.7 WFMOpenKey . 119
8.8 WFMQueryValue . 120
8.9 WFMSetValue . 121
9 Data Structures . 122
9.1 WFSRESULT . 122
9.2 WFSVERSION . 123
10 Messages . 124
10.1 Command Completions and Events . 124
10.1.1 Command Completion Messages .124
10.1.2 Event Messages .124
10.2 WFS_TIMER_EVENT . 125
10.3 WFS_SYSE_DEVICE_STATUS . 126
10.4 WFS_SYSE_UNDELIVERABLE_MSG. 127
10.5 WFS_SYSE_APP_DISCONNECT . 128
10.6 WFS_SYSE_HARDWARE_ERROR, WFS_SYSE_SOFTWARE_ERROR,
WFS_SYSE_USER_ERROR and WFS_SYSE_FRAUD_ATTEMPT . 129
10.7 WFS_SYSE_LOCK_REQUESTED . 131
10.8 WFS_SYSE_VERSION_ERROR . 132
11 Error Codes . 133
12 XFS End to End (E2E) Authentication . 136
12.1 XFS E2E General description . 136
12.2 Determining Specific E2E Authentication Requirements . 136
13 Common GetInfo, Execute Commands and Messages . 137
13.1 Common GetInfo Commands . 137
13.1.1 WFS_INF_API_TRANSACTION_STATE .137
13.1.2 WFS_INF_API_SERVICE_INFO .138
13.1.3 WFS_INF_API_SECURE_QUERY .142
13.1.4 WFS_INF_API_SYNC_PICTURE.144
13.2 Common Execute Commands . 146
13.2.1 WFS_CMD_API_SET_TRANSACTION_STATE .146
4
---------------------- Page: 6 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
13.2.2 WFS_CMD_API_GET_COMMAND_NONCE.147
13.2.3 WFS_CMD_API_SECURE_COMMAND .148
13.2.4 WFS_CMD_API_CLEAR_COMMAND_NONCE .150
13.2.5 WFS_CMD_API_SYNC_PICTURE .151
13.3 Common Events . 152
13.3.1 WFS_SRVE_API_STATUS_CHANGED .152
13.3.2 WFS_EXEE_API_ERROR_INFO .153
13.3.3 WFS_SRVE_API_NONCE_CLEARED .154
13.3.4 WFS_SRVE_API_SYNC_PICTURE .155
14 Appendix A - Planned Enhancements and Extensions . 156
14.1 Event and System Management . 157
15 Appendix B - XFS Workshop Contacts . 158
16 Appendix C - ATM Devices Synchronization Flow . 159
16.1 Synchronized Media Ejection . 159
17 Appendix D – Win64 Migration Considerations . 160
18 Appendix E - C-Header files . 161
18.1 XFSAPI.H . 161
18.2 XFSADMIN.H . 170
18.3 XFSCONF.H . 171
18.4 XFSSPI.H . 173
5
---------------------- Page: 7 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
European Foreword
This CEN Workshop Agreement has been developed in accordance with the CEN-CENELEC Guide 29
“CEN/CENELEC Workshop Agreements – The way to rapid consensus” and with the relevant provisions of
CEN/CENELEC Internal Regulations - Part 2. It was approved by a Workshop of representatives of interested
parties on 2022-11-08, the constitution of which was supported by CEN following several public calls for
participation, the first of which was made on 1998-06-24. However, this CEN Workshop Agreement does not
necessarily include all relevant stakeholders.
The final text of this CEN Workshop Agreement was provided to CEN for publication on 2022-11-18.
The following organizations and individuals developed and approved this CEN Workshop Agreement:
• AURIGA SPA
• CIMA SPA
• DIEBOLD NIXDORF SYSTEMS GMBH
• FIS BANKING SOLUTIONS UK LTD (OTS)
• FUJITSU TECHNOLOGY SOLUTIONS
• GLORY LTD
• GRG BANKING EQUIPMENT HK CO LTD
• HITACHI CHANNEL SOLUTIONS CORP
• HYOSUNG TNS INC
• JIANGSU GUOGUANG ELECTRONIC INFORMATION TECHNOLOGY
• KAL
• KEBA HANDOVER AUTOMATION GMBH
• NCR FSG
• NEXUS SOFTWARE
• OBERTHUR CASH PROTECTION
• OKI ELECTRIC INDUSTRY SHENZHEN
• SALZBURGER BANKEN SOFTWARE
• SECURE INNOVATION
• SIGMA SPA
It is possible that some elements of this CEN/CWA may be subject to patent rights. The CEN-CENELEC policy on
patent rights is set out in CEN-CENELEC Guide 8 “Guidelines for Implementation of the Common IPR Policy on
Patents (and other statutory intellectual property rights based on inventions)”. CEN shall not be held responsible for
identifying any or all such patent rights.
The Workshop participants have made every effort to ensure the reliability and accuracy of the technical and non-
technical content of CWA 16926-01, but this does not guarantee, either explicitly or implicitly, its correctness.
Users of CWA 16926-01 should be aware that neither the Workshop participants, nor CEN can be held liable for
6
---------------------- Page: 8 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
damages or losses of any kind whatsoever which may arise from its application. Users of CWA 16926-01 do so on
their own responsibility and at their own risk.
The CWA is published as a multi-part document, consisting of:
Part 1: Application Programming Interface (API) - Service Provider Interface (SPI) - Programmer's Reference
Part 2: Service Classes Definition - Programmer's Reference
Part 3: Printer and Scanning Device Class Interface - Programmer's Reference
Part 4: Identification Card Device Class Interface - Programmer's Reference
Part 5: Cash Dispenser Device Class Interface - Programmer's Reference
Part 6: PIN Keypad Device Class Interface - Programmer's Reference
Part 7: Check Reader/Scanner Device Class Interface - Programmer's Reference
Part 8: Depository Device Class Interface - Programmer's Reference
Part 9: Text Terminal Unit Device Class Interface - Programmer's Reference
Part 10: Sensors and Indicators Unit Device Class Interface - Programmer's Reference
Part 11: Vendor Dependent Mode Device Class Interface - Programmer's Reference
Part 12: Camera Device Class Interface - Programmer's Reference
Part 13: Alarm Device Class Interface - Programmer's Reference
Part 14: Card Embossing Unit Device Class Interface - Programmer's Reference
Part 15: Cash-In Module Device Class Interface - Programmer's Reference
Part 16: Card Dispenser Device Class Interface - Programmer's Reference
Part 17: Barcode Reader Device Class Interface - Programmer's Reference
Part 18: Item Processing Module Device Class Interface - Programmer's Reference
Part 19: Biometrics Device Class Interface - Programmer's Reference
Parts 20 - 28: Reserved for future use.
Parts 29 through 47 constitute an optional addendum to this CWA. They define the integration between the SNMP
standard and the set of status and statistical information exported by the Service Providers.
Part 29: XFS MIB Architecture and SNMP Extensions - Programmer’s Reference
Part 30: XFS MIB Device Specific Definitions - Printer Device Class
Part 31: XFS MIB Device Specific Definitions - Identification Card Device Class
Part 32: XFS MIB Device Specific Definitions - Cash Dispenser Device Class
Part 33: XFS MIB Device Specific Definitions - PIN Keypad Device Class
Part 34: XFS MIB Device Specific Definitions - Check Reader/Scanner Device Class
Part 35: XFS MIB Device Specific Definitions - Depository Device Class
Part 36: XFS MIB Device Specific Definitions - Text Terminal Unit Device Class
Part 37: XFS MIB Device Specific Definitions - Sensors and Indicators Unit Device Class
Part 38: XFS MIB Device Specific Definitions - Camera Device Class
Part 39: XFS MIB Device Specific Definitions - Alarm Device Class
Part 40: XFS MIB Device Specific Definitions - Card Embossing Unit Class
Part 41: XFS MIB Device Specific Definitions - Cash-In Module Device Class
Part 42: Reserved for future use.
Part 43: XFS MIB Device Specific Definitions - Vendor Dependent Mode Device Class
Part 44: XFS MIB Application Management
Part 45: XFS MIB Device Specific Definitions - Card Dispenser Device Class
7
---------------------- Page: 9 ----------------------
SIST CWA 16926-1:2023
CWA 16926-1:2022 (E)
Part 46: XFS MIB Device Specific Definitions - Barcode Reader Device Class
Part 47: XFS MIB Device Specific Definitions - Item Processing Module Device Class
Part 48: XFS MIB Device Specific Definitions - Biometrics Device Class
Parts 49 - 60 are reserved for future use.
Part 61: Application Programming Interface (API) - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Service Provider Interface (SPI) - Programmer's Reference
Part 62: Printer and Scanning Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 63: Identification Card Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 64: Cash Dispenser Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 65: PIN Keypad Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 66: Check Reader/Scanner Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 67: Depository Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 68: Text Terminal Unit Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 69: Sensors and Indicators Unit Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 70: Vendor Dependent Mode Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 71: Camera Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 72: Alarm Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 73: Card Embossing Unit Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 74: Cash-In Module Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 75: Card Dispenser Device Class I
...
SLOVENSKI STANDARD
SIST-TP CWA 16926-1:2023
01-marec-2023
Specifikacija vmesnika razširitev za finančne storitve (XFS), izdaja 3.50 - 1. del:
Vmesnik za programiranje aplikacij (API) - Vmesnik ponudnika storitev (SPI) -
Referenca za programerje
Extensions for Financial Services (XFS) interface specification Release 3.50 - Part 1:
Application Programming Interface (API) - Service Provider Interface (SPI) -
Programmer's Reference
Ta slovenski standard je istoveten z: CWA 16926-1:2022
ICS:
35.200 Vmesniška in povezovalna Interface and interconnection
oprema equipment
35.240.15 Identifikacijske kartice. Čipne Identification cards. Chip
kartice. Biometrija cards. Biometrics
35.240.40 Uporabniške rešitve IT v IT applications in banking
bančništvu
SIST-TP CWA 16926-1:2023 en,fr,de
2003-01.Slovenski inštitut za standardizacijo. Razmnoževanje celote ali delov tega standarda ni dovoljeno.
---------------------- Page: 1 ----------------------
SIST-TP CWA 16926-1:2023
---------------------- Page: 2 ----------------------
SIST-TP CWA 16926-1:2023
CEN
CWA 16926-1
WORKSHOP
December 2022
AGREEMENT
ICS 35.200; 35.240.15; 35.240.40
English version
Extensions for Financial Services (XFS) interface
specification Release 3.50 - Part 1: Application
Programming Interface (API) - Service Provider Interface
(SPI) - Programmer's Reference
This CEN Workshop Agreement has been drafted and approved by a Workshop of representatives of interested parties, the
constitution of which is indicated in the foreword of this Workshop Agreement.
The formal process followed by the Workshop in the development of this Workshop Agreement has been endorsed by the
National Members of CEN but neither the National Members of CEN nor the CEN-CENELEC Management Centre can be held
accountable for the technical content of this CEN Workshop Agreement or possible conflicts with standards or legislation.
This CEN Workshop Agreement can in no way be held as being an official standard developed by CEN and its Members.
This CEN Workshop Agreement is publicly available as a reference document from the CEN Members National Standard Bodies.
CEN members are the national standards bodies of Austria, Belgium, Bulgaria, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France,
Germany, Greece, Hungary, Iceland, Ireland, Italy, Latvia, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Republic of North
Macedonia, Romania, Serbia, Slovakia, Slovenia, Spain, Sweden, Switzerland, Türkiye and United Kingdom.
EUROPEAN COMMITTEE FOR STANDARDIZATION
COMITÉ EUROPÉEN DE NORMALISATION
EUROPÄISCHES KOMITEE FÜR NORMUNG
CEN-CENELEC Management Centre: Rue de la Science 23, B-1040 Brussels
© 2022 CEN All rights of exploitation in any form and by any means reserved worldwide for CEN national Members.
Ref. No.:CWA 16926-1:2022 E
---------------------- Page: 3 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
Table of Contents
European Foreword . 6
1 Introduction . 10
1.1 Background to Release 3.50 . 10
2 References . 11
3 XFS (eXtensions for Financial Services) Overview . 12
3.1 Architecture . 13
3.2 API and SPI Summary . 16
3.3 Device Classes . 17
3.4 Unicode Encoding Summary . 18
4 Architectural and Implementation Issues . 19
4.1 The XFS Manager . 20
4.2 Service Providers . 21
4.2.1 Service Provider Functionality .21
4.2.2 Service Provider “Packaging” .21
4.3 Asynchronous, Synchronous and Immediate Functions . 22
4.3.1 Asynchronous Functions .22
4.3.2 Synchronous Functions .22
4.3.3 Immediate Functions .23
4.4 Processing API Functions . 24
4.5 Opening a Session . 25
4.6 Closing a Session . 26
4.7 Configuration Information . 27
4.8 Exclusive Service and Device Access . 31
4.8.1 Lock Policy for Independent Devices .31
4.8.2 Compound Devices .32
4.9 Timeout . 34
4.10 Function Status Return . 35
4.11 Notification Mechanisms - Registering for Events . 36
4.12 Application Processes, Threads and Blocking Functions . 38
4.13 Vendor Dependent Mode . 40
4.14 Memory Management . 41
4.15 Command Synchronization . 43
4.16 Binary Interface . 44
5 Application Programming Interface (API) Functions. 45
5.1 WFSCancelAsyncRequest . 47
5.2 WFSCancelBlockingCall . 48
5.3 WFSCleanUp . 49
5.4 WFSClose . 50
2
---------------------- Page: 4 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
5.5 WFSAsyncClose . 51
5.6 WFSCreateAppHandle . 52
5.7 WFSDeregister . 53
5.8 WFSAsyncDeregister . 54
5.9 WFSDestroyAppHandle . 56
5.10 WFSExecute . 57
5.11 WFSAsyncExecute. 59
5.12 WFSFreeResult . 61
5.13 WFSGetInfo . 62
5.14 WFSAsyncGetInfo . 64
5.15 WFSIsBlocking . 66
5.16 WFSLock . 67
5.17 WFSAsyncLock . 69
5.18 WFSOpen . 71
5.19 WFSAsyncOpen . 74
5.20 WFSRegister . 77
5.21 WFSAsyncRegister . 78
5.22 WFSSetBlockingHook . 80
5.23 WFSStartUp . 81
5.24 WFSUnhookBlockingHook . 83
5.25 WFSUnlock . 84
5.26 WFSAsyncUnlock . 85
6 Service Provider Interface (SPI) Functions . 86
6.1 WFPCancelAsyncRequest . 87
6.2 WFPClose . 88
6.3 WFPDeregister . 89
6.4 WFPExecute . 91
6.5 WFPGetInfo . 93
6.6 WFPLock . 95
6.7 WFPOpen . 96
6.8 WFPRegister . 99
6.9 WFPSetTraceLevel . 100
6.10 WFPUnloadService . 101
6.11 WFPUnlock . 102
7 Support Functions . 103
7.1 WFMAllocateBuffer . 103
7.2 WFMAllocateMore . 104
7.3 WFMFreeBuffer . 105
7.4 WFMGetTraceLevel . 106
7.5 WFMKillTimer . 107
3
---------------------- Page: 5 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
7.6 WFMOutputTraceData . 108
7.7 WFMReleaseDLL . 109
7.8 WFMSetTimer . 110
7.9 WFMSetTraceLevel . 111
8 Configuration Functions . 113
8.1 WFMCloseKey . 113
8.2 WFMCreateKey . 114
8.3 WFMDeleteKey . 115
8.4 WFMDeleteValue . 116
8.5 WFMEnumKey . 117
8.6 WFMEnumValue . 118
8.7 WFMOpenKey . 119
8.8 WFMQueryValue . 120
8.9 WFMSetValue . 121
9 Data Structures . 122
9.1 WFSRESULT . 122
9.2 WFSVERSION . 123
10 Messages . 124
10.1 Command Completions and Events . 124
10.1.1 Command Completion Messages .124
10.1.2 Event Messages .124
10.2 WFS_TIMER_EVENT . 125
10.3 WFS_SYSE_DEVICE_STATUS . 126
10.4 WFS_SYSE_UNDELIVERABLE_MSG. 127
10.5 WFS_SYSE_APP_DISCONNECT . 128
10.6 WFS_SYSE_HARDWARE_ERROR, WFS_SYSE_SOFTWARE_ERROR,
WFS_SYSE_USER_ERROR and WFS_SYSE_FRAUD_ATTEMPT . 129
10.7 WFS_SYSE_LOCK_REQUESTED . 131
10.8 WFS_SYSE_VERSION_ERROR . 132
11 Error Codes . 133
12 XFS End to End (E2E) Authentication . 136
12.1 XFS E2E General description . 136
12.2 Determining Specific E2E Authentication Requirements . 136
13 Common GetInfo, Execute Commands and Messages . 137
13.1 Common GetInfo Commands . 137
13.1.1 WFS_INF_API_TRANSACTION_STATE .137
13.1.2 WFS_INF_API_SERVICE_INFO .138
13.1.3 WFS_INF_API_SECURE_QUERY .142
13.1.4 WFS_INF_API_SYNC_PICTURE.144
13.2 Common Execute Commands . 146
13.2.1 WFS_CMD_API_SET_TRANSACTION_STATE .146
4
---------------------- Page: 6 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
13.2.2 WFS_CMD_API_GET_COMMAND_NONCE.147
13.2.3 WFS_CMD_API_SECURE_COMMAND .148
13.2.4 WFS_CMD_API_CLEAR_COMMAND_NONCE .150
13.2.5 WFS_CMD_API_SYNC_PICTURE .151
13.3 Common Events . 152
13.3.1 WFS_SRVE_API_STATUS_CHANGED .152
13.3.2 WFS_EXEE_API_ERROR_INFO .153
13.3.3 WFS_SRVE_API_NONCE_CLEARED .154
13.3.4 WFS_SRVE_API_SYNC_PICTURE .155
14 Appendix A - Planned Enhancements and Extensions . 156
14.1 Event and System Management . 157
15 Appendix B - XFS Workshop Contacts . 158
16 Appendix C - ATM Devices Synchronization Flow . 159
16.1 Synchronized Media Ejection . 159
17 Appendix D – Win64 Migration Considerations . 160
18 Appendix E - C-Header files . 161
18.1 XFSAPI.H . 161
18.2 XFSADMIN.H . 170
18.3 XFSCONF.H . 171
18.4 XFSSPI.H . 173
5
---------------------- Page: 7 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
European Foreword
This CEN Workshop Agreement has been developed in accordance with the CEN-CENELEC Guide 29
“CEN/CENELEC Workshop Agreements – The way to rapid consensus” and with the relevant provisions of
CEN/CENELEC Internal Regulations - Part 2. It was approved by a Workshop of representatives of interested
parties on 2022-11-08, the constitution of which was supported by CEN following several public calls for
participation, the first of which was made on 1998-06-24. However, this CEN Workshop Agreement does not
necessarily include all relevant stakeholders.
The final text of this CEN Workshop Agreement was provided to CEN for publication on 2022-11-18.
The following organizations and individuals developed and approved this CEN Workshop Agreement:
• AURIGA SPA
• CIMA SPA
• DIEBOLD NIXDORF SYSTEMS GMBH
• FIS BANKING SOLUTIONS UK LTD (OTS)
• FUJITSU TECHNOLOGY SOLUTIONS
• GLORY LTD
• GRG BANKING EQUIPMENT HK CO LTD
• HITACHI CHANNEL SOLUTIONS CORP
• HYOSUNG TNS INC
• JIANGSU GUOGUANG ELECTRONIC INFORMATION TECHNOLOGY
• KAL
• KEBA HANDOVER AUTOMATION GMBH
• NCR FSG
• NEXUS SOFTWARE
• OBERTHUR CASH PROTECTION
• OKI ELECTRIC INDUSTRY SHENZHEN
• SALZBURGER BANKEN SOFTWARE
• SECURE INNOVATION
• SIGMA SPA
It is possible that some elements of this CEN/CWA may be subject to patent rights. The CEN-CENELEC policy on
patent rights is set out in CEN-CENELEC Guide 8 “Guidelines for Implementation of the Common IPR Policy on
Patents (and other statutory intellectual property rights based on inventions)”. CEN shall not be held responsible for
identifying any or all such patent rights.
The Workshop participants have made every effort to ensure the reliability and accuracy of the technical and non-
technical content of CWA 16926-01, but this does not guarantee, either explicitly or implicitly, its correctness.
Users of CWA 16926-01 should be aware that neither the Workshop participants, nor CEN can be held liable for
6
---------------------- Page: 8 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
damages or losses of any kind whatsoever which may arise from its application. Users of CWA 16926-01 do so on
their own responsibility and at their own risk.
The CWA is published as a multi-part document, consisting of:
Part 1: Application Programming Interface (API) - Service Provider Interface (SPI) - Programmer's Reference
Part 2: Service Classes Definition - Programmer's Reference
Part 3: Printer and Scanning Device Class Interface - Programmer's Reference
Part 4: Identification Card Device Class Interface - Programmer's Reference
Part 5: Cash Dispenser Device Class Interface - Programmer's Reference
Part 6: PIN Keypad Device Class Interface - Programmer's Reference
Part 7: Check Reader/Scanner Device Class Interface - Programmer's Reference
Part 8: Depository Device Class Interface - Programmer's Reference
Part 9: Text Terminal Unit Device Class Interface - Programmer's Reference
Part 10: Sensors and Indicators Unit Device Class Interface - Programmer's Reference
Part 11: Vendor Dependent Mode Device Class Interface - Programmer's Reference
Part 12: Camera Device Class Interface - Programmer's Reference
Part 13: Alarm Device Class Interface - Programmer's Reference
Part 14: Card Embossing Unit Device Class Interface - Programmer's Reference
Part 15: Cash-In Module Device Class Interface - Programmer's Reference
Part 16: Card Dispenser Device Class Interface - Programmer's Reference
Part 17: Barcode Reader Device Class Interface - Programmer's Reference
Part 18: Item Processing Module Device Class Interface - Programmer's Reference
Part 19: Biometrics Device Class Interface - Programmer's Reference
Parts 20 - 28: Reserved for future use.
Parts 29 through 47 constitute an optional addendum to this CWA. They define the integration between the SNMP
standard and the set of status and statistical information exported by the Service Providers.
Part 29: XFS MIB Architecture and SNMP Extensions - Programmer’s Reference
Part 30: XFS MIB Device Specific Definitions - Printer Device Class
Part 31: XFS MIB Device Specific Definitions - Identification Card Device Class
Part 32: XFS MIB Device Specific Definitions - Cash Dispenser Device Class
Part 33: XFS MIB Device Specific Definitions - PIN Keypad Device Class
Part 34: XFS MIB Device Specific Definitions - Check Reader/Scanner Device Class
Part 35: XFS MIB Device Specific Definitions - Depository Device Class
Part 36: XFS MIB Device Specific Definitions - Text Terminal Unit Device Class
Part 37: XFS MIB Device Specific Definitions - Sensors and Indicators Unit Device Class
Part 38: XFS MIB Device Specific Definitions - Camera Device Class
Part 39: XFS MIB Device Specific Definitions - Alarm Device Class
Part 40: XFS MIB Device Specific Definitions - Card Embossing Unit Class
Part 41: XFS MIB Device Specific Definitions - Cash-In Module Device Class
Part 42: Reserved for future use.
Part 43: XFS MIB Device Specific Definitions - Vendor Dependent Mode Device Class
Part 44: XFS MIB Application Management
Part 45: XFS MIB Device Specific Definitions - Card Dispenser Device Class
7
---------------------- Page: 9 ----------------------
SIST-TP CWA 16926-1:2023
CWA 16926-1:2022 (E)
Part 46: XFS MIB Device Specific Definitions - Barcode Reader Device Class
Part 47: XFS MIB Device Specific Definitions - Item Processing Module Device Class
Part 48: XFS MIB Device Specific Definitions - Biometrics Device Class
Parts 49 - 60 are reserved for future use.
Part 61: Application Programming Interface (API) - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Service Provider Interface (SPI) - Programmer's Reference
Part 62: Printer and Scanning Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 63: Identification Card Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 64: Cash Dispenser Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 65: PIN Keypad Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part 66: Check Reader/Scanner Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 67: Depository Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 68: Text Terminal Unit Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version
3.50 (this CWA) - Programmer's Reference
Part 69: Sensors and Indicators Unit Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 70: Vendor Dependent Mode Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 71: Camera Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 72: Alarm Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50 (this
CWA) - Programmer's Reference
Part 73: Card Embossing Unit Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to
Version 3.50 (this CWA) - Programmer's Reference
Part 74: Cash-In Module Device Class Interface - Migration from Version 3.40 (CWA 16296:2020) to Version 3.50
(this CWA) - Programmer's Reference
Part
...
Questions, Comments and Discussion
Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.