Skip to main content

SCA Functional Specification

EBT Transaction

Last updated: 23-Sep-2025

This command is used to check the balance on an EBT card.

Rules

  1. EBT parameter should be enabled for EBT transaction, to avoid receiving unsupported command response.
  2. The transaction in this section is one that is specific to EBT cards. Other transactions, such as Capture, and Credit are covered in the Payment Transactions section.

EBT Transactions Supported by Host

Host Sale Credit/Return Void Balance
Chase Paymentech x x x x
First Data Rapid Connect RVE006
(Cash Benefits only)
x   x x
First Data Rapid Connect RVE003 x   x x
TSYS x x   x
Vantiv x x   x

Configuration Parameter

Following are the configuration parameters which affect the operation. Refer to Application Parameters table for more details on the below parameters.

  • EBT
  • ALLOWNONISOEBT
  • CASHBACK
  • DEBITREFUNDPIN

BALANCE INQUIRY (Message Interface)

The following tables provide corresponding device UI interactions, detailed protocol information, including field descriptions and examples.

Device UI Required
  

Note

Neo device (M450) is being used to capture screenshots for the Device UI Requirements section.

Display User Action Terminal Action
../../_images/proto_device_ui_ebt_balnc1.png Use the card for EBT card for balance query. The device displays card entry screen.
../../_images/proto_device_ui_ebt_balnc2.png Select the EBT type provided (Food or Cash). The device displays the EBT type screen.
../../_images/proto_device_ui_ebt_balnc3.png Enter the PIN and Enter. PIn Entry screen is displayed.
../../_images/proto_device_ui_ebt_balnc4.png No action The device displays authorizing screen.
Request Packet
Field Rule Type Minimum Maximum Value(s) Description
FUNCTION_TYPE Required Static value N/A N/A PAYMENT Type of function.
COMMAND Required Static value N/A N/A BALANCE Command name
PAYMENT_TYPE Required List N/A N/A EBT Payment type field for EBT. NOTE: PAYMENT_TYPE field is mandatory for card token based transactions.
EBT_TYPE Required List N/A N/A
  • FOOD_STAMP
  • CASH_BENEFITS
This indicates the type of EBT transaction. This is a required for EBT transactions.
CARD_PRESENT Optional Binary    
  • TRUE - Card present (Default)
  • FALSE - Card not present
Card Present Indicator
MANUAL_ENTRY Optional Boolean N/A N/A
  • TRUE
  • FALSE
This field is required to specify if the details would be entered manually.
ENCRYPT Conditional Boolean N/A N/A
  • TRUE
  • FALSE
This field is required to encrypt the PAN details before passing it on to processor/gateway. In case of P2PE encryption, this field value will be TRUE as default value. NOTE: If this field is not present, then the application will internally treat this field as a value TRUE when the device encryption is ADE/VSD.
POS_RECON Optional Character 1 30   POS reconciliation. POS Reconciliation field to be echoed back in response to POS. Example: RetailPOS1
COUNTER Required Numeric 1 10   COUNTER is used for a given MAC label. Each COUNTER should be higher than the last one. This is used to authenticate the POS. Example: 100
MAC Required Base64 Encoded Data N/A N/A N/A Message Authentication Code. This is used to authenticate the POS.
MAC_LABEL Required Character 1 50   Associated label that tells the device which MAC_KEY to use to decrypt the value of MAC. This is used to authenticate the POS. Example: REG1

Multi Merchant Transaction

Refer to Multi Merchant Support for more details on this feature.

  

Note

For Multi Merchant transactions, either of the field is mandatory to send in POS request.

Field Rule Type Minimum Maximum Value(s) Description
MMACCOUNT Conditional Character 1 20   This field contains the Multi Merchant Account number or account name, which is used by the application to identify the correct Client ID and Device Key to be used for performing Host operations like Transactions and Reports. This field is mandatory if the device has a Multi Merchant setup on-boarding and if DEFAULTMERCHANTACCOUNT parameter is not set. Example: 123456789/ 121212/ zxcvbnmQWERTY1
MMPIN Conditional Character 6 6   This field contains PIN value which will be used for MMACCOUNT authentication. MMPIN update and setup is handled on PWC portal. The default value is usually the same as MMACCOUNT. Example: 001212/ 123456
Example

Following is an example of request packet

