Create an ACH token

United States
Canada

The Automated Clearing House (ACH) is an electronic network for processing electronic payments between banks. ACH lets you accept payments from customers who have United States (US) bank accounts.

Prerequisites

To process secure ACH payments, you need to:

  • Generate an ACH token.
  • Use the API source token along with an OAuth token to complete the Ecommerce API flow.

Steps

  1. Generate a PAKMS key.
  2. Send a POST request to the /v1/tokens endpoint. See the Create an ACH token.
  3. Enter information in the required fields.
FieldDescriptionRequire/Optional
bank_account_numberCustomer's bank account number.
Length: 10-12 digits.
Required
bank_routing_numberCustomer's bank routing number. A 9-digit code that identifies the transaction source of any financial institution (FI).Required
encryptedIndicates whether the bank account number and customer identifier (ID) are encrypted.
Values:
- True
- False
Required
check_type Indicates the check type.
Values:
- personal_check (first name, last name, and email required)
- corporate_check (first name, last name, and email not required)
Required
account_typeIndicates the customer’s bank account type.
Values:
- Savings
- Checking
Required
customer_id_typeIndicates the type of customer identification document.
Example: driver_license, ssn, tax_id, or miilitary_id
Required
customer_id_stateState indicated on the customer ID, for example, NJ driver license.Required
customer_idValue or details of the customer ID, for example, driver license number.Required
first_nameFirst name on the check. Required for personal check.
last_nameLast name on the check. Required for personal check.
business_nameBusiness name on the check. Required for corporate check.Required
emailCustomer’s email address.Required
phoneCustomer’s phone number.Required
session_idIndicates the session identification of an authenticated session.Optional
address_line1First line of the address. Can include the street address, PO box, or company name.Required
address_line2Second line of the address. Can include the apartment, suite, unit, or building number.Required
address_cityCity of the customer address. Can include district, suburb, town, or village.Required
address_stateState of the customer address. Can include county, province, or region.Required
address_zipPostal or ZIP code of the customer address.Required
address_countryBilling address country, if provided.Optional
agreementAgreement-related information, for example related to check by phone (CBP), E-check, or personal warranty.Required
apikeyUniversally unique identifier (ID) of the API.Required

A single-use ACH token is returned. The token is alphanumeric and begins with clv_. Example: clv_1ABCDefgHI23jKL4m5nOPqR

  1. Use the ACH token for a single payment for charge or pay for an order.

Request example

curl --request POST \
     --url 'https://token-sandbox.dev.clover.com/v1/tokens' \
     --header 'apikey: xxx' 
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '{
        "ach": {
                "bank_account_number": "1234567891",
                "bank_routing_number": "123456789",
                "check_type": "personal_check",
                "account_type": "checking",
                "customer_id_type": "driver_license",
                "customer_id_state": "CA",
                "customer_id": "10981111",
                "first_name": "John",
                "last_name": "Doe",
                "address_line1": "1800 Amphibious Blvd",
                "address_city": "Mountain View",
                "address_state": "CA",
                "address_zip": "94045",
                "phone": "0005550001",
                "email": "[email protected]",
                "agreement": {
                	"agreement_id": "456",
                	"type": "E_CHECK_ICA_PERSONAL_SETTLEMENT",
                	"locale": "en_US",
                	"template_data": "firstName:John"
                }
        },
}'

Response example

{"id": "clv_1ABCDefgHI23jKL4m5nOPQrS", "object": "token", "ach": {"account_last4": "7891", "routing_last4": "6789"}}