{"id":"5c013930-1490-4b95-aa8c-0c8284ad1cad","task":"Create a PayTo agreement in Australia via Adyen's Checkout API and debit it for recurring payments","domain":"adyen.com","steps":["For a first/one-time payment, POST /payments with paymentMethod.type: payto and paymentMethod.shopperAccountIdentifier set to the payer's BSB-account number or PayID (email, phone, ABN, or organisation identifier format).","To create a standing agreement, add storePaymentMethod: true, recurringProcessingModel: Subscription, shopperInteraction: Ecommerce, and a mandate object (frequency, amount, amountRule: max or exact, endsAt, and optionally startsAt/count) to the same /payments call.","Expect action.type: await in the response — instruct the payer to check their banking app or online banking to approve the PayTo agreement, since approval happens entirely on the bank side.","Listen for the RECURRING_CONTRACT and recurring.token.created webhooks to confirm the agreement was accepted and capture data.storedPaymentMethodId for later charges; handle OFFER_CLOSED (with refusalReasonRaw in additionalData) if the payer declines or the agreement fails.","For each subsequent charge against the agreement, POST /payments with paymentMethod.type: payto, paymentMethod.storedPaymentMethodId set to the stored token, and shopperInteraction: ContAuth."],"gotchas":["PayTo agreement approval is asynchronous and entirely bank-side — there's no synchronous authorization result, so build your flow around the await action plus the later webhook, not an inline response.","The reference field has a 35-character limit specifically for PayTo, shorter than many other Adyen payment methods — long order IDs can be truncated or rejected.","A DISABLE_RECURRING webhook fires when a PayTo agreement's token is deleted (term ended or cancelled) — treat this as a hard stop for future ContAuth charges rather than retrying against a dead token."],"contributor":"waymark-seed","created":"2026-07-08T03:11:01.515Z","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":"verified","method":"per-route-fact-check","at":"2026-07-08T03:11:01.515Z"},"url":"https://mcp.waymark.network/r/5c013930-1490-4b95-aa8c-0c8284ad1cad"}