<TRANSACTION>
        <FUNCTION_TYPE>PAYMENT</FUNCTION_TYPE>
        <COMMAND>BALANCE</COMMAND>
        <COUNTER>1</COUNTER>
        <MAC></MAC>
        <MAC_LABEL>REG2</MAC_LABEL>
        <PAYMENT_TYPE>EBT</PAYMENT_TYPE>
        <MANUAL_ENTRY>FALSE</MANUAL_ENTRY>
        <ENCRYPT>TRUE</ENCRYPT>
</TRANSACTION>
Response Packet
Field Type Value Description
RESPONSE_TEXT Character   Processor response text. Example: APPROVAL
RESULT Character   This indicates the Result details. Commonly APPROVED or DECLINED.
RESULT_CODE Numeric Expected result code: 5, 6, 59023/ 59024, 59025/ 59026, 59004, 59002, 59049/ 59001, 59005, 59009, 59008, 59010, 59013, 59020, 59040 This indicates the result code.
TERMINATION_STATUS Character SUCCESS and FAILURE This indicates the transaction termination status. This is the overall status of the transaction irrespective of approved or declined. Like, if the output is generated then the status is SUCCESS and if no output is generated then the status will be FAILURE.
COUNTER Numeric   Echoes counter sent in the request. Example: 100
INTRN_SEQ_NUM Numeric   PWC transaction ID. Example: 123456789
MERCHID Numeric   Merchant ID. Example: 900000000123
TERMID Numeric   Terminal ID. Example: 001
AUTH_CODE Character   Processor authorization number. Example: 123456
PAYMENT_TYPE Character   Payment type returned, like EBT. Example: EBT
ACCT_NUM Numeric   Returned the masked account number. Example: 600649******9147
FS_AVAIL_BALANCE Floating point number (decimal)   This field will return the available balance on SNAP card. Example: 100.00
CB_AVAIL_BALANCE Character   This field will return the available balance on Cash Benefits card.. Example: 100.00
RECEIPT_DATA Character   Receipt Data.
TRANS_DATE Character   Transaction date returned. Example: 2016.09.20
TRANS_TIME Character   Transaction time returned. Example: 09:16:25
POS_RECON Character   POS reconciliation field echoed back if sent in request. Example: RetailPOS1

Transaction Performance Metric

  

Note

These fields are returned, if SCAPERFMETRIC parameter (Application Parameters) is enabled.

Field Type Value Description
UI_TIME Time   This indicates the time duration, for which the device screen is displayed (like error message, prompt screen, remove card screen) till any user action is performed in the command execution flow. This field is not applicable to capture the time for the Processing, Authorizing and transaction status screen. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <UI_TIME>44.028</UI_TIME>
HOST_TIME Time   This indicates the time taken for the Connection to the host, sending request and receives data from the host. This field also take the cumulative time for multiple requests which may sent to the host during the transaction including two legged transactions, timeout requests, Auto Last Tran requests, DCC, Credit app proxy. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <HOST_TIME>1.389</HOST_TIME>
CMD_TIME Time   This field indicates the total amount of time for a command, which is executed by the application from request received to the response sent. The format of the returned value would be S.sss, where S is seconds (this can be 0 to any positive integer) and sss is milliseconds. In case of any insignificant time or 0.000 value, will not be returned in the response. Example: <CMD_TIME>70.765</CMD_TIME>
Example

Following is an example of response packet

<RESPONSE>
            <ACCT_NUM>600649******9147</ACCT_NUM>
            <AUTH_CODE>123654</AUTH_CODE>
            <CB_AVAIL_BALANCE>0.00</CB_AVAIL_BALANCE>
            <FS_AVAIL_BALANCE>10.00</FS_AVAIL_BALANCE>
            <CTROUTD>141</CTROUTD>
            <INTRN_SEQ_NUM>569230</INTRN_SEQ_NUM>
            <PAYMENT_TYPE>EBT</PAYMENT_TYPE>
            <RESPONSE_TEXT>APPROVED</RESPONSE_TEXT>
            <RESULT>APPROVED</RESULT>
            <RESULT_CODE>5</RESULT_CODE>
            <TERMINATION_STATUS>SUCCESS</TERMINATION_STATUS>
            <TRANS_SEQ_NUM>19</TRANS_SEQ_NUM>
    </RESPONSE>

Need help?

Do you have a question? If you didn’t find the answer you are looking for in our documentation, you can contact our Support teams for more information. If you have a technical issue or question, please contact us. We are happy to help.

Not yet a Verifone customer?

We’ll help you choose the right payment solution for your business, wherever you want to sell, in-person or online. Our team of experts will happily discuss your needs.

Verifone logo