Skip to main content

SCA Functional Specification

BALANCE INQUIRY

Last updated: 04-Dec-2024

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

Device UI Required: Yes

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 or
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
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
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