LogoLogo
  • Introduction
  • Getting Started
    • Your Zum Rails Account
    • Developer Quickstart
  • Payments
    • Introduction
    • Payment Rails
    • Bank Payments
      • EFT
      • ACH
    • Interac e-Transfer
      • Send & Request
      • Review Transactions
    • Card Payments
      • Visa Direct
      • Credit Card
      • Push-to-debit
  • User Tokenization
    • Zūm Connect
  • Invoices & Subscriptions
    • Overview
    • Products
    • Invoices
    • Subscriptions
  • Data Aggregation
    • Overview
    • Use Cases
    • Supported Institutions
    • Data
    • How it works
    • Testing
  • Insights
    • Overview
    • Income
    • Expenses
    • Insights
  • Brand Customization
    • Brand Customization
  • API Reference
    • Overview
    • Authentication
    • Users
    • Transactions
    • Funding Source
    • Products
    • Product Prices
    • Invoices
    • Subscriptions
    • Aggregation
    • Insights
    • Wallets
    • Operations
      • Transaction Limits
      • Review Transactions
      • Daily Auto-Withdrawal Summary
    • Webhooks
    • Errors
    • Idempotency
    • Country & Region Codes
  • Archived Documentation
Powered by GitBook
On this page
  • Overview
  • Benefits of using ACH
  • How it works?
  • Processing Schedule
  • Additional features
  • Transaction Limits
  • Transaction Events
  • Testing
  1. Payments
  2. Bank Payments

ACH

Introduction to Automated Clearing House (ACH) transactions

Overview

An ACH payment method is an electronic funds transfer between banks in US that takes between 24-48 hours to complete. You can send and receive funds using ACH.

Method: POST

Endpoint: {{env}}/api/transaction

Example

{
  "ZumRailsType": "AccountsPayable",
  "TransactionMethod": "Ach",
  "Amount": 123.45,
  "Memo": "Memo",
  "Comment": "This transaction is just a test from a wallet to user",
  "UserId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297",
  "PaymentInstrumentId": "92142401-...389ba0d87e75"
}

Request Parameters

Parameter
Type
Mandatory
Description

ZumRailsType

string

yes

Transaction type

TransactionMethod

string

yes

Transaction method.

Amount

decimal

yes

Transaction amount

Memo

string

yes

Memo description.

Comment

string

no

Internal comment you might want to add.

FundingSourceId

guid

no

Funding Source Id

WalletId

guid

no

Wallet Id

UserId

guid

no

User Id

PaymentInstrumentId

string

yes

Payment instrument id

User

no

ScheduledStartDate

date

no

The date when the transaction will be sent to the financial institution, in the format YYYY-MM-DD. Must be greater than today.

ClientTransactionId

string

no

This field can be used to store the Transaction id created in your system when the Transaction is initiated

Benefits of using ACH

  • Low-Cost: ACH payments usually have lower fees than wire transfers or credit cards.

  • Speed: ACH payments are processed quickly, often within 1-2 business days.

  • Security: Highly secure with encryption and reduced risk of fraud compared to checks or cash.

  • Convenience: Easy to set up for recurring payments like payroll, bills, and subscriptions.

  • Wide Usage: Commonly accepted by businesses and financial institutions, both domestic and international.

How it works?

Collect Authorization

Independent of the method used to add payment profile, a user is always asked to agree and consent the information shared (PAD) when creating a payment profile. The message can be customized for your needs as well. Your specific settings will be available under your profile in Zūm Rails portal.

Transaction Types

  • FundZumWallet

  • WithdrawZumWallet

  • AccountsPayable

  • AccountsReceivable

Transaction Life-cycle

Accounts Receivable transaction with funds sent to Wallet from User

  1. Transaction with type Accounts Receivable started from User to Zūm Wallet

  2. Transaction sent to Financial Institution

  3. Wallet was funded

  4. Transaction completed

Accounts Payable transaction with funds sent to User from Wallet

  1. Transaction with type Accounts Payable started, from Zūm Wallet to User

  2. Transaction sent to Financial Institution

  3. Wallet withdrawn

  4. Response received from financial institution for credit transaction

  5. Transaction processed by financial institution

  6. Transaction completed

Processing Schedule

ACH - Processor A

  • Transactions are sent when they are created;

  • When we process the responses - everyday:

    • 11:45am;

ACH - Processor B

  • Transactions are sent when they are created;

  • Responses are processed when Orum sends us webhooks;

Source-Only

  • ASAP before 4:30 pm EST: Same Day ACH Debit: T+2

  • Same day before 4:30 pm ET: Same Day ACH Debit: T+2

  • ASAP afrer 4:30 PM ET: STandard ACH Debit: T+3

  • Same Day after 4:30 pm EST: Standard ACH Debit: T+3

  • Standard: Standard ACH Debit: T+3

Destination Only

  • ASADP and bank account is RTP or FedNow eligible: Instant

  • Same Day before 4:30 pm ET: Same Day ACH Credit T+0

  • Same Day after 4:30 pm ET: Standard ACH Credit: T+1

  • Standard: Standard ACH Credit: T+1

