Juhendid

Ühenda su MCP-klient raamatupidamisega minutitega.

Ülevaade

See majutatud MCP pakib Eesti RIK e-Financialsi (ja Pro+ paketiga Erply Booksi või Merit Aktiva) Model Context Protocoli tööriistadeks. Su AI saab loetleda arveid, postitada tehinguid, jooksutada aruandeid ja muud — tööriistadega, mis töötavad Claude'i, ChatGPT, Cursori ja iga MCP-ühilduva kliendiga. Iga MCP võti on seotud ühe ettevõtte ja ühe teenusepakkujaga.

Kiirstart (RIK e-Financials)

  1. Loo konto

    Registreeru juhtpaneelil — tasuta plaan kaasas, krediitkaarti pole vaja.

  2. Loo API juurdepääsuluba

    e-Financials adminis: Seaded → Üldised seaded → e-Financials API juurdepääsu load.

    Klõpsa Lisa uus API juurdepääsuluba, nimeta see (nt MCP) ja sisesta meie serveri IP väljale IP-aadressid:

    95.216.204.222
    Ekraanipilt e-Financialsi uue API juurdepääsuloa dialoogist, kus IP-aadresside väli on punasega esile tõstetud; punane märgis ütleb „Sisesta see IP".

    Salvesta, seejärel klõpsa real Laadi võti. Kleebi ApiKey ID, Password ja ApiKey public value apikey.txt failist juhtpaneelile.

  3. Kopeeri MCP võti ja ühenda

    Pärast mandaatide salvestamist saad ühekordse MCP API võtme. Kleebi see oma AI kliendisse allolevate juhendite järgi — võtit näidatakse ainult üks kord.

Erply Books (Pro+)

Erply Books MCP tööriistad nõuavad Pro+ (või Kohandatud) paketti. Iga Erply ettevõte saab oma MCP URL-i ja võtme — sama mitme ettevõtte mudel nagu RIK-il.

  1. Uuenda Pro+ paketile (või saa tasuta Pro+), seejärel ava töölaud.
  2. Lisa ettevõte, vali Erply Books ja kleebi Erply Books API token. Kui Erply nõuab IP allowlisti, sisesta meie serveri IP teavitusest (sama väljuv IP kui RIK-il).
  3. Erply Booksi organisatsiooni API seadetes kopeeri API Token:

    Ekraanipilt Erply Booksi API Tokeni paneelist tokeni välja ja Copy nupuga.

    Kui Erply nõuab IP allowlisti, lisa meie serveri IP ja salvesta (Save):

    Ekraanipilt Erply Booksi API whitelist paneelist lubatud IP-aadresside lisamiseks ja Save nupuga.
  4. Salvesta, et saada ühekordne MCP API võti, seejärel ühenda klient allolevate juhenditega. Tööriistade nimed algavad erply_.

Tokenit vaja? Kopeeri see oma päris Erply Books organisatsiooni API seadetes. Liivakasti või demo token on ainult testimiseks ja ei näita sinu päris raamatuid.

Merit Aktiva (Pro+)

Merit Aktiva MCP tööriistad nõuavad Pro+ (või Kohandatud) paketti. Iga Merit ettevõte saab oma MCP URL-i ja võtme — sama mitme ettevõtte mudel nagu RIK-il. Meritil pole liivakasti: kasuta tasuta testettevõtet või oma päris ettevõtet.

  1. Uuenda Pro+ paketile (või saa tasuta Pro+), seejärel ava töölaud.
  2. Lisa ettevõte, vali Merit Aktiva ja kleebi API ID ning API võti menüüst Seaded → API seaded. Meritil on nende poolel vaja Pro/Premium litsentsi. Vali Eesti (aktiva.merit.ee) või Poola (360 Księgowość).
  3. Salvesta, et saada ühekordne MCP API võti, seejärel ühenda klient allolevate juhenditega. Tööriistade nimed algavad merit_.

Mandaate vaja? Loo need Meriti menüüs Seaded → API seaded. Meritil pole liivakasti — tasuta testettevõte on eraldi sinu päris raamatutest. Vale ettevõtte mandaadid ei näita sinu päris andmeid.

Ühenda klient

Asenda YOUR_MCP_KEY võtmega, mis väljastatakse pärast mandaatide salvestamist.

Claude (veeb/mobiil) ja ChatGPT ühenduvad OAuthiga — kleebi ainult URL; sisselogimine toimub meie juhtpaneelil. Cursor ja Claude Code kasutavad staatilist MCP API võtit.

Ava claude.ai-s Seaded → Connectors → Add custom connector. Täida dialoog nagu all näidatud — jäta Advanced settings tühjaks. Logi küsimisel meie juhtpaneelil sisse ja vali ettevõte.

  1. Name — mis tahes nimi (nt Werkzeug)
  2. Remote MCP server URL — kleebi allolev MCP URL
  3. Advanced settings — jäta OAuth Client ID ja Client Secret tühjaks
  4. Klõpsa Add, seejärel logi meie juhtpaneelil sisse ja vali ettevõte
