---
title: "ERPLY Books Integration"
description: "ERPLY Books is Estonian double entry accounting software. Agents manage accounts, contacts, and documents, confirm and email invoices, send e-invoices, match payments, and import bank statements."
url: https://flowrunner.ai/integrations/erply-books
date_modified: 2026-09-04T14:53:04-07:00
---

# ERPLY Books

[Accounting](https://flowrunner.ai/integrations/category/finance-accounting)

ERPLY Books is Estonian double entry accounting software. Agents manage accounts, contacts, and documents, confirm and email invoices, send e-invoices, match payments, and import bank statements.

63 actions · API key · available

[ERPLY Books website](https://erplybooks.com/) · [Platform Documentation](https://erplybooks.com/api/) · Capability data verified 2026-08-24

1.  A scheduled sweep picks up supplier PDFs that arrived since the last run
2.  Digitize Document reads the supplier, number, dates, and line amounts off each scan
3.  Get Digitized Document returns the parsed fields, and the agent maps them to accounts
4.  List Contacts confirms the supplier exists and carries the Supplier flag
5.  Create Document writes an unconfirmed purchase invoice with rows and a reference number
6.  The AP owner receives the draft next to the original scan and the proposed account coding
7.  The AP owner approves the coding, and only then does Confirm Documents post it to the ledger

## What This Integration Enables

ERPLY Books draws a line most accounting systems blur. Creating a document does not touch the ledger. The document exists, it has a number, it appears in listings, and the accounts are unchanged until Confirm Documents runs. That separation is inconvenient for a person clicking through a screen, and it is close to ideal for an agent. It gives FlowRunner a place to assemble work at machine speed with no accounting consequence, and one explicit act that makes the work real.

FlowRunner agents work both sides of that line. They read scans through Digitize Document, build purchase and sales documents with the right rows and reference numbers, maintain the chart of accounts and the contact register, import bank statements and pair the lines against open documents, and post balanced journal entries. Run Report Generator reaches data no named operation exposes, which is how month-end questions get answered without an export. The connector publishes no webhook registration, so flows are scheduled and use the vendor's own change cursors rather than pretending to listen for events. What stays with a person is the posting decision, and FlowRunner's [human-in-the-loop](https://flowrunner.ai/concepts/human-in-the-loop) design exists so that decision arrives with the evidence already gathered.

### Without FlowRunner

**Coding is a queue of one**: Each supplier invoice is opened, read, and coded by hand before anything reaches the books

**Bank lines wait on a person**: Statement lines sit unmatched until someone works through them against open documents

**Reporting means exporting**: Questions the standard reports do not answer end as a spreadsheet pulled by hand

### With FlowRunner

**Coding arrives pre-argued**: Documents are assembled, coded, and presented with the source scan attached

**Matching runs continuously**: Statement lines are imported and paired against open documents as they arrive

**Reports are queries, not exports**: The report generator answers directly against the database on a schedule

## Use Case Scenarios

### Supplier invoices arrive coded, not confirmed

A scheduled sweep collects the supplier PDFs that landed since the last run. For each one the agent calls Digitize Document, then Get Digitized Document to read back the supplier, the document number, the dates, and the line amounts. It resolves the supplier with List Contacts, checking that the record actually carries the Supplier flag, because a contact set to neither Customer nor Supplier quietly fails to appear where the flow expects it. Get Dictionary Values supplies the document and account type codes rather than the agent guessing them. Create Document writes the purchase invoice unconfirmed, Add Attachment files the original scan against it, and the AP owner receives a draft that already carries its evidence. Nothing has reached the accounts yet.

### The bank statement stops being a person's afternoon

A statement file arrives from the bank each morning. Import Bank Statement loads it, and its lines wait in List Pending Payments until something assigns them. The agent reads open documents, pairs each line on its reference number, and calls Match Payment To Documents, which can settle several documents from one bank line. Payments arriving without a document become prepayments against the contact, and Settle Prepayments applies them once the matching invoice exists. Lines the agent cannot pair with confidence are posted to the controller in [Slack](https://flowrunner.ai/integrations/slack) with the candidate documents listed, rather than being forced into the closest guess. A running tally of matched and unmatched lines appends to a sheet in [Google Sheets](https://flowrunner.ai/integrations/google-sheets) so the trend is visible without anyone asking.

### Month-end questions answered against the database

The standard reports cover the usual ground. The awkward questions do not: revenue by project by month for one customer group, or the ageing of purchase invoices split by article. Run Report Generator takes tables, grouping, ordering, and filter rules and queries ERPLY Books directly, and List Report Generator Columns reports what can be asked for. The agent runs the same set on a schedule, calls List Accounts with a date to pull balances alongside them, and assembles the pack. Sales orders raised from a [Shopify](https://flowrunner.ai/integrations/shopify) storefront and payments captured through [Stripe](https://flowrunner.ai/integrations/stripe) reconcile into the same view. The controller reads a pack rather than building one, and the queries run against live data instead of a CSV that aged the moment it was exported.

## Human-in-Loop Highlight

Confirm Documents is the one-way door in this connector. Everything before it is reversible: a draft can be updated, a row can be deleted, the whole document can be discarded, and the accounts never noticed. Confirm writes the ledger entries, and a confirmed document may then refuse to change at all, because its entries are posted and the period may be locked. So the AP agent codes at machine speed and stops there. It posts: "Purchase invoice 2026-0431 from Tallinn Logistics OU, 4,180.00 EUR, coded to account 5210 Transport Services against project Baltic Q3. The supplier's last four invoices went to 5210. Line 3, 240.00 EUR described as storage, does not match that pattern. Confirm the coding, or reassign line 3?" The controller answers, the agent applies the change with Update Document, and Confirm Documents runs afterwards. The agent did the reading, the matching, and the drafting. It did not decide what the books say.

Agent processes routinely

Detects exception requiring judgment

Clear match Continues automatically

Ambiguous Routes to human via preferred channel

Human decides

Agent resumes with decision

## Agent Capabilities

63 actions

### Organization

4

-   **Get Organization** Retrieves the organization the current token belongs to. A token is bound to one organization, so this is how a flow confirms which set of books it is holding.
-   **List Organizations** Lists the organizations visible to the token. Used to check that a flow is pointed at the right company before it writes anything.
-   **Check Token** Verifies that the API token is live and accepted. The cheap first step in a scheduled flow.
-   **List Recent Activity** Reads recent activity in the account. Used to see what changed since the last run without walking every register.

### Accounts

5

-   **List Accounts** Lists the chart of accounts. Supplying a date returns balances too, which makes this a lightweight trial balance as well as a code list.
-   **Create Account** Adds an account to the chart. Account types come from the dictionaries, because a wrong type puts an account in the wrong half of every report.
-   **Update Account** Changes an existing account's details. Used when a chart is reorganized or renamed.
-   **Delete Account** Removes an account from the chart. Reserved for cleanup with review, since ledger history references it.
-   **List Account Entries** Reads the ledger entries posted to an account. The audit view behind reconciliation and balance checks.

### Contacts

7

-   **List Contacts** Lists customers and suppliers, filterable by your own partner identifiers. The lookup step before any document is built.
-   **Create Contact** Creates a customer or supplier record. Customer and Supplier are two separate flags, and a record carrying neither will not appear where a flow expects it.
-   **Update Contact** Updates a contact's details, including the flags that decide where it appears.
-   **Delete Contact** Removes a contact record. Used in deduplication work after a person has named the survivor.
-   **List Contact Bank Accounts** Reads the bank accounts held against a contact. Used before building a payment file.
-   **Add Contact Bank Account** Adds a bank account to a contact. The step that makes a supplier payable.
-   **Get Contact Balances** Returns what a contact owes or is owed. The number behind a chase, a credit check, or a statement.

### Documents

14

-   **List Documents** Lists trading documents. Every kind lives in one register separated by type, so a list without a document type reads your sales invoices and your suppliers' invoices together.
-   **Get Document** Retrieves one document with its rows. Read this before any change, because updates replace rows rather than merging them.
-   **Create Document** Creates a document unconfirmed. It has a number and it appears in listings, and it has changed nothing in the accounts.
-   **Update Document** Updates a document. Sending rows replaces the document's lines rather than merging into them, and a confirmed document may refuse the change entirely.
-   **Delete Document** Deletes a document. Available while it is unconfirmed and its period is open.
-   **Delete Document Row** Removes a single line from a document. The surgical alternative to sending a whole replacement row set.
-   **Confirm Documents** Writes the accounting entries for one or more documents. This is the operation that moves the books, and the one this page's human gate exists for.
-   **Download Document PDF** Renders a document as a PDF into FlowRunner file storage. Used for archiving and for attaching to a message.
-   **Email Document** Emails a document to its contact from ERPLY Books.
-   **Send E-Invoices** Sends documents as structured e-invoices through the operator network rather than as email attachments.
-   **Get Next Document Number** Returns the next number in a sequence. Used when a flow needs to reference a document before creating it.
-   **Get Document History** Reads the change history of a document. The evidence trail behind a dispute or an audit question.
-   **List Document Templates** Lists the document templates configured in the account.
-   **Create Recurring Document** Sets up a document that repeats on a schedule. Used for retainers and subscriptions billed on a fixed cycle.

### Payments

9

-   **List Payments** Lists recorded payments, filterable by change date so a flow reads only what moved.
-   **Create Payment** Records a payment. With a document it settles that document, and without one it records a prepayment sitting against the contact.
-   **Update Payment** Amends a recorded payment.
-   **Delete Payment** Deletes a payment, which reopens the document it settled and removes its ledger entries. Treated as a correction, not as cleanup.
-   **Match Payment To Documents** Assigns a pending statement line to one or more open documents, naming the amount applied to each.
-   **Settle Prepayments** Applies prepayments held against a contact to their open documents.
-   **Import Bank Statement** Loads a bank statement file. Its lines wait unassigned until matching runs.
-   **List Pending Payments** Lists imported statement lines that have not yet been matched. The reconciliation work list.
-   **Create SEPA Payment File** Builds a SEPA payment file for outbound transfers. The file still has to be released in the bank by a person.

### Journal

5

-   **List Transaction Entries** Lists journal entries, walkable forward by identifier so a sync needs no dates at all.
-   **Get Transaction Entry** Retrieves one journal entry with its account lines.
-   **Create Transaction Entry** Posts a journal entry. Debits and credits must balance, and the connector checks that locally before sending so a failure names the two totals rather than returning a server error.
-   **Update Transaction Entry** Amends a journal entry, subject to the same balance rule.
-   **Delete Transaction Entry** Removes a journal entry. Restricted by period locks in the usual way.

### Articles

4

-   **List Articles** Lists the product and service catalog used on document lines.
-   **Create Article** Adds an article. Used when a new product or service starts appearing on invoices.
-   **Update Article** Updates an article's details, including its type and pricing basis.
-   **Delete Article** Removes an article from the catalog.

### Projects

3

-   **List Projects** Lists projects used to tag documents and entries for reporting.
-   **Create Project** Creates a project. Used when a flow opens a new engagement or cost center.
-   **Delete Project** Removes a project.

### Reference

4

-   **List Tax Rates** Lists the tax rates configured in the account. Read rather than assumed, because rates change.
-   **Get Dictionary Values** Returns the published type codes for accounts, balances, income, transactions, documents, entities, and articles. The alternative to guessing a code that would silently misfile a record.
-   **List Currency Rates** Reads currency rates held in the account.
-   **List Countries** Lists country codes as the account holds them.

### Reports

3

-   **Get Report** Runs one of the standard reports.
-   **Run Report Generator** Queries the ERPLY Books database directly with tables, grouping, ordering, and filter rules. Reaches data no named operation exposes, using the vendor's own query language rather than SQL.
-   **List Report Generator Columns** Reports what the generator can be asked for. The discovery step before a new report is built.

### Attachments

5

-   **List Attachments** Lists files held against a record.
-   **Add Attachment** Attaches a file to a record. The step that keeps the source scan next to the document it produced.
-   **Delete Attachment** Removes an attached file.
-   **Digitize Document** Submits a scanned document for reading, so a supplier PDF becomes structured fields rather than a person's afternoon.
-   **Get Digitized Document** Retrieves the parsed result of a digitization request, which is what the agent maps to accounts and lines.

## Frequently Asked Questions

### What can FlowRunner do with ERPLY Books?

FlowRunner agents can run Get Organization, List Organizations, and Check Token in ERPLY Books, plus 60 more actions.

### Does connecting ERPLY Books to FlowRunner require OAuth?

No. ERPLY Books connects to FlowRunner with an API key, no OAuth flow required.

### Can ERPLY Books trigger a FlowRunner workflow automatically?

ERPLY Books doesn't currently expose triggers in FlowRunner. It connects as an action step inside workflows started by another trigger.

**Work at ERPLY Books?** This integration exposes ERPLY Books to AI agents on every FlowRunner plan, including through MCP, at no cost to you. [See what FlowRunner offers integration partners](https://flowrunner.ai/integrations/partners), including how to keep this page current.

---
Markdown version of https://flowrunner.ai/integrations/erply-books. Site index: https://flowrunner.ai/llms.txt
