Skip to content
Last updated

About ACH/bank account payments

What is ACH

The Automated Clearing House (ACH) is a US payment network that processes electronic fund transfers between bank accounts. Unlike card payments that authorize in real time through card networks, ACH transactions are batched and cleared through the Federal Reserve or The Clearing House.

Paradise Gateway processes ACH payments through the Vericheck processor.

Person's BankACH NetworkProcessor (Vericheck)My Paradise PayYour ApplicationPerson's BankACH NetworkProcessor (Vericheck)My Paradise PayYour ApplicationMy Paradise Pay (Real-time)Asynchronous Processing (1-3 Days)OR Transaction ReturnedPOST /v1/transactions1ACH Request2Accepted (Synchronous)3200 OK (authorized)4Batch Submission5Debit/Credit Request6Funds Settled7
Person's BankACH NetworkProcessor (Vericheck)My Paradise PayYour ApplicationPerson's BankACH NetworkProcessor (Vericheck)My Paradise PayYour ApplicationMy Paradise Pay (Real-time)Asynchronous Processing (1-3 Days)OR Transaction ReturnedPOST /v1/transactions1ACH Request2Accepted (Synchronous)3200 OK (authorized)4Batch Submission5Debit/Credit Request6Funds Settled7

ACH transaction types

Paradise Gateway supports two ACH Standard Entry Class (SEC) codes that determine how the payment was authorized.

SEC codeNameUse caseAuthorization method
WEBInternet-initiatedPerson authorizes payment through a website or appOnline consent form, checkbox, or click-through agreement
PPDPrearranged payment and depositRecurring payments authorized by written agreementSigned authorization form (physical or electronic)
SEC code compliance

Using the correct SEC code is a NACHA requirement. Using the wrong code can result in fines or ACH processing suspension. Use WEB for internet-originated transactions and PPD for pre-authorized recurring payments with a signed agreement.

Processing an ACH payment

Send POST /v1/transactions with type: PAYMENT and the person's bank account details.

Required fields

FieldDescriptionExample
typeTransaction typePAYMENT
amountAmount in cents50000 (500.00 USD)
payment_method.typePayment method typeACH
payment_method.account_numberBank account number9876543210
payment_method.routing_numberABA routing number (9 digits)021000021
payment_method.account_typeAccount typechecking or savings
payment_method.nameAccount holder nameMontgomery Scott
payment_method.emailAccount holder emailscotty@example.com

Example request

application/json
{ "type": "SALE", "amount": 10000, "tip": 0, "payment_method": { "type": "CARD", "pan": "4012000098765439", "expiry": {}, "cvv": "999", "first_name": "John", "last_name": "Doe", "contact": {}, "billing_address": {} }, "initiator": "CUSTOMER", "entry_method": "ECOMMERCE,", "recurring": { "sequence": "INITIAL", "initial_transaction_id": "string", "initial_network_transaction_id": "MCC1234567890" }, "metadata": { "property1": "string", "property2": "string" } }

Example response

{
  "id": "TRANSACTION-03LPSC0TTY9ZXQ5MV0H4Y6W8A",
  "object": "transaction",
  "type": "payment",
  "transaction_state": "authorized",
  "response_status": "Approved",
  "response_code": "00",
  "response_message": "The API request is approved.",
  "amount_requested": 50000,
  "amount_authorized": 50000,
  "correlation_id": "d4e5f6a7-b8c9-0123-def0-123456789abc"
}

The transaction returns immediately with authorized state. This does not mean the funds have been transferred — the ACH network processes the debit asynchronously.

ACH vs. card payment timeline

ACH transactions settle more slowly than card transactions because the ACH network processes in scheduled batches rather than in real time.

EventCard (TSYS)ACH (Vericheck)
AuthorizationReal-time (< 3 seconds)Immediate API response (validation only)
Batch submittedEnd of business dayNext business day
Funds settled1–2 business days2–3 business days
Returns possibleNot applicable (chargebacks instead)Up to 60 days

Days 3-60

Day 2-3

Day 1

Day 0

Synchronous

Standard Rail

Consumer Right to Dispute

API Request

Submit to ACH

Funds Settle

Return Window

Days 3-60

Day 2-3

Day 1

Day 0

Synchronous

Standard Rail

Consumer Right to Dispute

API Request

Submit to ACH

Funds Settle

Return Window

ACH returns

Unlike card chargebacks, ACH transactions can be returned by the receiving bank after settlement. Returns can happen for several reasons.

Return codeReasonTimeline
R01Insufficient funds2 business days
R02Account closed2 business days
R03No account / unable to locate2 business days
R04Invalid account number2 business days
R08Payment stopped2 business days
R10Customer advises not authorizedUp to 60 days
R29Corporate customer advises not authorized2 business days
Handling returns

Because ACH returns can occur days or weeks after settlement, build your system to handle asynchronous return notifications. Monitor transaction status through GET /v1/transactions/{id} or configure webhooks to receive return notifications.

ACH payouts

In addition to collecting payments, Paradise Gateway supports ACH payouts — sending funds to a bank account. Payouts use the same endpoint with a different transaction type.

DirectionTransaction typeDescription
Inbound (collect)paymentDebit the person's bank account
Outbound (pay)payoutCredit the person's bank account

Canceling ACH transactions

ACH transactions can be canceled before settlement using the cancel endpoint.

Original typeCancel type
paymentcancel
payoutcancel

After settlement, ACH reversals go through the ACH return process rather than API-initiated refunds.

Tokenized ACH payments

To avoid storing sensitive bank account details, tokenize the bank account and use the payment token for subsequent transactions.

{
  "type": "payment",
  "amount": 50000,
  "payment_method": {
    "type": "token",
    "payment_token": "PAYMENT_TOKEN-03LPSC0TTY0AYRNZ5VQXS2G3AB"
  },
  "recurring": true,
  "purchase_description": "Monthly service fee"
}

For more information, see About tokenization.

Best practices

  • Validate routing numbers before submitting. Invalid routing numbers result in R03 or R04 returns.
  • Use the correct SEC code (WEB for internet, PPD for recurring with signed authorization).
  • Handle returns asynchronously. Do not treat the initial authorized response as final settlement.
  • Set recurring: true for subsequent charges against a stored bank account to comply with NACHA rules.
  • Tokenize bank accounts for recurring payments rather than storing raw account numbers.

Further reading