Skip to content

Repository files navigation

Wise SDKs

Typed TypeScript and Python clients for the Wise Platform API, generated from Wise's official OpenAPI specification with Fern.

CI

Package Install Docs
TypeScript / JavaScript, Node 22+ npm install @mmzaini/wise-sdk TypeScript SDK
Python, Python 3.11+ pip install wise-sdk Python SDK
Optional React components, React 18/19 npm install @mmzaini/wise-react React package · Live preview

Community maintained and not affiliated with Wise. Both SDKs default to the sandbox.

Release notes and downloads.

Quick start

Create a sandbox account and an API token under Your Account → Connect and manage apps → API tokens. Set WISE_ACCESS_TOKEN in your server environment. Token availability depends on your account; see authentication for setup, restrictions and partner OAuth.

import { WiseClient } from "@mmzaini/wise-sdk";

const client = new WiseClient(); // Reads WISE_ACCESS_TOKEN; sandbox by default.
const profiles = await client.profiles.list();
const profile = profiles[0];
if (profile?.id == null) throw new Error("No profile available");

const balances = await client.balances.list({ profileId: profile.id, types: "STANDARD" });
console.log(balances.map(({ currency, amount }) => ({ currency, amount })));
from wise_sdk import WiseClient

with WiseClient() as client:  # Reads WISE_ACCESS_TOKEN; sandbox by default.
    profiles = client.profiles.list()
    if not profiles or profiles[0].id is None:
        raise ValueError("No profile available")
    balances = client.balances.list(profile_id=profiles[0].id, types="STANDARD")
    print([(balance.currency, balance.amount) for balance in balances])

Choose the intended profile explicitly when an account has several. For live requests, select WiseEnvironment.Production / WiseEnvironment.PRODUCTION and supply production credentials. Keep tokens and private keys on your server.

Coverage

  • Every REST operation in the official 2026Q3 snapshot, with consistent resource names.
  • Personal tokens, partner OAuth grants, token rotation helpers and mTLS transport setup.
  • Lazy recipient, activity and transfer iterators; statement downloads and raw responses.
  • Webhook signature verification and SCA challenge detection.
  • TypeScript: ESM and CommonJS, typed models and large integer ID support.
  • Python: sync/async clients, Pydantic models, context managers and py.typed.
  • React: display-only account cards, masked account details and money formatting.

Access depends on your account and partner agreement. Personal tokens cannot use all partner endpoints; EU/UK personal-token restrictions include funding transfers and retrieving statements. OAuth, mTLS, SCA and JOSE requirements still apply. Write requests never retry automatically. Read API details before using transfers, money values or pagination.

Documentation

Why another SDK

Wise does not offer an official JavaScript SDK for its Platform API. The unofficial clients I found were outdated or did not meet the structure and maintenance standards I wanted. This project provides typed clients, consistent resource names and a clear update process.

Both clients come from Wise's official OpenAPI specification, with small helpers for behavior that does not belong in OpenAPI. Stable resource names live in Fern overrides, so ordinary updates require a spec refresh and regeneration.

A daily workflow checks Wise's specification. Compatible changes regenerate, pass CI, merge and publish automatically; changes that need review open a draft PR. See automatic updates for the policy.

Repository layout

openapi/          Unmodified upstream spec, source checksum and endpoint metadata
fern/             Pinned generators, naming overrides and documented supplements
scripts/          Spec updates, generation, package checks and release tooling
sdks/typescript/  Generated client, TypeScript helpers, metadata and tests
sdks/python/      Generated client, Python helpers, metadata and tests
packages/react/   Optional components, styles, example and browser tests
tests/            Shared fixtures, automation checks and local mTLS server
docs/             Authentication, API details, maintenance and releases
.github/          CI, spec updates and publishing workflows

Development

Requires Node 22+, Python 3.11+ and Docker for generation. WSL works on Windows. From the repository root:

npm ci
npm --prefix sdks/typescript ci
npm --prefix packages/react ci
python -m venv .venv
. .venv/bin/activate
python -m pip install -e 'sdks/python[dev]'
npm run generate
npm test
npm --prefix sdks/typescript test
python -m pytest sdks/python/tests
npm --prefix packages/react test

See testing for browser, package-install and sandbox checks. Ordinary tests need no Wise credentials.

Contributing

Issues and pull requests are welcome. Include a small reproduction and redact tokens, personal information and account details. Generated code comes from the spec and overrides; fixes usually belong there or in helpers outside generated/. See CONTRIBUTING.md for the relevant checks.

License

MIT.

About

Unofficial TypeScript and Python SDKs for Wise Platform, with React account components.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages