EBT Online Implementation

Endpoints

Below are the endpoints URLs to send transactions to Cardknox:
URL: https://x1.cardknox.com/gateway
Alternate URL: https://b1.cardknox.com/gateway

Request Method

Method: POST
Cardknox Gateway requires POST method to be used for enhanced security. We do not support the GET method

Transaction Flow

Introduction

Like any EBT Transaction, an EBT transaction that is done on the web needs a PIN. As per the EBT requirement (certification), the Acculynk PIN pad must be used. As you click on a digit, the numbers scramble to make it difficult for hackers to catch the numbers. In addition, the PIN is not sent with the transaction. Acculynk sends the PIN directly to Paysecure and it’s identified by a unique transaction id.

Flow

Any transaction that requires a pin [i.e. Balance, Sale], will need to do an Initiate first. The Initiate will begin the PIN process. Cardknox will return the necessary pieces to render a PIN pad on the payment site. Once the pin is entered, the POS will need to make another call to the Cardknox Gateway to complete the Balance/Sale.

Request Parameters

Field Name Valid Values Notes
xCommand
    ebtonline:initiate
  • ebtonline:fssale
  • ebtonline:cbsale
  • ebtonline:balance
  • ebtonline:refund
  • ebtonline:void
Required
xCardNum Required for ebtonline:initiate

Don’t send for other transaction types

xExp Optional for ebtonline:initiate

Don’t send for other transaction types

xBillFirstName Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillLastName Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillCompany Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillStreet Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillStreet2 Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillCity Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillState Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillZip Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillCountry Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillPhone Optional (if sent on the initiate, it’s not necessary for followup transactions)
xBillMobile Optional (if sent on the initiate, it’s not necessary for followup transactions)
xShipFirstName Optional (if sent on the initiate, it’s not necessary for followup transactions)
xShipMiddleName Optional (if sent on the initiate, it’s not necessary for followup transactions)
xShipLastName Optional (if sent on the initiate, it’s not necessary for followup transactions)
xShipCompany Optional (if sent on the initiate, it’s not necessary for followup transactions)
xShipStreet Required for ebtonline:initiate if xShipMethod is not Customer Pickup
xShipStreet2 Optional
xShipCity Required for ebtonline:initiate if xShipMethod is not Customer Pickup
xShipState Required for ebtonline:initiate if xShipMethod is not Customer Pickup
xShipZip Required for ebtonline:initiate if xShipMethod is not Customer Pickup
xShipCountry Required for ebtonline:initiate if xShipMethod is not Customer Pickup
xShipPhone Optional
xShipMobile Optional
xShipMethod
  • DirectDelivery
  • CustomerPickup
  • CommercialShipping
  • Other
Required for ebtonline:initiate
xRefnum Refnum of the initiate Required for all transactions besides the initiate

Response Parameters

Field Name Valid Values Notes
xResult
  • D (Declined)
  • E (Error)
xStatus
  • Approved
  • Declined
  • Error
xError
xRefnum Cardknox Reference Number
xCardType EBT
xInternalID
  • Returned on the initiate
  • AKA ‘TranID’
  • Used in the call to pop up the PIN pad
xPinPadURL
  • Returned on the initiate
  • URL to pop up the PIN pad.
xAccuID
  • Returned on the initiate
  • Used in the call to pop up the PIN pad
xRemainingBalanceEBTCB
  • EBT Cash Benefits Balance
  • Returned if available
xRemainingBalanceEBTFS
  • EBT Food Stamps Balance
  • Returned if available
xBatch
  • Returned on sale transactions
  • Batch Number
xAuthAmount
  • Returned on sale transactions
  • Amount authorized

PIN Pad Implementation

Overview

The Cardknox Gateway will return the necessary pieces to render the PIN pad. The website will take care of popping up the PIN pad.

Endpoint

The endpoint to render the PIN pad will be returned in the ebtonline:initiate request as xPinPadURL.

Method

Method: Post

Request Parameters

Field Name Notes
AccuId Value of xAccuID returned in the initiate
AccuReturnURL Fully qualified merchant’s URL, PaySecure will use to redirect the consumer upon
completion of the PINpad

URL encoding required

AccuLanguage Valid Values:

  • en-US – English
  • es-MX – Spanish
[Client Echoed Fields] Merchants may pass additional form fields that will be passed back in the response.

There are no restrictions on these fields providing their names are not the same as the reserved PaySecure names. Many merchants utilize these fields to pass session IDs used to identify the consumer upon return to the Merchant

Response Parameters

Field Name Notes
AccuResponseCode See valid values below
[Client Echoed Fields]

Response Codes

Response Code Description
Accu000 PIN successfully collected
Accu200 Cardholder pressed Cancel button
Accu400 Cardholder inactivity timeout
Accu600 Invalid Data received by Terminal
Accu710 Terminal Security Issue
Accu720 Terminal Communication Issue
Accu730 Terminal Internal Error
Accu800 General Error Encountered

Test Cards

Card Number Response
6004861944321111844 Approved
6004861680620238553

6104341037610326

6004862121611636942

6004861153412132517

6104341556810901

Declined

Frequently Asked Questions

Q: Can I view the EBT Online commands in Cardknox reporting?

A: The initiate and balance commands are available for internal users in the report:log & sale commands are available in all reports


Q: What’s the difference between void and refund?

A: Void command voids the entire transaction so no amount is allowed, refund can partially refund the transaction so amount is allowed


Q: Can I use a token instead of a card number for the initiate?

A: Yes


Q: Are partial approvals supported?

A: No


Q: Is there a separate command for food stamps and cash benefits?

A: For balance, refund and void there is no need to specify. For sales, there is a separate command for food stamps (ebtonline:fssale) and cash benefits (ebtonline:cbsale)

test