72E-86292-01 Revision A November 2006
© 2006 by Symbol Technologies, Inc. All rights reserved.
No part of this publication may be reproduced or used in any form, or by any electrical or mechanical means, without permission in writing from Symbol. This includes electronic or mechanical means, such as
photocopying, recording, or information storage and retrieval systems. The material in this manual is subject to change without notice.
The software is provided strictly on an “as is” basis. All software, including firmware, furnished to the user is on a licensed basis. Symbol grants to the user a non-transferable and non-exclusive license to use each software or firmware program delivered hereunder (licensed program). Except as noted below, such license may not be assigned, sublicensed, or otherwise transferred by the user without prior written consent of Symbol. No right to copy a licensed program in whole or in part is granted, except as permitted under copyright law. The user shall not modify, merge, or incorporate any form or portion of a licensed program with other program material, create a derivative work from a licensed program, or use a licensed program in a network without written permission from Symbol. The user agrees to maintain Symbol’s copyright notice on the licensed programs delivered hereunder, and to include the same on any authorized copies it makes, in whole or in part. The user agrees not to decompile, disassemble, decode, or reverse engineer any licensed program delivered to the user or any portion thereof.
Symbol reserves the right to make changes to any software or product to improve reliability, function, or design. Symbol does not assume any product liability arising out of, or in connection with, the application or use of any product, circuit, or application described herein.
No license is granted, either expressly or by implication, estoppel, or otherwise under any Symbol Technologies, Inc., intellectual property rights. An implied license only exists for equipment, circuits, and subsystems contained in Symbol products.
Symbol, Spectrum One, and Spectrum24 are registered trademarks of Symbol Technologies, Inc. Bluetooth is a registered trademark of Bluetooth SIG. Microsoft, Windows and ActiveSync are either registered trademarks or trademarks of Microsoft Corporation. Other product names mentioned in this manual may be trademarks or registered trademarks of their respective companies and are hereby acknowledged.
Symbol Technologies, Inc. One Symbol Plaza
Holtsville, New York 11742-1300
Revision History
Changes to the original manual are listed below:
Change Date Description
-01 Rev A 11/2006 Initial Release. (Hypercom Rev. B)
Revision History ... iii
About This Guide
Introduction ... v
Chapter Descriptions... v
Notational Conventions ... v
Related Documents... vi
Service Information ... vii
Global Customer Interaction Center... vii
Chapter 1: WIC EBT Card Processing
Introduction ... 1-1
Software Environment ... 1-1
Hardware Environment ... 1-1
Protocol ... 1-2
STX, ETX, and LRC ... 1-2
ACK and NAK ... 1-2
WIC EBT Card Processing ... 1-2
Required Security Keys ... 1-3
Transaction Summary ... 1-3
Start_WIC_Session ... 1-4
PIN Verification ... 1-4
Utilization Approval ... 1-5
Prescription Update Processing ... 1-5
WIC Update Prescription Operation Flow ... 1-6
WIC ICC Status Change Reason Code Update ... 1-7
Operation Flow ... 1-8
WIC Messages ... 1-8
WIC Message Details ... 1-10
Start_WIC_Session ... 1-10
Request (ASYNC) ... 1-11
Response (ASYNC) ... 1-12
Action Codes ... 1-13
Comments ... 1-14
Usage Scenario ... 1-14
Example ... 1-15
Get_WIC_Pin ... 1-15
Request (ASYNC) ... 1-15
Response (ASYNC) ... 1-16
Action Codes ... 1-16
Comments ... 1-17
Usage Scenario ... 1-17
Example ... 1-17
Get_Prescription ... 1-18
Request (ASYNC) ... 1-18
Response (ASYNC) ... 1-18
Action Codes ... 1-19
Comments ... 1-19
Usage Scenario ... 1-19
Examples ... 1-20
Update_Prescription ... 1-20
Request (ASYNC) ... 1-20
Response (ASYNC) ... 1-21
Action Codes ... 1-21
Comments ... 1-22
Usage Scenario ... 1-22
Examples ... 1-22
End_WIC_Session ... 1-23
Request (ASYNC) ... 1-23
Response (ASYNC) ... 1-23
Action Code ... 1-23
Comments ... 1-24
Usage Scenario ... 1-24
Examples ... 1-24
Lock_WIC_ICC ... 1-24
Request (ASYNC) ... 1-25
Response (ASYNC) ... 1-25
Action Code ... 1-25
Comments ... 1-26
Usage Scenario ... 1-26
Examples ... 1-26
Remove_WIC_ICC ... 1-27
Request (ASYNC) ... 1-27
Response (ASYNC) ... 1-27
Action Codes ... 1-28
Comments ... 1-28
Usage Scenario ... 1-28
Example ... 1-28
Smart_Card_Removed ... 1-29
Request (ASYNC) ... 1-29
Action Code ... 1-29
Example ... 1-29
Utilization_Approval ... 1-30
Request (ASYNC) ... 1-30
Response (ASYNC) ... 1-30
Action Codes ... 1-31
Comments ... 1-31
Usage Scenario ... 1-31
Example ... 1-31
Update_WIC_Status ... 1-32
Request (ASYNC) ... 1-32
Response (ASYNC) ... 1-33
Action Code ... 1-33
Comments ... 1-33
Allowed FPE Interface Messages ... 1-34
Beeper Control ... 1-34
Request (ASYNC) ... 1-34
Example ... 1-34
Form Request ‘V’ ... 1-35
Request ... 1-35
Field Tokens Used in Form Request ‘V’ Messages ... 1-35
Response ... 1-37
Field Tokens Sent by FPE in Response to Form Request ‘V’ Messages ... 1-38
Example ... 1-38
Update Display ‘M’ ... 1-39
Request ... 1-39
Response ... 1-39
Field Tokens ... 1-39
Example ... 1-39
Clear All Display Lines ‘N’ ... 1-40
Request ... 1-40
Response ... 1-40
Example ... 1-40
Scenarios ... 1-41
Redeem Food Benefits Process Overview ... 1-41
Scenario 1 ... 1-41
Scenario 2 ... 1-43
Action Codes ... 1-47
WIC Form Names and Global Prompt Texts ... 1-48
Default Form Names and Prompt Texts ... 1-48
WICSTFRM ... 1-48
WICPINFRM ... 1-48
WICRXFRM ... 1-49
WICENDFRM ... 1-49
WICREMFRM ... 1-49
WICINPFRM ... 1-49
WICCANFRM ... 1-49
WICRETFRM ... 1-49
WICLOCFRM ... 1-49
WICWTFRM ... 1-50
PINFRM ... 1-50
SWIPEFRM ... 1-50
WAITFRM ... 1-50
Form and Prompt Text Selection Algorithms ... 1-51
Default Change Procedure ... 1-52
WIC Prompts Configuration File ... 1-53
Sample Screen ... 1-55
Introduction
This WIC EBT card processing guide was prepared for Symbol payment terminals and contains detailed descriptions of supported commands, including request/response format and utilization examples, and provides guidelines for this interface integration into POS solutions for retail.
This guide is intended for network administrators, merchants, operators, technicians or those who oversee the configuration and daily maintenance of the terminals
Chapter Descriptions
Topics covered in this guide are as follows:
• Chapter 1, WIC EBT Card Processing provides information about the payment terminal application and PIN Pad communication with the retail point-of-sale cash register system (the “host” or ECR) in order to complete a WIC (Program for Women, Infants and Children) smart card transaction.
Notational Conventions
The followingconventions are used in this document:
• Italics are used to highlight the following:
-
Chapters and sections in this and related documents-
Drop-down list and list box names-
Check box and radio button names-
Icons on a screen.NOTE Screens and windows pictured in this guide are samples and can differ from actual screens.
IMPORTANT Any references in this guide to Hypercom Corporation, Hypercom logo, Hypercom file names and file paths, Hypercom software (e.g., FormBuilder) and terminals reflect hardware and software manufactured by Hypercom Corporation for Symbol Technologies, Inc.
• Bold text is used to highlight the following:
-
Names of windows-
Dialog box components.• bullets (•) indicate:
-
Action items-
Lists of alternatives-
Lists of required steps that are not necessarily sequential• Sequential lists (e.g., those that describe step-by-step procedures) appear as numbered lists.
• Special icons:
Related Documents
For the latest version of this guide go to:http://www.symbol.com/manuals.
NOTE Notes contain neutral or positive information supplementing the main text. It is often information that applies only to special cases.
IMPORTANT Important statements draw attention to information crucial to using the product successfully. Pay special attention to Important statements.
CAUTION Cautions advise that a negative result, such as a loss of data, may occur.
WARNING! Warnings provide information that is essential to the safety of the user, the equipment, or both. Failure to do as instructed may result in physical damage.
Service Information
For service information, warranty information, technical assistance or problems with the equipment, contact the regional Symbol Global Customer Interaction Center. Before calling, have the model number, serial number and several bar code symbols at hand.
Call the Global Customer Interaction Center from a phone near the scanning equipment so that the service person can try to troubleshoot the problem. If the equipment is found to be working properly and the problem is reading bar codes, the Support Center will request samples of the bar codes for analysis at our plant.
If the problem cannot be solved over the phone, it may be necessary to return the equipment for servicing. If that is necessary, the Global Customer Interaction Center will provide specific directions.
If the Symbol product was purchased from a Symbol Business Partner, contact that Business Partner for service.
Global Customer Interaction Center
The addresses and telephone numbers below are provided for you convenience. However, this information can change due to telephone provider updates. For the most up-to-date contact number information, visit:
www.symbol.com/contactsupport for a Customer Interaction Center in your area.
NOTE Symbol Technologies is not responsible for any damages incurred during shipment if the approved shipping container is not used. Shipping the units improperly can possibly void the warranty. If the original shipping container was not kept, contact Symbol to have another sent.
Country/Region Address Telephone
United States Symbol Technologies, Inc. One Symbol Plaza
Holtsville, New York 11742-1300
1-800-653-5350
Canada Symbol Technologies Canada, Inc.
5180 Orbitor Drive
Mississauga, Ontario, Canada L4W 5L9
1-866-416-8545 (Inside Canada) 905-629-7226 (Outside Canada)
United Kingdom Symbol Technologies Symbol Place
Winnersh Triangle, Berkshire RG41 5TP United Kingdom
0800 328 2424 (Inside UK) +44 118 945 7529 (Outside UK)
Asia/Pacific Symbol Technologies Asia, Inc. (Singapore Branch)
230 Victoria Street #12-06/10 Bugis Junction Office Tower Singapore 188024
Tel: +65-6796-9600 Fax: +65-6337-6488
Australia Symbol Technologies Pty. Ltd. 432 St. Kilda Road
Melbourne, Victoria 3004
1-800-672-906 (Inside Australia) +61-3-9866-6044 (Outside Australia)
Österreich/Austria Symbol Technologies Austria GmbH Prinz-Eugen Strasse 70 / 2.Haus 1040 Vienna, Austria
01-5055794-0 (Inside Austria)
+43-1-5055794-0 (Outside Austria)
Danmark/Denmark Symbol Technologies AS Dr. Neergaardsvej 3 2970 Hørsholm 7020-1718 (Inside Denmark) +45-7020-1718 (Outside Denmark) Europe/Mid-East Distributor Operations
Contact your local distributor or call +44 118 945 7360
Suomi/Finland Oy Symbol Technologies Kaupintie 8 A 6
FIN-00440 Helsinki, Finland
9 5407 580 (Inside Finland) +358 9 5407 580 (Outside Finland)
France Symbol Technologies France
Centre d'Affaire d'Antony 3 Rue de la Renaissance 92184 Antony Cedex, France
01-40-96-52-21 (Inside France) +33-1-40-96-52-50 (Outside France) Deutschland/ Germany Symbol Technologies GmbH Waldstrasse 66 D-63128 Dietzenbach, Germany 6074-49020 (Inside Germany) +49-6074-49020 (Outside Germany)
Italia/Italy Symbol Technologies Italia S.R.L. Via Cristoforo Columbo, 49 20090 Trezzano S/N Navigilo Milano, Italy 2-484441 (Inside Italy) +39-02-484441 (Outside Italy) Latin America Sales Support 2730 University Dr.
Coral Springs, FL 33065 USA
1-800-347-0178 (Inside United States) +1-954-255-2610 (Outside United States) 954-340-9454 (Fax)
México/Mexico Symbol Technologies Mexico Ltd. Torre Picasso
Boulevard Manuel Avila Camacho No 88 Lomas de Chapultepec CP 11000 Mexico City, DF, Mexico
5-520-1835 (Inside Mexico) +52-5-520-1835 (Outside Mexico) Nederland/ Netherlands Symbol Technologies Kerkplein 2, 7051 CX Postbus 24 7050 AA Varsseveld, Netherlands 315-271700 (Inside Netherlands) +31-315-271700 (Outside Netherlands)
Norge/Norway Symbol’s registered and mailing address: Symbol Technologies Norway
Hoybratenveien 35 C N-1055 OSLO, Norway
Symbol’s repair depot and shipping address:
Symbol Technologies Norway Enebakkveien 123
N-0680 OSLO, Norway
+47 2232 4375
South Africa Symbol Technologies Africa Inc. Block B2
Rutherford Estate 1 Scott Street
Waverly 2090 Johannesburg Republic of South Africa
11-809 5311 (Inside South Africa) +27-11-809 5311 (Outside South Africa)
España/Spain Symbol Technologies S.L. Avenida de Bruselas, 22 Edificio Sauce Alcobendas, Madrid 28108 Spain 91 324 40 00 (Inside Spain) +34 91 324 40 00 (Outside Spain) Fax: +34.91.324.4010
Sverige/Sweden “Letter” address:
Symbol Technologies AB Box 1354 S-171 26 SOLNA Sweden Visit/shipping address: Symbol Technologies AB Solna Strandväg 78 S-171 54 SOLNA Sweden Switchboard: 08 445 29 00 (domestic) Call Center: +46 8 445 29 29 (international) Support E-Mail:
Chapter 1
Chapter 1 WIC EBT Card Processing
Introduction
The Program for Women, Infants and Children (WIC) provides nutritious supplemental foods, nutritional education, and health and nutrition referral services to low-income pregnant, postpartum, and breast feeding women, infants, and children up to five years old. The program is administered by the federal government. For more information on the WIC program, see www.fns.usda.gov/wic.
WIC benefits are authorized through local clinics and given to the family in a prescription format that allows only specific food items to be purchased. Once participants have been issued a card with benefits, they are able to redeem food benefits at a grocer with the WIC EBT system. Grocers will provide food items to the participant based on the current prescription information found on the card. When the transaction is complete, the food prescription is decremented by the amount redeemed, and the updated prescription is written to the card.
Software Environment
The application is written in C++ for the ARM Compiler (ARM Developer Suite version 1.2).
Hardware Environment
The application requires a Symbol payment terminal with WIC chip/smart card reader device able to attach to an ECR using RS-232 serial, TCP/IP, or USB communication.
Protocol
ASYNC<STX><Message Type><Data><ETX><LRC>
STX, ETX, and LRC
Each message sent or received by either the PIN Pad or the terminal must be formatted with a leading STX (0x02) character and followed by a trailing ETX (0x03) character and an LRC. The LRC is a checksum character generated by performing an XOR (exclusive-or) operation upon all bytes of the message <Message Type><Data>, including the ETX, but excluding the STX. When a message is received, the LRC calculation will be performed, and the result compared to the value of the LRC character received as part of the message. If the values are not identical, the message will be considered corrupt, and will be NAKed.
ACK and NAK
All messages received by either the PIN Pad or the terminal will be checked for format (as discussed above) and a single ACK (0x06) or NAK (0x15) character will be sent in response. The sender of the message must wait for a period of time (the parameter value for ‘link level timeout’) for the ACK or NAK to arrive. If an ACK is received, the message will be considered successful. If a NAK is received, or if the timeout is reached without a response, the message will be considered to have failed, and will be resent, provided the previous attempt was not the third retry attempt.
WIC EBT Card Processing
The payment terminal application is capable of performing Texas and New Mexico WIC programs issued smart card transactions in a fully integrated retail environment. The PIN Pad communicates with the retail
point-of-sale cash register system (the “host” or ECR) in order to complete a WIC smart card transaction. In the integrated environment, the PIN Pad performs the following functions:
• Provides the cardholder’s user interface for performing the operations/actions. • Completes all card authentication activities independent of the host.
• Provides for communications with the host in a “slave” mode in which all message exchanges are
originated by the host.
• Exchanges messages (receiving requests and transmitting responses) with the host using an ISO 8583
type message structure.
• Translates the data stored on the card into a host-usable data format.
• Interprets host requests, validates the requests, and manipulates data on the smart card appropriately.
The ECR performs the following functions:
• Communicates with the terminal as the “master” in which it originates all message exchanges. • Provides means of identification of WIC smart cards that are on the State hot card list.
• Performs all of the functions required to identify appropriate WIC food items being purchased. • Formulates the appropriate transaction requests to send to the PIN Pad.
Required Security Keys
In order to process WIC EBT transactions, the payment terminal requires specific double length data encryption keys injected to indexes 2, 3, 5, and 6. If the terminal does not have the proper security keys injected, a WIC session cannot be started.
Transaction Summary
A WIC card transaction begins with a Start_WIC_Session ECR request. The request contains two prompt lines to propose that the user inserts a card, a timeout for card insert activity/terminal response, and can contain the name of the form to display, including optional parameters, etc. The terminal displays the form specified in the request or, if the form name is omitted, the terminal displays the default screen and waits for a card insertion.
When the WIC card is inserted or a timeout occurs, the terminal responds with a Start_WIC_Session response message. It contains action code, general card information, and food prescription access information.
The next step, after a Start_WIC_session response with action code=”300” (“Success”) is received, should be PIN verification. It is initiated by a Get_WIC_PIN request, that contains two prompt lines to propose PIN entry, timeout for terminal response, name of the form, etc. The terminal displays form specified in the request or the default screen, when the “Form name” is omitted, and waits for the PIN to be entered. After the PIN entry, the terminal responds with a Get_WIC_PIN response message, that contains only action code.
If the PIN verification completed successfully, the ECR may send a Get_Prescription request, which contains two prompt lines: date and transaction number. The terminal displays the SWIPEFRM screen and responds with a Get_Prescription response message. The response contains action code and prescription data available for the date contained in the request.
Usually the goal of a transaction is to update the prescription when any item is purchased. To update the prescription, the ECR may send an Update_Prescription request that contains two prompt lines, the form name, an optional parameter, and data for the prescription update. This data contains information about all of the prescription’s items. The terminal’s Update_Prescription response message contains action code and all of the data that can be used for transaction identification.
To complete the WIC session, the ECR may send an End_WIC_Session request to the terminal that contains two prompt lines usually suggesting to remove the WIC card. The terminal will immediately send the
End_WIC_Session response message.
IMPORTANT The WIC Smart Card locks up after three attempts if the terminal does not have the proper security keys injected.
NOTE For details on form names, see WIC Prompts Configuration File on page 1-53.
NOTE The Start_WIC_Session and End_WIC_Session commands are the only commands allowed when there is no active WIC session. If other WIC commands (for example, Get_Prescription, Update_Prescription, Utilization_Approval, etc.) are sent out of WIC session bounds, terminal behavior is undefined.
Start_WIC_Session
The WIC session, or transaction, begins with a Start_WIC_Session ECR request. No actions can be done with the WIC smart card before this request. The WIC session cannot be initiated by the terminal before it receives a Start_WIC_Session request. The WIC session is completed when the End_WIC_Session request is
processed. If the WIC card is removed from the reader, the WIC session is interrupted. Card data is not damaged if the WIC card session is interrupted.
The terminal’s Start_WIC_Session response message contains action code, general card information, and food prescription access information.
If the terminal’s Start_WIC_Session response message has action code 104, that means that the terminal does not have its required security keys with indexes 2, 3, 5, and 6 or that the keys are invalid. Three attempts to use the terminal without the required security keys cause permanent card lock.
All dates in WIC messages, except the Card Reference Date in the Start_WIC_Session response message, are four-digit numbers and represent offset days from January 1, 2000.
The WIC smart card can have up to four WIC food prescription lists (usually three lists) for different periods of time. A Start_WIC_Session response message contains start and end dates for each of these periods. Zero dates (0000) mean that date is not set or that the period does not exist.
PIN Verification
To allow access to prescription information, the WIC card requires the correct PIN to be entered. The WIC card verifies the PIN in off-line mode. This means that no PIN information, not even encrypted PIN information, will be transferred from the terminal to the ECR.
PIN verification starts with a Get_WIC_PIN request from the ECR to the terminal. The terminal then displays the form specified in the request or the default screen, when the “Form name” is omitted, and prompts the user to enter the PIN. The PINFRM screen should contain the global prompt control (@G1, @G2) to properly display WIC prompts to the user.
See Get_WIC_Pin on page 1-15 for more information on the Get_WIC_PIN message format. You can set the maximum number of PIN entry retries from 0 to 9.0. A 9.0 entry means an unlimited number of attempts are allowed.
If a wrong PIN was entered, the terminal decrements this counter and checks. If the counter is not zero, the terminal clears the PIN entry field on the screen and prompts the user to re-enter the PIN. Otherwise, a Get_WIC_PIN response is sent to the ECR with an Action Code of 106.
The WIC card also has an internal counter of PIN retries permitted. (The default number of PIN retries is 7.) If this internal counter is exceeded, the card will be permanently locked. This counter automatically resets to zero when a correct PIN is entered. The terminal checks the internal counter value when it processes the
Start_WIC_Session message. Action Code 135 is returned if the counter is exceeded.
If the user hits the Cancel button (Return Key=”Cancel”) or the Clear button (Return Key=”Clear”) when the PIN entry field is empty on the PIN entry screen, the Get_WIC_PIN response will contain action Code 389 (“PIN Entry Cancelled by user”).
Utilization Approval
WIC specifications state that the participant should be prompted to approve the utilization of benefits before they are decremented from the prescription area on the card. A Utilization_Approval (or ‘K’) message should be used to request the user to approve the transaction before the request to Update_Prescription.
If it is required to display changes introduced by the transaction, the ECR can send ‘M’ messages to update the pole display lines prior to a Utilization_Approval message.
Prescription Update Processing
When the PIN is successfully validated, the WIC smart card is ready to access prescription information.
Get_Prescription
A Get_Prescription request contains a date that determines which one of the card prescriptions has to be sent to the ECR. If no appropriate prescription is found, a response message with Action Code 306 (Prescription not found) will be received. The response to the Get_Prescription request returns an action code and a block of prescription data.
The prescription data length is 438 characters. A block of prescription data consists of a header, a list of items, and a tail.
The header (22 characters) includes:
• Prescription start date – 4 hex characters (offset days from January 1, 2000) • Prescription end date – 4 hex characters (offset days from January 1, 2000) • Card issuer site id – 6 digits
• Issued date – 4 hex characters (offset days from January 1, 2000) • Issued time – 4 digits (hhmm)
The list of items (400 characters) can contain information about up to 40 items. Information about each item takes 10 characters:
• Item code – 5 digits • Item count – 5 digits
The item count shows the number of available items. The item count fields are the only prescription fields that can be changed (only decreased). The unused area is filled by zeros.
The tail contains 16 characters.
NOTE The form specified in the “Form name” parameter of the Utilization_Approval message should contain pole display lines if you plan to use ‘M’ messages.
Update_Prescription
After the Get_Prescription response message is received, the ECR can send an Update_Prescription request to update the content of the prescription. If it is required to approve the utilization of the benefits, data received in the Get_Prescription response message can be used to form the Utilization_Approval request and, based on the response (approved or disapproved), issue the Update_Prescription request.
This Update_Prescription request must contain a block of prescription data that must have exactly the same information except that the item counters have to be replaced with the number of corresponding items that are given out and have to be subtracted from the counters. This means, if the counters are replaced by zeros, the prescription will remain the same. If an Update_Prescription request contains exactly the same block of prescription data as received in a Get_Prescription response message, all counters will become zero. The Update_Prescription response message from the terminal contains:
• Action Code (A successful action code is 000.) • SRS32 (A 8-character hex check sum.)
• Card transaction count (This count increases after processing each Update_Prescription request.) • Transaction signature (This 8-character hex code identifies the transaction.)
• Block of Prescription data (This block is exactly the same as sent by an Update_Prescription request.)
End_WIC_Session
To complete the WIC session, the ECR sends an End_WIC_Session request to the terminal that contains two prompt lines usually suggesting to remove the WIC card. The terminal immediately sends an
End_WIC_Session response message.
If the WIC card is removed without receiving an End_WIC_Session request, the terminal will complete the WIC session and send a Smart_Card_Removed request to the ECR.
WIC Update Prescription Operation Flow
This section describes the operations performed by the Symbol terminal when it receives the WIC Update_Prescription message.
The following preconditions apply:
• The Start_WIC_Session message is successfully processed. • The Get_WIC_PIN message is successfully processed.
• The Get_Prescription message is successfully processed. The current prescription has been loaded into
the memory by this message.
• Optional – The Utilization_Approval message response is received. The current prescription data can be
used to fill pole display lines (use ‘M’ messages allowed in FPE application mode) available on the form specified in the “Form name” parameter of the Utilization_Approval message.
• The Update_Prescription message is received from the ECR.
When processing the Update_Prescription message, the Symbol terminal performs the following operations:
1. Extracts the redeemed items quantities from the received Update_Prescription message.
a. Checks that the utilization amount does not exceed the prescription amount. If this check fails, it notifies the ECR with Action Code “116” and stops further processing.
b. Reduces the food prescription available units by the amount indicated in the Update_Prescription message and saves the updated prescription in memory.
c. Appends the updated category and amount to the CRC32 Input Utilization String.
3. Sorts the CRC32 Input Utilization String by WIC Item Codes and calculates CRC32.
4. Reads the transaction counter (CTC) from the card.
5. Increments the read transaction counter in memory.
6. Signs the transaction. CRC32 and transaction counter values are presented to the card, which returns an encrypted string uniquely representing the transaction.
7. Writes the temporary food prescription to the card.
8. Sends the Update_Prescription response to ECR. The response contains Action Code, CRC32, transaction counter, transaction signature, and Prescription Data.
9. Writes the updated CTC to the card.
10. Writes the current food prescription to the card.
11. Erases the temporary food prescription.
WIC ICC Status Change Reason Code Update
The PIN pad automatically updates the Status Change Reason Code on WIC ICC if one of the following events occurs:
• The maximum number of invalid PIN attempts allowed by the card has been exceeded. See Table 1-1
below for a description of code 0x12.
• The WIC card contains invalid food prescription data. See Table 1-1 below for a description of code 0x10.
Table 1-1 Status Change Reason Codes
Status Change Code (Hexadecimal) Card Failure Description Write Status Change Reason Code to Card? Meaning
0x00 Card OK N Default value. The card has not been
invalidated.
0x10 Food
Prescription Conflict
Y An error was encountered while
determining a unique current food prescription.
0x12 PIN
Presentation Failure
Y During this visit to the grocer, the participant enters one or more invalid PIN attempts such that the maximum number of PIN attempts (currently 7) allowed by the card has been exceeded.
Operation Flow
This section describes the operations performed by the Symbol payment terminal in order to update the Status Change Reason Code (SCRC) on a WIC card when the number of invalid PIN attempts have exceeded the maximum number of PIN attempts (currently seven) allowed by the card.
The following preconditions apply:
• The Start_WIC_Session message has been successfully processed. The Start_WIC_Session response
would include Action Code “300”.
• The GET_WIC_Pin message has been received.
• The user entered a wrong PIN and the WIC card has returned information that the maximum PIN entry
attempts number had been exceeded.
The terminal performs the following operations to update the Status Change Reason Code and date:
1. Read a current SCRC from the WIC card.
2. If the code read is not 0x00 (Card OK), skip Step 3 because an update is not required.
3. Write the new Status Change Reason Code value and date to the WIC ICC.
WIC Messages
Table 1-2 contains an overview of the supported interface messages sent from the ECR to the PIN Pad. Detailed specification is available in the WIC Message Details on page 1-10.
Table 1-2 Messages from ECR to PIN Pad
ID Message Type Description Possible Response
‘[‘ Start_WIC_Session Request Starts the SmartWIC session and prompts the customer to insert their card.
Start_WIC_Session Response
‘<‘ Get_WIC_Pin Request Asks the customer to enter their PIN and validates the PIN against security information stored on the card.
Get_WIC_Pin Response
‘{‘ Get_Prescription Request Gets the WIC prescription from the card to tell POS what items are allowed for WIC.
Table 1-3 contains an overview of the supported interface messages sent from the PIN Pad to the ECR. Detailed specification is available in the WIC Message Details on page 1-10.
‘}’ Update_Prescription Request
Writes the updated prescription information back to the card. This is the data received from the Get_Prescription command modified to decrement the items purchased with the card.
Note: This request must be sent after the
Get_Prescription request.
Update_Prescription Response
‘\’ End_WIC_Session Request Ends the WIC session and prompts the customer to remove the smart card.
End_WIC_Session Response
‘]’ Lock_WIC_ICC Request Locks the card. Used if the card appears on the ‘hot list’.
Note: Hot list tracking is on ECR responsibility.
Lock_WIC_ICC Response
‘~’ Remove _WIC_ICC
Request
Asks the user to remove WIC EBT card
Remove_WIC_ICC Response
‘k’ Utilization_Approval Request
Should be used to ask the user to approve utilization of benefits before they are decremented from the prescription area on the card.
Utilization_Approval Response
‘q’ Update_WIC_Status
Request
Sets the status code of the WIC card.
Update_WIC_Status Response
Table 1-3 Messages from PIN Pad to ECR
ID Message Type Description
‘[‘ Start_WIC_Session Response Sent by the PIN Pad as a response to a Start_WIC_Session request command. ‘<‘ Get_WIC_Pin Response Sent by the PIN Pad as a response to a
Get_WIC_Pin request command. ‘{‘ Get_Prescription Response Sent by the PIN Pad as a response to a
Get_Prescription request command.
Table 1-2 Messages from ECR to PIN Pad (Continued)
WIC Message Details
The following section describes WIC interface commands and codes for the entire WIC session process. Commands are broken into tables for Requests (request messages) from the ECR and Responses (response messages) from the Terminal. There are also examples of message codes and comments on specific usage conditions.
Start_WIC_Session
This request should be sent by the ECR to the PIN Pad in order to initialize the WIC session. The WIC session should be initialized prior to any operations with the WIC EBT card.
When the PIN Pad receives this message, it beeps and displays text specified in “Prompt text line one” and “Prompt text line two” on the form specified in the “Form Name” field. If the “Form Name” field is omitted from the request, the WICSTFRM form is used when it is available on the terminal. If the WICSTFRM form does not exist, the SWIPEFRM form will be used.
‘}’ Update_Prescription Response Sent by the PIN Pad as a response to an Update_Prescription request command. ‘\’ End_WIC_Session Response Sent by the PIN Pad as a response to an
End_WIC_Session request command. ‘]’ Lock_WIC_ICC Response Sent by the PIN Pad as a response to a
Lock_WIC_ICC request command. ‘~’ Remove_WIC_ICC Response Sent by the PIN Pad as a response to a
Remove_WIC_ICC request command. ‘?’ Smart_Card_Removed This message is sent when WIC session is
started and WIC program card is removed from the PIN Pad.
‘k’ Utilization_Approval Response Sent by the PIN Pad as a response to a Utilization_Approval request command. ‘q’ Update_WIC_Status Response Sent by the PIN Pad as a response to an
Update_WIC_Status request command.
Table 1-3 Messages from PIN Pad to ECR (Continued)
ID Message Type Description
NOTE In all WIC messages, the “Prompt text line one” field contents will be displayed in global prompt @G1 and “Prompt text line two” in @G2, respectively. If these global prompts are not available on the screens, information will be invisible. By default, all internally generated messages use @G1 and/or @G2. See
Request (ASYNC)
Table 1-4 Start WIC Session - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘[‘ Start_WIC_Session 1 0x5B
Data Prompt text line one varies ASCII
<FS> Field separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field separator 1 0x1C
Data Timeout card insert (in seconds) 2 ASCII Numeric
<FS> Field separator 1 0x1C
Data Current date 1-5 ASCII numeric, offset days
from January 1, 2000
<FS> Field separator 1 0x1C
Data Form name 1-11 ASCII character name of
form that will be displayed
<ETX> End of text 1 0x03
Response (ASYNC)
Table 1-5 Start WIC Session - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘[‘ Start_WIC_Session 1 0x5B
Data Action Code 3 ASCII Numeric
Data Card Reference Date 8 ASCII
YYYYMMDD
Note: In the case of bad action code, this field contains binary zeros.
Data PAN 20 ASCII Numeric
Data Issuer ID 4 ASCII Numeric
Data Authorization Date 4 ASCII Numeric
Data Status change date 4 ASCII Numeric
Data Status change reason 2 ASCII Numeric
Data Hotlist lock date 4 ASCII Numeric
Data Hotlist lock byte 2 ASCII Numeric
Data Major data version 4 ASCII Numeric
Data Minor data version 4 ASCII Numeric
Data Start date for WICFP 1 4 ASCII Numeric
Data End date for WICFP 1 4 ASCII Numeric
Data Start date for WICFP 2 4 ASCII Numeric
Data End date for WICFP 2 4 ASCII Numeric
Data Start date for WICFP 3 4 ASCII Numeric
Data End date for WICFP 3 4 ASCII Numeric
Data Start date for WICFP 4 4 ASCII Numeric
Data End date for WICFP 4 4 ASCII Numeric
<FS> Field separator 1 0x1C
Data ATR 0-64 ASCII Hex
<FS> Field separator 1 0x1C
Data Issuer Reference Number
and check byte
Action Codes
Data Maximum PIN
presentation number
2 ASCII Numeric
Data Incorrect PIN
presentation number
2 ASCII Numeric
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-6 Start WIC Session - Action Codes
Action
Code Status Code Description
104 – Secret Code Presentation Failure
(Card locked)
122 – Cyptographic Authentication Failure
(Bad keys or security violation)
130 – CSN Read Failure
131 – DFSystem Read Failure
132 – DFWIC Read Failure
133 – Invalid Data Version
135 0x12 PIN Already Blocked
136 – Card Presented is Already in Hot list
138 – Failed Data Recovery
300 – Session Started Successfully
(Data read OK)
381 – Card has not been inserted (timeout)
382 Invalid or Damaged Card
If an ICC card is inserted but does not send ATR, it is considered damaged.
383 – Invalid ATR
400 – Smart Card device is not available
Table 1-5 Start WIC Session - Response (ASYNC) (Continued)
Comments
• A WIC session should be initialized with the Start_WIC_Session ECR request prior to any operations
with the WIC EBT card.
When the Start_WIC_Session request is received from the ECR and the smart card is inserted into the terminal card reader, the card is validated (it is determined whether the card is a valid WIC card) and cryptographically authenticated (it is determined whether the terminal has the required security keys). When these checks are complete, the terminal sends a Start_WIC_Session response to the ECR.
• A WIC session is interrupted when:
-
The WIC card is removed from the reader. (The ECR is notified about session interruption with the Smart_Card_Removed message.) Session interruption does not cause any damage of the card data.-
Any command, other than the WIC interface commands, are sent to the PIN Pad. Any previously started WIC session is automatically closed without ECR notification.• The terminal’s Start_WIC_Session response message contains action code, general card information,
and food prescription periods.
• If the Start_WIC_Session response message contains “104” in the action code field, this means that the
terminal does not have security keys with indexes 2, 3, 5, and 6 installed onto the PIN Pad. Three attempts to use the terminal without the required security keys cause permanent card lock.
• A WIC smart card can have up to 4 WIC food prescription records (usually 3) for different periods of time.
Start_WIC_Session response messages contain start and end dates for each of these periods. All dates in WIC messages, except the Card Reference Date in a Start_WIC_Session response message, are four-digit numbers and represent offset days from January 1, 2000.
Usage Scenario
Send (ECR to PIN Pad)
<STX><Start_WIC_Session><Prompt text line one><FS><Prompt text line two> <FS><Timeout on card insert><FS><Current Date>[<FS><Form Name>]<ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX><Start_WIC_Session><ActionCode>< PAN >...<ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
NOTE There is no way to initialize a WIC session on the PIN Pad before it receives the Start_WIC_Session ECR request.
NOTE Zero dates (0000) mean that the date is not set or the period does not exist.
Error Response
<STX><Start_WIC_Session><ActionCode>...<ETX><LRC> Time out error
Example
Request (ECR to PIN Pad)
ECR sends a request:<STX>[Please Insert<FS>Your WIC Card<FS>60<FS>1940<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:<STX>[30000000000050771710008001870291313144000000000000000010001143014601461149114921520 00000000<FS>3B2A008065A20102013172D6<FS>010200160701<ETX><LRC>
Error Response (PIN Pad to ECR)
ECR receives a time out error response:
<STX>[38100000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000<FS><FS>0000000000<ETX><LRC> Time out error
Get_WIC_Pin
This command is used to validate the WIC smart card user PIN. Operations on prescription data, such as Get_Prescription and Update_Prescription, are allowed only after a successful cardholder’s authentication.
Request (ASYNC)
Table 1-7 Get WIC Pin - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘<‘ Get_WIC_PIN 1 0x3C
Data Prompt text line one varies ASCII
<FS> Field separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field separator 1 0x1C
Data PIN entry timeout (in seconds)
2 ASCII Numeric
Data Max PIN entry retries 1 ASCII Numeric
Response (ASYNC)
Action Codes
Data Form name 1-11 ASCII character
name of the form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-8 Get WIC Pin - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘<‘ Get_WIC_PIN 1 0x3C
Data Action Code 3 ASCII Numeric
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-9 Get WIC Pin - Action Codes
Action Code
Status
Code Description
106 0x12 Maximum number of PIN attempts
permitted by the WIC card is exceeded
– Maximum number of PIN attempts
specified in the “Max PIN entry retries” field is exceeded
300 – PIN has been accepted
385 – Card removed
This Action Code will be sent as a Smart_Card_Removed message.
386 – PIN entry timeout
389 – PIN entry cancelled by user
Fired when user hits the Cancel button (Return Key=”Cancel”) or Clear button (Return Key=”Clear”) when PIN entry field is empty.
Table 1-7 Get WIC Pin - Request (ASYNC) (Continued)
Comments
• If the “PIN entry timeout” field is set to 00, then waiting for a PIN entry is unlimited.
• Setting the “Max PIN entry retries” field to 0 means that no limitations on the PIN entry are posed from
the terminal application. However, the WIC card has an internal counter of PIN entries (by default the WIC card permits seven retries) that will remain in effect.
• The form specified in the “Form Name” field will be used for PIN entry. If the “Form Name” field is omitted
from the request, then the PINFRM form is used.
Usage Scenario
Send (ECR to PIN Pad)
<STX><Get_WIC_PIN><Prompt text line one><FS><Prompt text line two><FS><PIN Entry Timeout><Max PIN entry retries>[<FS><Form Name>]<ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< Get_WIC_PIN ><Action Code><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Example
Request (ECR to PIN Pad)
<STX><Please Enter<FS>Your WIC PIN<FS>603<FS>PINFRM<ETX><LRC>
Response (PIN Pad to ECR)
<STX><300<ETX><LRC>
Error Response (PIN Pad to ECR)
Get_Prescription
This command reads the WIC prescription information stored on the WIC EBT card, tells the POS terminal what items are allowed for WIC, and sends a Response to the ECR that contains action code regarding the prescription data available for the date specified in the request.
Request (ASYNC)
Response (ASYNC)
NOTE The Get_Prescription command is allowed only if the cardholder’s authentication (PIN Verification) process is successful.
Start_WIC_Session and End_WIC_Session commands are the only commands allowed when there is no active WIC session. If other WIC commands (e.g. Get_Prescription, Update_Prescription, Utilization_Approval, etc.) are sent out of WIC session bounds, then terminal behavior is undefined.
Table 1-10 Get Prescription - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘{‘ Get_Prescription 1 0x7B
Data Prompt text line one varies ASCII
<FS> Field Separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field Separator 1 0x1C
Data Date 4 ASCII Numeric
Data Transaction Number 4 ASCII Numeric
<FS> Field separator 1 0x1C
Data Form name 1-11 ASCII character name of
the form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-11 Get Prescription - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘{‘ Get_Prescription 1 0x7B
Action Codes
Comments
• When the PIN pad receives a Get_Prescription message from the ECR, it displays the text specified in
“Prompt text line one” and “Prompt text line two” on the form specified in the “Form Name” field. It then attempts to read the prescription for the date given in the “Date” field from the WIC card and sends back a response with the “WIC Food Prescription” to the ECR.
• If the “Form Name” field is omitted from the request, a WICRXFRM form is used when it is available on
the terminal. If a WICRXFRM form does not exist, a WAITFRM form will be used.
Usage Scenario
Send (ECR to PIN Pad)
<STX>< Get_Prescription ><Prompt text line one><FS><Prompt text line two><FS> <Date><Transaction Number><Form Name><ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< Get_Prescription ><Action Code>< WIC Food Prescription ><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Data WIC Food Prescription 438 ASCII
<ETX> End of Text 1 0x03
<LRC> Check character 1 Calculated
Table 1-12 Get Prescription - Action Codes
Action
Code Status Code Description
104 – Secret Code Presentation Failure
(Card locked)
134 0x10 Food Prescription Conflict
300 – Success
306 – Prescription not found
385 – Card removed
This Action Code will be sent as a Smart_Card_Removed message.
Table 1-11 Get Prescription - Response (ASYNC) (Continued)
Examples
Request (ECR to PIN Pad)
ECR sends a request:<STX>{Please wait<FS>for cashier<FS>14610001<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:<STX>{300<438 bytes of data><ETX><LRC>
Error Response (PIN Pad to ECR)
ECR receives Prescription not found error response:
<STX>{306<438 bytes of data (all zeros)><ETX><LRC> Prescription not found
Update_Prescription
This command writes the updated prescription information back to the card. It uses prescription data received from the Get_Prescription command modified to decrement the items purchased with the card.
Request (ASYNC)
Table 1-13 Update Prescription - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘}‘ Update_Prescription 1 0x7D
Data Prompt text line one varies ASCII
<FS> Field Separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field Separator 1 0x1C
Data WIC Food Prescription 438 ASCII
<FS> Field separator 1 0x1C
Data Response flag 1 ASCII number
‘N’ or ‘Y’
See Comments on page 1-22.
Response (ASYNC)
Action Codes
Data Form name 1-11 ASCII character name of
form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-14 Update Prescription - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘}‘ Update_Prescription 1 0x7D
Data Action Code 3 ASCII Numeric
Data CRC32 8 HEX
Data Card Transaction Count 8 HEX
Data Transaction Signature 8 HEX
Data Prescription Data 438 ASCII
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-15 Update Prescription - Action Codes
Action
Code Description
000 Prescription updated successfully 104 Secret Code Presentation Failure
(Card locked)
116 Update was not successful (Quota exceeded)
382 Other errors
385 Card removed
This Action Code will be sent as a Smart_Card_Removed message.
Table 1-13 Update Prescription - Request (ASYNC) (Continued)
Comments
• The “WIC Food Prescription” parameter sent in the request must have the same format as the “WIC
Food Prescription” data received in the Get_Prescription response. Please see Section 5.4 of the ICD WIC EBT Grocer System for more details. The food prescription items (e.g. ITEM_1, etc.) must include the following values in the ‘available units’ field:
-
The value that will be subtracted from the current item value to decrease the remainder.-
Zeros if the current item is not changed.• An Update_Prescription response will be sent in the following manner:
-
If the “Response flag” field is set to ‘N’ or is omitted, the response is sent immediately after the temporary food prescription area has been updated and before the permanent food prescription area has been updated.-
If the “Response flag” field is set to ‘Y’, the first response is sent after the temporary food prescription area has been updated and the second response is set after the permanent food prescription area has been updated.• If the “Form name” field is omitted from the request, a WICRXFRM form is used when it is available on
the terminal. If a WICRXFRM form does not exist, a WAITFRM form will be used.
Usage Scenario
Send (ECR to PIN Pad)
<STX>< Update_Prescription ><Prompts><><WIC Food Prescription><ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< Update_Prescription ><Action Code><Transaction Signature><CRC32> <Card Transaction Count><WIC Food Prescription><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Examples
Request (ECR to PIN Pad)
ECR sends a request:<STX>}Please wait<FS><FS><438 bytes of data><ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:End_WIC_Session
This command ends the WIC session and prompts the customer to remove the smart card. For details on the WIC session, see Comments on page 1-14.
Request (ASYNC)
Response (ASYNC)
Action Code
Table 1-16 End WIC Session- Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘\‘ End_WIC_Session 1 0x5C
Data Prompt text line one varies ASCII
<FS> Field separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field separator 1 0x1C
Data Form name 1-11 ASCII character
name of the form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-17 End WIC Session- Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘\‘ End_WIC_Session 1 0x5C
Data Action Code 3 ASCII Numeric
<ETX> End of Text 1 0x03
<LRC> Check character 1 Calculated
Table 1-18 End WIC Session- Action Code
Action
Code Description
Comments
• Upon receipt of the “End_WIC_Session” message and when the WIC card is in the reader, the terminal
beeps shortly and displays text specified in “Prompt text line one” and “Prompt text line two” on the form specified in the “Form Name” field and then immediately sends an End_WIC_Session response.
• If the “Form name” field is omitted from the request, the WICENDFRM form is used when it is available
on the terminal. If the WICENDFRM form does not exist, the a WAITFRM form will be used.
Usage Scenario
Send (ECR to PIN Pad)
<STX>< End_WIC_Session ><Prompt text line one><FS><Prompt text line two> [<FS><Form Name>]<ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< End_WIC_Session ><Action Code><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Examples
Request (ECR to PIN Pad)
ECR sends a request:<STX>\Transaction completed<FS>Thank You<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:<STX>\300<ETX><LRC>
Lock_WIC_ICC
This message is used to lock the ICC card by the host application or ECR, which is distinct from card locking that is automatically performed by the card.
NOTE The format “[<Field name>]” means that the specified field is optional and can be omitted from the request.
NOTE The WIC smart card locks up after three attempts if the terminal does not have the proper security keys injected. For details on security keys, see Required Security Keys on page 1-3.
Request (ASYNC)
Response (ASYNC)
Action Code
Table 1-19 Lock WIC ICC- Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘]‘ Lock_WIC_ICC 1 0x5D
Data Prompt text line one varies ASCII
<FS> Field Separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field Separator 1 0x1C
Data Date 4 ASCII Numeric
<FS> Field separator 1 0x1C
Data Form name 1-11 ASCII character
name of the form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-20 Lock WIC ICC - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘]‘ Lock_WIC_ICC 1 0x5D
Data Action Code 3 ASCII Numeric
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-21 Lock WIC ICC - Action Code
Action
Code Description
Comments
• When the terminal receives the Lock_WIC_ICC message from the ECR, it displays the text specified in
“Prompt text line one” and “Prompt text line two” on the form specified in the “Form Name” field and performs a permanent lock of the WIC card. Once the card is permanently locked, the card cannot be unlocked.
• If the “Form Name” field is omitted from the request, a WICLOCKFRM form is used when it is available
on the terminal. If a WICLOCKFRM form does not exist, the a WAITFRM form will be used.
Usage Scenario
Send (ECR to PIN Pad)
<STX>< Lock_WIC_ICC ><Prompt text line one><FS><Prompt text line two> <FS><Date>[<FS><Form Name>]<ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< Lock_WIC_ICC ><Action Code><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Examples
Request (ECR to PIN Pad)
ECR sends a request:<STX>]Your WIC card<FS>will be locked<FS>1857<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:Remove_WIC_ICC
This command is used to request the user to remove the WIC smart card.
Request (ASYNC)
Response (ASYNC)
NOTE The Remove_WIC_ICC command should be sent within the WIC session, otherwise behavior is undefined.
Table 1-22 Remove WIC ICC - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘~‘ Remove_WIC_ICC 1 0x7E
Data Prompt text line one varies ASCII
<FS> Field Separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field Separator 1 0x1C
Data ICC removal timeout 1-4 Timeout value in seconds
‘0’ - respond immediately ‘9999’ - infinite waiting
<FS> Field separator 1 0x1C
Data Beeper flag 1 ’N’- disable beeper
’Y’- enable beeper
<FS> Field separator 1 0x1C
Data Form name 1-11 ASCII character name of the
form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-23 Response WIC ICC - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘~‘ Remove_WIC_ICC 1 0x7E
Data Action Code 3 ASCII Numeric
<ETX> End of text 1 0x03
Action Codes
Comments
• When the “Remove_WIC_ICC” message is received, the terminal displays the text specified in “Prompt
text line one” and “Prompt text line two” on the form specified in the “Form Name” field, beeps, and waits until the WIC card is removed.
• If the “Form name” field is omitted from the request, then the WICREMFRM form is used when it is
available on the terminal. If a WICREMFRM form does not exist, a WAITFRM form is used.
Usage Scenario
Send (ECR to PIN Pad)
<STX>< Remove_WIC_ICC ><Prompt text line one><FS><Prompt text line two> <FS><ICC removal timeout><FS>< Beeper flag >[<FS><Form Name>]<ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< Remove_WIC_ICC ><Action Code><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Example
~ Please Remove\Your Card\9999\Y
Request (ECR to PIN Pad)
Asks user to remove the WIC smart card. The command below specifies that the terminal should beep until the card is removed and that waiting for card removal is infinite (not limited):
<STX>~ Please Remove <FS> Your Card <FS>9999<FS>Y<ETX><LRC>
Table 1-24 Response WIC ICC - Action Codes
Action
Code Description
300 Success. WIC card is removed.
387 Timeout exceeded, but the WIC card is still in the reader.
390 WIC session is not started.
NOTE When calling the Remove_WIC_ICC command from either OPOS Demo or JavaPOS Demo, use the following string as the Direct IO parameter (where ‘\’ - <FS> = ‘0x1C’):
Response (PIN Pad to ECR)
ECR receives a response:<STX> ~300<ETX><LRC>
Request (ECR to PIN Pad)
<STX>~ Please Remove <FS> Your Card <FS>0000<FS>Y<FS>WAITFRM<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:<STX>~300<ETX><LRC>
Smart_Card_Removed
This message is sent to the ECR (Open EPS) if a WIC session was active, but the WIC card was removed from the terminal reader. This is an unsolicited request from the terminal to the ECR.
Request (ASYNC)
Action Code
Example
Request (PIN Pad to ECR)
ECR receives message:<STX>?385<ETX><LRC>
Table 1-25 Smart Card Removed - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘?‘ Smart_Card_Removed 1 0x3F
Data Action Code 3 “385”
<ETX> End of Text 1 0x03
<LRC> Check character 1 Calculated
Table 1-26 Smart Card Removed - Action Code
Action
Code Description
Utilization_Approval
This message should be used to ask the user to approve the utilization of benefits. The Utilization_Approval response contains the code of the button pressed by the user or a “388” code if the time allowed for user input was exceeded.
Request (ASYNC)
Response (ASYNC)
Table 1-27 Utilization Approval - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘k‘ Utilization_Approval 1 0x6B
Data Prompt text line one varies ASCII
<FS> Field Separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field Separator 1 0x1C
Data Approval timeout (in seconds)
2 ASCII Numeric
<FS> Field separator 1 0x1C
Data Form name 1-11 ASCII character
name of the form that will be displayed
<ETX> End of text 1 0x03
<LRC> Check character 1 Calculated
Table 1-28 Utilization Approval - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘k‘ Utilization_Approval 1 0x6B
Data Action Code 3 ASCII Numeric
Data Pressed button code 3 ASCII Numeric
<ETX> End of text 1 0x03
Action Codes
Comments
• When a “Utilization_Approval” message is received, the terminal displays the screen specified in the
“Form name” field and lets the user approve or disapprove prescription utilization by pressing a button (e.g. Button Return Key “Done” or “Cancel”).
• If the “Form Name” field is omitted from the request, a WICINPFRM form is used when it is available on
the terminal. If a WICINPFRM form does not exist, a WAITFRM form will be used.
Usage Scenario
Send (ECR to PIN Pad)
<STX>< Utilization_Approval ><Prompt text line one><FS><Prompt text line two> <FS>< Approval timeout >[<FS><Form Name>]<ETX><LRC>
Receive (PIN Pad to ECR)
<ACK> (or <NAK>)
Receive (PIN Pad to ECR)
<STX>< Utilization_Approval ><Action Code><Pressed button code><ETX><LRC>
Send (ECR to PIN Pad)
<ACK (or <NAK>)
Example
k Please Approve\Benefit Utilization\10\WICINPFRM
Request (ECR to PIN Pad)
<STX>k Please Approve <FS> Benefit Utilization <FS>10<ETX><LRC>
Table 1-29 Utilization Approval - Action Codes
Action
Code Description
300 Success. Button pressed.
388 Timeout waiting for approval has been exceeded.
NOTE You can access and modify the Return Key, a button control property, from your FormBuilder project.
NOTE When calling the Utilization_Approval command from either OPOS Demo or JavaPOS Demo, use the following string as the Direct IO parameter (where ‘\’ - <FS> = ‘0x1C’):
Response (PIN Pad to ECR)
ECR receives the following response when the button with the “Done” Return Key is pressed on the screen:
<STX>k300Q<ETX><LRC>
Request (ECR to PIN Pad)
<STX>k Please Approve <FS> Benefit Utilization <FS>10<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives the following response when the button with the “Cancel” Return Key is pressed on the screen:
<STX>k300Q<ETX><LRC>
Request (ECR to PIN Pad)
Waiting for approval timeout expired:
<STX>k Please Approve <FS> Benefit Utilization <FS>10<FS>WICINPFRM<ETX><LRC>
Response (PIN Pad to ECR)
ECR receives a response:<STX>k388<ETX><LRC>
Update_WIC_Status
This command set the Status Change Reason Code (status code) of the WIC card.
Request (ASYNC)
Table 1-30 Update WIC Status - Request (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘q‘ WIC_Status_Code 1 0x71
Data Prompt text line one varies ASCII
<FS> Field separator 1 0x1C
Data Prompt text line two varies ASCII
<FS> Field separator 1 0x1C
Data Status Change Date 4 ASCII Numeric
Data Status Change Reason 2 ASCII Hex
<ETX> End of text 1 0x03
Response (ASYNC)
Action Code
Comments
• It is possible to change the status code of the card from 0x00 (Card Ok) to any other code. • Change of the card status code from a code other than 0x00 is not supported.
For example, if the ECR issues an Update_WIC_Status request with Status Change Reason Code 0x10 for the card with status code 0x12 “PIN Presentation Failure” (different than 0x00 “Card Ok”), the PIN Pad does not change the status code of the card and sends back an “Update_WIC_Status” response with action code “137”.
Table 1-31 Update WIC Status - Response (ASYNC)
Field Description Length Value
<STX> Start of text 1 0x02
‘q‘ WIC_Status_Code 1 0x71
Data Action Code 3 ASCII Numeric
<ETX> End of Text