Annotatsioonidega Claude Add custom connector dialoog: URL väli on roheliselt esile tõstetud märgisega „kleebi oma MCP URL"; Advanced settings OAuth Client ID ja Client Secret on punase ristiga maha tõmmatud märgisega „jäta tühjaks".
https://werkzeug.ee/mcp

Mitu ettevõtet

Igal juhtpaneelil ühendatud ettevõttel on oma MCP sidumine. Tööriistad töötavad alati selle ühenduse või võtmega seotud ettevõtte peal — assistent ei vali ettevõtet tööriistakutse sees.

Staatiline MCP API võti (Cursor, Claude Code jms)

  1. Juhtpaneelil klõpsa „+ Lisa uus ettevõte“, sisesta selle ettevõtte RIK, Erply Books või Merit Aktiva mandaadid ja salvesta.
  2. Kopeeri uus ühekordne MCP API võti (näidatakse ainult üks kord).
  3. Lisa kliendi seadistusse teine kirje eraldi serverinimega (kasuta ettevõtte silti, et see esimest ei kirjutaks üle). Võid kasutada sama baas-URL-i teise Bearer võtmega või iga ettevõtte /mcp/c/… URL-i. Näide:
    {
      "mcpServers": {
        "e-financials-acme": {
          "url": "https://werkzeug.ee/mcp",
          "headers": {
            "Authorization": "Bearer KEY_FOR_ACME"
          }
        },
        "e-financials-beta": {
          "url": "https://werkzeug.ee/mcp",
          "headers": {
            "Authorization": "Bearer KEY_FOR_BETA"
          }
        }
      }
    }
  4. AI kliendis lülita sisse või vali server, mis vastab sellele vestlusele soovitud ettevõttele.
  5. Võtme vahetamine või mandaadi kustutamine kehtetustab ainult selle võtme — uuenda seda kliendi kirjet.

OAuth (Claude veeb/mobiil, ChatGPT)

  1. Kopeeri selle ettevõtte MCP URL töölaualt (nupu „Kopeeri URL“ või pärast salvestamist näidatud aadress). Igal ettevõttel on erinev URL, mis lõpeb /mcp/c/… — Claude lubab ühe ühenduse URL-i kohta.
  2. Kleebi see ettevõtte-spetsiifiline URL uude custom connectorisse (ilma API võtmeta). Nõusoleku ekraanil logi sisse; ettevõte lukustatakse selle URL-iga.
  3. Teise ettevõtte jaoks lisa uus connector selle ettevõtte teise MCP URL-iga töölaualt. Värskendustoken ei vaheta ettevõtet.

Tasuta plaanis on üks ühendatud ettevõte. Pro ja Pro+ lubavad piiramatu arvu ettevõtteid; Erply Books ja Merit Aktiva nõuavad Pro+ või Kohandatud paketti. Vaata hinnakirja.

Ise majutatud stdio on üks ettevõte protsessi kohta — kasuta eraldi mcpServers kirjeid erinevate RIK_* keskkonnamuutujatega. Vaata allpool ise majutamist.

Probleemide lahendamine

ChatGPT: „The tool failed internally“ või puuduvad tööriistad

Kui ChatGPT vastab igale Werkzeugi tööriista kutsele veaga „The tool failed internally“ (või „-32603: Internal error“) või osa tööriistu puudub, on konnektori sisselogimine tavaliselt aegunud või kasutab ChatGPT tööriistade loendi vana koopiat. Ühenda konnektor uuesti:

  1. Eemalda ChatGPT seadetes Werkzeugi konnektor.
  2. Kopeeri Werkzeugi töölaualt ettevõtte MCP URL (nupp „Kopeeri URL“ ühenduse real). See näeb välja nagu https://werkzeug.ee/mcp/c/<id>.
  3. Lisa ChatGPT-s uus konnektor uue nimega (näiteks „Werkzeug 2“) ja selle URL-iga. Kui lisad selle sama nimega uuesti, võib vana tööriistade loend alles jääda.
  4. Kui ChatGPT seda palub, logi Werkzeugi nõusolekuaknas uuesti sisse ja proovi siis lihtsat päringut, näiteks kliendi otsingut.

Samamoodi tuleks asendada konnektorid, mis viitavad veel vanale aadressile mcp.werkstatt.ee.

Plaanid

Tasuta plaanis on 49 ainult lugemise tööriista ilma kuise kutselimiidita ja üks ühendatud ettevõte. Pro avab kõik 100 tööriista, piiramatu arvu ettevõtteid (igal oma MCP võti või OAuth nõusolek) ning plaanis on 2000 päringut kuus. Täielik hinnakiri ja tellimus on hinnalehel.

Vaata hinnakirja →

Pakett Hind Sisaldab
Tasuta€0 / kuus
  • Piiramatult lugemispäringuid
  • Ainult lugemisõigustega tööriistad
  • 1 ühendatud ettevõte
  • Kogukonna tugi
Pro€6 / kuus
  • 2000 päringut kuus (mõistlik kasutus, mitte range piir)
  • Täisfunktsionaalsus — loo, muuda, aruanded
  • Piiramatu arv ühendatud ettevõtteid
  • E-posti tugi 1 tööpäeva jooksul
