GlobalBenefit Class
Properties Methods Events Configuration Settings Errors
The GlobalBenefit component is used to authorize Electronic Benefits Transfer (EBT) transactions with the Global Payments system, using the Global Transport Direct API. This component is supported in the Retail and Restaurant environments, and allows for simple, direct, secure communication to the Global Transport gateway through a standard Internet connection. An EBT transaction is similar to a Debit transaction, using a PIN and Key Sequence Number (KSN), but is used for Food Stamp or Cash Benefit programs.
Class Name
InPayDirect_GlobalBenefit
Procedural Interface
inpaydirect_globalbenefit_open(); inpaydirect_globalbenefit_close($res); inpaydirect_globalbenefit_register_callback($res, $id, $function); inpaydirect_globalbenefit_get_last_error($res); inpaydirect_globalbenefit_get_last_error_code($res); inpaydirect_globalbenefit_set($res, $id, $index, $value); inpaydirect_globalbenefit_get($res, $id, $index); inpaydirect_globalbenefit_do_balanceinquiry($res); inpaydirect_globalbenefit_do_config($res, $configurationstring); inpaydirect_globalbenefit_do_interrupt($res); inpaydirect_globalbenefit_do_refund($res, $pnref); inpaydirect_globalbenefit_do_reset($res); inpaydirect_globalbenefit_do_sale($res); inpaydirect_globalbenefit_do_vouchersale($res, $authcode, $vouchernumber);
Remarks
An EBT Card (also known as Cash Benefit Card or Food Stamp Card) works similar to a bank debit card. EBT is a special application of electronic funds transfer (EFT), or debit card technology, which takes money directly from one account and transfers it to another (credit cards, by comparison, simply record a sale for payment later).
There are just a few steps to setting up the class and sending transactions. First, set the UserId and Password, making sure that EBT transactions are allowed for your login credentials. If you're submitting test transaction and are using a test account, set the Server to the certification URL ("https://certapia.globalpay.com").
To send a transaction under normal circumstances, Track2 data should be read from the EBT card and placed in the CardMagneticStripe property. The CardEntryDataSource property should be set to edsMagneticStripe, and the EncryptedPIN and KSN properties should be filled with the encrypted PIN and key sequence number returned from your PIN pad. If the card reader is unable to read the magnetic stripe, card info may be manually added in the CardNumber, CardExpMonth, and CardExpYear properties, (and set the CardEntryDataSource property to edsManuallyEntered), but only for Food Stamp Transactions. Cash Benefit transactions may not be manually keyed.
Now simply set the TransactionAmount and call the Sale method to charge the card. You may also Refund funds back to the card (Food Stamp BenefitType only), as well as send a BalanceInquiry. Voice authorizations for Food Stamp transactions may be sent using the VoucherSale method.
The status of any of the above transactions will be stored in the ResponseCode property, with human-readable text appearing in ResponseText. Like the GlobalCharge class, there are several other Response properties which will contain data that should be logged.
EBT regulations require that all customer receipts include the last 4 digits of the CardNumber and the ResponseTransactionId, as well as the available balance for the account accessed. Balances are returned in the ResponseFoodStampBalance and ResponseCashBenefitsBalance properties.
EBT card transactions are instant funds transfers. There is no block placed on the debit card, funds are immediately removed and sent to the merchant. Therefore, there is no ability to capture, void, or reverse EBT transactions. You must use the Refund method to return funds to a customer's card - but only for Food Stamp transactions. Cash Benefit Refund transactions are not allowed. Unlike the GlobalCharge class's Refund method, the CardMagneticStripe, EncryptedPIN, and KSN are required in addition to the PNRef parameter, which identifies the transaction you're issuing a refund for.
Property List
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
BenefitType | Indicates whether the EBT card is a Food Stamps card or Cash Benefits card. |
CardCVVData | Three digit security code on back of card (optional). |
CardCVVPresence | Indicates the presence of the card verification value. |
CardEntryDataSource | This property contains a 1-character code identifying the source of the customer data. |
CardExpMonth | Expiration month of the credit card specified in Number . |
CardExpYear | Expiration year of the credit card specified in Number . |
CardMagneticStripe | Track data read off of the card's magnetic stripe. |
CardNumber | Customer's credit card number for the transaction. |
CashBack | Optional cash back amount to return to the customer. |
CustomerName | The cardholder's name as it appears on the card. |
EncryptedPIN | DUKPT DES encrypted pin block, retrieved from a PIN pad. |
InvoiceNumber | Optional invoice tracking number. |
KSN | Clear-text Key Serial Number retrieved from a PIN pad. |
Password | Password for authentication with the Global Payments Server . |
ProxyAuthScheme | This property is used to tell the component which type of authorization to perform when connecting to the proxy. |
ProxyAutoDetect | This property tells the component whether or not to automatically detect and use proxy system settings, if available. |
ProxyPassword | This property contains a password if authentication is to be used for the proxy. |
ProxyPort | This property contains the TCP port for the proxy Server (default 80). |
ProxyServer | If a proxy Server is given, then the HTTP request is sent to the proxy instead of the server otherwise specified. |
ProxySSL | This property determines when to use SSL for the connection to the proxy. |
ProxyUser | This property contains a user name, if authentication is to be used for the proxy. |
RegisterNumber | A number that uniquely identifies the register or computer on which the transaction was performed. |
ResponseCashBenefitsBalance | Balance of cash benefit funds available on the EBT card. |
ResponseFoodStampBalance | Balance of food stamp funds available on the EBT card. |
ResponseApprovalCode | Contains the transaction authorization code from the card issuer. |
ResponseBatchNumber | The number of the batch this transaction is currently contained in. |
ResponseCardType | Indicates the card type or payment method. |
ResponseCode | Contains the transaction result code from the Global Transport Gateway. |
ResponseHostCode | Action code returned by Global Payments. |
ResponseMessage | Contains a human-readable response message concerning the processed transaction. |
ResponseMessageDetail | Contains a formatted response message concerning the processed transaction. |
ResponsePNRef | Contains a number which uniquely identifies the transaction in the Global Transport system. |
ResponseData | Contains the raw response data from the Global Payments host. |
ResponseMerchantCode | Merchant Id code which must be printed on all receipts. |
ResponseInvoiceNumber | Contains the same invoice number for the transaction that was originally sent in the request to the Global Transport Gateway. |
Server | Global Payments transaction server. |
SSLAcceptServerCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertEncoded | The certificate (PEM/base64 encoded). |
SSLCertStore | The name of the certificate store for the client certificate. |
SSLCertStorePassword | If the certificate store is of a type that requires a password, this property is used to specify that password in order to open the certificate store. |
SSLCertStoreType | The type of certificate store for this certificate. |
SSLCertSubject | The subject of the certificate used for client authentication. |
SSLServerCertEncoded | The certificate (PEM/base64 encoded). |
Timeout | A timeout for the component. |
TransactionAmount | Amount to be charged from (or refunded to) the card. |
UserId | UserId for authentication with the Global Payments Server . |
Method List
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
BalanceInquiry | Retrieves the current balances of Food Stamp and Cash Benefit accounts on an EBT card. |
Config | Sets or retrieves a configuration setting . |
Interrupt | Interrupt the current method. |
Refund | Submits a food stamp credit transaction, returning funds to an EBT card. |
Reset | Clears all properties to their default values. |
Sale | Submits a sale transaction for an Electronic Benefits (EBT) card. |
VoucherSale | Used to clear (force) a food stamp voucher that was previously voice-authorized. |
Event List
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
Error | Information about errors during data delivery. |
SSLServerAuthentication | Fired after the server presents its certificate to the client. |
SSLStatus | Shows the progress of the secure connection. |
Status | Shows the progress of the Global Payments connection. |
Configuration Settings
The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.
RawRequest | Returns the request sent to the server for debugging purposes. |
RawResponse | Returns the response received from the server for debugging purposes. |
ConnectionTimeout | Sets a separate timeout value for establishing a connection. |
FirewallAutoDetect | Tells the component whether or not to automatically detect and use firewall system settings, if available. |
FirewallHost | Name or IP address of firewall (optional). |
FirewallPassword | Password to be used if authentication is to be used when connecting through the firewall. |
FirewallPort | The TCP port for the FirewallHost;. |
FirewallType | Determines the type of firewall to connect through. |
FirewallUser | A user name if authentication is to be used connecting through a firewall. |
KeepAliveTime | The inactivity time in milliseconds before a TCP keep-alive packet is sent. |
KeepAliveInterval | The retry interval, in milliseconds, to be used when a TCP keep-alive packet is sent and no response is received. |
Linger | When set to True, connections are terminated gracefully. |
LingerTime | Time in seconds to have the connection linger. |
LocalHost | The name of the local host through which connections are initiated or accepted. |
LocalPort | The TCP port in the local host where the component binds. |
MaxLineLength | The maximum amount of data to accumulate when no EOL is found. |
MaxTransferRate | The transfer rate limit in bytes per second. |
RecordLength | The length of received data records. |
TCPKeepAlive | Determines whether or not the keep alive socket option is enabled. |
UseIPv6 | Whether to use IPv6. |
TcpNoDelay | Whether or not to delay when sending packets. |
TLS12SignatureAlgorithms | Defines the allowed TLS 1.2 signature algorithms when UseManagedSecurityAPI is True. |
ReuseSSLSession | Determines if the SSL session is reused. |
SSLCipherStrength | The minimum cipher strength used for bulk encryption. |
SSLEnabledProtocols | Used to enable/disable the supported security protocols. |
SSLProvider | The name of the security provider to use. |
SSLSecurityFlags | Flags that control certificate verification. |
OpenSSLCADir | The path to a directory containing CA certificates. |
OpenSSLCAFile | Name of the file containing the list of CA's trusted by your application. |
OpenSSLCipherList | A string that controls the ciphers to be used by SSL. |
OpenSSLPrngSeedData | The data to seed the pseudo random number generator (PRNG). |
AbsoluteTimeout | Determines whether timeouts are inactivity timeouts or absolute timeouts. |
FirewallData | Used to send extra data to the firewall. |
InBufferSize | The size in bytes of the incoming queue of the socket. |
OutBufferSize | The size in bytes of the outgoing queue of the socket. |
CodePage | The system code page used for Unicode to Multibyte translations. |