LedgerSync API Overview: What You Can Build

LedgerSync API Overview: What You Can Build

Overview

The LedgerSync API gives you one uniform REST API for your users' bank data — accounts, balances, transactions, and statements — across multiple bank data sources, with no plumbing to build yourself. You link a bank account once and receive clean JSON, regardless of which bank or underlying data source is behind it.

This article explains the core concepts, data model, and data sources powering the API.

Three Data Sources, One API

Under the hood, LedgerSync routes requests between three sources automatically. You never choose a source — LedgerSync picks the right one server-side based on the institution.

SourceWhat it covers
Finicity (Mastercard Open Finance)Broadest US coverage, with bank OAuth where the institution supports it.
MXAn alternate aggregator that covers banks Finicity misses.
FDE (LedgerSync Proprietary)LedgerSync's own credential-based extraction for banks neither aggregator covers.

The connection ID you receive back (e.g., con_FINICITY_41294 or con_MX_1224) tells you which source served it. There is no source parameter — routing is fully automatic.

Note on PDF accounts: When a user's account was set up from uploaded bank statements, that data comes back with source: "PDF". PDF accounts have no Connection ID and appear only under accounts and transactions — not under GET /v3/connections.

The Data Model

Everything in the API hangs off four nested objects. Learn these once and the rest reads naturally.

ObjectWhat it represents
Client (cli_...)Your record of one end-user. You set an external_id to join back to your own system.
Connection (con_...)One linked bank for a Client. A single Client can have multiple Connections.
Account (acc_...)A checking, savings, credit card, or loan account exposed by a Connection.
Transaction / Statement (txn_...)The actual financial data on an Account.

Reads are Client-scoped — pass client_id on every read call. For example:

GET /v3/accounts?client_id=cli_...&connection_id=con_FINICITY_41294

How Linking Works

  1. Create a Client — your end-user, keyed by your own external_id.
  2. Initiate a Connection — POST to /v3/clients/{id}/connections with an institution_id. You receive a 202 and an operation_id to track progress.
  3. Hand off the widget — open the returned widget_url in the user's browser. They pick their bank, sign in, and authorize accounts. You never see their credentials.
  4. Read the data — once the connection goes active, store the canonical con_... ID and start reading accounts, transactions, and statements.

Everything is JSON over HTTPS

No SDK is required. Send and receive JSON, authenticate with a Bearer key, and read the X-LS-Trace-Id header on every response for support tracing.

  • Sandbox base URL: https://api-sandbox.ledgersyncappv2.com/v3
  • Live base URL: https://api.ledgersyncappv2.com/v3

Need Help?

Related Articles

  • Article 7: LedgerSync API
  • How to Request Live (Production) API Access
  • LedgerSync API: Authentication & API Keys
  • LedgerSync API: Getting Started (Quickstart Guide)
    • Related Articles

    • LedgerSync API — Webhooks & Transaction Deduplication (transactionHash)

      Overview This article is for LedgerSync API partners. The LedgerSync API supports webhook notifications and a stable transaction hash field to help your integration handle real-time events and deduplicate transactions across bank reconnections. ...
    • LedgerSync API: Authentication & API Keys

      Overview Every request to the LedgerSync API must be authenticated with a secret key passed as a Bearer token. This article explains how API keys work, the difference between sandbox and live keys, and how to keep them secure. How to Authenticate ...
    • LedgerSync API Pricing

      Overview The LedgerSync API is billed per active client, per 30-day billing cycle — the same volume-based pricing structure as the LedgerSync app. When you use the API, billing switches to the API plan. If you're already a LedgerSync customer, there ...
    • LedgerSync API: Webhooks

      Overview Bank connections in the LedgerSync API are asynchronous. When a user links their bank, they may finish in seconds or take several minutes. Webhooks let LedgerSync push a notification to your server the instant something changes — so you ...
    • LedgerSync API: Getting Started (Quickstart Guide)

      Overview This guide walks you through linking your first bank account and pulling real transaction data using the LedgerSync API — from your first sandbox key to a live data response. The full flow takes about 15 minutes in sandbox. Sandbox base URL: ...