Create an ACH token
North America—United States and Canada
The Automated Clearing House (ACH) is an electronic network for processing electronic payments between banks. To process secure ACH payments, use the API source
token along with an OAuth token to complete the Ecommerce API flow.
Steps
- Generate an Ecommerce API key or
apiAccessKey
. - Send a POST request to the
/v1/tokens
endpoint. See Create an ACH token. - Enter information in the required fields.
Field | Description | Require/Optional |
---|---|---|
bank_account_number | Customer's bank account number. Length: 10–12 digits. | Required |
bank_routing_number | Customer's bank routing number. A 9-digit code that identifies the transaction source of any financial institution (FI). | Required |
encrypted | Indicates whether the bank account number and customer identifier (Id) are encrypted. Values: - True - False | Optional |
check_type | Indicates whether a bank account is a personal or a business account. Values: - Personal_check (first name, last name, and email required) - Corporate_check (first name, last name, and email not required) | Required |
account_type | Indicates whether a bank account is a checking or a savings account. Values: - Savings - Checking | Required |
customer_id_type | Indicates the type of customer identification document. Example: driver_license, ssn, tax_id, or miilitary_id | Required |
customer_id_state | State indicated on the customer ID, for example, NJ driver license. | Required |
customer_id | Value or details of the customer ID, for example, driver license number. | Required |
first_name | First name on the check. | Required for personal check. |
last_name | Last name on the check. | Required for personal check. |
business_name | Business name on the check. | Required for corporate check. |
email | Customer’s email address. | Required |
phone | Customer’s phone number. | Required |
session_id | Indicates the session identification of an authenticated session. | Optional |
address_line1 | First line of the address. Can include the street address, PO box, or company name. | Required |
address_line2 | Second line of the address. Can include the apartment, suite, unit, or building number. | Optional |
address_city | City of the customer address. Can include district, suburb, town, or village. | Required |
address_state | State of the customer address. Can include county, province, or region. | Required |
address_zip | Postal or ZIP code of the customer address. | Required |
address_country | Billing address country, if provided. | Optional |
agreement | Agreement-related information. Note: Use the generic id for the sandbox: 2c74dcc0-61ad-4f08-8764-a29aeb98f4a4 or for production: 4f77df6d-70c9-4f36-af1d-f8ad1ad7b0cc | Required |
apikey | Public Ecommerce API key associated with a specific merchant and developer app. Use Retrieve an Ecommerce API key or PAKMS key to generate this key. | Required |
A single-use ACH token is returned. The token is alphanumeric and begins with clv\_
. Example: clv_1ABCDefgHI23jKL4m5nOPqR
- 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": "2c74dcc0-61ad-4f08-8764-a29aeb98f4a4",
"type": "E_CHECK_GENERIC",
"locale": "en_US",
"template_data": "firstName:John"
}
},
}'
Response example
{"id": "clv_1ABCDefgHI23jKL4m5nOPQrS", "object": "token", "ach": {"account_last4": "7891", "routing_last4": "6789"}}
Updated about 1 month ago