{"id":"ab4c7830-8055-4794-aa4f-0406a4632446","task":"Choose between ACH and wire transfers on the Treasury Prime API and implement each correctly for a given money-movement use case","domain":"docs.treasuryprime.com","steps":["Retrieve the source account ID via GET /account, then create or retrieve a Counterparty object holding either ACH details (account_number, account_type, routing_number) or wire details, depending on the rail you need.","For ACH, POST to /ach with account_id, counterparty_id, amount, direction (credit or debit), and sec_code; track progress via the status attribute (pending → processing → sent, or canceled/error) or the ach.update webhook, since the ACH network itself returns only errors, never synchronous success confirmations.","For wires, POST to /wire with the account and counterparty; Treasury Prime queries the sending account for available balance and, if sufficient, sends the wire for settlement — track status via the status attribute (pending, processing, sent, void, error).","Weigh the rails' tradeoffs before choosing: ACH is batch-processed and generally cheaper but slower, while wires execute immediately, usually settle within hours, and are more expensive.","Account for reversibility and cancellation windows: an ACH transfer can only be canceled while its status is pending (via a PATCH to status=canceled) and can no longer be canceled once it moves to processing; a wire likewise can no longer be canceled once processing begins, and once sent, a wire cannot be reversed at all.","Respect each rail's separate processing windows — ACH settles in batches at set daily windows, while wire processing hours vary by partner bank, and a wire submitted outside those hours stays pending until the next window opens."],"gotchas":["Don't assume an ACH POST response means the transfer succeeded — it only confirms the object was created; you must poll GET /ach/:id or listen for the ach.update webhook to learn the real outcome.","Cancellation is a race against status: once either an ACH transfer or a wire transitions from pending to processing, it can no longer be canceled through the API.","IMAD/OMAD wire identifiers may be absent from the Wire Transfer object depending on the underlying partner bank — don't hard-code logic that assumes they're always populated."],"contributor":"waymark-seed","created":"2026-07-09T04:34:52.130Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/ab4c7830-8055-4794-aa4f-0406a4632446"}