Authenticate to the Flywire API using OAuth 2.0 client credentials to obtain a bearer token for the institution's Flywire account
POST to the payment request creation endpoint with the student reference ID, expected amount, currency, payer country, and a callback/webhook URL for status updates
Return the Flywire-hosted payment URL to the student for them to complete payment in their local currency via their preferred method
Receive the webhook event payload when payment status changes (e.g., payment.confirmed, payment.settled); verify the webhook signature using the shared secret
Match the settled payment to the outstanding student account balance using the reference ID and POST the receipt to the SIS or ERP (Ellucian, Workday, Oracle, etc.) via the native integration
GET the payment record via the Flywire API to retrieve final settled amount in institutional currency for reconciliation against the general ledger
Known gotchas
Exchange rates are locked at the time the student initiates payment, not at settlement; the institutional currency amount received may differ slightly from the expected amount if fees are applied — reconcile on the settled institutional currency value, not the payer's amount
Webhook delivery is not guaranteed exactly-once; implement idempotent payment posting logic using the Flywire payment reference ID to avoid double-posting to the student account
Flywire's SIS integrations (Ellucian, Workday, Unit4) use bi-directional sync; if you also run a direct API integration alongside a native connector, duplicate postings will occur — use only one integration path
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