ACH Payments

Full control over FedACH

Originate ACH credits and debits, track and initiate returns, and store frequently used counterparty details.

1await summitspan.achTransfers.create({
2  account_id: "account_in71c4amph0vgo2qllky",
3  amount: 378289,
4  routing_number: "101050001",
5  account_number: "877362798",
6  individual_name: "Sarah Ogazi",
7  company_entry_description: "Inv237483",
8  company_name: "Otto Group",
9});
Same-day by default

Send ACH payments that settle in as little as a few hours.

Flexible account numbers

Automate reconciliation with a unique account number for every counterparty.

Faster access to funds

Use debited funds right away when you maintain a reserve.

Transparent availability

Know exactly when your transfers are submitted and when funds land.

Passthrough codes

See return codes and standard entry class codes directly.

Correlated returns

Returns are matched to their original transfers automatically.

Stable company identifiers

Set predictable statement descriptors for recipients.

Saved counterparties

Store external account details for repeat payments.

Stable and reliable

Predictably fast ACH payments

ACH can feel like a black box. Transfers take days, and it’s rarely clear when funds will actually be available.

We default to same-day ACH, submit at every Fed window, and give you settlement tracking you can build on — so payments often arrive in hours.

  • Same-day ACH by default
  • Submissions at every ACH window
  • Transparent settlement tracking

ACH in hours
instead of days

Sent 4:00 PM
Submitted 4:45 PM window
Deposited 6:00 PM
Window
Window
7:00 AM2 hrs10:00 PM

Complete control

Preview every inbound payment

Review incoming ACH debits for an hour before they post. Reject unwanted debits, fund accounts just in time, or write your own allow and block rules for advanced cases.

  • Just-in-time funding
  • Custom allow and block lists
  • Auto-reject unwanted transfers

Just-in-time funding

External
Account
1. Inbound ACH
debit received
4. Inbound transfer
allowed to settle
2. Instruction created
to move funds
3. Account transfer
settles
Account
••1234
Account
••5678
1await summitspan.accountTransfers.create({
2  account_id: "account_5678",
3  destination_account_id: "account_1234",
4  amount: 1000,
5  description: "Just-in-time funding",
6});

Operator workflows

Always know where your money is

Track every ACH payment from the dashboard. See which transfers are waiting for submission, preview when funds will arrive, and follow returns as they happen.

ACH Transfer
Invoice 2117532
$5,237.00
Transfer created
Approved by Ian Crease
Submitted to the Federal Reserve
Settlement with recipient bank

Bare metal APIs

Every detail directly from FedACH

Other ACH processors
Raw return codesreturn_reason_code

Understand exactly why a payment came back with 80+ specific codes.

Trace identifierstrace_number

Give recipients proof that a payment was sent.

Company identifierscompany_name

Craft predictable statement descriptors for recipients.

Addendaaddendum

Attach remittance details like an invoice number.

Standard entry class codesstandard_entry_class_code

Declare the kind of payment you’re sending, like a direct deposit (PPD).

FedACH for developers

Read our documentation
1await summitspan.achTransfers.create({
2  amount: 10000,
3  account_id: "account_in71c4amph0vgo2qllky",
4  routing_number: "101050001",
5  account_number: "987654321",
6  individual_name: "Ian Crease",
7  statement_descriptor: "July Consulting",
8  company_name: "ACME Corp",
9});

Create ACH debits and credits programmatically.

  • Same-day ACH by default, at every window.
  • Returns are correlated automatically.
  • Webhooks keep you current on the transfer lifecycle.
Learn more about ACH

Learn how Nacha works

ACH uses a fixed-width file format called Nacha. Learn what’s in each file and what you can customize.

nacha.txt
101 010500011 6022140762301311601A094101SUMMITSPAN  5200OTTO
GROUP 1602214076CCDInv237483 120220120220 1065503680000001
101050001 877362798 0000000000378289 SARAH OGAZI006550368
000000182000000080137163116000000000000000000000123456789
06550368000000190000010000020000000801371631160000000000000
9999999999999999999999999999999999999999999999999999999999