
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.
Webhooks
What Are Webhooks?
Webhooks allow LedgerSync to push real-time notifications to your server when events occur — for example, when a new bank statement is available, or when a bank connection status changes. Without webhooks, your integration must poll the LedgerSync API periodically to check for updates. Webhooks eliminate the need for polling.
How to Set Up a Webhook URL
- In the LedgerSync application, go to Settings
- Find the Webhook URL field
- Enter the URL of your server endpoint that will receive webhook events
- Save
You can also manage webhook configuration through the API:
GET /api/webhooks — Returns your saved webhook URL. Returns 403 if your account is not API-enabledPOST /api/webhooks — Sets or updates your webhook URL
Webhook Security
Verify that incoming webhook requests are genuinely from LedgerSync by checking the signature included in the request headers. Contact
support@ledgersync.com for the current signature validation method.
Transaction Hash — Stable ID for Deduplication
The Problem
When a bank connection is disconnected and later reconnected through the LedgerSync API, the underlying transaction IDs may change (because a new connection is created). If your system identifies transactions by their ID, previously-seen transactions will appear as new entries, potentially creating duplicates in your system.
The Solution — transactionHash
The LedgerSync API transaction response now includes a transactionHash field alongside the standard transaction ID. The transactionHash is calculated from the transaction’s stable properties (date, amount, description, account) and remains consistent even if the bank is disconnected and reconnected.
How to use it:
- When processing transactions from the LedgerSync API, use
transactionHash as your deduplication key instead of (or in addition to) the transaction ID - If you receive a transaction with a
transactionHash you’ve already seen, treat it as an update to the existing record rather than a new transaction - The
transactionHash is documented in the LedgerSync API documentation
API Access Requirements
Webhook endpoints and the
transactionHash field are only available to
API-enabled accounts. If you are not yet an API customer, visit
ledgersync.com to apply for API access, or contact
support@ledgersync.com.
Need Help?
Related Articles:
Related Articles
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 ...
Zoho Books Integration — Setup & Transaction Sync
Overview LedgerSync now supports Zoho Books as a full accounting platform integration — equivalent to the existing QuickBooks Online integration. If your firm uses Zoho Books to manage client books, you can connect it to LedgerSync and use the Rules ...
How to Request Live (Production) API Access
Overview The LedgerSync API portal operates in two environments: Sandbox and Live (Production). All new API accounts begin in Sandbox mode, which uses test keys and fake data. To use the API with real production traffic, you must request and receive ...
LedgerSync Close — Overview and How It Works
Overview LedgerSync Close is a month-end reconciliation tool that compares your bank statements directly against the transactions recorded in QuickBooks Online (QBO). It automatically identifies missing transactions, duplicate entries, and category ...
Building a LedgerSync Integration with AI (Vibe Coding)
Overview You don't need to be a developer to build a banking data integration with LedgerSync. If you use AI tools like ChatGPT, Claude, or Cursor, you can point them at the LedgerSync API documentation and let the AI write the full integration for ...