| analyze_unconfirmed_transactions | bank reconciliation | Read-only diagnostic for PROJECT bank transactions: suggest duplicates, inter-account transfers, invoice matches, small bank fees, or manual review. Free-tier counterpart to reconcile_bank_transactions. | Tasuta |
| classify_bank_transactions | bank classification | Classify unmatched PROJECT bank transactions by counterparty (bank fees, SaaS, card purchases, tax, owner transfers, salary, revenue, unknown). Modes: classify (default), dry_run_apply (preview purchase-invoice booking), execute_apply (create+register PI then register_transaction). Auto-apply only with concrete supplier-history (or bank-fee defaults); never invents VAT. Tax/owner/salary/revenue stay review_only. Pro tier. | Pro |
| compute_account_balance | account balance | Compute the balance of one chart account from registered journal postings (EUR base_amount when present). Requires account_id (DB id). Optional clients_id filters journals tagged with that client; optional date_from/date_to filter on journal effective_date (inclusive). Set include_entries=true for posting detail. Opening-balance UI entries may be missing from the API. Refuses incomplete loads when the journal list exceeds the page cap — narrow dates. Journal amendments (parent_id / amendment_number, UI 'Parandus') are additive corrections; both the original and each amendment are counted. | Tasuta |
| compute_balance_sheet | financial statements | Compute a balance sheet (bilanss) as of date_to from registered journal postings (cumulative). Groups Varad / Kohustused / Omakapital; folds open P&L (Tulud−Kulud) into equity for the A=L+E check. EUR base amounts. May fail if the unfiltered journal list is too large — pass date_to and prefer period tools for large books. Journal amendments (parent_id / amendment_number, UI 'Parandus') are additive corrections; both the original and each amendment are counted. | Tasuta |
| compute_client_debt | account balance | Compute a client's net position from registered journal postings tagged with clients_id. Optional account_ids (DB ids) limits which accounts are summarized; when omitted, every account with postings for that client is included. Summary: total_debt_to_client (C-type balances), total_receivable_from_client (D-type), net_position = receivable − debt. Opening-balance UI entries may be missing from the API. | Tasuta |
| compute_payables_aging | aging analysis | Compute payables aging from unpaid confirmed purchase invoices. Buckets by days past due (create_date + term_days): current / 1-30 / 31-60 / 61-90 / 90+. Optional as_of_date (default today UTC). Amounts use base_gross_price falling back to gross_price. PARTIALLY_PAID invoices are included at full face value (API has no remaining balance). Loads all purchase invoice pages (page cap applies). | Tasuta |
| compute_profit_and_loss | financial statements | Compute a profit and loss statement (kasumiaruanne) for a required date_from/date_to window from registered journal postings. Tulud (revenue) and Kulud (expenses); net_profit = revenue − expenses. EUR base amounts. Journal amendments (parent_id / amendment_number, UI 'Parandus') are additive corrections; both the original and each amendment are counted. | Tasuta |
| compute_receivables_aging | aging analysis | Compute receivables aging from unpaid confirmed sale invoices. Buckets by days past due (create_date + term_days): current / 1-30 / 31-60 / 61-90 / 90+. Optional as_of_date (default today UTC). Amounts use base_gross_price falling back to gross_price. PARTIALLY_PAID invoices are included at full face value (API has no remaining balance). Loads all sale invoice pages (page cap applies). | Tasuta |
| compute_trial_balance | financial statements | Compute a trial balance (käibeandmik) from registered journal postings. Optional date_from/date_to filter on journal effective_date. Amounts use EUR base_amount when present. Refuses incomplete loads when the journal list exceeds the page cap — narrow dates. Opening-balance UI entries may be missing from the API. Journal amendments (parent_id / amendment_number, UI 'Parandus') are additive corrections; both the original and each amendment are counted. | Tasuta |
| create_bank_account | accounts | Create a bank account in e-Financials. Required: account_name_est, account_no (per OpenAPI BankAccounts). | Pro |
| create_client | clients | Create a new client (buyer or supplier). The client will be created as active. Estonian private clients (füüsiline isik) must set is_physical_entity true; empty reg_code alone is not enough. | Pro |
| create_invoice_series | invoice settings | Create an invoice series. Required: is_active, is_default, number_prefix, number_start_value, term_days. API assigns id (read-only). | Pro |
| create_journal | journals | Create a journal entry (POST). Body follows OpenAPI Journals: effective_date and balanced postings (debit/credit) are required. Each posting line should include accounts_id and amount; use journals_id 0 on lines for new entries. | Pro |
| create_product | products | Create a product/service. API assigns sale_accounts_id and purchase_accounts_id (read-only in OpenAPI). | Pro |
| create_purchase_invoice | invoices | Create a purchase invoice draft (PROJECT), apply VAT defaults, then repair invoice-level vat_price/gross_price from line items (create-then-repair). Accepts single-line friendly params or an items[] array. Optional cl_vat_articles_id (1 = standard input VAT, 16 = sõiduauto 100%) wins over the silent fallback 1. Omit still uses the purchase-article default, or 1 when VAT-registered and the article has none. Non-EUR requires currency_rate. No-VAT lines use vat_rate_dropdown '-'. | Pro |
| create_sales_invoice | invoices | Create a new sales invoice draft. The invoice will be created with PROJECT status (not registered). Fetches the default invoice series and template from the API automatically. | Pro |
| create_transaction | transactions | Create a bank transaction draft (PROJECT). type C is money in and type D is money out. RIK stores the opposite letter (D incoming, C outgoing); this tool translates it and checks the stored direction. The result is the stored transaction with tool type, rik_messages, and direction_confirmed, not RIK's raw { code, messages, created_object_id }. If RIK stored the other direction, the draft is patched once and deleted if still wrong. If the row is not in that day's lists, or the check itself fails, the draft is kept with direction_confirmed false. Writable fields: accounts_dimensions_id, type, amount, cl_currencies_id, date (YYYY-MM-DD), and optional clients_id, description, ref_number, bank_account_name, base_amount, currency_rate, transactions_files_id, export_format. To pay a confirmed purchase invoice, use pay_purchase_invoice. | Pro |
| deactivate_client | clients | Deactivate a client (soft-disable). The record remains; use reactivate_client to enable again. | Pro |
| deactivate_product | products | Deactivate a product/service. | Pro |
| delete_bank_account | accounts | Delete a bank account by ID. | Pro |
| delete_client | clients | Permanently delete a client by ID. This cannot be undone; use deactivate_client if you only need to hide the client from active use. | Pro |
| delete_invoice_series | invoice settings | Delete an invoice series by ID. | Pro |
| delete_journal | journals | Delete a journal entry by ID. | Pro |
| delete_journal_file | journals | Delete the user-uploaded file from a journal entry. | Pro |
| delete_product | products | Delete a product/service by ID. | Pro |
| delete_purchase_invoice | invoices | Delete a purchase invoice. Typically allowed only for draft invoices (status PROJECT); registered invoices (CONFIRMED) may be rejected by the API. Use invalidate_purchase_invoice for posted invoices when the API allows. See RIK e-Financials API documentation for state rules. | Pro |
| delete_purchase_invoice_user_file | invoices | Delete the user-uploaded file from a purchase invoice. | Pro |
| delete_sales_invoice | invoices | Delete a sales invoice. Typically allowed only for draft invoices (status PROJECT); registered invoices (CONFIRMED) may be rejected by the API. Use invalidate_sales_invoice for posted invoices when the API allows. See RIK e-Financials API documentation for state rules. | Pro |
| delete_sales_invoice_user_file | invoices | Delete the user-uploaded file from a sales invoice. | Pro |
| delete_transaction | transactions | Delete a transaction. Typically allowed only for draft (PROJECT) transactions; registered rows may be rejected by the API. See RIK e-Financials API documentation for state rules. | Pro |
| delete_transaction_file | transactions | Delete the user-uploaded file from a bank transaction. | Pro |
| deliver_sales_invoice | invoices | Send a sales invoice to the customer (PATCH .../deliver): e-invoice and/or email with optional subject and body. | Pro |
| erply_add_invoice_attribute | invoices | Add an attribute on a document (POST /invoices/add_attribute). Requires documentId. Optional attributeName, parseXML, alternativeValue…alternativeValue8, decimalValue. | Pro+ |
| erply_add_invoice_dimension | invoices | Attach a project/dimension to documents (POST /invoices/add_dimension). Optional ids (comma string or number array), attachmentId, projectId. | Pro+ |
| erply_add_invoice_document_connection | invoices | Link a document to a base document (POST /invoices/add_document_connection). Requires documentId and baseDocumentId. | Pro+ |
| erply_add_invoice_opposite | invoices | Create an opposite document (POST /invoices/add_opposite). Sends APIInvoiceWithComponentsInfo. Optional id, typeCode, date, customerId, invoice, rows, payments, customer, registrationCode. Extra fields may be passed through. | Pro+ |
| erply_add_invoice_to_queue | invoices | Queue a document for processing (POST /invoices/add_to_queue). Optional registrationCode query. Extra JSON body fields may be passed through. | Pro+ |
| erply_aged_receivables | reports | Fetch aged receivables/payables style report (GET /reports/aged). Requires dateFrom and dateTo. Some price plans return HTTP 409 (e.g. MODULE_SUPPLIER_REPORT). | Pro+ |
| erply_attach_inbox_item_to_document | attachments | Associate an existing Purchase Inbox item with an existing document (POST /attachments/confirm). Requires attachmentId (from erply_list_attachments — not id or activityItemId) and documentId. documentStatusTypeCode defaults to STATUS_CONFIRMED. This is the live API path: do not pass activityItemId (409 Cannot Find File Information). IMPORTANT: an HTTP 200 here writes a confirmation log only — it is not a real attach. The inbox row documentId stays 0, the item stays in the unmatched inbox, and GET invoice attachments stays null. Report it to the user as a confirmation record, never as the file being attached. No working end-to-end path exists in the public Books API (2026-08): GET /attachments/all/{id} returns truncated NO_CONTENT (original bytes unreachable) and POST /attachments fails upstream (hangs with documentId; HTTP 500 without), so the re-upload workaround via erply_create_attachment is also blocked. Attaching inbox items to documents currently requires the Erply Books web UI. | Pro+ |
| erply_balance_sheet | reports | Fetch the Erply Books balance sheet report (GET /reports/balance_sheet). Requires dateFrom and dateTo. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_bank_import | payments | Upload a bank statement file (POST /payments/bank_import multipart). Requires fileBase64 and fileName. Optional query: accountId, encoding, type, dateFormatCode, separatorField, calculateCurrency, getEverything, getMissing, detectDateFormatAutomatically, includeHeader. For JSON body with nested APIAttachmentInfo, use erply_bank_import_v2. | Pro+ |
| erply_bank_import_v2 | payments | Bank statement import v2 (POST /payments/bank_import/v2 JSON). Provide either fileBase64+fileName (nested as apiAttachmentInfo) or attachmentId from erply_create_attachment. Tool args getEverything/getMissing/separatorField map to API fields everything/missing/separator. | Pro+ |
| erply_check_invoice_number | invoices | Check whether a document number already exists (POST /invoices/new_number). Requires number. Optional customerId, typeCode, date (YYYY-MM-DD works here), existingDocumentId. Returns APIInvoiceInitialData with exists and existingDocumentId. | Pro+ |
| erply_confirm_attachment | attachments | Ask confirmation / approve a Purchase Inbox attachment (POST /attachments/confirm JSON APIDocumentConfirmationInfo). To associate an existing inbox item with an existing document, prefer erply_attach_inbox_item_to_document. That recipe is attachmentId (list field, not id/activityItemId) + documentId; documentStatusTypeCode defaults to STATUS_CONFIRMED. Passing activityItemId together with documentId 409s (Cannot Find File Information). Confirm writes a confirmation log — the inbox row documentId stays 0. Optional waitingForUserId, additionalMessage, customEmail, sendEmail. Extra fields are passed through. Live API rejects multipart (HTTP 415). | Pro+ |
| erply_confirm_invoices | invoices | Confirm invoices (POST /invoices/confirm_invoices). Requires ids (comma string or number array). documentStatusTypeCode defaults to STATUS_CONFIRMED when omitted (the live API 409s without it). attachmentId is not supported and is rejected — this endpoint does not link Purchase Inbox items (use erply_attach_inbox_item_to_document). Optional useTransactionLockIfNecessary. | Pro+ |
| erply_connect_payment_with_documents | payments | Calculate a Bank Import match preview (POST /payments/connect_payment_with_documents). Requires a payment identifier (id = pending import row id, a real paymentId, or pendingPaymentId) and documents in linkedInvoiceInfo (or invoiceId / invoiceNumber, which are mapped into that array — do not send them as top-level API fields). Send the full pending-row fields from erply_list_pending_payments (date, typeCode, debit, customerId, debitAccountId, creditAccountId, currencyCode, amount, reconciled) together with the link; a sparse body can 500. HTTP 200 with importValidated true / filled linkedInvoiceInfo is a response-body preview only on Demo testbaas: the pending feed, invoice sumPaid/sumLeftToPay, and GET /payments stay unchanged. pendingPaymentId is not a real payment id and cannot be passed to erply_update_payment. | Pro+ |
| erply_contact_balance | reports | Fetch contact/customer balance report (GET /reports/contact_balance). Requires dateFrom and dateTo. Optional customerId, projectId, showCustomers, showOnlyOverdue, currencyCode, keyword, start, limit. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_contact_invoice_result_report | invoices | Contact/invoice result report (GET /report_generator/contact_invoice_result_report). Optional projectId, articleId, number, contactId, showSales, reportGeneratorInput, month, year. | Pro+ |
| erply_create_account | accounts | Create a chart-of-accounts entry (POST /accounts). Requires number and name. Sends id: 0. Extra APIAccountInfo fields may be passed through. Some price plans may reject writes. | Pro+ |
| erply_create_article | articles | Create an article/product/service (POST /articles). Requires name. Sends id: 0. Optional typeCode (e.g. ARTICLE_SERVICE, ARTICLE_PRODUCT), code, prices, taxRateId, account ids. Extra APIArticleInfo fields may be passed through. | Pro+ |
| erply_create_attachment | attachments | Create/upload an attachment (POST /attachments JSON APIAttachmentInfo). Requires fileName and fileBase64 (mapped to filename/base64). Three modes: (1) attach to an existing invoice — pass documentId and keep total null; (2) add to the Purchase Inbox — omit documentId and keep total null; (3) create an expense document instantly — set total (and optional netTotal, taxRateId, contactName, expenseType, number). Extra APIAttachmentInfo fields may be passed through. Live API caveat (observed 2026-08 on a test org): POST /attachments can hang past 120 s with documentId set and return HTTP 500 without it. Treat a timeout as failure and verify success via erply_get_invoice attachments — do not assume the upload landed. | Pro+ |
| erply_create_attachment_simple | attachments | Upload a single attachment via the simple endpoint (POST /attachments/simple multipart). Requires fileBase64 and fileName. | Pro+ |
| erply_create_attachments_multiple | attachments | Upload multiple attachments (POST /attachments/multiple JSON array of APIAttachmentInfo). Requires files: [{ fileBase64, fileName, ... }]. Mapped to filename/base64 like erply_create_attachment. | Pro+ |
| erply_create_customer | customers | Create a customer/supplier in Erply Books (POST /customers). Requires name. Sends id: 0 as required by the API. Additional APICustomerInfo fields may be passed through. Returns the created customer JSON. | Pro+ |
| erply_create_customer_bank_account | customers | Create a customer bank account (POST /customers/bank_accounts/{customerId}). Requires customerId. Sends id: 0 and entityId: customerId (needed for the row to persist). Typically include iban or accountNumber. Extra APIBankAccountInfo fields may be passed through. | Pro+ |
| erply_create_customer_v2 | customers | Create a customer/supplier via POST /customers/v2 (APICustomerInfoV2). Requires name. Sends id: 0. Extra v2 fields (addresses, bank, account ids, taxRateId, attributes) may be passed through. GET /customers/v2 returns 405 on current tokens; POST /customers/v2 works. | Pro+ |
| erply_create_digi_base64 | attachments | Submit a document for digitization from base64 (POST /attachments/digi/base64 JSON APIAttachmentInfo). Requires fileBase64 and fileName. Optional query: encoding, separatorField, type. | Pro+ |
| erply_create_digi_form | attachments | Submit a document for digitization from a multipart form (POST /attachments/digi/form). Requires fileBase64 and fileName. Optional query: encoding, separatorField, type. | Pro+ |
| erply_create_invoice | invoices | Create an Erply Books document (POST /invoices). Requires typeCode (DOCUMENT_*), date (YYYY-MM-DD), and customerId or nested customer. Sends id: 0. Optional rows[] and registrationCode (query). Some document types / plans return HTTP 409. | Pro+ |
| erply_create_invoice_template | invoices | Create an invoice text template (POST /invoices/templates). Requires documentName and languageCode (LANGUAGE_*). Optional templateId (numeric print-template id). Sends id: 0. Extra APIDocumentTextsInfo fields may be passed through. | Pro+ |
| erply_create_partner_invoice | invoices | Create a partner invoice (POST /invoices/partner). Requires typeCode, date, and customerId or customer. Optional registrationCode query. Extra APIPartnerInvoiceInfo fields may be passed through. | Pro+ |
| erply_create_payment | payments | Create a payment (POST /payments). Requires opDate (YYYY-MM-DD) and sumPaid. Sends id: 0. Pass invoiceId to link the payment to an invoice/sales order immediately. Some price plans return HTTP 409 (MODULE_PAID_MONEY_REPORT). Extra APIPaymentInfo fields may be passed through. | Pro+ |
| erply_create_project | projects | Create a project (POST /projects). Requires name. Sends id: 0. Optional affirmed (API body field), projectGroupId, description, validFromDatetime/validToDatetime, mainProjectId, syncErplyUsers. Extra APIProjectInfo fields may be passed through. | Pro+ |
| erply_create_project_group | projects | Create a project group (POST /projects/groups). Requires name. Sends id: 0. Optional organisationId. Extra APIProjectGroupInfo fields may be passed through. | Pro+ |
| erply_create_purchase_order_from_attachment | attachments | Convert a Purchase Inbox item to a purchase order (POST /attachments/add_purchase_order multipart). Optional fileBase64+fileName and query fields: customerId, articleId, projectId, documentInfoId, lang, status, additionalPercentage, baseDocumentId, currency, ATTRIBUTE_GROSS_WEIGHT, ATTRIBUTE_LICENCEPLATE, ATTRIBUTE_UNLADEN_WEIGHT. | Pro+ |
| erply_create_recurring_invoice | invoices | Create a recurring invoice schedule (POST /invoices/recurring). Requires copyFromDocumentId. Optional activeFromDate, dayOfMonth, invoiceDayOfMonth, enabled, sendInvoiceByEmail, emailAddress, sendInvoice, entityId, registrationCode. Extra APIRecurringInvoiceInfo fields may be passed through. | Pro+ |
| erply_create_tax_rate | tax rates | Create a tax rate (POST /tax_rates). Requires name and percent. Sends id: 0. Extra APITaxRateInfo fields may be passed through (typeCode, sales/purchase, account ids, etc.). | Pro+ |
| erply_create_transaction_entry | ledger | Create a transaction/journal entry (POST /transaction_entries). Requires opDate (YYYY-MM-DD), typeCode (e.g. DIRECT_TRANSACTION for manual journals), and a non-empty accountEntries array (each row needs accountId; use debitSum and/or creditSum). Sends id: 0. Erply validates that debits equal credits. Some price plans return HTTP 409 (MODULE_TRANSACTIONS). Extra APITransactionEntryInfo fields may be passed through. | Pro+ |
| erply_daybook | ledger | Fetch the daybook report (GET /reports/daybook). Requires dateFrom and dateTo. Optional accountId, typeCode, projectId, documentId, keyword, start, limit. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_delete_account | accounts | Delete a chart-of-accounts entry by id (DELETE /accounts/{accountId}). Destructive — requires an explicit accountId. | Pro+ |
| erply_delete_activity_attachment | attachments | Delete an activity-item attachment (DELETE /attachments/all/{activityItemAttachmentId}). Requires activityItemAttachmentId. Optional transactionEntryId, customerId, activityItemType. | Pro+ |
| erply_delete_article | articles | Delete an article by id (DELETE /articles/{articleId}). Destructive — requires an explicit articleId. | Pro+ |
| erply_delete_attachment | attachments | Delete an attachment (DELETE /attachments/{attachmentId}). Optional documentId query param. | Pro+ |
| erply_delete_attachment_via_post | attachments | Delete an attachment via the GoERP-style alias (POST /attachments/delete). Requires id (attachment id). Optional documentId. | Pro+ |
| erply_delete_customer | customers | Delete a customer/supplier by id (DELETE /customers/{customerId}). Destructive — requires an explicit customerId. | Pro+ |
| erply_delete_customer_bank_account | customers | Delete a customer bank account (DELETE /customers/bank_accounts/{bankAccountId}/customerId/{id}). Requires bankAccountId and customerId. Destructive. | Pro+ |
| erply_delete_customers | customers | Delete a customer via POST /customers/delete (alternate to DELETE /customers/{customerId} / erply_delete_customer). Requires customerId, sent as the id query param. Destructive. | Pro+ |
| erply_delete_invoice | invoices | Delete an Erply Books document by id (DELETE /invoices/{invoiceId}). Destructive — requires an explicit invoiceId. Optional registrationCode query. | Pro+ |
| erply_delete_invoice_row | invoices | Delete one article row from a document (DELETE /invoices/{documentId}/rows/{articleRowId}). Requires documentId and articleRowId. Destructive. | Pro+ |
| erply_delete_invoice_template | invoices | Delete an invoice text template (DELETE /invoices/templates/{documentInfoId}). Requires documentInfoId. Destructive. Live GET after delete may still return the object; the list no longer includes it. | Pro+ |
| erply_delete_invoice_via_post | invoices | Delete a document via POST /invoices/delete (alternate to DELETE /invoices/{invoiceId}). Requires id. Optional registrationCode. Destructive. | Pro+ |
| erply_delete_invoices_multiple_and_payments | invoices | Delete multiple documents and related payments (POST /invoices/delete_multiple_and_payments). Optional code/name body (APIDictionaryValueInfo), dontDeleteErplyPayments, deleteParentPayment. Extra body fields may be passed through. Destructive. | Pro+ |
| erply_delete_partner_invoice | invoices | Delete a partner invoice (DELETE /invoices/partner). Requires invoiceId. Optional registrationCode. Destructive. | Pro+ |
| erply_delete_payment | payments | Delete a payment by id (DELETE /payments/{paymentId}). Destructive — requires an explicit paymentId. Some plans return HTTP 409. | Pro+ |
| erply_delete_project | projects | Delete a project by id (DELETE /projects/{projectId}). Destructive — requires an explicit projectId. | Pro+ |
| erply_delete_project_group | projects | Delete a project group (DELETE /projects/groups/{projectId}). Requires projectId (the group id). Destructive. | Pro+ |
| erply_delete_project_via_post | projects | Delete a project via POST /projects/delete (GoERP alias of erply_delete_project). Requires id as a query param. Destructive. | Pro+ |
| erply_delete_tax_rate | tax rates | Delete a tax rate by id (DELETE /tax_rates/{taxRateId}). Destructive — requires an explicit taxRateId. | Pro+ |
| erply_delete_transaction_entry | ledger | Delete a transaction/journal entry by id (DELETE /transaction_entries/{transactionEntryId}). Destructive — requires an explicit transactionEntryId. May 409 (MODULE_TRANSACTIONS). | Pro+ |
| erply_digitize_attachment | attachments | Trigger OCR/digitization of a Purchase Inbox attachment (PUT /attachments/digitize/{itemId}). Requires itemId. Spec has no field docs; live orgs may return 409 MODULE_* on restricted plans. | Pro+ |
| erply_edit_custom_report_callback | reports | Apply report-generator callback edits (POST /report_generator/edit). Body is APICallbackEditInfo (id, mapper, generatorInfo, initial/current/edited rows, …). Extra fields may be passed through. | Pro+ |
| erply_fixed_assets | reports | Fetch fixed assets report (GET /reports/fixed_assets). Requires dateFrom and dateTo. Optional projectId, customerId, articleId, documentId, expenseAccountId, getFixedAssets, start, limit. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_forward_invoice_to_user | invoices | Forward documents to a user (POST /invoices/forward_to_user). Requires userId. Optional ids (comma string or number array) and attachmentId. | Pro+ |
| erply_general_ledger | ledger | Fetch the general ledger report (GET /reports/general_ledger). Requires dateFrom and dateTo. Optional accountId and related filters. Some orgs return HTTP 500. | Pro+ |
| erply_get_attachment | attachments | Get a single attachment (GET /attachments/all/{attachmentId}). Optional noDownload (integer). Response is JSON when the API returns JSON; otherwise UTF-8 text or base64 (encoding: "base64"). | Pro+ |
| erply_get_attachment_child | attachments | Get a child / e-invoice attachment (GET /attachments/{attachmentId}/child). Requires attachmentId. Optional noDownload. Response is JSON when the API returns JSON; otherwise UTF-8 text or base64 (encoding: "base64"). | Pro+ |
| erply_get_attachment_html_template | attachments | Fetch an attachment HTML template (GET /attachments/html_template). Optional attachmentId, documentId, attachmentType. | Pro+ |
| erply_get_attachment_preview | attachments | Fetch a Purchase Inbox / attachment preview (GET /attachments/preview). Returns text/html (client sends Accept: text/html; application/json yields HTTP 406). Optional attachmentId. | Pro+ |
| erply_get_attachments_zip | attachments | Download a zip of attachments for a document (GET /attachments/zip_file/{documentId}). Requires documentId. | Pro+ |
| erply_get_custom_report_file | reports | Download a custom report file (GET /report_generator/file/{type}). Requires type. Optional fileName, encoding, activityId, dateFrom, dateTo, projectId, parameters. Binary payloads are returned as base64. | Pro+ |
| erply_get_custom_report_xml | reports | Fetch a custom report as XML (GET /report_generator/xml). Optional type, fileName, encoding, activityId, id, dateFrom, dateTo, projectId, parameters. | Pro+ |
| erply_get_customer_bank_account | customers | Get a single customer bank account (GET /customers/bank_accounts/{bankAccountId}/customerId/{customerId}). Requires bankAccountId and customerId. Live API often returns a stub with id: 0 even when the account exists on the list — prefer erply_list_customer_bank_accounts. | Pro+ |
| erply_get_customer_report | customers | Fetch a customer report (GET /customers/report/{customerId}). Requires customerId. Optional ids, showCustomers, projectId, dateFrom/dateTo, useThisCount, getSummary, doNotUseCurrencies, getOnlyOpenValues, start, limit. Live API returns a list envelope { items, totalCount, organisation }. | Pro+ |
| erply_get_dictionary | reference | Fetch Erply Books dictionary entries (GET /settings/dictionaries/{dictionaryCode}). dictionaryCode must be one of: ACCOUNT_TYPE, TRANSACTION_TYPE, INCOME_TYPE, BALANCE_TYPE, ACCOUNT_FEATURE_TYPE, DOCUMENT_TYPE, ENTITY_TYPE, ARTICLE_TYPE, UNIT, PAYMENT_TYPE, ARTICLE_ROW_TYPE, CURRENCY, CASH_FLOW_TYPE, ARTICLE_FEATURE_TYPE, TAX_RATE_TYPE, DOCUMENT_STATUS_TYPE, LANGUAGE. Optional languageCode (e.g. LANGUAGE_ET) localizes names. | Pro+ |
| erply_get_digi_attachment | attachments | Get a digitized document attachment from the digi queue (GET /attachments/digi/{attachmentId}). Requires attachmentId. | Pro+ |
| erply_get_digi_country_from_parser | attachments | Infer country from parser text (POST /attachments/digi/country_from_parser JSON APIDictionaryValueInfo). Optional code and name; extra fields may be passed through. | Pro+ |
| erply_get_einvoice | invoices | Download e-invoice payload(s) (GET /invoices/einvoice). Requires documentIds as a comma-separated string or array of ids. | Pro+ |
| erply_get_entity_balance | reports | Fetch entity/customer balances (GET /customers/entity_balance). Requires entityIds as a comma-separated string or number array. Optional sales (true = sales, false = purchases). Live API returns a JSON array (often empty). | Pro+ |
| erply_get_invoice | invoices | Get a single Erply Books document by id (GET /invoices/{documentId}). Optional lang for localized fields. | Pro+ |
| erply_get_invoice_history | invoices | Fetch document history (GET /invoices/history). Requires documentId. Live API returns a JSON array (not a list envelope). Omitting documentId 409s. | Pro+ |
| erply_get_invoice_pdf | invoices | Fetch an invoice PDF as JSON (GET /invoices/pdf/v2/{documentId}). Requires documentId. Optional template and hash. Prefer this over binary /invoices/pdf/{id}. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_get_invoice_pdf_v1 | invoices | Fetch an invoice PDF as binary bytes (GET /invoices/pdf/{documentId}). Requires documentId. Optional template and hash. Response is JSON when the API returns JSON; otherwise UTF-8 text or base64 (encoding: "base64"). Prefer erply_get_invoice_pdf (GET /invoices/pdf/v2/{documentId}) for a JSON payload. | Pro+ |
| erply_get_invoice_template | invoices | Get a single invoice text template (GET /invoices/templates/{documentInfoId}). Requires documentInfoId. Live API may still return a deleted template object; prefer the list tool to confirm it exists. | Pro+ |
| erply_get_next_invoice_number | invoices | Suggest the next document number (GET /invoices/new_number). Requires typeCode (DOCUMENT_*). Optional date (YYYY-MM-DD is sent as YYYY-MM-DDT00:00:00 — bare YYYY-MM-DD 409s), projectId, articleRowType. Returns APIInvoiceInitialData (number may be empty for some types). | Pro+ |
| erply_get_organisation | organisation | Get the Erply Books organisation bound to the API token (name, registration code, addresses, VAT, currency). | Pro+ |
| erply_get_project_balance | projects | Fetch project balances (GET /customers/project_balance). Requires projectIds as a comma-separated string or number array. Optional sales (true = sales, false = purchases). Live API returns a JSON array (often empty). | Pro+ |
| erply_get_summary_invoice | invoices | Fetch a summary invoice built from attachments (GET /attachments/summary_invoice/{attachmentId}). Requires attachmentId. Optional invoiceIds (comma-separated). | Pro+ |
| erply_get_transaction_entry | ledger | Get a single transaction/journal entry by id (GET /transaction_entries/{transactionEntryId}). Optional lang. May 409 on plans without MODULE_TRANSACTIONS. | Pro+ |
| erply_import_invoices_file | invoices | Import invoices from a CSV/file upload (POST /invoices/import/file multipart). Requires fileBase64 and fileName. Optional query: encoding, dateFormatCode, separatorField, decimalSeparator, useDot, detectDateFormatAutomatically, projectId, type, typeCode, opDate, order, includeHeader, syncWarehouse, getPreview. Response is text/html. Prefer getPreview=true until the mapping looks correct. | Pro+ |
| erply_import_invoices_formsubmit | invoices | Import invoices from a JSON APIAttachmentInfo body (POST /invoices/import/formsubmit). Requires fileBase64 and fileName (mapped to filename/base64). Same optional query params as erply_import_invoices_file. Extra APIAttachmentInfo fields may be passed through. Response is text/html. Prefer getPreview=true until the mapping looks correct. | Pro+ |
| erply_import_payment | payments | Create a bank/payment import row (POST /payments/import). Requires date, amount, and typeCode (e.g. MONEY_IN_TRANSACTION). Sends id: 0. Typically returns a real paymentId (not a pending-feed row). Connecting that row is a match preview only; erply_save_all_payment_imports does not complete reconciliation. Extra APIPaymentImportInfo fields may be passed through. | Pro+ |
| erply_income_sheet | reports | Fetch the Erply Books income statement / P&L (GET /reports/income_sheet). Requires dateFrom and dateTo. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_link_attachment_to_erply_invoice | invoices | Link base documents (waybills / orders) to an invoice (POST /attachments/erply_invoice_only, or PUT /attachments/erply_invoice_only/{documentId} when documentId is set). Pass baseDocumentIds (comma-separated document ids) or the documentId path. attachmentId is a spec query param but does not attach a Purchase Inbox item to a document — use erply_attach_inbox_item_to_document. | Pro+ |
| erply_list_account_entries | ledger | List account ledger entries from Erply Books (GET /account_entries). Requires dateFrom and dateTo. Some price plans return HTTP 409 (MODULE_LEDGER). Returns { totalCount, items } when available. | Pro+ |
| erply_list_accounts | accounts | List chart-of-accounts entries from Erply Books. Returns { totalCount, items } (organisation blob stripped). | Pro+ |
| erply_list_articles | articles | List articles/products/services from Erply Books (GET /articles). Returns { totalCount, items }. | Pro+ |
| erply_list_attachments | attachments | List attachments including Purchase Inbox items (GET /attachments/all). An unfiltered call defaults to getEverything=true (the live API returns totalCount: 0 without it). Pagination (start/limit) still gets that default. Passing an explicit getEverything or any narrowing filter (attachmentId, documentId, customerId, dateTo, transactionEntryId, projectId, description, activityItemId, changedSince, documentStatusType, activityItemType, or inbox flags) opts out. documentId is ignored by the live API (alone: empty; with getEverything: full inbox). attachmentId works only together with getEverything. Returns { totalCount, items } when available. Each item includes ocrText (string or null): the raw pipe-delimited digitization OCR, lifted from item.alternativeValue9. Use it as a fallback when erply_parse_attachment output is inaccurate. The nested item blob is left intact. | Pro+ |
| erply_list_custom_report_columns | reports | List report-generator columns (GET /report_generator/columns). Optional lang and tables (comma-separated). Use before erply_run_custom_report to discover field names. | Pro+ |
| erply_list_customer_bank_accounts | customers | List bank accounts for a customer (GET /customers/bank_accounts/{customerId}). Requires customerId. Optional start/limit. Returns { totalCount, items }. | Pro+ |
| erply_list_customers | customers | List customers (and optionally suppliers/employees) from Erply Books via GET /customers. Note: GET /customers/v2 returns 405 on current API tokens — this tool uses /customers. Returns { totalCount, items }. | Pro+ |
| erply_list_invoice_templates | invoices | List invoice text templates (GET /invoices/templates). Optional languageCode (LANGUAGE_* dictionary code — ISO en/et returns 404), deprecated, start, limit. Returns { totalCount, items }. | Pro+ |
| erply_list_invoices | invoices | List Erply Books documents (invoices and related types). Requires dateFrom, dateTo, and documentType. Document types: DOCUMENT_SELL (sales invoice), DOCUMENT_BUY (purchase), DOCUMENT_POS_SELL (cash sales), DOCUMENT_POS_BUY, DOCUMENT_PRE_SELL, DOCUMENT_PRE_BUY, DOCUMENT_BID, DOCUMENT_SALES_ORDER, DOCUMENT_WAYBILL, DOCUMENT_PURCHASE_WAYBILL. Some types require a higher Erply Books price plan. Returns { totalCount, items }. | Pro+ |
| erply_list_parsed_invoice_validations | invoices | List parsed-invoice validation rows (GET /invoices/parsed_invoice_info_validation). Requires documentType, year, and month (missing date range 409s; missing documentType 409s). Optional start/limit. Live API returns a JSON array. | Pro+ |
| erply_list_partner_invoices | invoices | List partner invoices (GET /invoices/partner). Requires dateFrom and dateTo. Optional documentType, customerId, keyword, start, limit. Returns { totalCount, items } when available. | Pro+ |
| erply_list_payments | payments | List confirmed Erply Books payments (GET /payments). Requires dateFrom and dateTo. Does not include unmatched bank-import rows — use erply_list_pending_payments for the Bank Import feed. Note: some Erply Books price plans return HTTP 409 (MODULE_PAID_MONEY_REPORT) for this endpoint. Returns { totalCount, items } when available. | Pro+ |
| erply_list_pending_payments | payments | List unmatched bank-import rows (GET /payments/pending_payments) — the Bank Import UI feed. Rows typically have invoiceId 0, customerId 0, paymentId 0, and importValidated false. A connect HTTP 200 does not remove them from this feed on Demo testbaas. This is the list surface for unmatched imports; GET /payments/import does not exist (405). erply_list_payments returns confirmed payments only and will look empty for this use case. Optional filters: dateFrom, dateTo (YYYY-MM-DD coerced to T00:00:00 / T23:59:59; ISO datetimes such as 2020-01-01T00:00:00 pass through; dd.MM.yyyy 409s Could not parse date), status (must be a DocumentStatusType enum; UNMATCHED/PENDING are invalid), accountId, paymentId. A reconciled=false query param is ignored (rows often have reconciled true). Returns { totalCount, items } when available. | Pro+ |
| erply_list_project_groups | projects | List project groups (GET /projects/groups). Optional start, limit. Returns { totalCount, items } when available. | Pro+ |
| erply_list_projects | projects | List projects from Erply Books (GET /projects). Returns { totalCount, items }. | Pro+ |
| erply_list_tax_rates | tax rates | List tax rates from Erply Books (GET /tax_rates). Returns { totalCount, items } (organisation blob stripped). | Pro+ |
| erply_list_transaction_entries | ledger | List transaction/journal entries from Erply Books (GET /transaction_entries). Requires dateFrom and dateTo. Optional typeCode uses TRANSACTION_TYPE dictionary codes (e.g. INVOICE_TRANSACTION, PAYMENT_TRANSACTION, DIRECT_TRANSACTION). Some price plans return HTTP 409 (MODULE_TRANSACTIONS). Returns { totalCount, items } when available. | Pro+ |
| erply_list_user_defined_reports | reports | List user-defined reports (GET /report_generator/user_defined). Optional dateFrom, dateTo, comparative dates, projectId, attribute1–4, cashFlowReport. | Pro+ |
| erply_mark_attachment_not_digitizable | attachments | Flag a Purchase Inbox attachment as not digitizable (PUT /attachments/not_digitizable/{itemId}). Requires itemId. Optional info note. | Pro+ |
| erply_mark_attachment_opened | attachments | Mark a Purchase Inbox attachment as opened (PUT /attachments/mark_attachment_as_opened/{itemId}). Requires itemId. | Pro+ |
| erply_mark_customer_anonymous | customers | Anonymize a customer (PUT /customers/mark_as_anonymous/{customerId}). Requires customerId. Destructive and irreversible (GDPR-style wipe of personal data). | Pro+ |
| erply_override_invoice_fields | invoices | Override a field on documents (POST /invoices/override). Requires documentIds and fieldName. Optional value, documentType, unlockIfLocked. | Pro+ |
| erply_parse_attachment | attachments | Read parsed invoice data from a digitized Purchase Inbox attachment (GET /attachments/parse/{attachmentId}). Requires attachmentId. Optional onlyParseTotal, isEmail, customerId, baseDocumentIds, orgId, isSalesDocument. Parse accuracy is upstream Erply; when the structured fields are wrong, pass includeOcrText=true to merge ocrText (raw pipe-delimited OCR from the list record, item.alternativeValue9). Lookup failures set ocrText to null. | Pro+ |
| erply_prepare_invoice_rows | invoices | Prepare rows from a base document (POST /invoices/prepare_rows). Requires baseDocumentId. Optional registrationCode, documentType, createWasteDocument. | Pro+ |
| erply_run_custom_report | reports | Run a custom report (POST /report_generator). Body is APIReportGeneratorInfo (tables, parameters, output, groupBy, dates, …). Query: dateFrom, dateTo, getAllProjects, projectId, type. Extra fields may be passed through. Some plans return HTTP 409. | Pro+ |
| erply_run_custom_report_csv | reports | Run a custom report as CSV (POST /report_generator/csv). Body is APIRequestForReportGeneratorInfo. Returns JSON if the API does, otherwise UTF-8 text or base64. Some plans return HTTP 409. | Pro+ |
| erply_run_custom_report_excel | reports | Run a custom Excel report (POST /report_generator/custom_excel). Optional APIRequestForReportGeneratorInfo fields may be passed through. Some plans return HTTP 409. | Pro+ |
| erply_run_custom_report_file | reports | Generate a custom report file (POST /report_generator/file). Body is APIRequestForReportGeneratorInfo. Binary/text payload is encoded for MCP. | Pro+ |
| erply_run_custom_report_file_json | reports | Generate a custom report file as JSON (POST /report_generator/file/{type}/json_format). Requires type. Body is APIReportGeneratorInfo; query: fileName, encoding, activityId, dateFrom, dateTo, projectId. | Pro+ |
| erply_run_custom_report_xlsx | reports | Run a custom report as XLSX (POST /report_generator/xlsx). Body is APIRequestForReportGeneratorInfo. Binary responses are returned as base64. Some plans return HTTP 409. | Pro+ |
| erply_run_custom_reports_multiple | reports | Run multiple custom reports (POST /report_generator/multiple). Body is APIReportGeneratorFullInfo ({ items: [...] }). Query: dateFrom, dateTo, getAllProjects, projectId, type. | Pro+ |
| erply_save_all_payment_imports | payments | Batch-save payment import row metadata (POST /payments/save_all_payments). Body is { items: [...] } of APIPaymentImportInfo objects. HTTP 200 can still include a per-item errorMessage (on Demo testbaas, connect responses often return 'debit and credit account ei saa olla tühi' even when debitAccountId/creditAccountId are set). Does not persist a Bank Import match or change invoice sumPaid/sumLeftToPay. Callers must re-list pending rows and GET the invoice to verify. | Pro+ |
| erply_send_custom_report | reports | Send a custom report (POST /report_generator/send_report). Body is APIReportGeneratorInfo. Query: dateFrom, dateTo, getAllProjects, activityId, projectId, type. | Pro+ |
| erply_send_custom_report_email | reports | Email a custom report (POST /report_generator/email). Body is APIReportGeneratorInfo; include emailInfo.receiver. Query: dateFrom, dateTo, getAllProjects, projectId, type. | Pro+ |
| erply_send_einvoices | invoices | Send e-invoices (POST /invoices/send_einvoices). Requires documentIds (comma string or number array). Optional partnerType and sendPDF. | Pro+ |
| erply_send_erply_invoice | invoices | Send one invoice via Erply-managed delivery (POST /invoices/send_erply_invoice/{documentId}). Requires documentId. Optional APIEmailInfo fields (receiver, subject, body, sender, senderName, additionalTypes). | Pro+ |
| erply_send_erply_invoices | invoices | Send invoices via Erply-managed delivery (POST /invoices/send_erply_invoices). Requires ids or partnerDocumentIds (comma-separated string or number array). Optional APIEmailInfo fields (receiver, subject, body, sender, senderName, additionalTypes). | Pro+ |
| erply_send_invoice_email | invoices | Email an invoice (POST /invoices/email/simple). Requires documentId and receiver. Optional subject, body, sender, senderName, additionalTypes (APIEmailInfo). | Pro+ |
| erply_send_invoice_email_by_hash | invoices | Email an invoice by document hash (POST /invoices/email/{hash} or /invoices/email/{hash}/{documentId}). Requires hash. Optional documentId selects the longer path. Optional APIEmailInfo fields (receiver, subject, body, sender, senderName, additionalTypes). Prefer erply_send_invoice_email (POST /invoices/email/simple) when you have a documentId. | Pro+ |
| erply_sepa_payments | payments | Generate/process SEPA payment data as JSON (POST /payments/sepa_payments/json_format). Pass invoiceIds/invoiceSums/dateValues/ibans (and related fields) as the API expects string lists. Extra APIPaymentImportFileInfo fields may be passed through. | Pro+ |
| erply_settle_prepayments | payments | Settle prepayments against each other or listed ids (POST /payments/settle_prepayments). Requires paymentId, paymentId2, and/or ids (comma-separated). | Pro+ |
| erply_split_invoice_rows | invoices | Split invoice rows (POST /invoices/split_rows). Sends APIInvoiceRowSplittingInfo. Optional invoiceId, documentId, documentStatusTypeCode, oldRows, newRows, registrationCode. Extra fields may be passed through. | Pro+ |
| erply_submit_kyc | attachments | Submit a KYC file (POST /attachments/kyc multipart). Requires fileBase64 and fileName. | Pro+ |
| erply_submit_kyc_json | attachments | Submit KYC as JSON APIAttachmentInfo (POST /attachments/kyc/json). Requires fileBase64 and fileName. Extra APIAttachmentInfo fields may be passed through. | Pro+ |
| erply_trial_balance | ledger | Fetch the trial balance / account registry report (GET /reports/trial_balance). Requires dateFrom and dateTo. Optional accountId, projectId, getSummary, getConsolidated, printWithAccounts, balanceType, start, limit. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| erply_update_account | accounts | Update a chart-of-accounts entry (PUT /accounts/{accountId}). Requires accountId. Path id wins over body id. | Pro+ |
| erply_update_all_customer_tax_rates | tax rates | Replace a tax rate on all customers (POST /customers/update_all_tax_rate). Requires wrongTaxRateId and correctTaxRateId as query params. Destructive bulk update. | Pro+ |
| erply_update_article | articles | Update an article (PUT /articles/{articleId}). Requires articleId. Path id wins over body id. | Pro+ |
| erply_update_custom_report_values | reports | Update values from a custom report (POST /report_generator/update_values). Body is APIReportGeneratorInfo; set updateInfo ({ tableAndColumn, referenceType, value }). Extra fields may be passed through. | Pro+ |
| erply_update_customer | customers | Update a customer/supplier (PUT /customers/{customerId}). Requires customerId. Path id wins over any body id. Extra APICustomerInfo fields may be passed through. | Pro+ |
| erply_update_customer_bank_account | customers | Update a customer bank account (PUT /customers/bank_accounts/{customerId}). Requires customerId and bankAccountId. Body id is the bank account id; entityId defaults to customerId. PUT is a full replace — resend iban/accountNumber/bankName or they are cleared. Extra APIBankAccountInfo fields may be passed through. | Pro+ |
| erply_update_customer_v2 | customers | Update a customer/supplier via PUT /customers/v2/{customerId} (APICustomerInfoV2). Requires customerId. Path id wins over any body id. Extra v2 fields may be passed through. GET /customers/v2 returns 405 on current tokens; PUT /customers/v2/{id} works. | Pro+ |
| erply_update_invoice | invoices | Update an Erply Books document (PUT /invoices/{documentId}). Requires documentId. Optional registrationCode query. Extra APIInvoiceInfo fields may be passed through. | Pro+ |
| erply_update_invoice_split_rows | invoices | Update a row split (PUT /invoices/split_rows/{documentId}). Requires documentId. Optional invoiceId, documentStatusTypeCode, oldRows, newRows, registrationCode. Extra APIInvoiceRowSplittingInfo fields may be passed through. | Pro+ |
| erply_update_invoice_template | invoices | Update an invoice text template (PUT /invoices/templates/{documentInfoId}). Requires documentInfoId. Path id wins over any body id. Extra APIDocumentTextsInfo fields may be passed through. | Pro+ |
| erply_update_partner_invoice | invoices | Update a partner invoice (PUT /invoices/partner/{documentId}). Requires documentId. Optional typeCode, date, customerId, rows, registrationCode, searchByCustomerCode. Extra APIPartnerInvoiceInfo fields may be passed through. | Pro+ |
| erply_update_payment | payments | Update a payment (PUT /payments/{paymentId}). Requires a real paymentId. Path id wins over body id. A pending-feed pendingPaymentId is not a payment id (409 Ei leidnud 'payment'). When a real payment exists, pass invoiceId together with opDate, sumPaid, typeCode, accountId, customerId, and currencyCode to change invoice balances. | Pro+ |
| erply_update_project | projects | Update a project (PUT /projects/{projectId}). Requires projectId. Path id wins over body id. Use affirmed (not isAffirmed) for the body flag. | Pro+ |
| erply_update_project_group | projects | Update a project group (PUT /projects/groups/{projectId}). Requires projectId (the group id — the spec names the path param projectId). Path id wins over any body id. Extra APIProjectGroupInfo fields may be passed through. | Pro+ |
| erply_update_recurring_invoice | invoices | Update a recurring invoice schedule (PUT /invoices/recurring/{documentId}). Requires documentId. Optional schedule/email fields and registrationCode. Extra APIRecurringInvoiceInfo fields may be passed through. | Pro+ |
| erply_update_tax_rate | tax rates | Update a tax rate (PUT /tax_rates/{taxRateId}). Requires taxRateId. Path id wins over body id. | Pro+ |
| erply_update_transaction_entry | ledger | Update a transaction/journal entry (PUT /transaction_entries/{transactionEntryId}). Requires transactionEntryId. Path id wins over body id. May 409 (MODULE_TRANSACTIONS). | Pro+ |
| erply_use_invoice_prepayment | invoices | Apply a prepayment to a document (POST /invoices/use_prepayment). Requires documentId. Optional paymentId, sumPaid, date, sumPaidInForeignCurrency, registrationCode. | Pro+ |
| erply_vat_ee | reports | Fetch the Estonian VAT declaration report (GET /reports/tax/ee/vat). Requires dateFrom and dateTo. Optional projectId, showSales, showPurchases, cashBasis, country, transactionTypes, versionNr. Some orgs/plans return HTTP 500 or 409. | Pro+ |
| financial_summary | reports | Get a summary of financial data including transaction counts, invoice totals, and outstanding amounts. | Tasuta |
| get_bank_account | accounts | Get one bank account by ID. | Tasuta |
| get_bank_accounts | accounts | List all bank accounts configured in e-Financials. | Tasuta |
| get_client | clients | Get details of a specific client by ID | Tasuta |
| get_invoice_info | invoice settings | Get company invoice settings (address, templates, email templates for invoices and balance letters). | Tasuta |
| get_invoice_series | invoice settings | Get one invoice series by ID (OpenAPI InvoiceSeries). | Tasuta |
| get_journal | journals | Get one journal entry by ID (includes postings). | Tasuta |
| get_journal_file | journals | Get the user-uploaded file attached to a journal entry (OpenAPI ApiFile: name + base64 contents). | Tasuta |
| get_product | products | Get one product/service by ID. | Tasuta |
| get_purchase_invoice | invoices | Get details of a specific purchase invoice by ID | Tasuta |
| get_purchase_invoice_user_file | invoices | Get the user-uploaded file attached to a purchase invoice (OpenAPI ApiFile: name + base64 contents). | Tasuta |
| get_release_notes | support | Read the hosted Werkzeug MCP changelog: current version plus recent GitLab releases. Use this to see whether a capability was already shipped instead of filing a duplicate report. Returns { version, available, current, recent }. available is false when release notes are not configured. | Tasuta |
| get_sales_invoice | invoices | Get details of a specific sales invoice by ID | Tasuta |
| get_sales_invoice_delivery_options | invoices | Get delivery options for a sales invoice (e-invoice vs email, suggested addresses, reasons). | Tasuta |
| get_sales_invoice_pdf_system | invoices | Get the system-generated PDF for a sales invoice (OpenAPI ApiFile: name + base64 contents). | Tasuta |
| get_sales_invoice_user_file | invoices | Get the user-uploaded file attached to a sales invoice (OpenAPI ApiFile: name + base64 contents). | Tasuta |
| get_sales_invoice_xml | invoices | Get the system-generated e-invoice XML for a sales invoice (OpenAPI ApiFile: name + base64 contents). | Tasuta |
| get_transaction | transactions | Get a bank transaction by ID. The returned type is the stored direction (C = money in, D = money out). RIK's own GET type field is always C, so the direction comes from that day's lists: incoming when the row is in the incoming filter, outgoing when it is only in the unfiltered list. When it is in neither, or the row has no valid date, type is null and direction_confirmed is false. The JSON may include read-only items[] relation rows (relation_table, relation_id, amount, accounts_id). To add relations and confirm, use register_transaction with a full distributions array — the API does not support incremental draft rows. | Tasuta |
| get_transaction_file | transactions | Get the user-uploaded file attached to a bank transaction (OpenAPI ApiFile: name + base64 contents). | Tasuta |
| get_unprocessed_transactions | transactions | Get all unprocessed (PROJECT status) transactions that don't have a client assigned yet. These need categorization. | Tasuta |
| get_vat_info | accounts | Get company VAT information (VAT number and tax reference number). | Tasuta |
| invalidate_journal | journals | Invalidate a journal entry (reverse registration state per API rules). | Pro |
| invalidate_purchase_invoice | invoices | Invalidate a registered purchase invoice (reverse registration per API rules). Typically applies to posted invoices (CONFIRMED); draft invoices (PROJECT) should use delete_purchase_invoice instead. See RIK e-Financials API documentation. | Pro |
| invalidate_sales_invoice | invoices | Invalidate a registered sales invoice (reverse registration per API rules). Typically applies to posted invoices (CONFIRMED); draft invoices (PROJECT) should use delete_sales_invoice instead. See RIK e-Financials API documentation. | Pro |
| invalidate_transaction | transactions | Invalidate a registered transaction (reverse registration per API rules). Typically applies to posted (CONFIRMED) rows; draft PROJECT rows use delete instead. See RIK e-Financials API documentation. | Pro |
| list_account_dimensions | accounts | List account dimensions (sub-accounts). Filter by accounts_id to see dimensions for a specific parent account. | Tasuta |
| list_accounts | accounts | List the chart of accounts. Returns all accounts used for bookkeeping entries. | Tasuta |
| list_clients | clients | List all clients (buyers and suppliers). Can filter to show only buyers or only suppliers. | Tasuta |
| list_currencies | reference | List active currencies configured for the company (codes and Estonian/English names). | Tasuta |
| list_invoice_series | invoice settings | List all invoice series for the company (number prefix, terms, default flag). | Tasuta |
| list_journals | journals | List journal entries with optional pagination and filters (modified_since, effective date range). Amendments (parent_id / amendment_number, UI 'Parandus') are additive correcting entries, not replacements — count the original and each amendment. | Tasuta |
| list_my_feedback | support | List this authenticated user's feedback reports (id, type, message snippet, status, created time). Use to check whether a gap was already reported and whether status is New, Issued, or Fixed. Never shows other users' rows. Rate limits apply. | Tasuta |
| list_products | products | List products/services for the company with optional pagination and modified_since filter. | Tasuta |
| list_projects | accounts | List all projects (cost/profit centers). Used for tracking expenses by project. | Tasuta |
| list_purchase_articles | accounts | List purchase articles (expense categories). Each article maps to an account for expense categorization. | Tasuta |
| list_purchase_invoices | invoices | List purchase invoices (invoices from suppliers you need to pay) with optional filters. Note: the e-arveldaja incoming e-invoice inbox ('Sissetulnud digiarved') is not exposed by the public RIK REST API — arrived-but-unaccepted e-invoices cannot be listed, accepted, or rejected over the API (verified 2026-08; no such endpoints exist). Do not search for list/accept/reject incoming-einvoice tools. Post-accept triage: once the user accepts an e-invoice in the e-Financials web UI it appears here as a PROJECT draft whose lines default to suspense account 9900 ('digiarve kulu vahekonto'). List with status=PROJECT, inspect with get_purchase_invoice, recode 9900 lines to the correct expense account and VAT via update_purchase_invoice, then confirm with register_purchase_invoice. | Tasuta |
| list_sale_articles | reference | List sale articles (revenue / sales categories linked to accounts and VAT) for the company. | Tasuta |
| list_sales_invoices | invoices | List sales invoices (invoices you send to customers) with optional filters. | Tasuta |
| list_suppliers | clients | List all suppliers (vendors you pay). Convenience method that filters clients to only suppliers. | Tasuta |
| list_templates | reference | List sale invoice templates available for the company. | Tasuta |
| list_transactions | transactions | List bank transactions with optional filters. Returns transactions from the e-Financials system. | Tasuta |
| list_unpaid_invoices | invoices | List all unpaid invoices (both sales and purchase). Useful for checking outstanding payments. | Tasuta |
| match_transaction_to_supplier | reports | Analyze a transaction description and suggest matching suppliers from the client list. | Pro |
| merit_create_customer | customers | Create a Merit Aktiva customer (POST /api/v2/sendcustomer). Name must be unique (max 150). notTDCustomer is required (true for physical persons / foreign companies in EE). countryCode is required (2 chars). Returns { Id, Name }. | Pro+ |
| merit_create_customer_group | customers | Create a Merit Aktiva customer group (POST /api/v2/sendcustomergroup). id (GUID), name (max 64), and code (max 20) are required. | Pro+ |
| merit_create_fixed_assets | fixed assets | Create Merit Aktiva fixed assets (POST /api/v2/sendfixedassets). Each asset needs inventoryNo and name. deprCalcMethod: 1 = linear, 3 = residual, 4 = one-copy (PL). Wire fields keep Merit's documented spellings (InventaryNo, FAFroupName). | Pro+ |
| merit_create_gl_batch | ledger | Create a Merit Aktiva general-ledger batch (POST /api/v1/sendglbatch). entryRows need accountCode plus debit and/or credit. batchDate is ISO YYYY-MM-DD. | Pro+ |
| merit_create_inventory_movement | inventory | Create a Merit Aktiva inventory movement (POST /api/v2/SendInvMovement). type: 1 = in (itemUnitCost required on rows), 2 = out, 3 = between stocks (location2Code is the destination). Dates are ISO YYYY-MM-DD. | Pro+ |
| merit_create_invoice_from_sales_offer | sales offers | Create a sales invoice from a Merit Aktiva sales offer (POST /api/v2/offer2inv). id is the offer GUID. Returns InvoiceId / InvoiceNo. | Pro+ |
| merit_create_item_groups | items | Create Merit Aktiva item groups (POST /api/v2/senditemgroups). Each group needs code and name. | Pro+ |
| merit_create_items | items | Create Merit Aktiva items (POST /api/v2/senditems). Each item needs type (1 stock, 2 service, 3 item), usage (1 sales, 2 purchases, 3 both), code, and description. uomName is required for stock items. Returns [{ ItemId, Code }]. | Pro+ |
| merit_create_purchase_invoice | purchase invoices | Create a booked Merit Aktiva purchase invoice (POST /api/v2/sendpurchinvoice). Creates the document and GL entry immediately — bypasses the approval flow (use sendpurchorder for that; not in this package yet). vendor is existing Id or new record. invoiceRows, taxAmount[], and totalAmount (ex-VAT) are required. | Pro+ |
| merit_create_purchase_invoice_payment | purchase invoices | Record a payment for a purchase invoice (POST /api/v2/sendPaymentV). Identify the bill with vendorName + billNo. paymentDate is ISO date or datetime and is sent as yyyyMMddHHmm (Merit's documented format for this endpoint). | Pro+ |
| merit_create_recurring_invoice | recurring invoices | Create a Merit Aktiva recurring invoice (POST /api/v2/sendperinvoice). cycle: 1 = month, 2 = quarter, 3 = year, 4 = week. period: 2 = current, 3 = next, 4 = for the next, 5 = previous, 6 = current less cycles. Dates are ISO YYYY-MM-DD. | Pro+ |
| merit_create_sales_invoice | sales invoices | Create a Merit Aktiva sales invoice (POST /api/v2/sendinvoice). Invoices cannot be updated — delete and recreate. Credit invoice: use negative quantity and totalAmount. customer may be an existing Id or a new record (name + notTDCustomer + countryCode). invoiceRows, taxAmount[], and totalAmount (ex-VAT) are required. Dates are ISO YYYY-MM-DD. | Pro+ |
| merit_create_sales_invoice_payment | sales invoices | Record a payment against a sales invoice (POST /api/v2/sendpayment). Identify the invoice with customerName + invoiceNo. Provide bankId or IBAN (IBAN must match a payment method). paymentDate is ISO YYYY-MM-DD. Partial payments are allowed. | Pro+ |
| merit_create_sales_offer | sales offers | Create a Merit Aktiva sales offer (POST /api/v2/sendoffer). offerNo, customer, offerRows, taxAmount[], and totalAmount (ex-VAT) are required. docType: 1 = quote, 2 = order, 3 = prepayment. Dates are ISO YYYY-MM-DD. | Pro+ |
| merit_create_sales_offer_payment | sales offers | Record a payment against a sales offer (POST /api/v2/sendPaymentO). Identify the offer with customerName + offerNo. paymentDate is ISO date or datetime and is sent as yyyyMMddHHmm (Merit's documented format for this endpoint). | Pro+ |
| merit_create_vendor | vendors | Create a Merit Aktiva vendor (POST /api/v2/sendvendor). Name must be unique (max 150). vatAccountable and countryCode are required. Returns { Id, Name }. | Pro+ |
| merit_create_vendor_group | vendors | Create a Merit Aktiva vendor group (POST /api/v2/sendvendorgroup). id (GUID), name (max 64), and code (max 20) are required. | Pro+ |
| merit_delete_payment | payments | DESTRUCTIVE: delete a Merit Aktiva payment (POST /api/v1/deletepayment). id is the payment GUID. There is no undo. | Pro+ |
| merit_delete_purchase_invoice | purchase invoices | DESTRUCTIVE: delete a Merit Aktiva purchase invoice (POST /api/v1/deletepurchinvoice). id is the purchase invoice GUID (PIHId). There is no undo. | Pro+ |
| merit_delete_sales_invoice | sales invoices | DESTRUCTIVE: delete a Merit Aktiva sales invoice (POST /api/v1/deleteinvoice). id is the invoice GUID (SIHId). There is no undo. | Pro+ |
| merit_email_sales_invoice | sales invoices | SENDS EMAIL: email a Merit Aktiva sales invoice to the customer (POST /api/v2/sendinvoicebyemail). id is the invoice GUID (SIHId). Set delivNote to send a delivery note without prices. | Pro+ |
| merit_get_balance_report | reports | Balance sheet / statement of financial position (POST /api/v1/getbalancerep). endDate is ISO YYYY-MM-DD; periodCount is the number of months. | Pro+ |
| merit_get_customer_debts_report | customers | Customer debts report (POST /api/v1/getcustdebtrep). Provide customerName (empty string = all customers) or customerId. overDueDays filters exceeded days; debtDate defaults to today when omitted. | Pro+ |
| merit_get_customer_payments_report | customers | Customer payments report (POST /api/v2/getcustpaymrep). Paginated via HasMore/Id4More; this tool follows getmoredata automatically. periodStart/periodEnd required. Note the wire typo CurrncyCode. | Pro+ |
| merit_get_gl_batch | ledger | Get one Merit Aktiva GL batch with entries (POST /api/v1/getglbatch). id is the batch GUID (GLBId). Set addAttachment to include a file as base64. | Pro+ |
| merit_get_inventory_report | inventory | Inventory report (POST /api/v2/getinventoryreport). reportDate is ISO YYYY-MM-DD. | Pro+ |
| merit_get_price | prices | Get the valid sales price for a customer on a date (POST /api/v2/getprice). itemCode and docDate are required; provide customerId, or custName / custRegNo. | Pro+ |
| merit_get_profit_report | reports | Income statement / P&L (POST /api/v1/getprofitrep). endDate is ISO YYYY-MM-DD; periodCount is the number of months back. Optional departmentFilter. | Pro+ |
| merit_get_purchase_invoice | purchase invoices | Get one Merit Aktiva purchase invoice with rows and payments (POST /api/v2/getpurchorder). id is the purchase invoice GUID (PIHId). Set skipAttachment to omit the PDF (smaller response). | Pro+ |
| merit_get_purchase_report | purchase invoices | Purchase report (POST /api/v2/getpurchrep). reportType: 1 = invoices, 2 = vendors, 3 = articles, 4 = fixed assets. | Pro+ |
| merit_get_recurring_invoice | recurring invoices | Get one Merit Aktiva recurring invoice with rows (POST /api/v2/getperinvoice). id is the recurring-invoice GUID. | Pro+ |
| merit_get_sales_invoice | sales invoices | Get one Merit Aktiva sales invoice with rows and payments (POST /api/v2/getinvoice). id is the invoice GUID (SIHId from the list tools). Set addAttachment to include the invoice PDF as base64 (large). | Pro+ |
| merit_get_sales_invoice_pdf | sales invoices | Get a Merit Aktiva sales invoice PDF as base64 (POST /api/v2/getsalesinvpdf). Returns FileName + FileContent. Set delivNote for a delivery note without prices. | Pro+ |
| merit_get_sales_offer | sales offers | Get one Merit Aktiva sales offer with rows (POST /api/v2/getoffer). id is the offer GUID. | Pro+ |
| merit_get_sales_report | reports | Sales report (POST /api/v2/getsalesrep). reportType: 1 = invoices, 2 = customers, 3 = articles, 4 = countries, 5 = countries general. | Pro+ |
| merit_list_accounts | accounts | List the Merit Aktiva chart of accounts (POST /api/v1/getaccounts). usageFilter: 0 or omitted = all accounts, 1 = cost accounts, 2 = cost contra-accounts, 3 = purchase VAT accounts. | Pro+ |
| merit_list_banks | reference | List Merit Aktiva banks / payment methods (POST /api/v1/getbanks). No filters. | Pro+ |
| merit_list_cost_centers | reference | List Merit Aktiva cost centers (POST /api/v1/getcostcenters). No filters. | Pro+ |
| merit_list_customer_groups | customers | List Merit Aktiva customer groups (POST /api/v2/getcustomergroups). No filters. | Pro+ |
| merit_list_customers | customers | List/search Merit Aktiva customers (POST /api/v1/getcustomers). With no filters returns all customers — can be very large (Merit may even fail to serialize huge lists), so prefer a filter. id wins over all other filters; regNo/vatRegNo match exactly; name matches partially. Dates are ISO YYYY-MM-DD. | Pro+ |
| merit_list_departments | reference | List Merit Aktiva departments (POST /api/v1/getdepartments). No filters. | Pro+ |
| merit_list_dimensions | reference | List Merit Aktiva dimensions and their values (POST /api/v2/getdimensions). Set allValues to include inactive/ended values. | Pro+ |
| merit_list_discounts | prices | List Merit Aktiva sales discounts (POST /api/v2/getdiscounts). No filters. | Pro+ |
| merit_list_financial_years | reference | List Merit Aktiva accounting periods / financial years (POST /api/v2/getaccperiods). No filters. | Pro+ |
| merit_list_fixed_asset_employees | fixed assets | List Merit Aktiva fixed-asset responsible employees (POST /api/v2/getfaresppersons). No filters. | Pro+ |
| merit_list_fixed_asset_locations | fixed assets | List Merit Aktiva fixed-asset locations (POST /api/v2/getfalocations). No filters. | Pro+ |
| merit_list_fixed_assets | fixed assets | List Merit Aktiva fixed assets (POST /api/v2/getfixassets). No filters. | Pro+ |
| merit_list_gl_batches | ledger | List Merit Aktiva general-ledger batches (POST /api/v1/getglbatches). periodStart/periodEnd are ISO YYYY-MM-DD, max 3 months apart. dateType: 0 = document date, 1 = changed date. | Pro+ |
| merit_list_gl_batches_full | ledger | List Merit Aktiva GL batches with entries and cost allocations in one call (POST /api/v1/GetGLBatchesFull). Period max 31 days. withLines/withCostAlloc default off when omitted. | Pro+ |
| merit_list_inventory_movements | inventory | List Merit Aktiva inventory movements (POST /api/v2/getinvmovements). periodStart/periodEnd are ISO YYYY-MM-DD, max 3 months apart. dateType: 0 = document date, 1 = changed date. Type: 1 = in, 2 = out, 3 = between stocks. | Pro+ |
| merit_list_item_groups | items | List Merit Aktiva item groups (POST /api/v2/getitemgroups). No filters. | Pro+ |
| merit_list_items | items | List/search Merit Aktiva items (POST /api/v1/getitems). id wins over other filters; code and description are broad (partial) matches. usage: 1 = sales, 2 = purchases, 3 = both. type: 1 = stock, 2 = service, 3 = item. locationCode adds inventory qty. | Pro+ |
| merit_list_locations | inventory | List Merit Aktiva stock locations (POST /api/v2/getlocations). No filters. Returns Code, Name, and next document numbers per movement type. | Pro+ |
| merit_list_payment_types | payments | List Merit Aktiva payment types (POST /api/v2/getpaymenttypes). type is required: 1 = purchases, 2 = expense reports, 3 = sales. | Pro+ |
| merit_list_payments | payments | List Merit Aktiva payments for a period (POST /api/v2/getpayments). periodStart/periodEnd are ISO YYYY-MM-DD, max 3 months apart. Response Direction: 1 = customer transactions, 2 = vendor, 3 = other income, 4 = other expenses. dateType: 0 = document date, 1 = changed date. | Pro+ |
| merit_list_prices | prices | List Merit Aktiva sales prices (POST /api/v2/getprices). No filters. | Pro+ |
| merit_list_projects | reference | List Merit Aktiva projects (POST /api/v1/getprojects). No filters. Returns Code, Name, EndDate. | Pro+ |
| merit_list_purchase_invoices | purchase invoices | List Merit Aktiva purchase invoices for a period (POST /api/v2/getpurchorders). periodStart/periodEnd are ISO YYYY-MM-DD, max 3 months apart. dateType: 0 = document date, 1 = changed date. Distinct from merit_list_purchase_orders (waiting-approval). | Pro+ |
| merit_list_purchase_orders | purchase invoices | List Merit Aktiva purchase orders waiting approval (POST /api/v2/GetPOrders). Not the same as booked purchase invoices (getpurchorders). dateFilter: 0 = off, 1 = document date, 2 = created date. statusFilter: 0 = off. | Pro+ |
| merit_list_recurring_invoice_addresses | recurring invoices | List client addresses for open Merit Aktiva recurring invoices (POST /api/v2/getpershaddress). No filters. Empty when none are open. | Pro+ |
| merit_list_recurring_invoices | recurring invoices | List Merit Aktiva recurring invoices (POST /api/v2/getperinvoices). The period is the next-invoice date and may be at most 180 days. dateType: 0 = next invoice date, 1 = changed date. | Pro+ |
| merit_list_sales_invoices | sales invoices | List Merit Aktiva sales invoices for a period (POST /api/v2/getinvoices). periodStart/periodEnd are ISO YYYY-MM-DD and may be at most 3 months apart (Merit rejects longer periods). dateType: 0 = document date (default), 1 = changed date. | Pro+ |
| merit_list_sales_invoices_by_number_or_customer | customers | List Merit Aktiva sales invoices filtered by invoice number and/or customer (POST /api/v2/getinvoices2). Provide invoiceNo, customerName, or customerId; no period needed. Useful for finding a specific invoice's GUID (SIHId). | Pro+ |
| merit_list_sales_offers | sales offers | List Merit Aktiva sales offers (POST /api/v2/getoffers). periodStart/periodEnd are ISO YYYY-MM-DD and may be at most 3 months apart. dateType: 0 = document date, 1 = changed date. DocType: 1 = quote, 2 = order, 3 = prepayment. DocStatus: 1 = created, 2 = sent, 3 = approved, 4 = rejected, 5 = comment received, 6 = invoice created, 7 = canceled. | Pro+ |
| merit_list_taxes | taxes | List all Merit Aktiva tax (VAT) rates (POST /api/v1/gettaxes). No filters. Returns Id (the TaxId GUID used on invoice rows), Code, Name, and TaxPct. | Pro+ |
| merit_list_units | reference | List Merit Aktiva units of measure (POST /api/v1/getunits). No filters. | Pro+ |
| merit_list_vendor_groups | vendors | List Merit Aktiva vendor groups (POST /api/v2/getvendorgroups). No filters. | Pro+ |
| merit_list_vendors | vendors | List/search Merit Aktiva vendors (POST /api/v1/getvendors). With no filters returns all vendors — can be very large, so prefer a filter. id wins over other filters; regNo/vatRegNo match exactly; name matches partially. Dates are ISO YYYY-MM-DD. | Pro+ |
| merit_send_discounts | prices | Create or replace Merit Aktiva sales discounts (POST /api/v2/senddiscounts). targetGroup: 1 = customer, 2 = customer group. groupType: 1 = item, 2 = item group. | Pro+ |
| merit_send_prices | prices | Create or replace Merit Aktiva sales prices (POST /api/v2/sendprices). targetGroup: 0 = campaign, 1 = customer, 2 = customer group. | Pro+ |
| merit_send_recurring_indication_values | recurring invoices | Send meter / indication values for recurring invoices (POST /api/v1/sendindvalues). artCode is the article; each value may set endValue or quantity (quantity wins) plus address or customerId. | Pro+ |
| merit_send_sales_invoice_einvoice | sales invoices | SENDS E-INVOICE: send a Merit Aktiva sales invoice as an e-invoice (POST /api/v2/sendinvoiceaseinv). id is the invoice GUID (SIHId). Receiver not capable returns api-noeinv. Set delivNote to send without prices. | Pro+ |
| merit_set_sales_offer_status | sales offers | Change a Merit Aktiva sales offer status (POST /api/v2/setofferstatus). newStatus: 1 = unsent, 2 = sent, 3 = confirmed, 4 = rejected, 5 = commented (comment required), 7 = canceled. | Pro+ |
| merit_update_customer | customers | Update a Merit Aktiva customer (POST /api/v1/updatecustomer). id is required; other fields are optional patches. | Pro+ |
| merit_update_item | items | Update a Merit Aktiva item (POST /api/v1/updateitem). id is required; other fields are optional patches. | Pro+ |
| merit_update_sales_offer | sales offers | Update a Merit Aktiva sales offer (POST /api/v2/updateoffer). offerNo identifies the offer; deliveryDate, hComment, and fComment are the writable fields. | Pro+ |
| merit_update_vendor | vendors | Update a Merit Aktiva vendor (POST /api/v2/updatevendor). id is required; other fields are optional patches. v2 supports Dimensions. | Pro+ |
| month_end_close_checklist | month-end close | Surfaces everything blocking a month-end close for a YYYY-MM month. Sections: unconfirmed (PROJECT) journals, sale invoices, purchase invoices; unconfirmed bank transactions; overdue receivables/payables (confirmed unpaid with due date before month-end). Returns counts + entity IDs for follow-up tool calls. ready_to_close is true only when unconfirmed sections are empty (overdue does not block). Free-tier read-only tool. | Tasuta |
| pay_purchase_invoice | transactions | Mark a CONFIRMED purchase invoice paid from a cash or bank dimension (for example account 1360, Arveldused aruandvate isikutega). Creates an outgoing transaction (type D, money out) and registers it against the invoice, which is the API form of the e-arveldaja posting "Ostuarve nr … tasumine". registered: true means the payment is registered; do not call again if the invoice could not be re-read. Amount defaults to the invoice gross price when the invoice is unpaid, and must not exceed that gross price. The API does not report the unpaid remainder, so a second partial payment can still exceed what remains. A PARTIALLY_PAID invoice requires amount. A non-EUR invoice sends currency_rate and a base_amount scaled from base_gross_price; pass currency_rate when the invoice has none. Refuses before any write when the supplier already has a PROJECT draft with the same amount, or the invoice already has a CONFIRMED payment with the same amount and date; pass allow_duplicate=true to pay anyway. When the stored direction cannot be confirmed as outgoing, the draft is kept but not registered (registered: false with its transaction_id). If registration fails, the draft is deleted. | Pro |
| process_camt053 | CAMT.053 | Import an ISO 20022 CAMT.053 bank statement (LHV, Swedbank, SEB, Coop, Luminor). Modes: parse (read-only), dry_run (default for import; no writes), execute (create PROJECT transactions). file_path is a filesystem path or base64:/base64:xml: payload. dry_run/execute require accounts_dimensions_id. Duplicate detection uses bank reference (and a description marker when the API drops dedicated fields). Each created row carries direction_confirmed; rows whose stored direction could not be checked are kept and counted in summary.direction_unconfirmed_count, so check them before registering. Pro-tier batch write. | Pro |
| reactivate_client | clients | Reactivate a previously deactivated client. | Pro |
| reactivate_product | products | Reactivate a previously deactivated product/service. | Pro |
| reconcile_bank_transactions | bank reconciliation | Mode-based bank reconciliation. mode=match (default): score PROJECT txs against open invoices. mode=auto_confirm: dry-run by default; with execute=true confirm unambiguous high-confidence invoice matches via register_transaction distributions. mode=transfers: dry-run by default; detect own-account transfers (execute confirms outgoing + deletes duplicate incoming). Our types: C=money in (sale invoices), D=money out (purchase invoices). | Pro |
| reconciliation_report | reports | Generate a reconciliation report comparing bank transactions with invoices. Helps identify unmatched items. | Tasuta |
| register_journal | journals | Register (confirm/post) a journal entry. | Pro |
| register_purchase_invoice | invoices | Register (post to the books) a purchase invoice. GETs the draft, repairs invoice-level vat_price/gross_price from item sums when they drifted (unless preserve_existing_totals), then PATCH .../register. Usually PROJECT drafts. CONFIRMED/VOID follow RIK rules. | Pro |
| register_sales_invoice | invoices | Register (post to the books) a sales invoice. Usually applies to draft invoices (PROJECT) that are ready to be confirmed (CONFIRMED). The API accepts an empty PATCH body. CONFIRMED/VOID transitions follow RIK rules — see e-Financials API documentation. | Pro |
| register_transaction | transactions | Register (confirm/post) a bank transaction with distribution rows. API equivalent of the e-arveldaja UI "Add a row" under transaction relations (purchase invoices, accounts, etc.) plus "Save and confirm" — for incoming (type C) and outgoing (type D). To pay a CONFIRMED purchase invoice in one step, use pay_purchase_invoice. Pass the complete distributions array in one call; there is no incremental add-row endpoint (Transactions.items is read-only). Each row requires related_table and amount; related_id is required in practice. related_table values: "accounts" (related_id = account id; related_sub_id = dimension id when the account has dimensions), "purchase_invoices", "sale_invoices". If clients_id is missing, set it with update_transaction first (API often rejects with buyer/supplier missing unless an invoice distribution supplies the party). Usually PROJECT drafts. CONFIRMED/VOID follow RIK rules. | Pro |
| search_accounts | accounts | Search for an account by name or ID. Useful for finding the right account to use. | Tasuta |
| search_clients | clients | Search for clients by name. Useful for finding the right client to assign to a transaction. | Tasuta |
| submit_feedback | support | Submit product feedback or report a bug with this MCP server (tool failures, unexpected errors, missing capabilities). Use when you hit an issue with the Werkzeug hosted MCP integration itself — not for ordinary accounting questions. Prefer type "bug" for broken/incorrect tool behavior and "feedback" for suggestions. Include the failing tool name and error text in message or context when relevant. Returns { ok, id, status }. Do not spam; rate limits apply. | Tasuta |
| update_bank_account | accounts | PATCH an existing bank account. Only include fields to change. Read-only: id. | Pro |
| update_client | clients | PATCH an existing client. Only include fields to change; maps the same friendly names as create_client to the API. | Pro |
| update_invoice_info | invoice settings | PATCH company invoice settings. Only include fields to change (OpenAPI CompanyInvoiceInfo). | Pro |
| update_invoice_series | invoice settings | PATCH an invoice series. Only include fields to change. Read-only: id. | Pro |
| update_journal | journals | PATCH an existing journal entry. Only send fields to change. Read-only: id, parent_id, number, amendment_number, registered, operations_id, operation_type, base_document_files_id, is_xls_imported, posting ids, posting base_amount. | Pro |
| update_product | products | PATCH an existing product/service. Only include fields to change. Read-only: id, sale_accounts_id, purchase_accounts_id. | Pro |
| update_purchase_invoice | invoices | Update a purchase invoice draft (PROJECT). Merges header fields with the current GET. Optional items[] patches existing lines by id (or appends lines without id). purchase_accounts_id is API-derived from products_id / cl_purchase_articles_id — set those instead of writing the account id directly. | Pro |
| update_sales_invoice | invoices | Update a sales invoice draft. Only works on PROJECT status invoices. | Pro |
| update_transaction | transactions | Update a PROJECT draft: clients_id, accounts_id, description, and optional type (C = money in, D = money out). type is translated to RIK's opposite letter, then the stored direction is checked. If RIK still stores the other direction, that is an error and the row is left as RIK saved it. If the row is not in that day's lists, it has no valid date, or the check itself fails, the update stands with direction_confirmed false. Does not add or change distribution/relation rows — that is register_transaction (e-arveldaja UI: Add a row under transaction relations, then Save and confirm). Set clients_id before register when missing; the API often rejects confirmation with buyer/supplier missing. | Pro |
| upload_journal_file | journals | Upload a file to a journal entry (PUT .../document_user). Accepts a local path, https:// URL, or inline base64:<data> / base64:<ext>:<data> (max 10 MiB). Sent as OpenAPI ApiFile. | Pro |
| upload_purchase_invoice_file | invoices | Upload a PDF or other file attachment to a purchase invoice. Accepts a local path, https:// URL, or inline base64:<data> / base64:<ext>:<data> (max 10 MiB). | Pro |
| upload_sales_invoice_user_file | invoices | Upload a file to a sales invoice (PUT .../document_user). Accepts a local path, https:// URL, or inline base64:<data> / base64:<ext>:<data> (max 10 MiB). Sent as OpenAPI ApiFile. | Pro |
| upload_transaction_file | transactions | Upload a file to a bank transaction (PUT .../document_user). Accepts a local path, https:// URL, or inline base64:<data> / base64:<ext>:<data> (max 10 MiB). Sent as OpenAPI ApiFile. | Pro |
| validate_invoice_data | invoices | Read-only pre-booking checks for invoice totals, line nets/VAT, calendar dates, Estonian standard VAT rate vs invoice date, and foreign-currency rate guardrails. Returns { valid, errors[], warnings[], summary }. Does not call the RIK API. | Tasuta |