Flywire · Authentication Profile

Flywire Authentication

Authentication

Flywire secures its APIs with apiKey, oauth2, and http-signature across 3 declared security schemes, as derived from its OpenAPI definitions. OAuth 2.0 is offered via the clientCredentials flow(s).

CompanyPaymentsCross-Border PaymentsFintechEducation PaymentsHealthcare PaymentsTravel PaymentsB2B PaymentsCheckoutWebhook
Methods: apiKey, oauth2, http-signature Schemes: 3 OAuth flows: clientCredentials API key in: header

Security Schemes

ApiKeyAuth apiKey
· in: header ()
OAuth2ClientCredentials oauth2
scheme: Bearer · in: header ()
FlywireDigest http-signature
· in: header ()

Source

Authentication Profile

flywire-authentication.yml Raw ↑
generated: '2026-09-02'
method: searched
source: https://developers.flywire.com/education/Content/api-basics.htm
docs:
- https://developers.flywire.com/education/Content/api-basics.htm
- https://solutions.flywire.com/en/invoicing/invoicing-api
- https://solutions.flywire.com/en/payment-requests/payment-request-api
notes: >-
  Flywire publishes no OpenAPI on any host, so this profile is SEARCHED from the
  developer documentation rather than derived from securitySchemes. The headline
  finding is that Flywire runs THREE DIFFERENT AUTHORIZATION MODELS across three
  public APIs, documented on two unconnected documentation estates, with no shared
  credential and no discovery document tying them together. An integrator who
  reads developers.flywire.com learns only about the static API-key header and
  would have no way to know that the Invoicing API speaks OAuth 2.0. Probed
  2026-09-02: /.well-known/oauth-authorization-server, /.well-known/openid-configuration
  and /.well-known/oauth-protected-resource return 404 on www.flywire.com,
  api.flywire.com, invoicing.flywire.com, app.flywire.com, app.demo.flywire.com,
  api-platform.flywire.com, api-platform-sandbox.flywire.com and
  developers.flywire.com — every scheme below must be learned from prose.
summary:
  types: [apiKey, oauth2, http-signature]
  api_key_in: [header]
  oauth2_flows: [clientCredentials]
  discovery_documents: []
  models_count: 3
schemes:
- name: ApiKeyAuth
  api: Flywire Payments API
  host: api-platform.flywire.com
  type: apiKey
  in: header
  parameter_name: X-Authentication-Key
  description: >-
    Per-application API key. Sent on every request as the X-Authentication-Key
    header alongside Content-Type: application/json. There is no scope surface,
    no expiry documented, and no rotation procedure published.
  registration: >-
    "Registering an application is a manual process at the moment." Contact
    Flywire to register an application and receive an API Key plus a Shared
    Secret for validating notifications.
  scoped: false
  sources: [docs]
  docs: https://developers.flywire.com/education/Content/api-basics.htm
- name: OAuth2ClientCredentials
  api: Flywire Invoicing API
  host: invoicing.flywire.com
  type: oauth2
  flow: clientCredentials
  token_endpoint: https://api.flywire.com/oauth/token
  token_request: JSON body with grant_type=client_credentials, client_id, client_secret
  token_response: access_token plus its time-to-live in seconds
  in: header
  parameter_name: Authorization
  scheme: Bearer
  description: >-
    OAuth 2.0 Client Credentials. Authorization is enforced on two independent
    axes and BOTH fail closed with a bodyless 403: the token must carry the scope
    for the resource and operation, AND the token must be scoped to the company in
    the :reference path segment. Permissions that belong to dashboard users rather
    than to applications are never granted to an application token, so some
    operations are unreachable through the API entirely.
  scoped: true
  scopes_ref: scopes/flywire-scopes.yml
  scope_count: 16
  sources: [docs]
  docs: https://solutions.flywire.com/en/invoicing/invoicing-api
- name: FlywireDigest
  api: Flywire Payment Request API
  host: app.flywire.com
  type: http-signature
  in: header
  parameter_name: X-Flywire-Digest
  algorithm: base64(HMAC-SHA256(request body, shared secret))
  description: >-
    Request-level HMAC digest rather than a bearer credential. The digest is
    computed over the request body — or, for DELETE, over the payment request ID —
    using a shared secret arranged with Flywire. This is the same header name and
    algorithm Flywire uses to sign OUTBOUND webhook callbacks, used here in the
    inbound direction.
  scoped: false
  sources: [docs]
  docs: https://solutions.flywire.com/en/payment-requests/payment-request-api
webhook_auth:
  header: X-Flywire-Digest
  algorithm: base64-encoded HMAC-SHA256 hash of the message body and a shared secret
  secret: Shared Secret issued at application registration / arranged with your account manager
  direction: inbound-to-your-endpoint
  note: >-
    Flywire signs callbacks with the same header and algorithm it accepts on the
    Payment Request API. Verify the digest before trusting a callback body.
  docs: https://solutions.flywire.com/en/webhooks/notifications-v2
gaps:
- No OAuth authorization-server metadata or OpenID configuration is served on any Flywire host (all probes 404, 2026-09-02).
- No token expiry, rotation or revocation policy is published for the Payments API static key.
- The three authorization models are documented on two separate doc sites that do not cross-link their auth sections.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/flywire-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.