Bank rails

ACH

7min

The Cross River ACH API allows you to both originate and receive payments through the Federal Reserve ACH network.

ACH APIs are found in the ACH module of our COS sandbox.

Get started with Cross River APIs.

This table presents ACH APIs we that describe in detail.

Action

API Call

Description

POST /ach/v1/payments

Sends a single payment using ACH

POST /ach/v1/client-batches

Originates several payments together in a batch

GET /ach/v1/client-batches/{id}/cancel

Cancels any incomplete payments and stops further processing of any remaining payments in the batch

Originate an ACH payment

Use an ACH prenotification (prenote) to verify and validate account details. A prenote simply means originating a payment of $0.00. If you don't receive an error response, the details are correct.

POST
Request
Response
Body Parameters
accountNumber
required
String
Account number for payment originator
originator
optional
Object
Details about the entity sending the payment. If the account originating the payment is enabled to provide this information according to the supplied account number, all the values should be null. If these values are supplied in the request they override the originator profile defined for the account.
receiver
required
Object
In the case of Pull payments, this is the account the funds are being pulled from.
secCode
required
String
Standard Entry Class (SEC) codes required by Nacha for every ACH transaction.
description
required
String
Description of the payment. Maximum 10 characters.
transactionType
required
String
Sending or requesting funds: - Push (originator is sending funds—debit) - Pull (originator is receiving funds—credit)
amount
required
Integer
Dollar amount of payment in positive integral cents. For example, write $1.00 as 100.
serviceType
required
String
When the payment completes: - Standard (Payment effective the following business day. International payments must use this service type.) - SameDay (Payment effective same day, subject to certain constraints. See ACH overview.)
extendedDetails
optional
Object
ACH-specific details. If the transactionType is pull and secCode is WEB you must include a paymentType value in this object. If the secCode is POS you must include a cardTransactionType value. Learn more on the Nacha site.
iatDetails
optional
Object
Required if the secCode is IAT. Do not enter values for these attributes for any other secCode.
addenda
optional
String
Additional transaction-related information
purpose
optional
String
Reason for the ACH transfer. For internal use only. The data is not included with the outgoing ACH batch file.
clientIdentifier
optional
String
Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes.


Originate ACH client batches

Submits 2 or more payments as a batch. Note that each batch payment must be originated from the same CR account number. If originating from multiple CR accounts, the payments from each account must be submitted as separate batches. For each payment, include the request attributes in the payments object of the request as shown in the code snippet.

POST
Request
Response
Body Parameters
clientIdentifier
required
String
Use this attribute to add your own unique identifying string to a payment call or COS record. This attribute is useful for idempotency purposes. Use this field to enter a clientIdentifier for the entire batch. You can also add a separate clientIdentifier for each payment.
payments
optional
Object
The information for each payment in the batch.
extendedDetails
optional
Object
ACH-specific details. If the transactionType is pull and secCode is WEB you must include a paymentType value in this object. If the secCode is POS you must include a cardTransactionType value. Learn more on the Nacha site.


Cancel ACH client batches

Cancels any incomplete payments and stops further processing of any remaining payments in the batch. If you need to cancel many payments in a client batch, it's most efficient to cancel a client batch before all the payments have imported rather than try to cancel a large number of payments individually.

Cancel an ACH client batch by its ID
POST
Request
Path Params
id
required
String
The unique ID of the batch payment, received in the batch origination response as the id attribute. This ID is in GUID format.


Response attributes

The response attributes for this call are the same as for Originate ACH client batches.

Associated webhook events

Event Name

Description

Ach.Batch.Canceled

Any pending or on-hold payments in an ACH client batch canceled

Ach.Batch.Imported

Entire ACH client batch import process into the CR system complete

Ach.Payment.Canceled

ACH payment canceled at partner request

Ach.Payment.Rejected

ACH payment rejected due to a compliance failure or fail to fund

Ach.Payment.Sent

ACH payment sent to the Federal Reserve

Ach.Payment.Received

ACH inbound payment received

Ach.Payment.ReceivedEarly

ACH early direct deposit payment received

Ach.Return.Received

ACH payment was returned from the receiving bank and has been marked as received

Ach.Noc.Received

A Notification of Change was sent from the receiving bank regarding a previous origination

Ach.Hold.Escalated

ACH inbound or outbound payment is on hold and it's status was escalated. This is often used to indicate that additional actions are needed

Related topics

Tutorials

🤔
Have a question?
Our super-smart AI, knowledgeable support team and an awesome community will get you an answer in a flash.
To ask a question or participate in discussions, you'll need to authenticate first.