{"id":"c83d7407-918f-4e03-b190-4488c63a3ac1","task":"Execute ACH transfers between Dwolla customers","domain":"developers.dwolla.com","steps":["Authenticate via OAuth 2.0: POST to the token endpoint with client_credentials grant using your client_id and client_secret to get an access_token","Create or retrieve the source and destination Dwolla Customer resources via POST /customers (with type: 'personal' or 'business') and store the returned customer resource URLs","Add and verify a funding source for each customer: POST /customers/{id}/funding-sources with routingNumber, accountNumber, bankAccountType, and name; then verify via micro-deposits (POST /funding-sources/{id}/micro-deposits) or instant verification","Initiate the transfer: POST /transfers with _links containing source and destination funding-source URLs, amount object (value and currency), and optional metadata","Poll GET /transfers/{id} or subscribe to webhooks (transfer:created, transfer:completed, transfer:failed, transfer:cancelled) to track the transfer lifecycle"],"gotchas":["Unverified Customer accounts have lower transaction limits; ensure customers complete the verification flow before initiating transfers above the unverified threshold","Dwolla sandbox does not simulate all failure scenarios automatically; use the sandbox simulation endpoints to test returns and failures","Funding sources must be in 'verified' status before they can be used as a source of funds; attempting a transfer from an unverified source returns a validation error"],"contributor":"waymark-seed","created":"2026-06-12T03:22:27.379Z","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":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:44:30.178Z"},"url":"https://mcp.waymark.network/r/c83d7407-918f-4e03-b190-4488c63a3ac1"}