# Wise GraphQL Schema ## Overview This conceptual GraphQL schema models the Wise (formerly TransferWise) Platform API surface, covering cross-border money transfers, multi-currency accounts, balances, recipients, quotes, payments, and webhooks. The schema is derived from the Wise Platform REST API documented at https://docs.wise.com/api-docs/ and the open-source libraries published at https://github.com/transferwise. Wise does not currently expose a native GraphQL endpoint. This schema represents a faithful GraphQL translation of the REST API's resource model, intended for use in API design tooling, documentation, and integration planning. ## Schema Source - REST API Docs: https://docs.wise.com/api-docs/api-reference/ - GitHub Organization: https://github.com/transferwise - Sandbox: https://api.sandbox.transferwise.tech ## Domain Areas ### Identity and Profiles Wise scopes all resources to a **Profile**, which represents either a personal or business customer entity. `Profile` is the root resource; nearly every other API call requires a `profileId`. - `Profile` — top-level entity (personal or business) - `PersonalProfile` — individual human customer details - `BusinessProfile` — business/company customer details - `ProfileDetails` — combined personal or business detail union - `ProfileAddress` — residential or registered address on file - `ProfilePhone` — phone number associated with a profile - `ProfileEmail` — verified email address for a profile ### Balances and Accounts Wise multi-currency accounts hold balances in individual currency pockets. A profile can hold many `Balance` objects, one per currency. Local bank details (IBAN, ACH routing, sort codes) are issued per currency pocket. - `Balance` — aggregate balance container for a profile - `CurrencyBalance` — a single currency pocket inside a balance - `BalanceStatement` — a dated statement for a currency balance - `StatementInterval` — the date-range bounds of a statement - `Account` — generic account abstraction - `WiseBankAccount` — Wise-issued local bank account details - `IBAN` — International Bank Account Number details - `AccountDetails` — collection of receiving account details per currency - `BankCode` — generic bank code (BIC/SWIFT) - `SortCode` — UK bank sort code - `ACHRouting` — US ACH routing number details ### Currencies and Exchange Rates - `Currency` — ISO 4217 currency code and metadata - `SupportedCurrency` — currency that Wise can send to or receive from - `CurrencyPair` — source/target currency combination - `ExchangeRate` — live mid-market rate for a currency pair - `ExchangeRateHistory` — historical rate data points for a pair ### Quotes A quote pins the exchange rate and fee for a prospective transfer. It expires after a short window. - `Quote` — a rate/fee lock for a source-to-target currency conversion - `QuoteRequest` — input parameters for requesting a quote - `PaymentOption` — a specific pay-in/pay-out combination available for a quote - `FeeSummary` — aggregated fee total for a quote or transfer - `FeeBreakdown` — itemized fee components (transfer fee, FX margin, etc.) - `Delivery` — delivery timeline for a quote option - `DeliveryEstimate` — estimated date/time of funds arrival ### Transfers A transfer moves money from a source balance (or pay-in) to a recipient account. It references a quote and a recipient. - `Transfer` — a cross-border or cross-currency money movement - `TransferRequest` — input fields to create a transfer - `TransferDetails` — descriptive metadata attached to a transfer (reference, purpose code) - `BatchTransfer` — a group of transfers submitted together - `BatchTransferItem` — one transfer within a batch ### Transactions Transactions record the credit/debit activity on a balance. - `Transaction` — base transaction type - `TransferTransaction` — transaction generated by a transfer - `ConversionTransaction` — transaction generated by a currency conversion - `DepositTransaction` — incoming deposit transaction - `CashbackTransaction` — cashback credit transaction - `Statement` — list of transactions for a balance over a period ### Recipients Recipients store the destination bank account details for transfers. - `Recipient` — a saved beneficiary record - `RecipientBankAccount` — bank account fields for a recipient - `RecipientAddress` — postal address for a recipient - `RecipientEmail` — email address for email-delivery recipients - `RecipientType` — enum of recipient account type (bank account, email, etc.) ### Payments - `Payment` — a funding event that finances a transfer - `PaymentMethod` — available pay-in method (bank debit, card, balance) - `BankDebit` — bank debit (ACH, BACS, SEPA) payment details - `CardPayment` — card pay-in details - `Mandate` — direct debit mandate for recurring payments - `MandateStatus` — lifecycle status of a mandate ### Authentication and Authorization - `APIKey` — a long-lived server-side API key - `Token` — generic token container - `OAuthToken` — an OAuth 2.0 access/refresh token pair - `OAuthScope` — a specific permission scope granted to an OAuth token ### Webhooks and Events - `WebhookEvent` — an event payload delivered to a subscriber endpoint - `WebhookSubscription` — a registered webhook endpoint and its trigger criteria ## Type Count This schema defines **68 named GraphQL types** including objects, enums, inputs, and a union, plus root Query and Mutation types. ## Files | File | Description | |---|---| | `wise-schema.graphql` | Full GraphQL SDL with all types, queries, and mutations | | `wise-graphql.md` | This documentation file |