Chase Mobile app icon

Chase Mobile · US retail & wealth banking data

Pulling balances, transactions, and Zelle activity out of Chase Mobile

Chase Mobile sits on top of the largest US retail deposit book, and the records behind a single login span more than one backend: checking, savings, credit card, home, auto, and business accounts; check deposits made through QuickDeposit; Zelle sends and receives; scheduled bill payments; a free Credit Journey score with identity monitoring; daily budgeting insights; and J.P. Morgan Wealth Management positions for customers who invest. The package id is com.chase.sig.android, per its Play Store listing. For an integrator the practical question is not whether the data exists — it plainly does — but how to land it in a warehouse on a predictable schedule, normalized, with revocation handled cleanly.

The shape of the work here is batch ingestion. Chase exposes balances and transaction history as paginated collections, so the dependable pattern is a backfill that walks every page once, then a lighter incremental sync that fetches only what posted since the last cursor. We build that pipeline and hand you the code that runs it.

Where Chase Mobile keeps the records worth syncing

Each row below is a real surface named the way the app names it, with what an integrator would do once it is mapped.

Data domainWhere it lives in the appGranularityIntegration use
Account balances & detailsAccount activity for checking, savings, credit card, home, auto, businessPer account: current and available balance, account type, masked numberNet-worth views, cash-position dashboards, underwriting inputs
TransactionsAccount activity feed; budgeting & trackingPosted and pending, with date, amount, description, categoryCategorized spend analytics, reconciliation, bookkeeping sync
Zelle transfersSend & receive money with ZellePer transfer: counterparty, amount, status, timestampP2P flow tracking, payment confirmation, cash-flow modelling
Card controls & activityLock & unlock cards; unusual-purchase alertsCard state and authorization eventsFraud signals, card lifecycle mirroring
Credit Journey scoreChase Credit Journey, free score & identity monitoringScore value, trend, monitoring alertsCredit dashboards, eligibility pre-checks
InvestmentsJ.P. Morgan Wealth Management; Wealth Plan goalsHoldings, order history, goal trackingPortfolio aggregation, advisory tooling
Rewards & offersChase Offers; rewards tracking and redemptionOffer enrolment, earned credit, redemption stateLoyalty ledgers, statement-credit reconciliation

Reaching the data: the routes that actually apply

Three routes fit Chase, and they differ mostly in how durable the connection is and what consent it rides on.

Consumer-permissioned data via the FDX-aligned secure API

Chase publishes a secure API aligned with the Financial Data Exchange (FDX) standard, described on its data-sharing page; the FDX profile carries balances, account details, and transaction history including pending items over OAuth 2.0. Most third-party access already arrives this way through aggregators — Akoya added Chase to its Data Access Network in February 2021, and Plaid, Yodlee, and Morningstar hold data agreements as well, per JPMorgan Chase's newsroom. Where your use case fits a consented bank-data pull, this is the durable route: token-based, revocable by the customer, and stable across app releases because it does not depend on the mobile client. We handle the aggregator or direct onboarding with you as part of the build.

Authorized interface integration of the app's own traffic

When you need a surface the FDX profile does not expose — a specific Credit Journey alert shape, a Wealth Plan goal field, a rewards-redemption state — we map the app's authenticated interface directly under your authorization. This is reverse engineering of the request/response and token flow for interoperability, done against a consenting account, and it reaches whatever the app itself can see. It is more sensitive to client changes, so we pair it with a test harness that flags a drift the moment a field moves.

User-consented credential access as a fallback

For a narrow internal tool where neither of the above is warranted, a user can consent to a session that reads their own data. We treat this as a fallback, scoped tightly and logged, because the token routes are cleaner and survive longer.

For most teams the recommendation is straightforward: ride the FDX-aligned consented feed for accounts and transactions, then add direct interface mapping only for the sub-surfaces it leaves out. That keeps the bulk of the pipeline on the durable path and isolates the fragile parts.

A statement-and-transaction pull, sketched

This is the backfill loop we would actually ship, against the FDX-style account and transaction collections. Field names follow the FDX shape; the exact paths get pinned during the build against the consented endpoint.

# Backfill Chase accounts + transactions, then sync the delta.
# OAuth2 bearer token obtained through the consented connection.

import httpx

BASE = "https://api.chase.example/fdx/v6"   # pinned during the build
HEAD = {"Authorization": f"Bearer {token}", "Accept": "application/json"}

