Skip navigation
All Places > In the News > Blog > Authors mikemackrory

In the News

1 Post authored by: mikemackrory

The Special Supplemental Food Program for Women, Infants, and Children, or WIC, was established in 1972 to provide supplemental nutritional and medical assistance for mothers and young children in low-income families. With the program currently servicing about half of all infants born in the United States, being able to process WIC payments for grocery items is a necessity for retailers.

 

eWIC cash register processing eWIC payments Source: pixabay.com

 

In this article, we’re going to look at some of the considerations involved in processing WIC payments. We’ll also investigate how you can implement the processing of eWIC payments as part of your POS system. While WIC is a federal program, each state is responsible for administering the program for their state. I’ll address the implementation and guidelines in a general fashion, but you should check with your state’s WIC program for more specific information.

 

What is eWIC and How are Payments Processed?

In the past, WIC purchases were completed using a voucher system. The voucher would specify the type and quantity of goods the bearer could purchase. The retailer was responsible for verifying that the purchase matched the voucher, and for recording the total cost on the voucher.

 

Recently, the modernization of systems has seen many states begin using electronic cards to distribute and process WIC payments. Electronic Benefit Transfer or EBT cards are automatically loaded each month, and participants can use the cards to purchase allowable items. This system is called eWIC. Participants need the card and a valid PIN to participate in the program and complete purchases.

 

Participation in WIC and POS Requirements

Retailers who want to participate in the WIC system need to be authorized, which is a process that must be completed with the state. If you are using an integrated payment system, this system needs to be certified by the USDA Food and Nutrition Service. Worldpay Mobile Market+ Select, and Mobile Market+ Register systems already have certification to process eWIC payments. 

 

An Integrated POS allows consumers to checkout with WIC and non-WIC items in the same transaction. The POS should validate WIC-approved products and compare this with the balance on the customers EBT card. When the final transaction is completed using either the EBT card, another form of payment, or a combination of both, it is the responsibility of the system to flag the EBT-eligible items in every transaction.

 

Additional requirements include:

  • No state or local taxes are to be charged on eligible items.
  • The system should accept both swiped and manually entered EBT cards.
  • The remaining balance should always be printed on the customer's paper receipt.

 

We’ll explore the types of receipts which can be generated by the POS concerning a consumer’s EBT card next.

 

Required EBT or eWIC Receipts

During the completion of an eWIC transaction, four different receipts should be available for the consumer to see.

 

  • Balance inquiry which includes the amounts, sizes, and types of foods that the household has available to purchase. The balance inquiry is not technically part of the POS transaction and should be available to consumers whether they are making a purchase or first arriving at the retailer.
  • eWIC Beginning Balance is generated at the beginning of the transaction after the consumer swipes their card and enters their PIN.
  • Proposed eWIC Redemption can be produced mid-transaction and lists the items which are approved for purchase with the eWIC card.
  • eWIC Ending Balance is generated after the transaction is completed and all forms of payment have been tendered. The receipt shows the remaining balance on the eWIC card.

 

ewic requirements

 

Determining Approved Products

Although WIC is a federal program, it’s the state agencies which administer the WIC program that are responsible for determining the types and brands of foods which are authorized for use with the program. Contact the appropriate state agency for access to the current list of approved products.

 

Implementation For EBT Balance Inquiries and Sales Transactions

The Element Express API can accept both SOAP and XML requests. We’ll be focussing on the XML request, as this is the preferred method. The requests for EBT balance inquiries and sales look almost identical, with a few key differences.

 

  • The parent object
    • Balance inquiries use EBTBalanceInquiry
    • Sales use EBTSale
  • The amount
    • Balance inquiries are completed with a $0.00 transaction amount

 

Let’s look at an example XML request and discuss a few of the critical elements.

 

<EBTBalanceInquiry xmlns="https://transaction.elementexpress.com">
    <Credentials>
        <AccountID>######</AccountID>
        <AccountToken>######</AccountToken>
        <AcceptorID>######</AcceptorID>
    </Credentials>
    <Application>
        <ApplicationID>######</ApplicationID>
        <ApplicationVersion>1.0</ApplicationVersion>
        <ApplicationName>Express.Java</ApplicationName>
    </Application>
    <Terminal>
        <TerminalID>01</TerminalID>
        <CardholderPresentCode>2</CardholderPresentCode>
        <CardInputCode>5</CardInputCode>
        <TerminalCapabilityCode>3</TerminalCapabilityCode>
        <TerminalEnvironmentCode>2</TerminalEnvironmentCode>
        <CardPresentCode>2</CardPresentCode>
        <MotoECICode>1</MotoECICode>
        <CVVPresenceCode>1</CVVPresenceCode>
    </Terminal>
    <Card>
        <CardNumber>5076800001111113</CardNumber>
        <ExpirationMonth>12</ExpirationMonth>
        <ExpirationYear>99</ExpirationYear>
        <PINBlock>1234</PINBlock>
        <KeySerialNumber>AAA</KeySerialNumber>
    </Card>
    <Transaction>
        <TransactionAmount>0</TransactionAmount>
        <MarketCode>7</MarketCode>
    </Transaction>
    <EBT>
        <EBTTypeIndex>1</EBTTypeIndex>
    </EBT>
</EBTBalanceInquiry>

Figure 1. XML Request for an EBT Balance Inquiry

 

The two elements which required modification from a typical credit card transaction were the CARD  and the EBT section. As I mentioned above, the transaction amount in the Transaction section should be set to 0 for balance inquiries.

 

EBT cards do not expire, but the API requires a value for these fields . I defaulted mine to arbitrary values, and the system didn’t appear to perform an expiration check.

 

Within the CARD section, the two fields which need to be added are the PINBlock and the KeySerialNumber. The only requirement for a consumer to use an EBT card is possession of the card and a valid PIN. It is illegal to ask for identification from the bearer, or proof that they are the person to whom the card has been assigned. The consumer’s PIN is entered into the PINBlock. The KeySerialNumber is a DUKPT key  which is used for encryption within the EBT system. This key is generated for each transaction and is required by the EBT system.

 

The EBT only has one required field. EBTTypeIndex references an ENUM of EBT types within the Element Express API .

 

Learning More

For more information on the Element Express API, and how you can use it to manage your eWIC or EBT transactions, you can visit the Vantiv Developer Portal. You can also reach out to a Worldpay representative here.

 

About the Author:

Mike Mackrory is a Global citizen who has settled down in the Pacific Northwest - for now.  By day he works as a Lead Engineer on a DevOps team and by night he writes, consults on several web-based projects and runs a marginally successful eBay sticker business.  When he's not tapping on the keys, he can be found hiking, fishing and exploring both the urban and the rural landscape with his kids.  Always happy to help out another developer, he has a definite preference for helping those who bring gifts of gourmet donuts, craft beer and/or Single-malt Scotch.