WIC Smart Card Processing Integration Guide
WIC Smart Card Processing Integration Guide 72E-86292-01 Revision A November 2006
ii WIC Smart Card Processing Integration Guide 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 http://www.symbol.com
About This Guide iii Revision History Changes to the original manual are listed below: Change Date Description -01 Rev A 11/2006 Initial Release. (Hypercom Rev. B)
iv WIC Smart Card Processing Integration Guide
Table of Contents 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
vi WIC Smart Card Processing Integration Guide 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
Table of Contents vii 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
viii WIC Smart Card Processing Integration Guide
About This Guide 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 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. 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 following conventions 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.
x WIC Smart Card Processing Integration Guide 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: 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. Related Documents For the latest version of this guide go to:http://www.symbol.com/manuals.
About This Guide xi 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. 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. 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. Country/Region Address Telephone United States Canada United Kingdom Asia/Pacific Australia Symbol Technologies, Inc. One Symbol Plaza Holtsville, New York 11742-1300 Symbol Technologies Canada, Inc. 5180 Orbitor Drive Mississauga, Ontario, Canada L4W 5L9 Symbol Technologies Symbol Place Winnersh Triangle, Berkshire RG41 5TP United Kingdom Symbol Technologies Asia, Inc. (Singapore Branch) 230 Victoria Street #12-06/10 Bugis Junction Office Tower Singapore 188024 Symbol Technologies Pty. Ltd. 432 St. Kilda Road Melbourne, Victoria 3004 1-800-653-5350 1-866-416-8545 (Inside Canada) 905-629-7226 (Outside Canada) 0800 328 2424 (Inside UK) +44 118 945 7529 (Outside UK) Tel: +65-6796-9600 Fax: +65-6337-6488 1-800-672-906 (Inside Australia) +61-3-9866-6044 (Outside Australia)
xii WIC Smart Card Processing Integration Guide Country/Region Address Telephone Österreich/Austria Danmark/Denmark Europe/Mid-East Distributor Operations Suomi/Finland France Deutschland/ Germany Italia/Italy Latin America Sales Support México/Mexico Nederland/ Netherlands Symbol Technologies Austria GmbH Prinz-Eugen Strasse 70 / 2.Haus 1040 Vienna, Austria 01-5055794-0 (Inside Austria) Symbol Technologies AS Dr. Neergaardsvej 3 2970 Hørsholm Oy Symbol Technologies Kaupintie 8 A 6 FIN-00440 Helsinki, Finland Symbol Technologies France Centre d'affaire d'antony 3 Rue de la Renaissance 92184 Antony Cedex, France Symbol Technologies GmbH Waldstrasse 66 D-63128 Dietzenbach, Germany Symbol Technologies Italia S.R.L. Via Cristoforo Columbo, 49 20090 Trezzano S/N Navigilo Milano, Italy 2730 University Dr. Coral Springs, FL 33065 USA Symbol Technologies Mexico Ltd. Torre Picasso Boulevard Manuel Avila Camacho No 88 Lomas de Chapultepec CP 11000 Mexico City, DF, Mexico Symbol Technologies Kerkplein 2, 7051 CX Postbus 24 7050 AA Varsseveld, Netherlands +43-1-5055794-0 (Outside Austria) 7020-1718 (Inside Denmark) +45-7020-1718 (Outside Denmark) Contact your local distributor or call +44 118 945 7360 9 5407 580 (Inside Finland) +358 9 5407 580 (Outside Finland) 01-40-96-52-21 (Inside France) +33-1-40-96-52-50 (Outside France) 6074-49020 (Inside Germany) +49-6074-49020 (Outside Germany) 2-484441 (Inside Italy) +39-02-484441 (Outside Italy) 1-800-347-0178 (Inside United States) +1-954-255-2610 (Outside United States) 954-340-9454 (Fax) 5-520-1835 (Inside Mexico) +52-5-520-1835 (Outside Mexico) 315-271700 (Inside Netherlands) +31-315-271700 (Outside Netherlands)
About This Guide xiii Country/Region Address Telephone Norge/Norway South Africa España/Spain Sverige/Sweden 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 Symbol Technologies Africa Inc. Block B2 Rutherford Estate 1 Scott Street Waverly 2090 Johannesburg Republic of South Africa Symbol Technologies S.L. Avenida de Bruselas, 22 Edificio Sauce Alcobendas, Madrid 28108 Spain Letter address: Symbol Technologies AB Box 1354 S-171 26 SOLNA Sweden +47 2232 4375 11-809 5311 (Inside South Africa) +27-11-809 5311 (Outside South Africa) 91 324 40 00 (Inside Spain) +34 91 324 40 00 (Outside Spain) Fax: +34.91.324.4010 Switchboard: 08 445 29 00 (domestic) Call Center: +46 8 445 29 29 (international) Support E-Mail: Sweden.Support@se.symbol.com Visit/shipping address: Symbol Technologies AB Solna Strandväg 78 S-171 54 SOLNA Sweden
xiv WIC Smart Card Processing Integration Guide
Chapter 1 WIC EBT Card Processing 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.
1-2 WIC Smart Card Processing Integration Guide 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.
WIC EBT Card Processing 1-3 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. IMPORTANT The WIC Smart Card locks up after three attempts if the terminal does not have the proper security keys injected. 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. NOTE For details on form names, see WIC Prompts Configuration File on page 1-53. 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. 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.
1-4 WIC Smart Card Processing Integration Guide 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 ).
WIC EBT Card Processing 1-5 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. 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. 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.
1-6 WIC Smart Card Processing Integration Guide 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. 2. For each item in the current prescription, the terminal:
WIC EBT Card Processing 1-7 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.
1-8 WIC Smart Card Processing Integration Guide 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. < Get_WIC_Pin Request Asks the customer to enter their PIN and validates the PIN against security information stored on the card. { Get_Prescription Request Gets the WIC prescription from the card to tell POS what items are allowed for WIC. Start_WIC_Session Response Get_WIC_Pin Response Get_Prescription Response
WIC EBT Card Processing 1-9 Table 1-2 Messages from ECR to PIN Pad (Continued) ID Message Type Description Possible Response } 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. ] Lock_WIC_ICC Request Locks the card. Used if the card appears on the hot list. Note: Hot list tracking is on ECR responsibility. End_WIC_Session Response 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 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. 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.
1-10 WIC Smart Card Processing Integration Guide Table 1-3 Messages from PIN Pad to ECR (Continued) ID Message Type Description } 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. 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. 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 WIC Prompts Configuration File on page 1-53 for details on the prompt configuration file. 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.
WIC EBT Card Processing 1-11 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 <LRC> Check character 1 Calculated
1-12 WIC Smart Card Processing Integration Guide 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 8 ASCII Hex
WIC EBT Card Processing 1-13 Table 1-5 Start WIC Session - Response (ASYNC) (Continued) Field Description Length Value Data Data Maximum PIN presentation number Incorrect PIN presentation number 2 ASCII Numeric 2 ASCII Numeric <ETX> End of text 1 0x03 <LRC> Check character 1 Calculated Action Codes 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
1-14 WIC Smart Card Processing Integration Guide Comments A WIC session should be initialized with the Start_WIC_Session ECR request prior to any operations with the WIC EBT card. NOTE There is no way to initialize a WIC session on the PIN Pad before it receives the Start_WIC_Session ECR request. 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. NOTE Zero dates (0000) mean that the date is not set or the period does not exist. Usage Scenario NOTE Format [<Field name>] means that the specified field is optional and can be omitted from the request. 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>)
WIC EBT Card Processing 1-15 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 <FS> Field separator 1 0x1C
1-16 WIC Smart Card Processing Integration Guide Table 1-7 Get WIC Pin - Request (ASYNC) (Continued) Field Description Length Value 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 Response (ASYNC) 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 Action Codes 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.
WIC EBT Card Processing 1-17 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) <STX><386<ETX><LRC> PIN Entry Timeout error
1-18 WIC Smart Card Processing Integration Guide 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. 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. Request (ASYNC) 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 Response (ASYNC) Table 1-11 Get Prescription - Response (ASYNC) Field Description Length Value <STX> Start of text 1 0x02 { Get_Prescription 1 0x7B Data Action Code 3 ASCII Numeric
WIC EBT Card Processing 1-19 Table 1-11 Get Prescription - Response (ASYNC) (Continued) Field Description Length Value Data WIC Food Prescription 438 ASCII <ETX> End of Text 1 0x03 <LRC> Check character 1 Calculated Action Codes 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. 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>)
1-20 WIC Smart Card Processing Integration Guide 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.
WIC EBT Card Processing 1-21 Table 1-13 Update Prescription - Request (ASYNC) (Continued) Field Description Length Value 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 Response (ASYNC) 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 Action Codes 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.
1-22 WIC Smart Card Processing Integration Guide 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: <STX>}0003DF20D2F000000138136EFEC<438 bytes of data><etx><lrc>
WIC EBT Card Processing 1-23 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) 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 Response (ASYNC) 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 Action Code Table 1-18 End WIC Session- Action Code Action Code Description 300 Success
1-24 WIC Smart Card Processing Integration Guide 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 NOTE The format [<Field name>] means that the specified field is optional and can be omitted from the request. 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 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.
WIC EBT Card Processing 1-25 Request (ASYNC) 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 Response (ASYNC) 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 Action Code Table 1-21 Lock WIC ICC - Action Code Action Code Description 300 Success
1-26 WIC Smart Card Processing Integration Guide 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: <STX>]300<ETX><LRC>
WIC EBT Card Processing 1-27 Remove_WIC_ICC This command is used to request the user to remove the WIC smart card. NOTE The Remove_WIC_ICC command should be sent within the WIC session, otherwise behavior is undefined. Request (ASYNC) 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 <FS> Field separator 1 0x1C 0 - respond immediately 9999 - infinite waiting 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 Response (ASYNC) 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 <LRC> Check character 1 Calculated
1-28 WIC Smart Card Processing Integration Guide Action Codes 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. 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 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 ): ~ 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>
WIC EBT Card Processing 1-29 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) 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 Action Code Table 1-26 Smart Card Removed - Action Code Action Code Description 385 Card removed Example Request (PIN Pad to ECR) ECR receives message: <STX>?385<ETX><LRC>
1-30 WIC Smart Card Processing Integration Guide 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) 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 Response (ASYNC) 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 <LRC> Check character 1 Calculated
WIC EBT Card Processing 1-31 Action Codes Table 1-29 Utilization Approval - Action Codes Action Code Description 300 Success. Button pressed. 388 Timeout waiting for approval has been exceeded. 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 ). NOTE You can access and modify the Return Key, a button control property, from your FormBuilder project. 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 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 ): k Please Approve\Benefit Utilization\10\WICINPFRM Request (ECR to PIN Pad) <STX>k Please Approve <FS> Benefit Utilization <FS>10<ETX><LRC>
1-32 WIC Smart Card Processing Integration Guide 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 <LRC> Check character 1 Calculated
WIC EBT Card Processing 1-33 Response (ASYNC) 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 1 0x03 <LRC> Check character 1 Calculated Action Code Table 1-32 Update WIC Status - Action Code Action Code Description 137 Status Code Update Failed 300 Success 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.
1-34 WIC Smart Card Processing Integration Guide Allowed FPE Interface Messages FPE Interface commands are allowed during a WIC session when the PIN Pad is in FPE Application Mode. NOTE To find out which application mode is currently selected on your PIN Pad, go to Setup mode and navigate to Setup > Application Mode. Ensure the FPE application mode is selected. This section includes detailed descriptions of the following interface messages: Beeper Control Form Request V Update Display M Clear All Display Lines N Beeper Control This message causes the terminal to beep once for the specified duration (in 1/10th of a second). Request (ASYNC) Table 1-33 Beeper Control - Request (ASYNC) Field Description Length Value <STX> Start of text 1 0x02 b Beeper_Control 1 0x62 Data Duration in 1/10th of a second 2 ASCII Numeric 01-99 <ETX> End of text 1 0x03 <LRC> Check character 1 Calculated Example Request: <STX>b10<ETX><LRC> Response None
WIC EBT Card Processing 1-35 Form Request V This command is used to display and process a form. Request Table 1-34 Form Request V - Request Field Description Length Value Message Type Message ID 1 V Parameters Field tokens varies ASCII Field Tokens Used in Form Request V Messages Field tokens are in the format <FS><Field Token><Data> Table 1-35 Form Request V - Field Tokens Token Description C1... C30 Pole display prompt 1...Pole display prompt 30 For more information on C1... C30 tokens, see Token C1... C30 on page 1-35. DL FN Display line of text For more information on DL tokens, see Token DL on page 1-36. Form name For more information on FN tokens, see Token FN on page 1-37. P1... P7 Global prompt 1...Global prompt 7 For more information on P1... P7 tokens, see Token P1... P7 on page 1-37. B0... B9 Global button text 0...Global button text 9 For more information on B0... B9 tokens, see Token B0... B9 on page 1-37. Token C1... C30 Table 1-36 Form Request V - Token C1... C30 C1... C30 - Pole display prompt 1...Pole display prompt 30 Field Description Length Value Token Field ID 2-3 C1... C30
1-36 WIC Smart Card Processing Integration Guide Table 1-36 Form Request V - Token C1... C30 (Continued) C1... C30 - Pole display prompt 1...Pole display prompt 30 Field Description Length Value Parameter Scroll flag 1 Y or N Parameter Text to display 1-42 (font dependent) ASCII characters Example: <FS>C1NThis text goes on pole display line one. Token DL Table 1-37 Form Request V - Token DL DL - Display Line Field Description Length Value Token Field ID 2 DL Parameter Row 2 00-15 Parameter Column 2 00-42 (font dependent) Parameter Display type 1 ASCII Clear EOL C, Display Text D, Display Text Blinking B, Display Text Marquee M Parameter Delay 3 ASCII Numeric milliseconds for marquee or blinking 010-990 in 10 millisecond increments Parameter Foreground color 2 ASCII Hex 00 - FF Parameter Background color 2 ASCII Hex 00 - FF Parameter Font 1 ASCII Numeric 2, 3, 4 Text Text to display Example: <FS>DL0112M10000FA2This text will marquee Note: Only two Display Line tokens are allowed per Form Request message.
WIC EBT Card Processing 1-37 Token FN Table 1-38 Form Request V - Token FN FN - Form Name Field Description Length Value Token Field ID 2 FN Parameter Form name to process 1-11 ASCII form name Example: <FS>FNWAITFRM Token P1... P7 Table 1-39 Form Request V - Token P1... P7 P1... P7 - Global prompt 1...Global prompt 7 Field Description Length Value Token Field ID 2 P1... P7 Text Text to display 1-42 (font dependent) ASCII characters Token B0... B9 Table 1-40 Form Request V - Token B0... B9 B0... B9 - Global button text 0...Global button text 9 Field Description Length Value Token Field ID 2 B0... B9 Text Text to display 0-42 (font dependent) ASCII characters Example: <FS>B1Approve<FS>B2Cancel Response Table 1-41 Form Request V - Response Field Description Length Value Message Type Message ID 1 V Data Field tokens varies ASCII
1-38 WIC Smart Card Processing Integration Guide Field Tokens Sent by FPE in Response to Form Request V Messages Field tokens are in the format <FS><Field Token><Data> Table 1-42 Field Tokens Sent by FPE in Response to Form Request V Messages BF Token Description Button selection Table 1-43 Field Tokens Sent by FPE in Response to Form Request V Messages BF - Button selected (e.g. <FS>BFB) Field Description Length Value Token Field ID 2 BF Parameter Button return key 1 ASCII Example Request: <STX>V<FS>FNAPPROVAL <FS>C1Nitem1 10 <FS>C2Nitem2 15 <FS>C3Nitem3 20 <ETX><LRC> This request displays the APPROVAL form with three items on it. Request: <STX>V<FS>FNWAITFRM<ETX><LRC> This message displays the WAITFRM form. Response: <STX>V<FS>BFA<ETX><LRC> The response will be sent to the ECR when a button with code FuncKey1 is pressed.
WIC EBT Card Processing 1-39 Update Display M This command updates or puts new prompts on a current form. Request Table 1-44 Update Display M - Request Field Description Length Value Message Type Message ID 1 M Parameters Field tokens varies ASCII Response None. Field Tokens Field tokens are in the format <FS><Field Token><Data> Table 1-45 Update Display M - Field Tokens Token Description C1...C30 Customer prompt 1...Customer prompt 30 Note: PD8700 terminals use C1- C30. DL TF Display line of text Text format (alignment) Example Request: <STX>M<FS>C1NTHIS text goes on pole display line one<fs>dl0112m10000fa2this text will marquee<etx><lrc> FPE does not respond other than in the protocol ACK. Response: None
1-40 WIC Smart Card Processing Integration Guide Clear All Display Lines N This command clears all displayed text lines set with the Cn and DL tokens. Request Table 1-46 Clear all Display Lines N - Request Field Description Length Value Message Type Message ID 1 N Response None. Example Request: <STX>N<ETX><LRC> FPE does not respond other than in the protocol ACK. Response: None.
WIC EBT Card Processing 1-41 Scenarios Typically, the goal of a transaction if to update the participant s food prescription when any item is purchased. Redeem Food Benefits Process Overview Food items that are authorized to the cardholder are stored on the card in the form of a food prescription. The card is capable of storing four different food prescriptions, each valid for a different period of time. The Symbol payment terminal application is able to identify the food prescription that is valid for the current date. The current date is provided by the store s host. The terminal must also be able to determine which of the four food prescriptions, if any, will be valid for the period following the current food prescription. The only condition that causes the terminal software to modify food prescription information on the card is when the host/ecr requests food prescription utilization. The terminal provides automatic recovery of food prescription information if the transaction is interrupted while in process. To accommodate data recovery in the event when a transaction is interrupted during processing, there is a fifth, temporary food prescription record present in the food prescription record file on the card. Essentially, the updated food prescription is written to the temporary record, verified, and then written to the original food prescription record. Using this method of writing the food prescription to the card results in the following possible scenarios: The transaction is not interrupted and is completed normally. The transaction is interrupted before the temporary record is written, the transaction is cancelled and the host notified. No other action is necessary. The transaction is interrupted after the temporary record is written, but before the original record is updated, the host is notified that the transaction is complete, but the card now exists in a state where the temporary record contains the valid food prescription and the original record contains the old food prescription. The next terminal that processes the card will have to recover from this condition by updating the original, now outdated, food prescription prior to performing a transaction. Scenario 1 Table 1-47 on page 1-42 illustrates a normal Update Prescription transaction flow for Symbol payment application version earlier than 2.0.64. The forms listed in WIC Form Names and Global Prompt Texts on page 1-48 are available on the PIN Pad, except SWIPEFRM, PINFRM, and WAITFRM. Version 2.0.64 added the following features that are not used in this scenario: Optional fields ( Form name, etc.) and Action Codes to WIC messages Utilization_Approval message Form name(s) and prompt text(s) configuration (The wicproms.cfg file is not available on the PIN Pad.)
1-42 WIC Smart Card Processing Integration Guide Table 1-47 Update Prescription Transaction Flow for Application Prior to Version 2.0.64 PIN Pad ECR Action Display State Message Flow Display Description Wait for the WIC smart card to be inserted SWIPEFRM form (e.g. Insert Card ) 1 < Start_WIC_Session ECR sends the Start_WIC_Session message to open WIC session and is waiting for response. PIN Pad shows SWIPEFRM form with prompts specified in the request. WIC card is inserted WAITFRM form 1 Start_WIC_Session Response Message > PIN Pad waits for WIC EBT card to be inserted. Upon card insertion, within specified timeout on card insert, it is validated and cryptographically authenticated. The transaction counter on the card is incremented. PIN Pad forms the response and sends it back to ECR. PINFRM form (e.g. Enter PIN Then press OK ) 2 < Get_WIC_PIN PIN Pad prompts customer to enter PIN ECR sends the Get_WIC_PIN message to start Card Authentication Process. Terminal must wait for customer to enter PIN. WIC card off-line authorization should be performed prior to any operations on prescription data. PIN Pad shows PINFRM form with prompts specified in the Get_WIC_PIN request.
WIC EBT Card Processing 1-43 Table 1-47 Update Prescription Transaction Flow for Application Prior to Version 2.0.64 (Continued) PIN Pad ECR Action Display State Message Flow Display Description Enter PIN digits, then OK WAITFRM form 2 Get_WIC_PIN Response Message > On PIN entry, within the specified timeout on PIN entry, PIN Pad is validating the participant s PIN against the PIN on the card. PIN Pad forms the response and sends it back to ECR. WAITFRM form 3 < Get_Prescription ECR sends the Get_Prescription request to read the available food benefits from the card. PIN Pad shows WAITFRM form with prompts specified in the request. WAITFRM form 3 Get_Prescription Response Message > Reading the available food benefits from the card. PIN Pad forms the response and sends it back to ECR. WAITFRM form 4 < Update_Prescription ECR sends the Update_Prescription request to update food benefits data. This request must be sent after Get_Prescription Request. PIN pad shows WAITFRM form with prompts specified in the request. WAITFRM form 4 Update_Prescription Response Message > Decrementing redeemed food benefits from the card. PIN Pad forms the response and sends it back to ECR. WAITFRM form 5 < End_WIC_Session ECR sends the END_WIC_Session message to close WIC session. PIN Pad shows WAITFRM form with prompts specified in the request. WAITFRM form 5 End_WIC_Session Response Message > PIN Pad forms the response and sends it back to ECR. NOTE If any commands other than WIC interface commands and FPE interface commands listed in the section, Allowed FPE Interface Messages on page 1-34 are sent to the PIN Pad (in FPE Application Mode), then the previously started WIC session is automatically closed without ERC notification. Scenario 2 Table 1-48 on page 1-44 illustrates a normal Update Prescription transaction flow for application version 2.0.64.
1-44 WIC Smart Card Processing Integration Guide For the purposes of this scenario, we assume: The wicproms.cfg file is not available on the PIN Pad. All forms listed in WIC Form Names and Global Prompt Texts on page 1-48 are available on the PIN Pad. The Form Name field is omitted from all WIC commands sent to the PIN Pad. The PIN Pad is in FPE Application Mode. NOTE To find out which Application Mode is currently selected on your PIN Pad, go to Setup mode and navigate to Setup > Application Mode. Ensure that the FPE application mode is selected. Table 1-48 Update Prescription Transaction Flow for Application Version 2.0.64 PIN Pad ECR Action Display State Message Flow Display Description Wait for the WIC smart card to be inserted WICSTFRM form (e.g. Insert Card ) 1 < Start_WIC_Session ECR sends the Start_WIC_Session message to open WIC session and is waiting for response. PIN Pad shows WICSTFRM form with prompts specified in the request. WIC card is inserted WICWTFRM form 1 Start_WIC_Session Response Message > PIN Pad waits for WIC EBT card to be inserted. Upon card insertion, within specified timeout on card insert, it is validated and cryptographically authenticated. The transaction counter on the card is incremented. PIN Pad forms the response and sends it back to ECR. PIN Pad displays WICWTFRM form with Please Wait... text in @G1-first Global prompt if it is available on the form. WICPINFRM form (e.g. Enter PIN Then press OK ) 2 < Get_WIC_PIN PIN Pad prompts customer to enter PIN ECR sends the Get_WIC_PIN message to start Card Authentication Process. Terminal must wait for customer to enter PIN. WIC card off-line authorization should be performed prior to any operations on prescription data. PIN Pad shows WICPINFRM form with prompts specified in the Get_WIC_PIN request.
WIC EBT Card Processing 1-45 Table 1-48 Update Prescription Transaction Flow for Application Version 2.0.64 (Continued) PIN Pad ECR Action Display State Message Flow Display Description Enter PIN digits, then OK 2 Get_WIC_PIN Response Message > On PIN entry, within the specified timeout on PIN entry, PIN Pad is validating the participant s PIN against the PIN on the card. PIN Pad forms the response and sends it back to ECR. PIN Pad shows WICWTFRM form with Please Wait... text in @G1-first Global prompt if it is available on the form. WICRXFRM form 3 < Get_Prescription ECR sends the Get_Prescription request to read the available food benefits from the card. PIN Pad shows WICRXFRM form with prompts specified in the request. WICRXFRM form 3 Get_Prescription Response Message > Reading the available food benefits from the card. PIN Pad forms the response and sends it back to ECR. PIN Pad shows WICRXFRM form with prompts specified in the request. WICRXFRM form WICINPFRM form 4 < Update Display M ECR sends the Update Display M command with data (prescription items to be approved) for Utilization_Approval request. See Update Display M on page 1-39 for details on the message format and Sample Screen on page 1-55 for a sample M request. M request does not change form on the PIN Pad, so it remains WICRXFRM. WICRXFRM does not have pole display lines, so strings specified in the request will not be visible. No response other than protocol ACK will be sent back to ECR. 4 < Utilization_Approval ECR sends Utilization_Approval ( k ) message asking user to approve utilization of benefits before Update_Prescription request.
1-46 WIC Smart Card Processing Integration Guide Table 1-48 Update Prescription Transaction Flow for Application Version 2.0.64 (Continued) PIN Pad ECR Action Display State Message Flow Display Description Press OK WICINPFRM form 4 Utilization_Approval Response Message > PIN Pad waits for button press action or timeout, prepares Utilization_Approval response, and sends it back to ECR. This request does not change form on the PIN Pad, so it remains WICINPFRM. WICRXFRM form 5 < Update_Prescription ECR sends the Update_Prescription request to update food benefits data. This request must be sent after Get_Prescription Request. PIN Pad shows WICRXFRM form with prompts specified in the request. WICRXFRM form 5 Update_Prescription Response Message > Decrementing redeemed food benefits from the card. PIN Pad forms the response and sends it back to ECR. Wait for the WIC smart card to be removed WICREMFR M form 6 < Remove_WIC_ICC ECR sends Remove_WIC_ICC request asking user to remove WIC card (e.g. with beeping until user removes the card. ICC removal timeout field set to 9999 ). PIN Pad shows WICREMFRM form with prompts specified in the request. WICREMFR M form 6 Remove_WIC_ICC Response Message > PIN Pad waits for WIC EBT card to be removed. PIN Pad forms the response and sends it back to ECR. This request does not change form on the PIN Pad, so it remains WICREMFRM. WICENDFRM form 6 < End_WIC_Session ECR sends the End_WIC_Session message to close WIC session. PIN Pad shows WICENDFRM form with prompts specified in the request. WICWTFRM form 6 End_WIC_Session Response Message > PIN Pad forms the response and sends it back to ECR. NOTE If any commands other than WIC interface commands and FPE interface commands listed in the section, Allowed FPE Interface Messages on page 1-34 are sent to the PIN Pad (in FPE Application Mode), then the previously started WIC session is automatically closed without ERC notification.
WIC EBT Card Processing 1-47 Action Codes Table 1-49 Action Codes Action Code Status Code Description 000 Prescription updated OK 104 Secret code presentation failure (Card locked) 106 0x12 Maximum number of PIN attempts permitted by the card is exceeded 116 Update was not successful 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 134 Food prescription conflict 135 0x12 PIN already blocked 136 Card presented is already in hot list 137 Status code update failed 138 Failed data recovery 300 Session started successfully (Data read OK) 306 Prescription not found 381 Card has not been inserted (timeout) 382 Invalid card 383 Invalid ATR 385 Card removed 386 PIN entry timeout 387 Remove WIC ICC timeout 388 Approval timeout
1-48 WIC Smart Card Processing Integration Guide Table 1-49 Action Codes (Continued) Action Code Status Code Description 389 PIN entry cancelled by user 390 WIC session is not started 400 Smart card device is not available WIC Form Names and Global Prompt Texts It is recommended to explicitly specify prompt text(s) and the Form Name field in WIC interface messages for all WIC messages except for Update_WIC_Status, which does not have a Form Name field. We suggest using built-in names of WIC forms (WICCANFRM - Transaction Cancelled, WICRETFRM - Return to Clinic, WICWTFRM - Please Wait form) and built-in prompt text(s) for the cases when it is not possible to control them in the request. Usage of the wicproms.cfg file should be limited to cases when the desired behavior cannot be achieved without the file (e.g. prompt text(s) on Transaction Cancelled, Return to Clinic, Please Wait, and Reenter PIN forms). In the case of Reenter PIN forms, if the Get_WIC_Pin request specifies the Max PIN entry retries field to more than one attempt, upon Invalid PIN entry, the PIN Pad application uses the form name (by default it is WICPINFRM) and prompt text(s) specified in GetPIN parameter of the wicproms.cfg file to ask the user to reenter the PIN. It is not possible to explicitly specify the form and prompt text(s) shown upon an invalid PIN entry in WIC interface messages. Default names of forms depend on the attribute values specified in the wicproms.cfg configuration file if it is available on the PIN Pad. For details see the WIC Prompts Configuration File on page 1-53. If the wicproms.cfg configuration file is not available, values hard coded into the PIN Pad application code are used. For additional information on the selection procedure, see Figure 1-1 on page 1-51. Default Form Names and Prompt Texts Default form names and prompt texts are listed below. WICSTFRM The form used by default in the Start_WIC_Session request when the Form Name field is omitted from the request. If this form is not available on the target PIN Pad, the SWIPEFRM form will be used. WICPINFRM The form used by default when the Form Name field is omitted from the Get_WIC_Pin request and also when the PIN should be reentered (e.g. the Max PIN entry retries field in the Get_WIC_PIN request is set to value > 1 and an invalid PIN is entered). If this form is not available on the target PIN Pad, the PINFRM form will be used.
WIC EBT Card Processing 1-49 WICRXFRM The form used when the Form Name field is omitted from the Get_Prescription and Update_Prescription requests. If this form is not available on the PIN Pad, the WAITFRM form will be used. WICENDFRM The form used when the Form Name field is omitted from the End_WIC_Session request. If this form is not available, the WAITFRM form will be used. WICREMFRM The form used when the Form Name field is omitted from the Remove_WIC_ICC request. If this form is not available, the WAITFRM form will be used. WICINPFRM The form used when the Form Name field is omitted from the Utilization_Approval request. If this form is not available, the WAITFRM form will be used. WICCANFRM The WIC Transaction Cancelled form. This form will be displayed, if available on the PIN Pad, in the following cases: A card is removed in the middle of the transaction Get_WIC_Pin request timed out NOTE If this form is not available, the WAITFRM form will be used. WICRETFRM The Return to Clinic form. If available on the PIN Pad, this form will be used in the following cases: The WIC card has an invalid ATR (Answer to Reset signal) An error other than quota exceeded is encountered during an update prescription During a Get_Prescription operation when a food prescription conflict was encountered or the food prescription for the current date is not found When any error was encountered while a Start_WIC_Session was processing If this form is not available, the WAITFRM form will be used. WICLOCFRM The PIN Locked form. This form is displayed when: ECR sends a Get_WIC_Pin request and the terminal detects that the PIN on the card is already locked. ECR sends a Lock_WIC_ICC request without having a Form Name field specified. If this form is not available, the WAITFRM form will be used.
1-50 WIC Smart Card Processing Integration Guide WICWTFRM The Please Wait form. If it is available on the terminal, this form will be displayed in the following cases: While processing a Start_WIC_Session request as soon as the WIC card is inserted When the Cancel or Clear button is pressed on the PIN entry form and the PIN entry field is empty. When the Enter button is pressed on the PIN entry form. If the WIC card is removed on the End_WIC_Session command. If this form is not available, then the WAITFRM form will be used. PINFRM The PIN entry form displayed when the Form Name field is omitted from the Get_WIC_Pin request and WICPINFRM is not found on the target PIN Pad. SWIPEFRM The SWIPE card form displayed when the Form Name field is omitted from the Start_WIC_Session request and WICSTFRM is not found on the PIN Pad. WAITFRM The form used when the Form Name field is omitted from the request and other default forms (e.g. WICRXFRM, WICENDFRM, WICLOCKFRM, WICREMFRM, WICINPFRM, WICCANFRM, WICRETFRM, WICWTFRM) are not available on the PIN Pad.
WIC EBT Card Processing 1-51 Form and Prompt Text Selection Algorithms The terminal application determines the actual WIC form name and global prompt text to be displayed based on the following algorithms: Selection of the default form names and global prompt text used by WIC implementation on the terminal. See Figure 1-1 below for more information. If the request specifies the Form Name and the Prompt text line(s) fields, this form and text will be displayed on the PIN Pad screen. Terminal application startup Prepare a table of default forms and global prompt texts used by WIC using default values hardcoded into application code No Does wicproms.cfg exist? Use the table of default WIC form names and global prompt texts in WIC message processing when Form Name and/or Prompt text line one and/or Prompt text line two field(s) are omitted Yes Prepare a table of default forms and global prompt texts used by WIC-based on wicproms.cfg file Does form picked from the table of default WIC form names exist? Yes Display WIC form and prompts No Display prompts on SWIPEFRM in case of Start_WIC_Session request, on PINFRM for Get_WIC_PIN request, and on WAITFRM for all other requests Figure 1-1 Default WIC Form Names and Global Prompt Text Selection
1-52 WIC Smart Card Processing Integration Guide Default Change Procedure Default form names and messages generated by the terminal application during WIC EBT card processing can be configured within the wicproms.cfg configuration file. See WIC Prompts Configuration File on page 1-53 for details. To change the default prompts: 1. Get the wicproms.cfg file available in Resources. NOTE The name of the configuration file must remain wicproms.cfg. 2. Modify the default prompt(s) text(s) associated with the form(s). For example, modify the TransCancelled element P1 attribute value to a more suitable value. <TransCancelled FN= WICCANFRM P1= Card Removed P2= P3= P4= P5= P6= P7= P8= P9= /> 3. Create a packinglist for wicproms.cfg file loading. For example, sample packinglist contents (): 0047 wicproms.cfg / 1593 Where: - 0047 is the version of the packinglist (the first row of the file) which is a 4-digit ASCII numeric string - wicproms.cof / 1593 string specify the name and size of the file to be loaded and is in the format: <file name> / <file size> 4. Download the packinglist onto the PIN Pad (e.g. using the FPE-Sim application).
WIC EBT Card Processing 1-53 WIC Prompts Configuration File Default form names and messages generated by the terminal application during WIC EBT card processing can be configured within the wicproms.cfg configuration (XML) file. Sample wicproms.cfg file contents <WICPrompts Table> <StartSession FN= WICSTFRM P1= Please Insert P2= Your WIC Card P3= P4= P5 P6 P7= P8= P9= /> <EndSession FN= WICENDFRM P1= WIC Session Completed P2= P3= P4= P5= P6= P7= P8= P9= /> <GetPIN FN= WICPINFRM P1= Invalid PIN P2= Please Enter Your PIN P3= P4= P5= P6= P7= P8= P9= /> <GetRx FN= WICRXFRM P1= Reading WIC Prescription P2= Please Wait... P3= P4= P5= P6= P7= P8= P9= /> <UpdateRx FN= WICRXFRM P1= Updating WIC Prescription P2= Please Wait... P3= P4= P5= P6= P7= P8= P9= /> <PleaseWait FN= WICWTFRM P1= Please Wait... P2= P3= P4= P5= P6= P7= P8= P9= /> <ReturnToClinic FN= WICRETFRM P1= Card Problem. P2= Return to the WIC Clinic P3= P4= P5= P6= P7= P8= P9= /> <TransCancelled FN=WICCANFRM P1= Transaction Cancelled P2= P3= P4= P5= P6= P7= P8= P9= /> <PINLocked FN= WICLOCFRM P1= PIN Locked P2= Return to the WIC Clinic P3= P4= P5= P6= P7= P8= P9= /> <UtilizationApproval FN= WICINPFRM P1= Approve utilization of benefits P2= P3= P4= P5= P6= P7= P8= P9= /> <WICRemoveICC FN= WICREMFRM P1= Please remove the card P2= P3= P4= P5= P6= P7= P8= P9= /> </WICPromptsTable> Where, Elements Table 1-50 Elements Name Configuration Parameters Default Form StartSession Start_WIC_Session message WICSTFRM EndSession End_WIC_Session message WICENDFRM GetPIN Get_WIC_Pin message WICPINFRM GetRx Get_Prescription message WICRXFRM UpdateRx Update_Prescription message WICRXFRM PleaseWait WICWTFRM ReturnToClinic WICRETFRM TransCancelled WICCANFRM
1-54 WIC Smart Card Processing Integration Guide Table 1-50 Elements (Continued) Name Configuration Parameters Default Form PINLocked WICLOCFRM UtilizationApproval Utilization_Approval message WICINPFRM WICRemoveICC Remove_WIC_ICC message WICREMFRM InvalidPIN Allowed element but not currently used by terminal application Attributes FN - name of the form shown by default if it is available on the PIN Pad. If the form specified as this attribute value cannot be found on the terminal, the default form will be displayed. See the Comments section for each command for more information. P# (P1, P2,..., P9) - text shown by default in corresponding global prompt (@G1, @G2,..., @G9). Example <StartSession FN= WICSTFRM P1= Please Insert P2= Your WIC Card P3= P4= P5= P6= P7= P8= P9= /> NOTE In the above example, Element StartSession has 10 attributes (FN, P1, P2,...,P9), where the FN attribute has the value of WICSTFRM, etc. Only values of the attributes can be changed. Element name changes are not permitted. Additionally, the wicproms.cfg file may not be renamed.
WIC EBT Card Processing 1-55 Sample Screen Figure 1-2 below displays a sample WICINPFRM screen in the design mode of the FormBuilder tool. This screen has the following controls: @G1 and @G2 are Global prompt lines. Data specified in the request Prompt text line one field will go to @G1 and Prompt text line two field will go to @G2. @PD1 to @PD10 are Pole Display lines. These controls will be used to display information specified in the M request. For example: M\C1NDisplay Line #1\C2NDisplay Line #2\C3NDisplay Line #3\C4NDisplay Line #4\C5NDisplay Line #5\C6NDisplay Line #6\C7NDisplay Line #7\C8NDisplay Line #8\C9NDisplay Line #9\C10NDisplay Line #10 Ok button with Return Key Done Cancel button with Return Key Cancel Figure 1-2 Sample WICINPFRM screen
1-56 WIC Smart Card Processing Integration Guide
Glossary GlossaryGlossary A Application. The program code described by this guide, designed to execute within the Symbol payment device. ACH. Automated Clearinghouse Network. Authorization. The process of determining what types of activities or access are permitted for a given physical or logical resource. Once the identity of the user has been authenticated, they may be authorized to have access to a specific location, system, or service. C Card Hot List. A list of cards that have been reported as lost, stolen, or damaged. E Electronic Benefits Transfer (EBT). The use of an electronic mechanism to transfer value from a program to a benefit recipient. ECR. Electronic Cash Register (the host ). EFT. Electronic Funds Transfer. F Food Prescription. The specific set of foods prescribed by a nutritionist for an individual WIC participant for a specified period of time.
Glossary - 58 WIC Smart Card Processing Integration Guide I Integrated Circuit Chip/Smart Card (ICC). A plastic card embedded with a computer chip used to store relevant cardholder information, such as PAN, PIN, and WIC benefits information. P Personal Identification Number (PIN). A private series of numbers that a user knows that are used to increase confidence in a user s professed identity. Primary Account Number (PAN). A unique identifying number used to reference a financial account. PIN Pad. Symbol payment terminal. In the context of this document, PIN Pad and Terminal are synonymous. S SCRC. Status Change Reason Code. T TANF. Temporary Assistance to Needy Families. U USDA. U.S. Department of Agriculture. W WIC. - Program for Women, Infants, and Children.
Symbol Technologies, Inc. One Symbol Plaza Holtsville, New York 11742-1300 http://www.symbol.com 72E-86292-01 Revision A - November 2006