def accounts():
    r = httpx.get(f"{BASE}/accounts", headers=HEAD, timeout=30)
    r.raise_for_status()
    return r.json()["accounts"]            # id, type, balance, currency

def transactions(account_id, since=None):
    params = {"startTime": since} if since else {}
    cursor = None
    while True:
        if cursor:
            params["offset"] = cursor
        r = httpx.get(f"{BASE}/accounts/{account_id}/transactions",
                      headers=HEAD, params=params, timeout=30)
        if r.status_code == 401:           # token revoked in AccountSafe
            raise ConsentRevoked(account_id)
        r.raise_for_status()
        page = r.json()
        for txn in page["transactions"]:
            yield txn                      # postedTimestamp, amount, status
        cursor = page.get("nextCursor")
        if not cursor:
            break

# Pending and posted are distinguished by txn["status"];
# the warehouse keeps both and lets pending rows settle on a later sync.

What lands in your repo

The deliverable is working code first, with the documents that let your team own it after handover.

  • Runnable source for the backfill and incremental sync in Python or Node.js — account list, paginated transaction walk, cursor persistence, and the revocation path shown above.
  • Webhook / trigger handlers where your stack wants a push: a thin endpoint that kicks a refresh when a user reconnects, rather than blind polling.
  • An automated test harness that asserts the field shapes of accounts and transactions, so a moved or renamed field shows up as a failing assertion before it reaches your warehouse.
  • A batch-vs-realtime sync design documenting the nightly backfill window, the delta cursor, and how pending rows settle.
  • An OpenAPI/Swagger spec for the endpoints we integrate, plus a protocol & auth-flow report covering the OAuth token exchange and refresh.
  • Interface documentation and data-retention guidance so the connection is auditable and the stored fields are minimized to what you actually use.

How we normalize a Chase account record

Chase fields get folded into one provider-neutral shape, so the same downstream code handles Chase and any other bank you add later.

{
  "provider": "chase",
  "account": {
    "id": "acct_8f2c...",          // opaque, stable per consent
    "type": "checking",            // checking|savings|credit_card|loan|investment
    "mask": "1234",
    "balance": { "current": 4210.55, "available": 4185.00, "currency": "USD" }
  },
  "transaction": {
    "id": "txn_91ab...",
    "posted_at": "2026-06-05T14:02:00Z",
    "status": "posted",            // posted|pending
    "amount": -52.30,
    "description": "ZELLE TO J DOE",
    "category": "transfer"
  }
}

The dependable legal basis for this work is the customer's own authorization to share their data, captured and logged at connection time. Chase already gives customers a control surface for it: AccountSafe and the "Linked apps and websites" dashboard, in the app and on chase.com, let a customer see every linked app and cancel access at any time. Our integration respects that — a cancellation invalidates the token and our handler stops, rather than fighting a dead connection.

The broader US rule, the CFPB's Personal Financial Data Rights rule under Section 1033, is unsettled rather than in force. A court has enjoined enforcement, and the Bureau issued an Advance Notice of Proposed Rulemaking on reconsideration in August 2025, with compliance dates stayed, per the CFPB and law-firm alerts we read. So it is the forward-looking piece, not today's governing framework. There is also live commercial movement worth naming: JPMorgan Chase reached paid data-access agreements with major aggregators in late 2025, covering the channels that carry the large majority of third-party requests, per CNBC and JPMorgan Chase's newsroom. We design around the consent model that exists now and keep the build adaptable to where the rule lands. Access is data-minimized, logged, and covered by an NDA where your project needs one.

Engineering details we plan around

Two specifics on Chase shape how we build, and we account for both rather than handing them to you as conditions.

  • Pending vs posted settlement. Chase surfaces pending transactions before they post, and balances may not reflect every recent debit or written check — the app says as much. We model pending and posted as distinct states and let pending rows reconcile on a later sync, so a transaction is never counted twice when it settles.
  • Multiple backends behind one login. Bank accounts, Credit Journey, and J.P. Morgan Wealth Management are separate sub-surfaces with their own consent scope and field shapes. We scope the integration per surface you name, so a wealth field that is absent for a deposit-only customer does not break the account sync.
  • Token lifetime and re-consent. We arrange access with you during onboarding — against an aggregator sandbox or a consenting account — and the build refreshes the token within its lifetime and prompts re-consent if the customer revokes, so the feed does not quietly stall.

