API template library

Plaid Accounts & Balance mock API and live sandbox

A WireMock simulation of Plaid's REST API — covering the account roster and on-demand balance refresh.

Vendor
Plaid
Functionality
Accounts and real-time balances
Spec version
2020-09-14_1.688.6
Endpoints
2
Stubs
2
Protocol
REST
Validation
AI-validated Before publication, an AI agent exercised these endpoints against the real Plaid API through WireMock's recording proxy, and the recorded traffic was used to verify each stub's request and response shapes.

Live sandbox · no signup, no API key

Plaid Accounts & Balance

A running WireMock Cloud instance of this template, callable right now from a terminal, a script, or an AI agent.

Base URL
https://zezed.wiremockapi.cloud

POST Get Accounts

curl -s -X POST 'https://zezed.wiremockapi.cloud/accounts/get' \
  -H 'Content-Type: application/json' \
  -d '{}'

POST Get Account Balances (real-time)

curl -s -X POST 'https://zezed.wiremockapi.cloud/accounts/balance/get' \
  -H 'Content-Type: application/json' \
  -d '{}'
Method Path Summary
POST /accounts/balance/get Retrieve real-time balance data
POST /accounts/get Retrieve accounts

Unauthenticated WireMock Cloud demo sandbox for Plaid — not an official Plaid sandbox, and it returns simulated example data only.

What's inside the Accounts & Balance template

Two endpoints, and the numbers between them disagree on purpose. /accounts/get plays the cached roster — a checking account at 100 available against 110 current, plus a credit card — while /accounts/balance/get plays the forced refresh: the same two accounts with fresher figures, a populated last_updated_datetime, and the credit card's 2,000 limit filled in. That split mirrors the real product's economics, where the balance route costs more because it hits the bank live, so code that decides when a cached figure is good enough has both sides of the decision to test against.

  • Account roster — checking and credit-card fixtures with masks, official names, and type/subtype pairs
  • Refreshed balances — the balance route's live-read figures, update timestamps, and credit limit
  • Item context — the First Platypus Bank institution envelope both responses arrive wrapped in

Frequently asked questions

Because in production they wouldn't: /accounts/get reports whatever Plaid last cached, and /accounts/balance/get performs a live institution read. The template bakes that gap in — 100 available on one route, 98.50 on the other — so a display layer showing stale figures next to a refresh button has a visible difference to render and assert on.

Both routes deserialize without complaint through accounts_get and accounts_balance_get in plaid-python 43 — every field the response models mark required is present, nullable fields arrive as explicit nulls. If your stack wraps the official client, neither call needs a mock-mode escape hatch.

The balance route is the only one that stamps last_updated_datetime — /accounts/get leaves the field null, as a cached read would. Code that gates on balance staleness therefore sees both cases from one fixture pair: an unstamped cached figure and a refreshed one with a concrete timestamp to compare against.

Its APRs, minimum payment, and statement history are the Liabilities template's territory — this one stops at the balance. The pair share the credit-card account fixture, so joining balances to liability detail works across the two sandboxes.

Vendor names identify APIs represented by WireMock template sources. This page does not imply vendor endorsement, certification, partnership, or official integration status.