Create ACH Transfer

Use the /createAchTransfer endpoint to originate an ACH transaction to move funds between a customer account and external bank account linked via Create ACH Account. The originator of this transaction is your customer/bank and the recipient is the holder of the external account.

If the associated ACH account was created via a linkedInstitutionAccountId, balance checks are automatically performed to ensure sufficient funds for ACH pulls (contingent on your product's configuration).

The ACH transfer created via this endpoint can either be a push (credit) or pull (debit) to the recipient account. The optional companyEntryDescription field is accepted for all ACH transfers and identifies the ACH purpose shown on the receiver's bank statement. Galileo added support for this field in Production on March 20, 2026. From March 20 through June 29, 2026, Galileo applies the PSG-approved default if no value is provided. Beginning June 30, 2026, Galileo-backed ACH originations require either a request value or a configured product-level default; missing values are rejected before the vendor call. Spidr resolves the value after vendor selection and forwards the field only to vendor APIs that currently support it.

To view a list of ACH transfers originated by an account, use the List ACH Requests endpoint. To cancel an ACH transfer, use the Cancel ACH Transfer endpoint. For more information on ACH accounts and transactions, please see ACH Accounts and Transactions.

Body Params

POST /v1/transaction/createAchTransfer Request body

string

The session key for the user. Created via Create ZTM Session and used for ZTM checks if your program is configured for ZTM.

boolean

Indicates whether to bypass the ZTM checks if your program is configured for ZTM.

string
required

Pass in the Spidr account ID

string
required

Pass in the ACH account's unique ID created via the 'Create ACH Account' endpoint.

double
required
≤ 10000000

The amount of the ACH transaction.

string
required
length ≤ 30

The description of the ACH transaction.

string | null

The remittance information for the ACH transaction.

string
length between 1 and 10

Identifies the purpose of the ACH transaction (per Nacha rules); appears on the receiver's bank statement. Max 10 characters. Use PAYROLL for compensation paid to employees/contractors or for pre-tax HSA payroll deductions, and PURCHASE for e-commerce debit entries authorized online (incl. recurring); otherwise pass a free-text description (e.g. TRANSFER, LOAN PMT, BILLPAY). Required for Galileo-backed ACH originations as of June 30, 2026 unless your program has a configured default. Reserved values (rejected): ACCTVERIFY, RETRY PYMT, REVERSAL, RECLAIM, HCCLAIMPMT, RETURN FEE, NONSETTLED.

string
enum
required

Specifies whether the recipient account is to be credited or debited. C = Credit (ACH Push), D = Debit (ACH Pull)

Allowed:
boolean
Defaults to false

Indicates if the transaction is a same-day ACH transaction. Requires bank approval and Spidr configuration.

int64

The number of hold days to apply to this transaction, which overrides the hold days in your program settings. This value applies only to outgoing ACH debits (debitCreditIndicator: D). This parameter requires bank approval and Spidr configuration.

boolean

Indicates if the balance of the ACH account should be checked before creating the transaction.

double
≤ 10000000

The minimum balance of the ACH account after the transaction is debited. i.e. how much money should be left in the account after the transaction is debited.

Responses

Language
Credentials
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json