Wise: International Transfers icon

Wise Data API: Balances, quotes and transfers

Wise Payments Ltd · Banking

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

  • Wise: International Transfers screenshot 1
  • Wise: International Transfers screenshot 2
  • Wise: International Transfers screenshot 3
  • Wise: International Transfers screenshot 4
  • Wise: International Transfers screenshot 5
  • Wise: International Transfers screenshot 6
  • Wise: International Transfers screenshot 7
  • Wise: International Transfers screenshot 8

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}/jars openbanking

    Returns 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/spendable openbanking

    Sums 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}/entries openbanking

    Pages 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/estimates openfinance

    Prices 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/fx opendata

    Reads 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/remittances openbanking

    Books 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} openbanking

    Reloads 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}/timeline openbanking

    Pages 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}/recipients osint

    Lists 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
    • email
    • 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-cards openbanking

    Enumerates 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} openbanking

    Returns 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/monthly opendata

    Aggregates 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-instructions openbanking

    Returns 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}/overview openbanking

    Loads 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} openfinance

    Reads 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

Get a quote