What the app screens show

Public store screenshots, useful for sanity-checking which surfaces a given build needs to cover. Select to enlarge.

Chase Mobile screenshot 1 Chase Mobile screenshot 2 Chase Mobile screenshot 3 Chase Mobile screenshot 4 Chase Mobile screenshot 5 Chase Mobile screenshot 6 Chase Mobile screenshot 7 Chase Mobile screenshot 8

If you aggregate across institutions, these come up alongside Chase. Each holds a comparable record set, and a unified integration normalizes them into one schema.

  • Bank of America — large retail deposit and card data, with its own FDX-aligned secure data sharing.
  • Wells Fargo — checking, savings, cards, and mortgages behind a consumer-permissioned API.
  • Capital One — cards and deposits, with a developer-facing data exchange for permissioned access.
  • U.S. Bank — full retail and business banking records, frequently aggregated for cash-flow tools.
  • Citi — deposits, cards, and a consumer data-sharing program over tokenized access.
  • Chime — neobank spending and savings data, popular in early-direct-deposit flows.
  • SoFi — combined banking, investing, and lending records under one login.
  • Varo — mobile-first checking and savings, with cash-advance features.
  • Ally — online-only banking and brokerage balances and transactions.

How this read was put together

Written from Chase's own data-sharing and developer material, the FDX standard documentation, the CFPB rule docket, and contemporaneous reporting on the aggregator agreements — checked the week of this date against the app's current Play Store description. Primary sources:

OpenFinance Lab · data-access assessment, 2026-06-07.

Questions integrators ask about Chase data

Does Chase share data through a documented API, or do you read the app's traffic?

Chase runs an FDX-aligned secure API for consumer-permissioned data, described on its data-sharing page, and most third-party traffic already flows through aggregators connected to it. We build against that consented surface where your use case fits it. Where it does not, we map the app's own authenticated interface under your authorization and deliver the same normalized output.

How fresh is the data, and can we get same-day transactions?

We design the pull as a nightly batch backfill that walks paginated account and transaction history, plus an on-demand refresh you can trigger when a user opens your app. Posted transactions land on the next sync; pending entries are flagged separately so reconciliation does not double-count them once they post.

What happens to a feed when a customer revokes access in AccountSafe?

Revocation through Chase's AccountSafe and the Linked apps and websites dashboard invalidates the token, and the next call returns an authorization error. We treat that as a first-class state: the handler stops polling, marks the connection inactive, and surfaces a re-consent prompt rather than retrying a dead token.

Does the build cover Wealth Management and Credit Journey too, or just bank accounts?

Bank accounts (checking, savings, credit card, home, auto, business) are the cleanest surface. J.P. Morgan Wealth Management positions and Credit Journey scores are separate sub-surfaces with their own consent scope; we map whichever ones you name in the requirements and document which fields each one yields.

Chase Mobile, in brief

Chase Mobile is the consumer banking app of JPMorgan Chase Bank, N.A. (member FDIC), package id com.chase.sig.android per its Play Store listing. It covers account management across checking, savings, credit card, home, auto, and business products; check deposit via QuickDeposit; Zelle payments; bill pay and transfers; Chase Credit Journey free credit scoring and identity monitoring; budgeting insights; card lock/unlock and fraud alerts; J.P. Morgan Wealth Management investing with Wealth Plan goal tracking; and Chase Offers rewards. Investment products are offered through J.P. Morgan Securities LLC and are not FDIC insured. This recap is drawn from the public app description.

A first build typically runs one to two weeks. Source-code delivery starts at $300: we build the Chase integration, hand over the runnable backfill and sync source, the tests, and the docs, and you pay after delivery once you have checked it works against your own consented connection. If you would rather not run anything, our hosted endpoints do the pulling and you pay only per call, nothing upfront. Tell us the app is Chase Mobile and what you need from its data, and we arrange the access and compliance with you from there — start at /contact.html.

Last checked 2026-06-07

Chase Mobile screenshot 1 enlarged
Chase Mobile screenshot 2 enlarged
Chase Mobile screenshot 3 enlarged
Chase Mobile screenshot 4 enlarged
Chase Mobile screenshot 5 enlarged
Chase Mobile screenshot 6 enlarged
Chase Mobile screenshot 7 enlarged
Chase Mobile screenshot 8 enlarged