Pro+€10 / kuus
  • Kõik Pro omadused
  • Erply Booksi ja Merit Aktiva tööriistad (lugemine ja kirjutamine)
  • Piiramatu arv ühendatud ettevõtteid
  • E-posti tugi 1 tööpäeva jooksul
KohandatudRäägime
  • Mahukad piirangud kokkuleppel
  • Piiramatu arv ettevõtteid
  • Allkirjastatud DPA, arveldamine ülekandega
  • Eraldi Slacki kanal

Tööriistade kataloog

Kõik majutatud serveri tööriistad (inglise keeles).

Tööriist Kategooria Kirjeldus Plaan
analyze_unconfirmed_transactionsbank reconciliationRead-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_transactionsbank classificationClassify 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_balanceaccount balanceCompute 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_sheetfinancial statementsCompute 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_debtaccount balanceCompute 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_agingaging analysisCompute 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_lossfinancial statementsCompute 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_agingaging analysisCompute 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_balancefinancial statementsCompute 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_accountaccountsCreate a bank account in e-Financials. Required: account_name_est, account_no (per OpenAPI BankAccounts).Pro
create_clientclientsCreate 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_seriesinvoice settingsCreate an invoice series. Required: is_active, is_default, number_prefix, number_start_value, term_days. API assigns id (read-only).Pro
create_journaljournalsCreate 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_productproductsCreate a product/service. API assigns sale_accounts_id and purchase_accounts_id (read-only in OpenAPI).Pro
create_purchase_invoiceinvoicesCreate 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_invoiceinvoicesCreate 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_transactiontransactionsCreate 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_clientclientsDeactivate a client (soft-disable). The record remains; use reactivate_client to enable again.Pro
deactivate_productproductsDeactivate a product/service.Pro
delete_bank_accountaccountsDelete a bank account by ID.Pro
delete_clientclientsPermanently 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_seriesinvoice settingsDelete an invoice series by ID.Pro
delete_journaljournalsDelete a journal entry by ID.Pro
delete_journal_filejournalsDelete the user-uploaded file from a journal entry.Pro
delete_productproductsDelete a product/service by ID.Pro
delete_purchase_invoiceinvoicesDelete 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_fileinvoicesDelete the user-uploaded file from a purchase invoice.Pro
delete_sales_invoiceinvoicesDelete 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_fileinvoicesDelete the user-uploaded file from a sales invoice.Pro
delete_transactiontransactionsDelete 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_filetransactionsDelete the user-uploaded file from a bank transaction.Pro
deliver_sales_invoiceinvoicesSend a sales invoice to the customer (PATCH .../deliver): e-invoice and/or email with optional subject and body.Pro
erply_add_invoice_attributeinvoicesAdd an attribute on a document (POST /invoices/add_attribute). Requires documentId. Optional attributeName, parseXML, alternativeValue…alternativeValue8, decimalValue.Pro+
erply_add_invoice_dimensioninvoicesAttach a project/dimension to documents (POST /invoices/add_dimension). Optional ids (comma string or number array), attachmentId, projectId.Pro+
erply_add_invoice_document_connectioninvoicesLink a document to a base document (POST /invoices/add_document_connection). Requires documentId and baseDocumentId.Pro+
erply_add_invoice_oppositeinvoicesCreate 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_queueinvoicesQueue a document for processing (POST /invoices/add_to_queue). Optional registrationCode query. Extra JSON body fields may be passed through.Pro+
erply_aged_receivablesreportsFetch 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_documentattachmentsAssociate 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_sheetreportsFetch 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_importpaymentsUpload 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_v2paymentsBank 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_numberinvoicesCheck 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_attachmentattachmentsAsk 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_invoicesinvoicesConfirm 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_documentspaymentsCalculate 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_balancereportsFetch 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_reportinvoicesContact/invoice result report (GET /report_generator/contact_invoice_result_report). Optional projectId, articleId, number, contactId, showSales, reportGeneratorInput, month, year.Pro+
erply_create_accountaccountsCreate 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_articlearticlesCreate 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_attachmentattachmentsCreate/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_simpleattachmentsUpload a single attachment via the simple endpoint (POST /attachments/simple multipart). Requires fileBase64 and fileName.Pro+
erply_create_attachments_multipleattachmentsUpload multiple attachments (POST /attachments/multiple JSON array of APIAttachmentInfo). Requires files: [{ fileBase64, fileName, ... }]. Mapped to filename/base64 like erply_create_attachment.Pro+
erply_create_customercustomersCreate 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_accountcustomersCreate 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_v2customersCreate 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_base64attachmentsSubmit 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_formattachmentsSubmit a document for digitization from a multipart form (POST /attachments/digi/form). Requires fileBase64 and fileName. Optional query: encoding, separatorField, type.Pro+
erply_create_invoiceinvoicesCreate 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_templateinvoicesCreate 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_invoiceinvoicesCreate 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_paymentpaymentsCreate 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_projectprojectsCreate 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_groupprojectsCreate 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_attachmentattachmentsConvert 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_invoiceinvoicesCreate 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_ratetax ratesCreate 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_entryledgerCreate 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_daybookledgerFetch 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_accountaccountsDelete a chart-of-accounts entry by id (DELETE /accounts/{accountId}). Destructive — requires an explicit accountId.Pro+
erply_delete_activity_attachmentattachmentsDelete an activity-item attachment (DELETE /attachments/all/{activityItemAttachmentId}). Requires activityItemAttachmentId. Optional transactionEntryId, customerId, activityItemType.Pro+
erply_delete_articlearticlesDelete an article by id (DELETE /articles/{articleId}). Destructive — requires an explicit articleId.Pro+
erply_delete_attachmentattachmentsDelete an attachment (DELETE /attachments/{attachmentId}). Optional documentId query param.Pro+
erply_delete_attachment_via_postattachmentsDelete an attachment via the GoERP-style alias (POST /attachments/delete). Requires id (attachment id). Optional documentId.Pro+
erply_delete_customercustomersDelete a customer/supplier by id (DELETE /customers/{customerId}). Destructive — requires an explicit customerId.Pro+
erply_delete_customer_bank_accountcustomersDelete a customer bank account (DELETE /customers/bank_accounts/{bankAccountId}/customerId/{id}). Requires bankAccountId and customerId. Destructive.Pro+
erply_delete_customerscustomersDelete 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_invoiceinvoicesDelete an Erply Books document by id (DELETE /invoices/{invoiceId}). Destructive — requires an explicit invoiceId. Optional registrationCode query.Pro+
erply_delete_invoice_rowinvoicesDelete one article row from a document (DELETE /invoices/{documentId}/rows/{articleRowId}). Requires documentId and articleRowId. Destructive.Pro+
erply_delete_invoice_templateinvoicesDelete 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_postinvoicesDelete a document via POST /invoices/delete (alternate to DELETE /invoices/{invoiceId}). Requires id. Optional registrationCode. Destructive.Pro+
erply_delete_invoices_multiple_and_paymentsinvoicesDelete 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_invoiceinvoicesDelete a partner invoice (DELETE /invoices/partner). Requires invoiceId. Optional registrationCode. Destructive.Pro+
erply_delete_paymentpaymentsDelete a payment by id (DELETE /payments/{paymentId}). Destructive — requires an explicit paymentId. Some plans return HTTP 409.Pro+
erply_delete_projectprojectsDelete a project by id (DELETE /projects/{projectId}). Destructive — requires an explicit projectId.Pro+
erply_delete_project_groupprojectsDelete a project group (DELETE /projects/groups/{projectId}). Requires projectId (the group id). Destructive.Pro+
erply_delete_project_via_postprojectsDelete a project via POST /projects/delete (GoERP alias of erply_delete_project). Requires id as a query param. Destructive.Pro+
erply_delete_tax_ratetax ratesDelete a tax rate by id (DELETE /tax_rates/{taxRateId}). Destructive — requires an explicit taxRateId.Pro+
erply_delete_transaction_entryledgerDelete a transaction/journal entry by id (DELETE /transaction_entries/{transactionEntryId}). Destructive — requires an explicit transactionEntryId. May 409 (MODULE_TRANSACTIONS).Pro+
erply_digitize_attachmentattachmentsTrigger 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_callbackreportsApply 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_assetsreportsFetch 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_userinvoicesForward documents to a user (POST /invoices/forward_to_user). Requires userId. Optional ids (comma string or number array) and attachmentId.Pro+
erply_general_ledgerledgerFetch 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_attachmentattachmentsGet 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_childattachmentsGet 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_templateattachmentsFetch an attachment HTML template (GET /attachments/html_template). Optional attachmentId, documentId, attachmentType.Pro+
erply_get_attachment_previewattachmentsFetch 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_zipattachmentsDownload a zip of attachments for a document (GET /attachments/zip_file/{documentId}). Requires documentId.Pro+
erply_get_custom_report_filereportsDownload 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_xmlreportsFetch a custom report as XML (GET /report_generator/xml). Optional type, fileName, encoding, activityId, id, dateFrom, dateTo, projectId, parameters.Pro+
erply_get_customer_bank_accountcustomersGet 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_reportcustomersFetch 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_dictionaryreferenceFetch 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_attachmentattachmentsGet a digitized document attachment from the digi queue (GET /attachments/digi/{attachmentId}). Requires attachmentId.Pro+
erply_get_digi_country_from_parserattachmentsInfer 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_einvoiceinvoicesDownload e-invoice payload(s) (GET /invoices/einvoice). Requires documentIds as a comma-separated string or array of ids.Pro+
erply_get_entity_balancereportsFetch 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_invoiceinvoicesGet a single Erply Books document by id (GET /invoices/{documentId}). Optional lang for localized fields.Pro+
erply_get_invoice_historyinvoicesFetch document history (GET /invoices/history). Requires documentId. Live API returns a JSON array (not a list envelope). Omitting documentId 409s.Pro+
erply_get_invoice_pdfinvoicesFetch 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_v1invoicesFetch 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_templateinvoicesGet 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_numberinvoicesSuggest 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_organisationorganisationGet the Erply Books organisation bound to the API token (name, registration code, addresses, VAT, currency).Pro+
erply_get_project_balanceprojectsFetch 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_invoiceinvoicesFetch a summary invoice built from attachments (GET /attachments/summary_invoice/{attachmentId}). Requires attachmentId. Optional invoiceIds (comma-separated).Pro+
erply_get_transaction_entryledgerGet a single transaction/journal entry by id (GET /transaction_entries/{transactionEntryId}). Optional lang. May 409 on plans without MODULE_TRANSACTIONS.Pro+
erply_import_invoices_fileinvoicesImport 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_formsubmitinvoicesImport 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_paymentpaymentsCreate 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_sheetreportsFetch 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_invoiceinvoicesLink 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_entriesledgerList 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_accountsaccountsList chart-of-accounts entries from Erply Books. Returns { totalCount, items } (organisation blob stripped).Pro+
erply_list_articlesarticlesList articles/products/services from Erply Books (GET /articles). Returns { totalCount, items }.Pro+
erply_list_attachmentsattachmentsList 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_columnsreportsList 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_accountscustomersList bank accounts for a customer (GET /customers/bank_accounts/{customerId}). Requires customerId. Optional start/limit. Returns { totalCount, items }.Pro+
erply_list_customerscustomersList 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_templatesinvoicesList 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_invoicesinvoicesList 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_validationsinvoicesList 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_invoicesinvoicesList partner invoices (GET /invoices/partner). Requires dateFrom and dateTo. Optional documentType, customerId, keyword, start, limit. Returns { totalCount, items } when available.Pro+
erply_list_paymentspaymentsList 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_paymentspaymentsList 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_groupsprojectsList project groups (GET /projects/groups). Optional start, limit. Returns { totalCount, items } when available.Pro+
erply_list_projectsprojectsList projects from Erply Books (GET /projects). Returns { totalCount, items }.Pro+
erply_list_tax_ratestax ratesList tax rates from Erply Books (GET /tax_rates). Returns { totalCount, items } (organisation blob stripped).Pro+
erply_list_transaction_entriesledgerList 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_reportsreportsList user-defined reports (GET /report_generator/user_defined). Optional dateFrom, dateTo, comparative dates, projectId, attribute1–4, cashFlowReport.Pro+
erply_mark_attachment_not_digitizableattachmentsFlag a Purchase Inbox attachment as not digitizable (PUT /attachments/not_digitizable/{itemId}). Requires itemId. Optional info note.Pro+
erply_mark_attachment_openedattachmentsMark a Purchase Inbox attachment as opened (PUT /attachments/mark_attachment_as_opened/{itemId}). Requires itemId.Pro+
erply_mark_customer_anonymouscustomersAnonymize a customer (PUT /customers/mark_as_anonymous/{customerId}). Requires customerId. Destructive and irreversible (GDPR-style wipe of personal data).Pro+
erply_override_invoice_fieldsinvoicesOverride a field on documents (POST /invoices/override). Requires documentIds and fieldName. Optional value, documentType, unlockIfLocked.Pro+
erply_parse_attachmentattachmentsRead 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_rowsinvoicesPrepare rows from a base document (POST /invoices/prepare_rows). Requires baseDocumentId. Optional registrationCode, documentType, createWasteDocument.Pro+
erply_run_custom_reportreportsRun 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_csvreportsRun 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_excelreportsRun 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_filereportsGenerate a custom report file (POST /report_generator/file). Body is APIRequestForReportGeneratorInfo. Binary/text payload is encoded for MCP.Pro+
erply_run_custom_report_file_jsonreportsGenerate 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_xlsxreportsRun 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_multiplereportsRun multiple custom reports (POST /report_generator/multiple). Body is APIReportGeneratorFullInfo ({ items: [...] }). Query: dateFrom, dateTo, getAllProjects, projectId, type.Pro+
erply_save_all_payment_importspaymentsBatch-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_reportreportsSend a custom report (POST /report_generator/send_report). Body is APIReportGeneratorInfo. Query: dateFrom, dateTo, getAllProjects, activityId, projectId, type.Pro+
erply_send_custom_report_emailreportsEmail a custom report (POST /report_generator/email). Body is APIReportGeneratorInfo; include emailInfo.receiver. Query: dateFrom, dateTo, getAllProjects, projectId, type.Pro+
erply_send_einvoicesinvoicesSend e-invoices (POST /invoices/send_einvoices). Requires documentIds (comma string or number array). Optional partnerType and sendPDF.Pro+
erply_send_erply_invoiceinvoicesSend 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_invoicesinvoicesSend 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_emailinvoicesEmail an invoice (POST /invoices/email/simple). Requires documentId and receiver. Optional subject, body, sender, senderName, additionalTypes (APIEmailInfo).Pro+
erply_send_invoice_email_by_hashinvoicesEmail 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_paymentspaymentsGenerate/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_prepaymentspaymentsSettle prepayments against each other or listed ids (POST /payments/settle_prepayments). Requires paymentId, paymentId2, and/or ids (comma-separated).Pro+
erply_split_invoice_rowsinvoicesSplit invoice rows (POST /invoices/split_rows). Sends APIInvoiceRowSplittingInfo. Optional invoiceId, documentId, documentStatusTypeCode, oldRows, newRows, registrationCode. Extra fields may be passed through.Pro+
erply_submit_kycattachmentsSubmit a KYC file (POST /attachments/kyc multipart). Requires fileBase64 and fileName.Pro+
erply_submit_kyc_jsonattachmentsSubmit KYC as JSON APIAttachmentInfo (POST /attachments/kyc/json). Requires fileBase64 and fileName. Extra APIAttachmentInfo fields may be passed through.Pro+
erply_trial_balanceledgerFetch 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_accountaccountsUpdate a chart-of-accounts entry (PUT /accounts/{accountId}). Requires accountId. Path id wins over body id.Pro+
erply_update_all_customer_tax_ratestax ratesReplace 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_articlearticlesUpdate an article (PUT /articles/{articleId}). Requires articleId. Path id wins over body id.Pro+
erply_update_custom_report_valuesreportsUpdate 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_customercustomersUpdate 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_accountcustomersUpdate 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_v2customersUpdate 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_invoiceinvoicesUpdate an Erply Books document (PUT /invoices/{documentId}). Requires documentId. Optional registrationCode query. Extra APIInvoiceInfo fields may be passed through.Pro+
erply_update_invoice_split_rowsinvoicesUpdate 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_templateinvoicesUpdate 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_invoiceinvoicesUpdate 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_paymentpaymentsUpdate 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_projectprojectsUpdate 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_groupprojectsUpdate 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_invoiceinvoicesUpdate 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_ratetax ratesUpdate a tax rate (PUT /tax_rates/{taxRateId}). Requires taxRateId. Path id wins over body id.Pro+
erply_update_transaction_entryledgerUpdate a transaction/journal entry (PUT /transaction_entries/{transactionEntryId}). Requires transactionEntryId. Path id wins over body id. May 409 (MODULE_TRANSACTIONS).Pro+
erply_use_invoice_prepaymentinvoicesApply a prepayment to a document (POST /invoices/use_prepayment). Requires documentId. Optional paymentId, sumPaid, date, sumPaidInForeignCurrency, registrationCode.Pro+
erply_vat_eereportsFetch 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_summaryreportsGet a summary of financial data including transaction counts, invoice totals, and outstanding amounts.Tasuta
get_bank_accountaccountsGet one bank account by ID.Tasuta
get_bank_accountsaccountsList all bank accounts configured in e-Financials.Tasuta
get_clientclientsGet details of a specific client by IDTasuta
get_invoice_infoinvoice settingsGet company invoice settings (address, templates, email templates for invoices and balance letters).Tasuta
get_invoice_seriesinvoice settingsGet one invoice series by ID (OpenAPI InvoiceSeries).Tasuta
get_journaljournalsGet one journal entry by ID (includes postings).Tasuta
get_journal_filejournalsGet the user-uploaded file attached to a journal entry (OpenAPI ApiFile: name + base64 contents).Tasuta
get_productproductsGet one product/service by ID.Tasuta
get_purchase_invoiceinvoicesGet details of a specific purchase invoice by IDTasuta
get_purchase_invoice_user_fileinvoicesGet the user-uploaded file attached to a purchase invoice (OpenAPI ApiFile: name + base64 contents).Tasuta
get_release_notessupportRead 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_invoiceinvoicesGet details of a specific sales invoice by IDTasuta
get_sales_invoice_delivery_optionsinvoicesGet delivery options for a sales invoice (e-invoice vs email, suggested addresses, reasons).Tasuta
get_sales_invoice_pdf_systeminvoicesGet the system-generated PDF for a sales invoice (OpenAPI ApiFile: name + base64 contents).Tasuta
get_sales_invoice_user_fileinvoicesGet the user-uploaded file attached to a sales invoice (OpenAPI ApiFile: name + base64 contents).Tasuta
get_sales_invoice_xmlinvoicesGet the system-generated e-invoice XML for a sales invoice (OpenAPI ApiFile: name + base64 contents).Tasuta
get_transactiontransactionsGet 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_filetransactionsGet the user-uploaded file attached to a bank transaction (OpenAPI ApiFile: name + base64 contents).Tasuta
get_unprocessed_transactionstransactionsGet all unprocessed (PROJECT status) transactions that don't have a client assigned yet. These need categorization.Tasuta
get_vat_infoaccountsGet company VAT information (VAT number and tax reference number).Tasuta
invalidate_journaljournalsInvalidate a journal entry (reverse registration state per API rules).Pro
invalidate_purchase_invoiceinvoicesInvalidate 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_invoiceinvoicesInvalidate 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_transactiontransactionsInvalidate 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_dimensionsaccountsList account dimensions (sub-accounts). Filter by accounts_id to see dimensions for a specific parent account.Tasuta
list_accountsaccountsList the chart of accounts. Returns all accounts used for bookkeeping entries.Tasuta
list_clientsclientsList all clients (buyers and suppliers). Can filter to show only buyers or only suppliers.Tasuta
list_currenciesreferenceList active currencies configured for the company (codes and Estonian/English names).Tasuta
list_invoice_seriesinvoice settingsList all invoice series for the company (number prefix, terms, default flag).Tasuta
list_journalsjournalsList 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_feedbacksupportList 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_productsproductsList products/services for the company with optional pagination and modified_since filter.Tasuta
list_projectsaccountsList all projects (cost/profit centers). Used for tracking expenses by project.Tasuta
list_purchase_articlesaccountsList purchase articles (expense categories). Each article maps to an account for expense categorization.Tasuta
list_purchase_invoicesinvoicesList 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_articlesreferenceList sale articles (revenue / sales categories linked to accounts and VAT) for the company.Tasuta
list_sales_invoicesinvoicesList sales invoices (invoices you send to customers) with optional filters.Tasuta
list_suppliersclientsList all suppliers (vendors you pay). Convenience method that filters clients to only suppliers.Tasuta
list_templatesreferenceList sale invoice templates available for the company.Tasuta
list_transactionstransactionsList bank transactions with optional filters. Returns transactions from the e-Financials system.Tasuta
list_unpaid_invoicesinvoicesList all unpaid invoices (both sales and purchase). Useful for checking outstanding payments.Tasuta
match_transaction_to_supplierreportsAnalyze a transaction description and suggest matching suppliers from the client list.Pro
merit_create_customercustomersCreate 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_groupcustomersCreate a Merit Aktiva customer group (POST /api/v2/sendcustomergroup). id (GUID), name (max 64), and code (max 20) are required.Pro+
merit_create_fixed_assetsfixed assetsCreate 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_batchledgerCreate 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_movementinventoryCreate 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_offersales offersCreate 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_groupsitemsCreate Merit Aktiva item groups (POST /api/v2/senditemgroups). Each group needs code and name.Pro+
merit_create_itemsitemsCreate 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_invoicepurchase invoicesCreate 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_paymentpurchase invoicesRecord 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_invoicerecurring invoicesCreate 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_invoicesales invoicesCreate 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_paymentsales invoicesRecord 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_offersales offersCreate 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_paymentsales offersRecord 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_vendorvendorsCreate 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_groupvendorsCreate a Merit Aktiva vendor group (POST /api/v2/sendvendorgroup). id (GUID), name (max 64), and code (max 20) are required.Pro+
merit_delete_paymentpaymentsDESTRUCTIVE: delete a Merit Aktiva payment (POST /api/v1/deletepayment). id is the payment GUID. There is no undo.Pro+
merit_delete_purchase_invoicepurchase invoicesDESTRUCTIVE: 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_invoicesales invoicesDESTRUCTIVE: delete a Merit Aktiva sales invoice (POST /api/v1/deleteinvoice). id is the invoice GUID (SIHId). There is no undo.Pro+
merit_email_sales_invoicesales invoicesSENDS 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_reportreportsBalance 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_reportcustomersCustomer 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_reportcustomersCustomer 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_batchledgerGet 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_reportinventoryInventory report (POST /api/v2/getinventoryreport). reportDate is ISO YYYY-MM-DD.Pro+
merit_get_pricepricesGet 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_reportreportsIncome 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_invoicepurchase invoicesGet 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_reportpurchase invoicesPurchase report (POST /api/v2/getpurchrep). reportType: 1 = invoices, 2 = vendors, 3 = articles, 4 = fixed assets.Pro+
merit_get_recurring_invoicerecurring invoicesGet one Merit Aktiva recurring invoice with rows (POST /api/v2/getperinvoice). id is the recurring-invoice GUID.Pro+
merit_get_sales_invoicesales invoicesGet 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_pdfsales invoicesGet 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_offersales offersGet one Merit Aktiva sales offer with rows (POST /api/v2/getoffer). id is the offer GUID.Pro+
merit_get_sales_reportreportsSales report (POST /api/v2/getsalesrep). reportType: 1 = invoices, 2 = customers, 3 = articles, 4 = countries, 5 = countries general.Pro+
merit_list_accountsaccountsList 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_banksreferenceList Merit Aktiva banks / payment methods (POST /api/v1/getbanks). No filters.Pro+
merit_list_cost_centersreferenceList Merit Aktiva cost centers (POST /api/v1/getcostcenters). No filters.Pro+
merit_list_customer_groupscustomersList Merit Aktiva customer groups (POST /api/v2/getcustomergroups). No filters.Pro+
merit_list_customerscustomersList/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_departmentsreferenceList Merit Aktiva departments (POST /api/v1/getdepartments). No filters.Pro+
merit_list_dimensionsreferenceList Merit Aktiva dimensions and their values (POST /api/v2/getdimensions). Set allValues to include inactive/ended values.Pro+
merit_list_discountspricesList Merit Aktiva sales discounts (POST /api/v2/getdiscounts). No filters.Pro+
merit_list_financial_yearsreferenceList Merit Aktiva accounting periods / financial years (POST /api/v2/getaccperiods). No filters.Pro+
merit_list_fixed_asset_employeesfixed assetsList Merit Aktiva fixed-asset responsible employees (POST /api/v2/getfaresppersons). No filters.Pro+
merit_list_fixed_asset_locationsfixed assetsList Merit Aktiva fixed-asset locations (POST /api/v2/getfalocations). No filters.Pro+
merit_list_fixed_assetsfixed assetsList Merit Aktiva fixed assets (POST /api/v2/getfixassets). No filters.Pro+
merit_list_gl_batchesledgerList 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_fullledgerList 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_movementsinventoryList 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_groupsitemsList Merit Aktiva item groups (POST /api/v2/getitemgroups). No filters.Pro+
merit_list_itemsitemsList/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_locationsinventoryList Merit Aktiva stock locations (POST /api/v2/getlocations). No filters. Returns Code, Name, and next document numbers per movement type.Pro+
merit_list_payment_typespaymentsList Merit Aktiva payment types (POST /api/v2/getpaymenttypes). type is required: 1 = purchases, 2 = expense reports, 3 = sales.Pro+
merit_list_paymentspaymentsList 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_pricespricesList Merit Aktiva sales prices (POST /api/v2/getprices). No filters.Pro+
merit_list_projectsreferenceList Merit Aktiva projects (POST /api/v1/getprojects). No filters. Returns Code, Name, EndDate.Pro+
merit_list_purchase_invoicespurchase invoicesList 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_orderspurchase invoicesList 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_addressesrecurring invoicesList client addresses for open Merit Aktiva recurring invoices (POST /api/v2/getpershaddress). No filters. Empty when none are open.Pro+
merit_list_recurring_invoicesrecurring invoicesList 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_invoicessales invoicesList 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_customercustomersList 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_offerssales offersList 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_taxestaxesList 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_unitsreferenceList Merit Aktiva units of measure (POST /api/v1/getunits). No filters.Pro+
merit_list_vendor_groupsvendorsList Merit Aktiva vendor groups (POST /api/v2/getvendorgroups). No filters.Pro+
merit_list_vendorsvendorsList/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_discountspricesCreate 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_pricespricesCreate or replace Merit Aktiva sales prices (POST /api/v2/sendprices). targetGroup: 0 = campaign, 1 = customer, 2 = customer group.Pro+
merit_send_recurring_indication_valuesrecurring invoicesSend 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_einvoicesales invoicesSENDS 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_statussales offersChange 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_customercustomersUpdate a Merit Aktiva customer (POST /api/v1/updatecustomer). id is required; other fields are optional patches.Pro+
merit_update_itemitemsUpdate a Merit Aktiva item (POST /api/v1/updateitem). id is required; other fields are optional patches.Pro+
merit_update_sales_offersales offersUpdate a Merit Aktiva sales offer (POST /api/v2/updateoffer). offerNo identifies the offer; deliveryDate, hComment, and fComment are the writable fields.Pro+
merit_update_vendorvendorsUpdate a Merit Aktiva vendor (POST /api/v2/updatevendor). id is required; other fields are optional patches. v2 supports Dimensions.Pro+
month_end_close_checklistmonth-end closeSurfaces 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_invoicetransactionsMark 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_camt053CAMT.053Import 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_clientclientsReactivate a previously deactivated client.Pro
reactivate_productproductsReactivate a previously deactivated product/service.Pro
reconcile_bank_transactionsbank reconciliationMode-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_reportreportsGenerate a reconciliation report comparing bank transactions with invoices. Helps identify unmatched items.Tasuta
register_journaljournalsRegister (confirm/post) a journal entry.Pro
register_purchase_invoiceinvoicesRegister (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_invoiceinvoicesRegister (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_transactiontransactionsRegister (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_accountsaccountsSearch for an account by name or ID. Useful for finding the right account to use.Tasuta
search_clientsclientsSearch for clients by name. Useful for finding the right client to assign to a transaction.Tasuta
submit_feedbacksupportSubmit 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_accountaccountsPATCH an existing bank account. Only include fields to change. Read-only: id.Pro
update_clientclientsPATCH an existing client. Only include fields to change; maps the same friendly names as create_client to the API.Pro
update_invoice_infoinvoice settingsPATCH company invoice settings. Only include fields to change (OpenAPI CompanyInvoiceInfo).Pro
update_invoice_seriesinvoice settingsPATCH an invoice series. Only include fields to change. Read-only: id.Pro
update_journaljournalsPATCH 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_productproductsPATCH an existing product/service. Only include fields to change. Read-only: id, sale_accounts_id, purchase_accounts_id.Pro
update_purchase_invoiceinvoicesUpdate 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_invoiceinvoicesUpdate a sales invoice draft. Only works on PROJECT status invoices.Pro
update_transactiontransactionsUpdate 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_filejournalsUpload 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_fileinvoicesUpload 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_fileinvoicesUpload 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_filetransactionsUpload 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_datainvoicesRead-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

Ise majutamine

Käivita avatud lähtekoodiga server ise Dockeri või stdio transpordiga. Sina haldad infrat ja RIK mandaate; kasutusarvestust ega juhtpaneeli pole.

GitHubi juhend →