Additional features

  • Account Verification - Instant Account Verification allows connecting to an end user’s financial institution to retrieve account and routing numbers for. This data can be used for various purposes, including money movement and account opening.

  • Balance Checks - Balance Checks allow retrieving the available balance for an end user’s financial accounts. This service provides balance details without retrieving transaction data.

  • Owner identification - Owner Identification retrieves information about the owner of an account, such as their name, address, and contact information. This information is crucial for verifying the identity of an end user.

Transaction Limits

Transaction Limit
Minimum
Maximum

Amount limit per transaction

$0.00

Unlimited

Maximum volume per day

$0.00

Unlimited

Transaction per day

$0.00

$99,999,999

Maximum Volume Per Month

$0.00

Unlimited

Transaction Events

Zūm Rails also offers detailed transaction events that indicate every step the transaction lifecycle.

Event
Description

Started

When the transaction started

Succeeded

When the transaction succeeds, when it finishes without any error

WalletFunded

When the transaction funds a wallet

WalletWithdrawn

When the transaction withdrawn a wallet

Event
Description

AchTransactionAccepted

When transaction is accepted

AchFailedTransactionExpired

When transaction has expired

AchFailedReturnedOrClosedAccount

When transaction is returned due to a closed account or any other return reason

AchFailedRejectedWithReason

When transaction is rejected for a reason

AchFailedGeneralError

When transaction has failed due to general error

AchFailedHighRiskOrPotentialFraud

When transaction is rejected as high-risk or potential fraud

AchFailedDueToMerchantSetup

When transaction failed because of invalid or inactive merchant id

AchFailedInvalidValueForField

When transaction failed due to invalid value for field

AchFailedAuthorizationRevoked

When transaction failed because authorization was revoked

AchFailedDuplicateTransaction

When transaction failed due to duplicated transaction

AchFailedDueToProcessorTimeout

When transaction is not successfully processed due to processor timeout

AchFailedTransactionNotAllowed

When transaction is not allowed by provider

AchBankAccountVerificationFailed

When transaction fails because the bank account verification failed

AchDebitResponseReceived

When response is received for a debit transaction

AchCreditResponseReceived

When response is received for a credit transaction

AchTransactionReturned

When transaction returned from bank

AchTransactionResubmitted

When transaction is resubmitted for processing again

AchCancellationFailed

When request to cancel transaction failed

AchCancellationFailedDueToMerchantSetup

When request to cancel transaction failed due to merchant setup

AchCancellationFailedRefundGreaterThanTransactionAmount

When request to cancel transaction failed as refund amount is bigger than transaction amount

AchCancellationFailedTransactionAlreadyCancelled

When request to cancel transaction failed because transaction is already cancelled

AchFailedDueToNegativeData

When transaction failed due to negative user data

AchFailedIneligibleBankAccount

When transaction failed because bank account is not on ACH network

Event
Description

SameDayAchFailedGeneralError

When transaction has failed due to general error

SameDayAchFailedHighRiskOrPotentialFraud

When transaction is rejected as high-risk or potential fraud

SameDayAchFailedDueToNegativeData

When transaction failed due to negative user data

SameDayAchFailedDueToMerchantSetup

When request to cancel transaction failed due to merchant setup

SameDayAchFailedDueToProcessorTimeout

When transaction is not successfully processed due to processor timeout

SameDayAchFailedTransactionExpired

When transaction has expired

SameDayAchFailedPaymentDeclinedByUser

When transaction is declined by user

SameDayAchFailedTransactionNotAllowed

When transaction is not allowed by provider

SameDayAchFailedInvalidValueForField

When transaction failed due to invalid value for field

SameDayAchFailedAuthorizationRevoked

When transaction failed because authorization was revoked

SameDayAchFailedDuplicateTransaction

When transaction failed due to duplicated transaction

SameDayAchBankAccountVerificationFailed

When transaction failed because the bank account verification failed

SameDayAchFailedRejectedWithReason

When transaction is rejected for a reason

SameDayAchFailedReturnedOrClosedAccount

When transaction is returned due to a closed account or any other return reaso

Testing

To simulate an ACH failure, include an event name from the list above in the COMMENT field when creating a transaction. If you don't mention an event in the COMMENT, the transaction will change its status to "Completed" in the sandbox environment.

{
  "ZumRailsType": "AccountPayable",
  "TransactionMethod": "Ach",
  "Amount": 123.45,
  "Memo": "This transaction will succeed",
  "Comment": "This transaction will succeed because there's no keyword",
  "UserId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297"
}
{
  "ZumRailsType": "AccountPayable",
  "TransactionMethod": "Ach",
  "Amount": 123.45,
  "Memo": "This transaction will fail with event AchFailedRejectedWithReason",
  "Comment": "AchFailedGeneralError",   // Include event name in comment
  "UserId": "1d431e8b-...85452adb4eee",
  "WalletId": "8ebd932b-...b92633e14297"
}

To simulate a late failure, mention any of the following events in the COMMENT field:

  • AchFailedRejectedWithReason

  • AchFailedReturnedOrClosedAccount

  • SameDayAchFailedRejectedWithReason

  • SameDayAchFailedReturnedOrClosedAccount

PreviousEFTNextInterac e-Transfer

Last updated 2 days ago

It's possible to create a transaction without adding a user first. Simply pass the user object (instead of the UserId) into the transaction body. For reference, check the payload example of the user object and pass this when you create a transaction.

To learn more about ACH transactions, see .

API Reference
User input
here