Verify that each destination customer has a verified funding source (bank account) before initiating the mass payment; use the funding sources endpoint to check each destination's status
Construct the mass payment request body with the source funding source URL, the list of items (each with a destination funding source URL and amount), and an idempotency key in the header
Submit the mass payment and capture the mass payment resource URL from the Location header in the 201 response; poll the mass payment status endpoint or consume webhooks
When the mass payment reaches the processed state, retrieve the individual item results by listing mass payment items filtered by status FAILED; parse the failure reason for each failed item
For failed items, determine if the failure is retryable (e.g., insufficient funds — wait and retry) or terminal (e.g., account closed — notify the destination customer and remove the funding source)
Re-submit failed retryable items as individual transfers rather than a new mass payment to avoid re-processing already-succeeded items
Known gotchas
Dwolla mass payments do not support automatic retry of failed items; you must identify and re-submit failed items individually, and you must ensure idempotency to avoid double-payments on retries
The source funding source for a mass payment must be a verified bank account or Dwolla balance; using an unverified or micro-deposit-pending source will cause the entire mass payment to fail at submission, not at individual item level
Dwolla processes mass payment items sequentially per ACH file submission; there is no guaranteed per-item settlement timestamp — all items in a batch typically settle together, but failures can cause items to settle across different ACH cycles
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp