Contents

LedgerSync is an open source Ruby library that allows developers to easily connect to and sync information to and from any ledger or accounting software such as QuickBooks Online, NetSuite, and more.

Modern Treasury is committed to contributing to the open source community.  When faced with the decision to build a proprietary solution, we decided it an advantage to us and the broader community to collaborate on the software many companies build internally.  We believe innovation does not come from the things we all build more or less the same, but rather in how we use them to create new and exciting products/solutions.

The Business Source License

Today, we are changing the license under which LedgerSync can be used to the Business Source License (BSL).  We want anyone to be able to use LedgerSync to augment and build their solutions.  We also want to continue to meaningfully contribute to and protect the library from misuse.  To do so, we are following the lead of other open source companies, such as CockroachDB.  In fact, we believe they best described why this transition is necessary:

“We’re witnessing the rise of highly-integrated providers take advantage of their unique position to offer “as-a-service” versions of OSS products, and offer a superior user experience as a consequence of their integrations. We’ve most recently seen it happen with Amazon’s forked version of ElasticSearch, which Salil Deshpande neatly described in TechCrunch as both “self-interested and rational.”

Concisely put, the new license allows LedgerSync users to use and embed LedgerSync in their applications, regardless of if they expose this application to their customers or use it as a service.  LedgerSync can also be used as a service internally.  The one and only thing you cannot do is offer a commercial version of LedgerSync as a service.

You can view the full license here.

How LedgerSync Works

LedgerSync has a simple, yet lofty goal: make it easy for a developer to integrate with any ledger, minimizing the need for domain-specific knowledge (e.g. naming, request formats, data structures, supported methods, etc.).  LedgerSync accomplishes this by providing a simple yet powerful abstraction layer we call the “resources.”

Resources are objects like Invoice, Customer, Vendor, JournalEntry, etc.  With LedgerSync, you do not need to worry about the differences between creating a customer in one ledger vs. the other.  The library handles that for you.

The result? No need to be an [insert general ledger name here] expert to build an integration.

Using Ledger Sync

At Modern Treasury, we enable Continuous Accounting, which includes the ability to sync your data to your accounting software.  We use LedgerSync to easily push and pull the necessary information from whichever general ledger our customers use.

LedgerSync is a flexible library enabling a variety of use cases such as the following:

  • Push your customer’s billing to their own accounting software.
  • Onboard customers more easily by pulling information from their general ledger (e.g. vendors, contacts, customers, etc.).
  • Provide your customers a fuller picture of their finances by combining your internal data with bookkeeping data in their general ledger.
  • Scaling internal financial processes (e.g. reconciliation) by connecting to your own ledger.

Although LedgerSync was originally motivated by a need to connect to accounting software, it can be used to connect to any third-party “ledger.”  In addition to the support we have today, we have requests for and/or planning for some of the following:

  • Accounting: QuickBooks Online (exists), NetSuite (in progress), Intacct, Workday, Xero, etc.
  • Payments: Stripe (exists), Paypal, Adyen, Zuora, Recurly, etc.
  • Loan Origination Systems: Black Knight, Sagent, etc.
  • AR/AP: Routable, Bill.com, Invoiced, etc.
  • Payroll: Gusto, ADP, etc.
To Wrap Up

For more resources on LedgerSync:

  • Check out the README.
  • Join the conversation and ask questions on our Slack.
  • Report bugs or feature requests here.
  • Help us expand LedgerSync (new resources, new ledgers, etc.) by opening a pull request
  • If you need some help understanding how to best use LedgerSync, let us know: hello@moderntreasury.com

References

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.