Blacksec

Administrator
Staff member
ROOT
VIP
ACH is the quiet workhorse — batch-processed, cents to move, dollars to reverse under the right claims. PULL direction (you authorize your bank to debit someone else's account, or they authorize theirs) versus PUSH (you send outbound) — mandate rules, return windows, and how ACH sits under every wallet withdrawal you've ever made. Mechanics hidden below.

RAIL CORE (FAST TRACK)

ACH = Automated Clearing House, the US batch network behind direct deposit, bill pay, and wallet-to-bank transfers. Two directions: PPD/CCD debit (pull — receiving institution debits the source account under a mandate) and credit (push — source account funds land at destination). Batches settle multiple times daily, entries cost pennies to dollars, and the whole thing runs on authorizations, not real-time funds verification — which creates both its utility and its reversal surface.

PULL MECHANICS

  • How a pull works: originator (the party pulling) sends debit entry with routing+account+routing number and mandate info; receiving bank checks account status (not usually funds in real time) and posts debit.
  • Mandate requirement: consumer account pulls require authorisation — written, signed, or electronic per NACHA rules. Without valid mandate, returns as "unauthorized" are free and fast for the consumer.
  • Return windows: unauthorized consumer returns up to 60 days (internet-initiated/TEL-ish classes), account-error returns 2 days — meaning every pull sits under a 60-day clawback risk on consumer accounts.
  • Same-day ACH: multiple settlement windows daily (morning/afternoon/evening) — faster posting, same return rules.
  • Where pulls power things: bank transfers initiated at fintechs (your "move money from Chase to Ally" = ACH debit + credit pair), loan payments, subscription billing, wallet top-ups.

PUSH vs PULL (CHOOSING DIRECTION)

PropertyPUSH (credit out)PULL (debit in)
Reversibilityharder to reverse once settled60-day unauthorized window on consumer
Speedsame-day availablesame-day available
Controlyou initiate from YOUR bank UIinitiator initiates against THEIR mandate
Failure modereject for insufficient funds/invalid accountR01-R10 return codes with reason
Cashout usagestandard outbound from drop, low frictioninbound value only with valid mandate relationship

Return codes worth memorizing: R01 insufficient funds, R06/R07/R10 unauthorized (consumer claws back), R29 corporate customer advises not authorized, R03 no account/unable to locate. Every code tells a story about WHY the money came back.

SCRUTINY LAYER

  • NACHA rules require originators to have returns within check (unauthorized returns over thresholds → originator monitoring, possible debiting restrictions).
  • Receiving banks monitor debit/credit patterns per account: pull-heavy accounts receiving many unrelated debits = ACH fraud pattern.
  • Sanctions screening on entry detail addenda (name fields) — matches freeze pre-posting.
  • Same-day ACH speed makes reversals racy: money posts faster than some controls react — which is why return rates are the metric every originator watches.

DEATH CONDITIONS

  • Pull without durable mandate relationship: consumer returns unauthorized within days, originator eats return + fees + monitoring attention.
  • Pull-spam pattern: many small debits against accounts with no billing relationship — textbook ACH fraud, immediate originator restrictions.
  • Fresh receiving account + ACH credit wave + instant outbound ACH — layering pattern, both institutions flag.
  • Originator being used as service (third parties "originating ACH" through your ODFI relationship) — fraud exposure without direct relationship.
  • Push to wrong routing/account number: reversal of mis-posted credits possible under reversed-entry rules — "free money" mistakes get corrected.

WORKING SEQUENCE

Bash:
standard outbound (push) from drop:
  -> initiate from drop's own online banking UI (never third-party originator)
  -> amount: matches account history, receiver aged, purpose coherent
  -> same-day ACH for speed, standard for camouflage — mixed
  -> receiving: age before onward, no immediate re-push wave
inbound (pull only under legitimate mandate):
  -> valid billing/payer relationship, documented
  -> expect returns possible for 60 days — hold float

Push from own UI, mixed speed lanes, receiving side aged — ACH moves value for pocket change because the whole system runs on authorization discipline. The batch runs overnight; the monitoring never does.

— RELATED GUIDES —

Own UI, matched amounts, mixed lanes — ACH is the plumbing under every rail in this book, and plumbing behaves when you stop trying to force pressure through it at midnight. Push patient, receive aged, float for the 60-day window.
 
Last edited: