Wise (formerly TransferWise) is the international-money Android app from London-based Wise Payments Ltd — the same client still ships as com.transferwise.android. People send and receive across currencies at the mid-market rate, hold a multi-currency account with local bank details, spend on a Wise debit card (Google Pay, PIN, freeze and spending controls), request or split payments, convert between balances, and follow a transfer on a money-tracker timeline. Personal and business profiles, team cards, PIX QR in Brazil, Open Banking / Open Finance consents, eSIM and lounge-pass travel extras, kids' accounts and rate alerts sit in the same logged-in shell. It competes with Revolut, Remitly and bank FX desks for consumers and SMEs who move money between the United States, the euro area, India, Brazil and other send/receive corridors.
Multi-currency cash ledgers pin availableAmount and reservedAmount on each jar, while an FX quote pairs sourceCurrency with guaranteedTargetAmount before a send is booked. Transfer rows then carry status, estimatedDelivery and trackingUrl; the home feed adds activityType and primaryAmount, and card authorizations expose merchantName plus panLastFour.
Treasury desks reconcile jars against the general ledger, send-ops consoles poll payout state, expense tools tag card spend from monthlyInsights buckets, and payroll routers read saved contacts (contactId, legalEntityType) plus local bankName coordinates. openData Studio turns those objects into callable open data.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
List multi-currency balances
GET
/v2/wallets/{walletRef}/jarsopenbankingReturns every currency jar on the profile's multi-currency account — available, reserved and cash amounts — used to paint the balance details screen.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- balances
- id
- balanceId
- currencyCode
- availableAmount
- reservedAmount
- cashAmount
- totalWorth
GET /v2/wallets/12345678/jars HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "balances": [ { "id": 80123456, "balanceId": 80123456, "currencyCode": "USD", "availableAmount": { "value": 2450.35, "currency": "USD" }, "reservedAmount": { "value": 120.00, "currency": "USD" }, "cashAmount": { "value": 2450.35, "currency": "USD" }, "totalWorth": { "value": 2570.35, "currency": "USD" } } ] }Available funds across balances
GET
/v2/wallets/{walletRef}/jars/spendableopenbankingSums spendable cash across jars so the home multi-currency screen can show a single available-funds figure before a send or card spend.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- amount
- availableAmount
- currencyCode
GET /v2/wallets/12345678/jars/spendable HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "amount": { "value": 4120.80, "currency": "EUR" }, "availableAmount": { "value": 4120.80, "currency": "EUR" }, "currencyCode": "EUR" }Balance movement list
GET
/v2/jars/{jarId}/entriesopenbankingPages the ledger of credits and debits on one balance jar — the movement list behind a single-currency balance screen.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- currency
- amount
- activityType
- primaryAmount
- createdOn
GET /v2/jars/80123456/entries?pageSize=20 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "items": [ { "id": "mv_9f21", "currency": "USD", "amount": { "value": -85.00, "currency": "USD" }, "activityType": "TRANSFER", "primaryAmount": { "value": 85.00, "currency": "USD" }, "createdOn": "2026-10-12T14:22:01Z" } ] }Create FX quote
POST
/v2/pricing/estimatesopenfinancePrices a corridor at the mid-market rate plus fee so the send calculator can lock sourceCurrency, targetAmount and guaranteedTargetAmount before booking.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- sourceCurrency
- targetCurrency
- sourceAmount
- targetAmount
- rate
- fee
- feePercentage
- guaranteedTargetAmount
- rateType
- rateExpirationTime
- paymentOptions
- preferredPayIn
- payIn
- payOut
POST /v2/pricing/estimates HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "profileId": 12345678, "sourceCurrency": "USD", "targetCurrency": "EUR", "sourceAmount": 1000, "preferredPayIn": "BALANCE" }{ "id": "quote_c4e8", "sourceCurrency": "USD", "targetCurrency": "EUR", "sourceAmount": 1000.00, "targetAmount": 918.40, "rate": 0.9215, "fee": 3.69, "feePercentage": 0.37, "guaranteedTargetAmount": 918.40, "rateType": "FIXED", "rateExpirationTime": "2026-10-16T12:30:00Z", "paymentOptions": [{"payIn": "BALANCE", "payOut": "BANK_TRANSFER"}] }Mid-market FX rates
GET
/v2/market/fxopendataReads the live mid-market rate for a currency pair that the rate graph and rate-alert screens chart.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- source
- target
- value
- rate
- rateTimestamp
GET /v2/market/fx?source=USD&target=EUR HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "source": "USD", "target": "EUR", "value": 0.9215, "rate": 0.9215, "rateTimestamp": "2026-10-16T11:05:00Z" }Create transfer
POST
/v2/remittancesopenbankingBooks a send against a quote and returns transfer id, status and estimatedDelivery for the transfer details screen and the money tracker.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- quoteUuid
- status
- sourceCurrency
- targetCurrency
- sourceAmount
- targetAmount
- customerTransactionId
- reference
- estimatedDelivery
- trackingUrl
POST /v2/remittances HTTP/1.1 Authorization: Bearer <accessToken> Content-Type: application/json { "quoteUuid": "quote_c4e8", "targetAccount": 556677, "customerTransactionId": "ctid-9a1c", "details": { "reference": "Invoice 4421" } }{ "id": 99887766, "quoteUuid": "quote_c4e8", "status": "incoming_payment_waiting", "sourceCurrency": "USD", "targetCurrency": "EUR", "sourceAmount": 1000.00, "targetAmount": 918.40, "customerTransactionId": "ctid-9a1c", "reference": "Invoice 4421", "estimatedDelivery": "2026-10-17T15:00:00Z", "trackingUrl": "https://track.example.net/99887766" }Transfer status and receive details
GET
/v2/remittances/{remittanceId}openbankingReloads one booked send — status, amounts and trackingUrl — for the transfer details and cancellation screens.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- status
- sourceCurrency
- targetCurrency
- sourceAmount
- targetAmount
- estimatedDelivery
- trackingUrl
GET /v2/remittances/99887766 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "id": 99887766, "status": "outgoing_payment_sent", "sourceCurrency": "USD", "targetCurrency": "EUR", "sourceAmount": 1000.00, "targetAmount": 918.40, "estimatedDelivery": "2026-10-17T15:00:00Z", "trackingUrl": "https://track.example.net/99887766" }Activity feed
GET
/v2/wallets/{walletRef}/timelineopenbankingPages the home activity feed — transfers, card payments, conversions — that the activity detail screen opens from.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- activityType
- title
- primaryAmount
- secondaryAmount
- resourceType
- resourceId
- createdOn
GET /v2/wallets/12345678/timeline?pageSize=20 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "items": [ { "id": "act_4412", "activityType": "CARD_PAYMENT", "title": "Coffee Shop", "primaryAmount": { "value": -4.50, "currency": "EUR" }, "secondaryAmount": { "value": -4.90, "currency": "USD" }, "resourceType": "CARD_TRANSACTION", "resourceId": "ctx_88", "createdOn": "2026-10-15T08:11:22Z" } ] }Recipient contacts
GET
/v2/wallets/{walletRef}/recipientsosintLists saved payout recipients (contacts) the send flow picks in the recipient list and detail screens.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- contactId
- nickname
- legalEntityType
- currencyCode
GET /v2/wallets/12345678/recipients HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "contacts": [ { "id": 556677, "contactId": 556677, "nickname": "Ana Silva", "email": "[email protected]", "legalEntityType": "PERSONAL", "currencyCode": "BRL" } ] }Wise cards
GET
/v2/wallets/{walletRef}/payment-cardsopenbankingEnumerates debit cards on the multi-currency account — token, last four, expiry and status — for the cards tab and freeze/PIN flows.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- cardToken
- panLastFour
- expiryDate
- cardStatus
- scheme
GET /v2/wallets/12345678/payment-cards HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "cards": [ { "id": "card_12", "cardToken": "ctok_aa11", "panLastFour": "4421", "expiryDate": "12/28", "cardStatus": "ACTIVE", "scheme": "MASTERCARD" } ] }Card transaction details
GET
/v2/card-payments/{transactionId}openbankingReturns one card authorization/settlement — merchantName and transactionAmount — for dispute, receipt and 3-D Secure screens.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- merchantName
- transactionAmount
- status
- cardToken
- scheme
- createdOn
GET /v2/card-payments/ctx_88 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "id": "ctx_88", "merchantName": "Coffee Shop", "transactionAmount": { "value": 4.50, "currency": "EUR" }, "status": "SETTLED", "cardToken": "ctok_aa11", "scheme": "MASTERCARD", "createdOn": "2026-10-15T08:11:22Z" }Monthly spending insights
GET
/v2/wallets/{walletRef}/spending/monthlyopendataAggregates monthly spend buckets the insights screens chart from card and transfer activity.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- monthlyInsights
- year
- month
- primaryAmount
- activityType
GET /v2/wallets/12345678/spending/monthly HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "monthlyInsights": [ { "year": 2026, "month": 9, "primaryAmount": { "value": 1840.12, "currency": "USD" }, "activityType": "CARD_PAYMENT" } ] }Local bank details
GET
/v2/wallets/{walletRef}/deposit-instructionsopenbankingReturns the local account coordinates others use to pay the multi-currency account — bankName, accountType, accountNumber — shown on the bank details list screen.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- currencyCode
- bankName
- accountType
- accountNumber
- address
- city
- postCode
GET /v2/wallets/12345678/deposit-instructions HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "id": "bd_usd_1", "currencyCode": "USD", "bankName": "Community Federal Savings Bank", "accountType": "CHECKING", "accountNumber": "8310000000", "address": { "city": "New York", "postCode": "10001" } }Multi-currency account
GET
/v2/wallets/{walletRef}/overviewopenbankingLoads the account wrapper (id and linked balance jars) that the multi-currency home screen boots from.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- id
- multiCurrencyAccountId
- balances
- totalWorth
GET /v2/wallets/12345678/overview HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "id": "mca_77", "multiCurrencyAccountId": "mca_77", "balances": [80123456, 80123457], "totalWorth": { "value": 4120.80, "currency": "EUR" } }Open Banking consent
GET
/v2/account-access/consents/{consentId}openfinanceReads an Open Banking / Open Finance account-access consent authorized in the app's consent and Brazil Open Finance flows.
Auth: Bearer access token issued at sign-in (Authorization: Bearer); the session service rotates it with a refresh token.
- consentId
- status
- permissions
- profileId
GET /v2/account-access/consents/obc_55 HTTP/1.1 Authorization: Bearer <accessToken> Accept: application/json{ "consentId": "obc_55", "status": "AUTHORISED", "permissions": ["ReadAccounts", "ReadBalances"], "profileId": 12345678 }
Data categories
- balances
- fx-quotes
- transfers
- activities
- cards
- recipients
- bank-details
- spending-insights
Where teams use this data
Treasury FX reconciliation
Nightly jobs pull MCA jars (availableAmount, reservedAmount, cashAmount) and available-funds totals so an ERP can reconcile Wise cash against the general ledger by currency.
Send-ops dashboard
Ops consoles create a quote (sourceCurrency, targetAmount, guaranteedTargetAmount), book the transfer, then poll status, estimatedDelivery and trackingUrl until payout lands.
Card-spend analytics
Expense tools join the activity feed (activityType, primaryAmount) with card-transaction merchantName and monthlyInsights buckets to tag Wise-card spend without CSV exports.
Payout routing
Payroll and marketplace payouts read saved contacts (contactId, legalEntityType) and local bank-details (bankName, accountNumber) before funding a send.
Frequently asked questions
What balance fields does the Wise MCA expose?
Each jar returns availableAmount, reservedAmount, cashAmount and totalWorth, plus a profile-level available-funds total used on the home multi-currency screen.
How is a send priced before it is booked?
The quote object returns sourceCurrency, targetCurrency, sourceAmount, targetAmount, rate, fee, feePercentage, guaranteedTargetAmount and paymentOptions (payIn / payOut). Mid-market rates are also readable on their own with rateTimestamp.
Can I follow a transfer after booking?
Yes. A booked send returns id, status, estimatedDelivery and trackingUrl; the activity feed lists the same movement as activityType plus primaryAmount, and companion reads for receive details and the money tracker hang off the same transfer id.
Does the surface cover cards and Open Banking?
Cards list cardToken, panLastFour, expiryDate and cardStatus; a card transaction adds merchantName and transactionAmount. Open Banking / Open Finance consents return consentId, status and permissions, including the Brazil Open Finance flow.
Apps similar to Wise: International Transfers
- Remitly: Send Money & Transfer — Remitly is a Seattle-based remittance app that sends money to more than 170 countries, with express and economy options to bank accounts, cards and cash pickup.
- Revolut — Revolut is a London digital-banking app that holds multi-currency balances, issues debit cards and sends remittances using interbank-style foreign-exchange rates.
- Western Union — Western Union is a Denver-based money-transfer company that offers international transfers and currency exchange, including cash pickup through its agent network.
- PayPal — PayPal is a San Jose payments app that also runs international money transfers between PayPal balances and linked bank accounts or cards.
- Xoom — Xoom is PayPal's San Francisco digital money-transfer service for sending funds from the United States to bank accounts, cards and cash pickup abroad.
- MoneyGram — MoneyGram is a Dallas-based transfer service that sends money for cash pickup or deposit through agent offices in more than 200 countries and territories.
- OFX — OFX is an Australian international-payments company that moves money for people and businesses, with recurring transfers and forward contracts to lock an exchange rate.
- Xe — Xe is a Canadian foreign-exchange site and app, owned by Euronet Worldwide, that publishes live rates and runs Xe Money Transfer for consumer and business international payments.
Topics
- Wise API
- Wise balances
- Wise FX quote
- international transfer fields
- multi-currency account
- Wise card transactions
- Wise recipients
- open banking consent Wise
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use