Title: LedgerPort &#8211; E-commerce Accounting Automation for QuickBooks Online
Author: LedgerPort
Published: <strong>June 10, 2026</strong>
Last modified: June 10, 2026

---

Search plugins

![](https://ps.w.org/ledgerport/assets/banner-772x250.png?rev=3567230)

![](https://ps.w.org/ledgerport/assets/icon.svg?rev=3567230)

# LedgerPort – E-commerce Accounting Automation for QuickBooks Online

 By [LedgerPort](https://profiles.wordpress.org/ledgerport/)

[Download](https://downloads.wordpress.org/plugin/ledgerport.1.0.0.zip)

 * [Details](https://wordpress.org/plugins/ledgerport/#description)
 * [Reviews](https://wordpress.org/plugins/ledgerport/#reviews)
 *  [Installation](https://wordpress.org/plugins/ledgerport/#installation)
 * [Development](https://wordpress.org/plugins/ledgerport/#developers)

 [Support](https://wordpress.org/support/plugin/ledgerport/)

## Description

#### Automate E-commerce Accounting

Every month, the same scene plays out. You export a payout report from WooCommerce
or Stripe, open QuickBooks Online, and stare at two numbers that should match. They
don’t. Payouts arrive as net disbursements: gross sales minus fees, refunds, and
adjustments. QuickBooks records transactions as they’re entered. Neither is wrong.
They’re speaking different languages.

Most WooCommerce store owners fall into one of three camps. Reconcile manually every
month and lose 4+ hours. Give up and run on increasingly unreliable books. Or automate
the translation layer.

LedgerPort is the translation layer. The WordPress plugin connects your WooCommerce
store to LedgerPort, which keeps QuickBooks Online in sync with every transaction,
refund, and deposit. Automatically. Accurately.

#### Key Capabilities

 * **Real-time order sync via WooCommerce webhooks.** Orders appear in QuickBooks
   Online within seconds, not on a 5-minute poll cycle.
 * **Product, customer, and payout sync.** Read mode on install. Write mode is opt-
   in.
 * **Payout reconciliation.** Splits Stripe and WooCommerce Payments deposits into
   transaction-level detail you can match line by line.
 * **Multi-business support.** One LedgerPort account, multiple connected stores
   and QuickBooks files.
 * **Full audit log.** Every sync action logged. Retry failed events. Export to 
   CSV for compliance.
 * **HPOS-native.** Built for WooCommerce 8+ and high-performance order storage 
   from day 1. No compatibility-mode tradeoffs.

#### Why Teams Switch to LedgerPort

**Stop the Friday CSV export.**
 Orders sync the moment they happen. Refunds, edits,
and cancellations follow automatically. Stores running this manually report 8 to
12 hours of bookkeeping recovered every month.

**One account, many businesses.**
 Manage 5+ connected stores and QuickBooks files
from one dashboard at the Growth tier. Built for agencies and operators running 
portfolios.

**Payouts that match reality.**
 When Stripe deposits $4,287.32 on Tuesday, LedgerPort
splits it into the exact orders and transaction fees that produced it. No more matching
one deposit line against 47 orders manually.

**Modern WooCommerce stack.**
 Built for stores running 100,000+ orders without 
degradation. The plugin declares high-performance order storage compatibility through
WooCommerce’s standard mechanism, so HPOS-enabled stores work natively from the 
moment the plugin activates.

#### Who It’s Built For

Store owners running WooCommerce who want bookkeeping automated. CPAs and bookkeepers
managing client stores who need transaction-level data with an audit trail per client.
Agencies running multiple client businesses on a unified dashboard with per-client
pricing.

#### Full LedgerPort Feature List

 * Real-time order sync via WooCommerce webhooks.
 * Stripe payout reconciliation with transaction-level detail.
 * WooCommerce Payments payout split into individual transactions.
 * Multi-business dashboard for connected stores and QuickBooks files.
 * Chart of accounts mapping for products, taxes, and shipping.
 * Full audit log with filterable history and CSV export.
 * OAuth 2.0 PKCE setup wizard.
 * Explicit consent screen before any resources are created on your store.
 * Auto-provisioned WooCommerce REST API key, scoped to LedgerPort.
 * WooCommerce webhooks for orders, products, customers, refunds, and product variations.
 * HMAC-signed webhook payloads with a per-connection shared secret.
 * Site Health integration for connection status.
 * HTTPS enforcement with a development-mode override.
 * HPOS native compatibility from day 1.
 * Multi-currency support for any country LedgerPort and QuickBooks Online support.
 * Refund and partial refund propagation.
 * Order edit and cancellation propagation.
 * Manual push controls for one-time syncs of recent data.
 * Manual pull controls to import from QuickBooks Online.
 * Per-event retry on transient failures.
 * Plugin auto-deactivates if WooCommerce is missing.
 * Encrypted storage for connection credentials.
 * Random hash-suffixed log filenames with `.htaccess` and `web.config` deny rules
   dropped automatically.
 * Translation-ready (`.pot` file included).
 * Clean uninstall — removes the WooCommerce REST API key, webhooks, options, transients,
   and log directory.

#### Pricing

LedgerPort has a free plan (30 orders/month, 1 business) and paid tiers starting
at $29/mo. See [the LedgerPort pricing page](https://ledgerport.com/pricing/?utm_source=wprepo&utm_medium=link&utm_campaign=wporg)
for the full matrix.

#### Automate Your E-commerce Books

Connect WooCommerce to QuickBooks Online in under 5 minutes. The Free plan covers
stores doing up to 30 orders per month. No credit card required.

_QuickBooks and QuickBooks Online are trademarks of Intuit Inc. WooCommerce is a
trademark of Automattic Inc. LedgerPort is not affiliated with or endorsed by Intuit
or Automattic._

### External services

This plugin connects your WooCommerce store to the LedgerPort SaaS at https://api.
ledgerport.com to sync orders, products, and customers to QuickBooks Online. It 
requires a free LedgerPort account.

Endpoints contacted:

 * `https://api.ledgerport.com/v1/oauth/*` — OAuth 2.0 PKCE handshake during initial
   setup.
 * `https://api.ledgerport.com/v1/connections/woocommerce` — webhook registration
   and connection state.
 * `https://api.ledgerport.com/v1/events/incoming` — receives WooCommerce webhook
   payloads (orders, refunds, products, customers, payouts).
 * `https://api.ledgerport.com/v1/sync/status` — polled by the plugin admin UI to
   display sync health and recent activity.

What is sent: WooCommerce order data, product data, customer data, and payout data.
Sync is triggered by WooCommerce webhooks and on-demand REST API calls initiated
by the LedgerPort server.

Service documents:

 * [Terms of Service](https://ledgerport.com/terms/?utm_source=wprepo&utm_medium=link&utm_campaign=wporg)
 * [Privacy Policy](https://ledgerport.com/privacy/?utm_source=wprepo&utm_medium=link&utm_campaign=wporg)
 * [Data Processing Agreement](https://ledgerport.com/dpa/?utm_source=wprepo&utm_medium=link&utm_campaign=wporg)

QuickBooks Online is connected via OAuth from the LedgerPort dashboard. QuickBooks
data flows are governed by Intuit’s own Terms and Privacy Policy.

### Privacy Policy

WooCommerce data transmitted by this plugin: orders, products, customers, and payouts.

Sync only starts after you complete OAuth setup, which includes an explicit consent
screen for the WooCommerce REST API key and webhook creation. The plugin does not
transmit any data before this consent is given.

Webhooks are signed with HMAC using a shared secret per connection. HTTPS is required
for production sites. Local development environments can bypass the HTTPS check 
by defining `LEDGERPORT_ALLOW_HTTP` in `wp-config.php`.

Customers exercising GDPR or CCPA rights can be removed from LedgerPort by contacting
[support@ledgerport.com](https://wordpress.org/plugins/ledgerport/support@ledgerport.com?output_format=md)
or via the LedgerPort dashboard’s data deletion tool. Erasure requests propagate
to LedgerPort sub-processors per the DPA linked above.

Sub-processors per LedgerPort DPA Schedule 1: Google Cloud Platform, Stripe, Intuit,
FreeScout, Lindris. All sub-processors are based in the United States.

Data retention is governed by the LedgerPort DPA linked above.

### Source Code

This plugin ships the full, unobfuscated TypeScript/React source for its admin UI
alongside the compiled bundle. Source files live in the `assets/` directory inside
the plugin zip; the corresponding production bundle lives in `build/`.

#### Application source

Every file under `build/assets/*.js` (the per-page entries such as `dashboard.js`,`
mappings.js`, `logs.js`, plus all `chunk-*.js` files) is generated by Vite from 
the TypeScript/React source in `assets/`. The source layout is:

 * Per-page entry points — `assets/entries/*.tsx`
 * React app shell, pages, providers, hooks, stores — `assets/app/`
 * Shared UI primitives (shadcn-style) — `assets/ui/`
 * API clients and shared utilities — `assets/lib/`
 * Shared TypeScript types — `assets/types/`
 * Tailwind entry CSS — `assets/styles/`
 * Static images referenced from PHP — `assets/images/`
 * Static admin CSS/JS enqueued directly from PHP — `assets/admin/`

#### Rebuilding the bundle

 1. Install [Bun](https://bun.sh) (the project’s package manager and runtime).
 2. From the plugin root, run `bun install` to install dependencies.
 3. Run `bun run build` to produce a fresh `build/` directory from `assets/`.

The build is driven by Vite. Configuration files shipped with the plugin: `package.
json`, `bun.lock`, `vite.config.ts`, `tsconfig.json`, `tailwind.config.ts`, `postcss.
config.js`, `biome.json`, `components.json`. No external CDNs or proprietary build
tools are required.

#### Third-party libraries

The compiled bundles in `build/assets/` are produced by Vite from `assets/` plus
the open-source libraries declared in `package.json`. The bundler inlines library
code into the chunks; each library is listed below with its version, source repository,
and license.

Runtime dependencies (bundled into `build/`):

 * **react** 19.2 — UI runtime. https://github.com/facebook/react (MIT)
 * **react-dom** 19.2 — DOM renderer for React. https://github.com/facebook/react(
   MIT)
 * **@radix-ui/react-dialog** 1.1 — Accessible dialog primitive. https://github.
   com/radix-ui/primitives (MIT)
 * **@radix-ui/react-label** 2.1 — Accessible label primitive. https://github.com/
   radix-ui/primitives (MIT)
 * **@radix-ui/react-popover** 1.1 — Accessible popover primitive. https://github.
   com/radix-ui/primitives (MIT)
 * **@radix-ui/react-select** 2.2 — Accessible select primitive. https://github.
   com/radix-ui/primitives (MIT)
 * **@radix-ui/react-slot** 1.2 — Slot composition utility. https://github.com/radix-
   ui/primitives (MIT)
 * **@radix-ui/react-switch** 1.2 — Accessible switch primitive. https://github.
   com/radix-ui/primitives (MIT)
 * **@radix-ui/react-tooltip** 1.2 — Accessible tooltip primitive. https://github.
   com/radix-ui/primitives (MIT)
 * **@tanstack/react-query** 5.90 — Server-state cache and query manager. https://
   github.com/TanStack/query (MIT)
 * **@tanstack/react-query-devtools** 5.91 — React Query devtools. https://github.
   com/TanStack/query (MIT)
 * **axios** 1.13 — Promise-based HTTP client. https://github.com/axios/axios (MIT)
 * **class-variance-authority** 0.7 — Variant-based class composer. https://github.
   com/joe-bell/cva (Apache-2.0)
 * **clsx** 2.1 — Conditional class-name joiner. https://github.com/lukeed/clsx (
   MIT)
 * **cmdk** 1.1 — Command-menu primitive. https://github.com/pacocoursey/cmdk (MIT)
 * **date-fns** 4.1 — Date utilities. https://github.com/date-fns/date-fns (MIT)
 * **lucide-react** 0.563 — Icon set. https://github.com/lucide-icons/lucide (ISC)
 * **react-day-picker** 9.13 — Calendar / date picker. https://github.com/gpbl/react-
   day-picker (MIT)
 * **react-error-boundary** 6.1 — Error-boundary helper. https://github.com/bvaughn/
   react-error-boundary (MIT)
 * **recharts** 3.7 — Chart components. https://github.com/recharts/recharts (MIT)
 * **sonner** 2.0 — Toast notifications. https://github.com/emilkowalski/sonner (
   MIT)
 * **tailwind-merge** 3.4 — Tailwind class deduplication. https://github.com/dcastil/
   tailwind-merge (MIT)
 * **zustand** 5.0 — State management store. https://github.com/pmndrs/zustand (
   MIT)
 * **@fontsource-variable/inter** 5.2 — Inter variable font, packaged by Fontsource.
   https://github.com/fontsource/fontsource (Package: MIT; Font: SIL Open Font License
   1.1)

Build tooling (devDependencies in `package.json`, not shipped inside `build/`):

 * **vite** 5 — Bundler. https://github.com/vitejs/vite (MIT)
 * **@vitejs/plugin-react** 4 — Vite React plugin. https://github.com/vitejs/vite-
   plugin-react (MIT)
 * **@vitejs/plugin-basic-ssl** 2.1 — Local HTTPS for Vite. https://github.com/vitejs/
   vite-plugin-basic-ssl (MIT)
 * **typescript** 5.9 — TypeScript compiler. https://github.com/microsoft/TypeScript(
   Apache-2.0)
 * **tailwindcss** 3.4 — Utility-first CSS. https://github.com/tailwindlabs/tailwindcss(
   MIT)
 * **postcss** 8.5 — CSS transformer. https://github.com/postcss/postcss (MIT)
 * **autoprefixer** 10.4 — PostCSS plugin. https://github.com/postcss/autoprefixer(
   MIT)
 * **@biomejs/biome** 2.3 — Linter / formatter. https://github.com/biomejs/biome(
   MIT)

## Installation

 1. Upload the plugin folder to `wp-content/plugins/ledgerport/`, or install via **
    Plugins  Add New  Upload Plugin** and select the LedgerPort zip.
 2. Activate **LedgerPort** through the **Plugins** screen.
 3. The setup wizard launches automatically. Follow the prompts to authenticate with
    LedgerPort and connect QuickBooks Online via OAuth.
 4. On the consent screen, approve the creation of a WooCommerce REST API key and webhooks.
    These resources are required for sync.
 5. Once setup completes, the first sync runs automatically.

WooCommerce 6.0 or later is required. HTTPS is required for production sites.

## FAQ

### What does this plugin do?

LedgerPort is a connector. The WordPress plugin authenticates your WooCommerce store
with LedgerPort, sets up webhooks, and lets LedgerPort sync your store data to QuickBooks
Online. The actual sync work happens on LedgerPort’s servers.

### What does LedgerPort cost?

LedgerPort offers a free plan and four paid tiers. The Free plan covers up to 30
orders per month. Paid plans start at $29 per month. See [the LedgerPort pricing page](https://ledgerport.com/pricing/?utm_source=wprepo&utm_medium=link&utm_campaign=wporg)
for current plan details.

### Do I need a LedgerPort account?

Yes. The plugin requires a free LedgerPort account because the plugin is a connector.
Without the LedgerPort service, the plugin cannot sync to QuickBooks. Account creation
takes about two minutes and happens during the setup wizard.

### Does this require HTTPS?

Yes. WooCommerce REST API credentials and webhook payloads need a secure connection.
Most WordPress hosts offer free SSL via Let’s Encrypt. For local development, define`
LEDGERPORT_ALLOW_HTTP` in `wp-config.php` to bypass the check.

### What happens if I disconnect? Are my QuickBooks records affected?

Disconnecting from LedgerPort does not touch your QuickBooks data. The plugin removes
its WooCommerce REST API key and webhooks from your store. Records already synced
to QuickBooks stay there. To stop QuickBooks-side syncing entirely, disconnect QuickBooks
from your LedgerPort dashboard separately.

### Does LedgerPort support WooCommerce HPOS?

Yes. LedgerPort is HPOS-native from version 1.0.0. The plugin is built for WooCommerce
8+ and high-performance order storage from day one. The plugin declares HPOS compatibility
through WooCommerce’s standard mechanism.

### Which QuickBooks Online plans does this work with?

LedgerPort works with all QuickBooks Online plans: Simple Start, Essentials, Plus,
and Advanced. None of the Advanced-only features are required. Supports any QuickBooks
Online country and currency configuration.

### Does it sync historical orders, or only new ones going forward?

Version 1.0.0 syncs new orders only. Anything that comes into WooCommerce after 
setup syncs automatically. Bulk backfill for historical orders is on the version
1.1.0 roadmap.

### Can I sync multiple WooCommerce stores to one QuickBooks Online file?

Yes. The multi-business architecture supports this from the Growth tier. One LedgerPort
account, multiple connected stores, and one paid plan covers them all. The Agency
tier scales to unlimited client businesses on the same account.

### Does it handle refunds, partial refunds, and order edits?

Yes. Refunds, partial refunds, and order edits trigger webhook events that LedgerPort
processes in real time. QuickBooks stays in sync with whatever changes happen in
WooCommerce.

### What does the audit log capture?

Every sync action. Successful syncs, failed events, retries, manual pushes, and 
pulls. The log is filterable by date, type, and status. Export to CSV for compliance
and review.

### Is data sent in real time, or on a schedule?

Real time, via WooCommerce webhooks. Events fire the moment a change happens in 
WooCommerce. The plugin does not run on a polling schedule. Changes propagate within
seconds.

### Are debug log files protected from public access?

Yes. Log files are stored under `wp-content/uploads/ledgerport/logs/` with random
hash-suffixed filenames. The plugin drops `.htaccess` (Apache and LiteSpeed) and`
web.config` (IIS) deny rules automatically. For Nginx, add this to your server config
if your host does not already block direct access under `wp-content/uploads/`:

    ```
    location ~* /wp-content/uploads/ledgerport/logs/.* { deny all; }
    ```

### How do I report a bug?

Open a support ticket through your LedgerPort dashboard, or visit [LedgerPort support](https://ledgerport.com/support/?utm_source=wprepo&utm_medium=link&utm_campaign=wporg).

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“LedgerPort – E-commerce Accounting Automation for QuickBooks Online” is open source
software. The following people have contributed to this plugin.

Contributors

 *   [ LedgerPort ](https://profiles.wordpress.org/ledgerport/)
 *   [ PushEngage ](https://profiles.wordpress.org/pushengage/)
 *   [ Syed Balkhi ](https://profiles.wordpress.org/smub/)

[Translate “LedgerPort – E-commerce Accounting Automation for QuickBooks Online” into your language.](https://translate.wordpress.org/projects/wp-plugins/ledgerport)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/ledgerport/), check
out the [SVN repository](https://plugins.svn.wordpress.org/ledgerport/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/ledgerport/) by 
[RSS](https://plugins.trac.wordpress.org/log/ledgerport/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.0

 * Initial public release.
 * OAuth 2.0 PKCE setup wizard with explicit consent for WooCommerce API key and
   webhook creation.
 * Real-time order, product, and customer sync via WooCommerce webhooks.
 * Manual push and pull tools for on-demand syncing.
 * Chart of accounts mapping editor.
 * Audit logs with filterable history and CSV export.
 * Site Health integration.
 * HPOS-native. Multi-business support.

## Meta

 *  Version **1.0.0**
 *  Last updated **24 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [Accounting](https://wordpress.org/plugins/tags/accounting/)[Bookkeeping](https://wordpress.org/plugins/tags/bookkeeping/)
   [hpos](https://wordpress.org/plugins/tags/hpos/)[quickbooks](https://wordpress.org/plugins/tags/quickbooks/)
   [woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/ledgerport/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/ledgerport/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/ledgerport/reviews/)

## Contributors

 *   [ LedgerPort ](https://profiles.wordpress.org/ledgerport/)
 *   [ PushEngage ](https://profiles.wordpress.org/pushengage/)
 *   [ Syed Balkhi ](https://profiles.wordpress.org/smub/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/ledgerport/)