---
title: "Wallet details"
method: GET
path: "/wallets/{wallet_token}"
tags: ["Wallet"]
---

# Wallet details

`GET /wallets/{wallet_token}`

## Request

- Base URL: `https://api.masspay.io/v1.0.0`
- URL: `https://api.masspay.io/v1.0.0/wallets/{wallet_token}`
- Auth: one of:
  - API key in header `Authorization`
  - API key in header `x-api-key`
- TypeScript: <https://skmtc.dev/masspay/apis/masspay-api/docs/wallets/:wallet_token/get.ts> (a function with typed inputs; its response is checked against the schema)

This **GET** endpoint is used to retrieve a single wallet by its `wallet_token`: your own client wallet (`clnt_wlt_` token, type `CLIENT_FUNDS`) or a wallet of one of your users (`usr_wlt_` / `mp_card_` token, type `USER_FUNDS` / `MASSPAY_CARD`). <br> The response is the same wallet object `GET /wallet/{user_token}` lists: `type` tells whether it is a client or a user wallet, `user_token` is present for user wallets only, `balance` and `currency_code` give the current balance, `client_paying_fees` / `fee_wallet_token` describe who pays the wallet's fees, `card_type` / `last_4` are returned for card wallets and `wiring_instructions` when deposit instructions are available for the wallet. <br> A wallet that does not exist or does not belong to your account answers 404.

## Headers

- `Idempotency-Key` string

## Response `200`

Successful operation.

- WalletTxnResp
  - `user_token` string, required: Token representing the user
  - `token` string, uuid, required: Token representing the wallet
  - `balance` number, required: The wallet's current balance in USD
  - `currency_code` string, required: The currency wallet balance is stored in. Using [ISO 4217](https://en.wikipedia.org/wiki/ISO_4217) format. In most cases this value will be USD
  - `type` 'MASSPAY_CARD' | 'USER_FUNDS' | 'CLIENT_FUNDS' | 'SUBLEDGER_FUNDS', required: Type of wallet. USER_FUNDS and MASSPAY_CARD are user wallets (user_token present); CLIENT_FUNDS and SUBLEDGER_FUNDS are the client's own wallets
  - `card_type` 'MASTERCARD' | 'VISA' | 'AMEX' | 'DISCOVER' | 'UNIONPAY': In case type of wallet is MASSPAY_CARD, card_type would be provided with the type of card it is
  - `last_4` string: In case type of wallet is MASSPAY_CARD, last_4 would be provided with the last four digits of the card
  - `active` boolean, required: An indicator whether the wallet is active. If inactive, can still retrieve historical transactions history
  - `client_paying_fees` boolean: An indicator whether the fees for payouts using this wallet are paid by the client. If false, the user pays the fees
  - `fee_wallet_token` string: GET /wallets/{wallet_token} only: your own CLIENT_FUNDS wallet that pays this wallet's fees, when there is one
  - `wiring_instructions` object: Deposit (wire / ACH) instructions of the bank account that funds this wallet, present only when they are available: when the wallet's provider - or, for a USER_FUNDS wallet without a provider of its own, your CLIENT_FUNDS wallet in the same currency - is a deposit bank with a known account. **The object is the bank's own record, passed through as the bank returns it, so its keys and vocabulary depend on the bank** and its casing may differ from the rest of this response. <br><br> **Cross River Bank** (routing `021214891`): `accountNumber`, `routingNumber`, `accountType`, `title` (the account title, normally your business name), `currency` (lowercase ISO 4217, for example `usd`) and `status`. Cross River's `status` values are `Active`, `Inactive`, `Dormant`, `Escheat` and `Closed`; an account in normal use is `Active`, contact support if you see anything else. Its `accountType` values are `Deposit`, `GeneralLedger`, `CreditCard`, `StoredValue`, `Wallet` and `Unknown`; a MassPay funding account is `Deposit`. <br><br> **Other banks** return wire details only: Fortress `accountNumber`, `routingNumber`, `receiverName`, `receiverAddress`, `receiverBankName`, `receiverBankAddress`, `swiftCode`; Braid `AccountNumber`, `RoutingNumber`; Zenus `AccountNumber`; Stride Bank and Metropolitan Commercial Bank `account_number`, `routing_number`, `bank_name`, `address`, `city`, `state`, `zip`; My EU Pay `viban`, `swift`, `bank_name`, `address`, `city`, `country`, `zip`. <br><br> Treat every value as display text for your payer. Do not branch on `status` or `accountType` beyond checking Cross River's `Active`.

## Other responses

- `400`: Bad request.
- `401`: Unauthorized.
- `403`: Forbidden.
- `404`: Not found.
- `405`: Method Not Allowed.
- `500`: Internal server error.
- `504`: Gateway Time-out.

## Changes

- **2026-11-03** `f9fa41b7c45c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/masspay/apis/masspay-api/changes/wallets/:wallet_token/get.md)

---

[API](https://skmtc.dev/masspay/apis/masspay-api.md) - [All operations](https://skmtc.dev/masspay/apis/masspay-api/llms.txt) - [OpenAPI document](https://skmtc.dev/masspay/apis/masspay-api/revisions/f9fa41b7c45c?raw)
