EBT Transaction
This command is used to check the balance on an EBT card.
Rules
- EBT parameter should be enabled for EBT transaction, to avoid receiving unsupported command response.
- 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 |
---|---|---|
![]() |
Use the card for EBT card for balance query. | The device displays card entry screen. |
![]() |
Select the EBT type provided (Food or Cash). | The device displays the EBT type screen. |
![]() |
Enter the PIN and Enter. | PIn Entry screen is displayed. |
![]() |
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 |
|
This indicates the type of EBT transaction. This is a required for EBT transactions. |
CARD_PRESENT | Optional | Binary |
|
Card Present Indicator | ||
MANUAL_ENTRY | Optional | Boolean | N/A | N/A |
|
This field is required to specify if the details would be entered manually. |
ENCRYPT | Conditional | Boolean | N/A | N/A |
|
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>