Use a token
Create a payment using an ACHQ or 3rd party token
Overview
If you've already generated an ACHQ token or have a compatible 3rd-party token (Plaid, MX) you can use it to generate payments without ever transmitting or storing sensitive bank data
Don't throw all the data away
We recommend storing at least the Bank Name and "last 4 digits" of all bank accounts in your system. It's important to display this information to end-users when a transaction is authorized or initiated.
Fields and values
All API requests should include the fields detailed in the General Implementation Rules.
The following values are specific to creating a payment when using a bank token:
Field Name | Usage | Field Value Format Constraints | Max Length |
---|---|---|---|
Command | Required | Set to ECheck.ProcessPayment | 50 |
Provider_TransactionID | Optional | A unique identifier assigned to this payment | 50 |
DateScheduled | Optional | Date to process this payment. Format mm/dd/yyyy | - |
PaymentDirection | Required | Value must be FromCustomer or ToCustomer | 12 |
Amount | Required | The amount of the check. | - |
Merchant_ReferenceID | Optional | Reference ID the merchant wants assigned to this payment | 50 |
Description | Optional | A description for this transaction | 100 |
Billing_CustomerID | Optional | A unique ID assigned to the Customer. | 20 |
Billing_CustomerName | Required | Name of person on bank account | 80 |
Billing_Company | Conditional | Company name on bank account. Required if CheckType field is set to Business | 80 |
Billing_Address1 | Required | Street Address on bank account | 70 |
Billing_Address2 | Optional | Additional street address information | 40 |
Billing_City | Required | City | 70 |
Billing_State | Required | State | 30 |
Billing_Zip | Required | Zip Code. Format: ##### or #####-#### | 10 |
Billing_Country | Optional | 2-letter country code (ISO 3166). Default is US | 2 |
Billing_Phone | Required | Phone number | 20 |
Billing_Email | Required | Customer email address | 80 |
SendEmailToCustomer | Required | Value must be Yes or No | 3 |
Customer_IPAddress | Conditional | Customer’s IP Address. Only required if the SECCode field is set to WEB. | 15 |
Run_ExpressVerify | Required | Value must be Yes or No | 3 |
Create_ACHQToken | Optional | Value must be Yes or No. Default is No if not specified. | 3 |
SECCode | Required | Value must be PPD, CCD, WEB, or TEL. | 3 |
AccountToken | Required | The token representing a customer’s bank account information | 100 |
TokenSource | Required | Possible values: ACHQ, Plaid, MX | 50 |
Sample request
curl --request POST \
--url 'https://www.speedchex.com/datalinks/transact.aspx/?ProviderID=99&Provider_GateKey=test&Provider_GateID=test&MerchantID=2001&Merchant_GateID=test&Merchant_GateKey=test&CommandVersion=2.0&Command=ECheck.ProcessPayment&tokenpayment=' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data Provider_TransactionID=21321312 \
--data Amount=42.00 \
--data PaymentDirection=FromCustomer \
--data 'Description=Rent Payment' \
--data SECCode=WEB \
--data DeliveryWindow=Standard \
--data 'Billing_CustomerName=Bob Loblaw' \
--data 'Billing_Address1=123 Street' \
--data Billing_City=Town \
--data Billing_State=NY \
--data Billing_Zip=12345 \
--data Billing_Country=US \
--data [email protected] \
--data Billing_Phone=555-867-5309 \
--data Customer_IPAddress=0.0.0.0 \
--data SendEmailToCustomer=No \
--data AccountToken=processor-sandbox-74fb6a84-c434-41bb-8c3f-dd71fd1c18c9 \
--data TokenSource=Plaid \
--data Merchant_ReferenceID=44444
Response
{
"CommandStatus": "Approved",
"Description": "Command Successful. Approved.",
"ErrorInformation": null,
"ExpressVerify": {
"Status": null,
"Code": null,
"Description": null
},
"ResponseData": null,
"ACHQToken": null,
"Provider_TransactionID": "21321312",
"TransAct_ReferenceID": "14476924",
"ResponseCode": "000"
}
📜 Full API reference here
Updated over 2 years ago