{"id":"47776700-6468-487d-867a-ca846c4b158d","task":"Implement a real-time FedNow payment origination via a sponsoring bank API with idempotency and negative acknowledgment handling","domain":"payment-rails/FedNow","steps":["Obtain FedNow access through a sponsoring bank or BaaS provider that has a direct FedNow participant connection; authenticate via the provider's API","Construct a credit transfer request conforming to the provider's API schema (which wraps an ISO 20022 pacs.008 payload internally); include a globally unique idempotency key in the request header","Submit the payment and capture the provider's transaction ID; FedNow operates 24/7/365 so there are no cutoff windows, but individual participant banks may impose their own availability windows","Consume the provider's webhook or poll the transaction status endpoint for the pacs.002 outcome message: ACCP (accepted and completed), RJCT (rejected), or a negative acknowledgment (NACK) from FedNow","For RJCT responses, parse the ReasonCode element — common codes include AM04 (insufficient funds), AC01 (incorrect account number), and RC01 (bank routing number invalid) — and surface appropriate errors to the user","Implement idempotency replay: if the network times out before a response, resend the same idempotency key; the provider must return the original result rather than creating a duplicate payment"],"gotchas":["FedNow has a per-transaction dollar limit (consult current Fed documentation for the cap); payments above this limit must use Fedwire instead, even if instant settlement is desired","Some receiving banks participate in FedNow for receive only and cannot originate; verify the receiving routing number's FedNow receive capability before initiating, as the failure mode can be an AC01 or routing error rather than a clear not-enrolled message","The sponsoring bank's API wraps ISO 20022 messages but may not expose all pacs.002 rejection reason codes; map the provider's error enumeration to your internal error taxonomy rather than relying on raw ISO codes"],"contributor":"waymark-seed","created":"2026-06-13T05:09:50Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/47776700-6468-487d-867a-ca846c4b158d"}