← All package workshops
Integrations / INTERACTIVE WORKSHOP

Build typed banking response pages

Plaid v2.0.0

Edit added/modified/removed pages and account data, then compose real sync/get/account/refresh calls. Inspect safe retry admission, cursor errors and malformed provider responses without any bank connection.

01 / CONFIGURE

Choose a scenario. Change the inputs or build a sequence of commands.

02 / RUN

Execute the installed package against a new fictional example.

03 / INSPECT

Follow the result, actual calls, generated output and integration code.

THE WORKBENCH

Make it your example.

Your server-side changes are temporary. External-service examples use local response fixtures. Start with sample data.

Execution result

Waiting for your first run
No execution yetEdit inputs ↑

Start with a preset, or change the input and run it.

The behavior is the example.

Your result will show the values, decisions and generated output from the actual package.

EXPLORE THE PACKAGE

What you can exercise here.

INTERACTIVE

Transport and selected product DTOs

Transactions sync/get/refresh and accounts with edited fixture records, cursor pages, retries, typed errors and endpoint validation.

HOST INTEGRATION

Broader provider wrapper families

The package also wraps auth, investments, income, identity, assets, institutions, liabilities, transfers and payments; production use requires product-specific authorization and provider contract tests.

HOST INTEGRATION

No ledger or consent simulation

Consent, credentials, cursor transactions, webhook verification and accounting policy remain application work.

UNDERSTAND THE BEHAVIOR

A cursor page is a typed change set, not a ledger.

Edit sync pages and accounts, then replay real transaction/account service calls against intercepted local transport. Observe cursor advancement, retry admission and typed errors.

01

Builders shape actual DTO responses

Each sync page has added, modified and removed records. Accounts have typed identity and balance fields. The real services decode these fixtures; operations retain their returned change sets. The host does not invent an account ledger or apply the changes to one.

02

The command list owns progression

Each sync command uses the previous successful next_cursor unless an explicit cursor is supplied. pages bounds available fixture pages; it does not itself perform more sync calls. An empty command list makes no service requests.

03

Read retries are explicitly admitted

The workshop allows retries only for selected read-like POST endpoints when retry_reads is enabled. A one-time 503 can retry sync, get or accounts. refresh is a mutation outside that allowlist; an authentication failure is not a transient outage.

04

Provider breadth exceeds this selected exercise

This lab exercises transaction sync/get/refresh and accounts plus transport guards. Other product families require their own provider contracts, authorization and application tests. Input cannot select an arbitrary provider host or absolute endpoint.

GO FURTHER

Try the boundary cases.

  1. Replay added, modified and removed pages

    Choose Added, modified and removed and edit the transaction name or amounts in the page builder. Replay three sync commands. Expected: pages preserve three different change types, the modified ID matches its original, and final_cursor advances after each successful page. There is no simulated final ledger balance.

  2. Compare typed account and dated reads

    Run Read accounts and transactions, then edit an account name and balances. Expected: the real account DTO projection and transaction result change; request paths remain fixed. The dated-read command passes dates/count to the service against these local fixtures.

  3. Prove the retry boundary

    Run Retry a 503 once and inspect attempts. Expected: a safe read retries and succeeds. Run Refuse a mutation retry: refresh reports the 503 after one attempt. Disable POST read retries to make the same read fault fail without a retry.

  4. Check error and endpoint admission

    Run Invalid credentials, Malformed JSON and Reject an absolute endpoint. Expected: typed provider/decoding errors are visible; the absolute URL fails before HTTP. Try an unknown cursor: it is rejected without advancing final_cursor.

COMPOSE THE RESPONSIBILITIES

Useful alone.
Better when the boundaries fit.

Plaid supplies transport and typed provider data. The application owns consent, encrypted tokens, webhook verification, atomic cursor checkpoints and reconciliation. Flow may review imported changes, but it does not define accounting policy.

Flow Preflight Read every API and recipe