Use a token

Create a payment using an ACHQ or 3rd party token


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 NameUsageField Value Format ConstraintsMax Length
CommandRequiredSet to ECheck.ProcessPayment50
Provider_TransactionIDOptionalA unique identifier assigned to this payment50
DateScheduledOptionalDate to process this payment. Format mm/dd/yyyy-
PaymentDirectionRequiredValue must be FromCustomer or ToCustomer12
AmountRequiredThe amount of the check.-
Merchant_ReferenceIDOptionalReference ID the merchant wants assigned to this payment50
DescriptionOptionalA description for this transaction100
Billing_CustomerIDOptionalA unique ID assigned to the Customer.20
Billing_CustomerNameRequiredName of person on bank account80
Billing_CompanyConditionalCompany name on bank account. Required if CheckType field is set to Business80
Billing_Address1RequiredStreet Address on bank account70
Billing_Address2OptionalAdditional street address information40
Billing_ZipRequiredZip Code. Format: ##### or #####-####10
Billing_CountryOptional2-letter country code (ISO 3166). Default is US2
Billing_PhoneRequiredPhone number20
Billing_EmailRequiredCustomer email address80
SendEmailToCustomerRequiredValue must be Yes or No3
Customer_IPAddressConditionalCustomer’s IP Address. Only required if the SECCode field is set to WEB.15
Run_ExpressVerifyRequiredValue must be Yes or No3
Create_ACHQTokenOptionalValue must be Yes or No. Default is No if not specified.3
SECCodeRequiredValue must be PPD, CCD, WEB, or TEL.3
AccountTokenRequiredThe token representing a customer’s bank account information100
TokenSourceRequiredPossible values: ACHQ, Plaid, MX50

Sample request

curl --request POST \
     --url '' \
     --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= \
     --data SendEmailToCustomer=No \
     --data AccountToken=processor-sandbox-74fb6a84-c434-41bb-8c3f-dd71fd1c18c9 \
     --data TokenSource=Plaid \
     --data Merchant_ReferenceID=44444


  "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