Investigate a ticket
Paste what the customer sent: a payment order, return, incoming payment detail, expected payment, a webhook body, a list of webhook events, or an API error response. The engine checks it against the documented lifecycle, enums from the public OpenAPI spec, return codes, rail rules and the stablecoin support matrix, then writes the findings, next steps, routing and a reply.
Ticket input
Findings
Load a sample or paste an object.
Reply draft (template)
Run an investigation first.
AI draft (Workers AI, grounded on findings)
The model receives only the findings and the customer message, with instructions to invent nothing. Always review before sending.
Onchain settlement check
For "where is my stablecoin payout" tickets. Reads the transaction straight from the chain: success or revert, confirmations and finality, and every transfer of an MT-supported stablecoin with its real decimals. Optionally compare against the payment order.
Compare with the payment order (optional)
MT amounts use the coin's smallest unit with 6 decimals. The onchain value uses the token contract's real decimals, which this check reads per network.
Result
Look up a hash, or load a recent real transfer to see the check run.
Rail windows & status
Answers "why has this not settled yet". Live Modern Treasury status and scheduled maintenance, today's FedACH same-day windows, banking-day checks against the Federal Reserve holiday calendar, and MT's processing cutoffs relative to a bank cutoff.
Modern Treasury status (live)
Loading…
Banking day check
FedACH same-day windows, today
Federal Reserve FedACH schedule (transmission deadline, then settlement). Bank cutoffs sit earlier than these, and MT processing cutoffs sit earlier again. Same Day ACH entries are capped at $1,000,000 each under Nacha rules. RTP and FedNow run 24x7x365.
MT processing windows for a bank cutoff
Per MT docs: two processing cutoffs, typically 60 and 10 minutes before the bank cutoff, and no more than 50,000 payments per window.
Fed holiday calendar (closed days)
BAI2 reconciliation
Parse a BAI2 bank file, verify its control totals and record counts, then match detail transactions to expected payments with the strategies MT documents (one to one, one transaction to many expected payments). Unmatched items become the manual-reconciliation queue.
BAI2 file
Expected payments (JSON array)
Webhook verification
MT signs each webhook body with HMAC-SHA-256 using the webhook key and sends the hex digest in X-Signature. Most "invalid signature" tickets come from verifying a re-serialised body. This computes the signature in the browser with WebCrypto and shows where it diverges.
Result
Keys stay in this browser; nothing is sent to the server.
About
Built by Edward Tay as a work sample for the Modern Treasury Technical Support Specialist application. It is an independent tool, not affiliated with Modern Treasury, and it has no access to any Modern Treasury account or API key.
| Part | Grounding |
|---|---|
| Lifecycle and enums | Payment order status transitions from MT's payment order object docs; status, type, subtype and return code enums from the public OpenAPI spec (github.com/Modern-Treasury/modern-treasury-openapi). |
| Return and NOC codes | All 50 codes parsed from MT's ACH Return Codes page, with unauthorized and administrative categories from MT's returns guide and Nacha thresholds. |
| Stablecoins | Support matrix from MT's stablecoin docs. Token contracts and mints verified on chain (symbol and decimals) on 14 September 2026. Lookups use public RPC endpoints with failover. |
| Rail windows | Federal Reserve holiday schedule 2026 to 2030 and FedACH processing schedule; MT processing-window rule from MT docs. Status comes live from status.moderntreasury.com. |
| Samples | Sample tickets are constructed in the documented object shapes with invented IDs. They are not customer data. |
| AI | Optional reply drafting runs on Cloudflare Workers AI (Llama 3.3 70B) with the findings as its only source. |
Write-up: moderntreasury-support.edwardtay.com