← Plugin catalog
Finance

Essentio

Essentio v1.0.6

Publisher description

From the marketplace listing

Essentio is invoicing software for small businesses. Connect your Essentio Business to find Clients and Products, draft an Invoice, Proforma Invoice, Quote or Credit Note, check the totals Essentio computes, then issue it and email it to your Client. Record the payments your Clients made, and read a month's Reported VAT and Income from Essentio's own reports to see what is done and what is still open. The plugin acts only for the Business you choose when you connect, with the Role you hold there. It never files a VAT return, sends anything to a tax authority or moves money.

Language: English · Automatically detected from descriptions.

Publisher keywords

Search terms declared by the publisher.

Files & skills

File archives

Plugin package9 files · 22.4 KBBrowse files →
Skill instructions
close-vat-month5.29 KB

View saved version →

---
name: close-vat-month
description: Close a month's VAT with Essentio — read the month's Reported VAT and Income from Essentio's own reports, find the Drafts left and the documents still awaiting payment, and say plainly what is and is not done. Use this whenever the person asks what VAT they owe for a month or quarter, wants to prepare or check a VAT return, asks how much they earned in a month, or says they are closing or wrapping up a month's books — even when they do not name Essentio.
---

# Close a month's VAT

The Essentio connector (`essentio_*` tools) reads one Business's reports as Essentio's dashboard
computes them. The figures that matter here are Essentio's, not yours: a VAT figure you add up yourself
from documents can differ by rounding, by currency or by which documents count, and the person may file
it. So every figure you state comes from a tool's answer, quoted as it is, with its currency.

Nothing in Essentio "closes" a month: no tool locks it, files a VAT return or sends anything to a tax
authority. What this workflow does is gather what Essentio knows about the month and tell the person
what is finished and what is still open.

## 1. Settle the period

Take the month the person means as its first and last day, `YYYY-MM-DD` (for a quarter, its first and
last day). Essentio dates documents by the day in UTC. If the person did not say which month, ask.

## 2. Read the month's figures

Call `essentio_get_report` twice, with the same `from` and `to`:

- `report: "vat"` — the Reported VAT: the VAT of the Invoices and Credit Notes issued in the period,
  in full, paid or not, a Credit Note subtracting. It answers `net`, `vat` and `bands` (the same split
  by VAT category and rate).
- `report: "income"` — Income: the net amounts of the documents issued in the period, paid or not, a
  Credit Note subtracting and a Proforma Invoice never converted adding only what was paid on it;
  its `vat` beside it.

Both are in the Business's reporting currency (`currency`). Each answers
`other_currency_documents`: how many documents issued in the period are in another currency and are
left out of every figure. Essentio never converts them. When that count is above zero, say so, and list
them (step 3) so the person can account for them.

A Proforma Invoice carries no VAT, so it is in no VAT figure, paid or not.

## 3. Find what is still open

Use `essentio_search_documents`. Each answer is one page: when it carries a `next_cursor`, call again
with it until there is none, or your list is incomplete.

- **Drafts left**: `status: "draft"`. A Draft has no issue date, so a period cannot narrow it; list
  them all, with their Client, Total, `due_date` and `created_at`, so the person can see which belong
  to the month. A Draft counts in no report. Issuing one now gives it today's issue date, so it counts
  in the month it is issued, not in the month being closed — say so before the person decides to
  issue it.
- **Awaiting payment**: `status: "awaiting_payment"` — every issued Invoice and Proforma Invoice that
  still takes a Payment, Overdue ones included. This does not change the Reported VAT, which counts
  documents on issue, paid or not; it tells the person what is still owed to them. For what is
  Overdue today, by Client, `essentio_get_report` with `report: "overdue"` gives Essentio's own totals.
- **Documents in another currency** (when `other_currency_documents` is above zero): list the ones
  the count counts. The VAT report counts the Invoices and Credit Notes issued in the period, not
  cancelled: search the period (`issued_from`, `issued_to`) with `document_type: "invoice"` and again
  with `document_type: "credit_note"`, leave out any whose `status` is `cancelled`, and keep those whose
  `currency` differs from the report's. The Income report's count also takes the Proforma Invoices
  issued in the period and never converted into an Invoice: search the period again with
  `document_type: "proforma"` and keep the ones not cancelled in another currency. A document's answer
  does not say whether a Proforma Invoice was converted, so this list may include converted ones and
  be longer than the count. Say so; do not present it as the count's documents exactly.

## 4. Say what is and is not done

Answer in three short parts:

1. **The month's figures** — Reported VAT (`net`, `vat`, and each band's category, rate, net and VAT)
   and Income, as the reports answered them, with their currency and period.
2. **Still open** — the Drafts left, the documents awaiting payment, and any documents in another
   currency left out of the figures, each with its number (or "Draft"), Client and amount as the tool
   answered it.
3. **Not done by Essentio** — the VAT return itself: Essentio reports the figure; filing and paying it
   are the person's (or their accountant's).

Some rules keep this honest:

- Quote each amount as the tool answered it. If you add anything up yourself, say that it is your sum,
  and never add amounts in different currencies.
- If a report is refused (a tool error whose text is JSON with `error.message`), quote the message and
  stop: do not estimate the missing figure from documents.
- This workflow only reads. If the person then asks to issue a Draft or record a Payment, that is a
  change to the Business: confirm it with them first, and use the tools for it one document at a time.
draft-and-send-invoice9.72 KB

View saved version →

---
name: draft-and-send-invoice
description: Draft, check, issue and send an Invoice in Essentio through the Essentio connector's tools, in that order, stopping at a refusal. Use this whenever the person asks to invoice or bill a Client, charge someone for work or products, prepare or send an Invoice, Proforma Invoice, Quote or Credit Note, or says things like "invoice ACME 500 euros and send it" — even when they do not name Essentio or say "draft".
---

# Draft, check, issue and send an Invoice

The Essentio connector (`essentio_*` tools) acts for one Business, the one the person chose when they
connected it, with the Role they gave it there. Every figure on a document is computed by Essentio when
the Draft is saved: your job is to put the right Client and Lines into a Draft, let the person see
what Essentio computed, and then issue and send only what they approved.

Work in this order. Each step says why, so you can adapt when the person asks for less (only a Draft,
or issue without sending).

## 1. Find the Client

Call `essentio_search_clients` with `search` set to the name, email, VAT number or account code the
person gave. Use the `id` of the Client that matches.

- Several match: show their names and emails and ask which one. Guessing would bill the wrong Client.
- None matches: ask whether to create one. `essentio_create_client` needs an `email`, a `country` and a
  `name` or `legal_name`; a VAT number is optional and is checked with the EU's VIES service. Create it
  only after the person confirms the details.

If you need the Client's currency or payment terms, `essentio_get_client` reads them.

## 2. Read the Business's setup

Call `essentio_get_business_setup` once. It gives the reporting currency, the active VAT rates (each
with the VAT category a Line takes at it) and the bank accounts. Take each Line's `vat_rate` and
`vat_category` from those rates rather than from memory: a rate the Business does not use is a
different document. A 0 rate in a category other than `S` and `Z` needs a `vat_exemption_code`
(a VATEX code) — ask the person for it rather than choosing one.

When the person names a Product or service they sell, `essentio_search_products` gives its name, unit,
price and VAT rate.

## 3. Create the Draft

Call `essentio_create_draft` with:

- `document_type`: `invoice` unless the person asked for a `proforma`, `quote` or `credit_note`;
- `client_id` from step 1;
- `currency`: the Client's currency if it has one, otherwise the Business's; ask if the person said
  another;
- `due_date` (YYYY-MM-DD): today plus the Client's payment terms, unless the person gave a date;
- `lines`: each with `description`, `quantity`, `unit_price` (VAT excluded) and `vat_rate`, all as
  decimal strings such as `"500.00"` and `"19"` — never as numbers.

A Draft has no number and no issue date, is not sent and counts in no report, so creating it commits
the person to nothing. A second identical `essentio_create_draft` within about ten minutes is answered
with the first Draft, marked as a replay, and creates nothing new; if the person really wants two
identical Drafts, send a fresh `idempotency_key` with the second.

## 4. Check the figures with the person

The person is shown the Draft as a card with its Client, Lines, VAT and Total. Read the same answer
yourself and compare it with what they asked for: the Client's name, each Line, `vat_groups`,
`subtotal`, `total_vat`, `total` and `currency`.

- Quote Essentio's figures as they are in the answer. Do not recompute VAT or totals and present your
  own numbers: Essentio's rounding is the one the document will carry.
- If something is not what the person meant (a price, a quantity, a rate, the wrong Client), change the
  Draft with `essentio_update_draft`. Only the fields you send change, and `lines`, when sent, replace
  every Line — so send them all.

Then read the answer's `actions`. Each Action is `{open, code, remedy}`:

- `actions.issue.open` false: the Draft cannot be issued as it stands. Say so, with its `code`, before
  asking to issue.
- `actions.send.open` false with `remedy` `connect_mail_provider`: Essentio cannot email the
  document for the Business right now — it has no email address of its own, its recipients through
  Essentio for today are all emailed (`sending_limit_reached`), or its connected mailbox was lost. Tell
  the person now, in the refusal's words, and give them the `remedy_url`, Essentio's email settings.
  Issuing still works.

## 5. Issue, once the person says so

Ask before issuing, and say what it means: the Draft takes its document number for good and today's
issue date, a due date already passed becomes today plus the payment terms, and an issued document can
no longer be deleted — only cancelled, or corrected with a Credit Note.

Then call `essentio_issue_document` with the `document_id`. It does not email anything.

The card has its own Issue and Send buttons. If the person pressed one, the card already shows what
happened: call `essentio_get_document` to read the document as it is now instead of issuing again.

## 6. Send, once the person says so

Ask before sending: `essentio_send_document` emails the document, attached, to the Client's address on
record, through the Business's connected mail account. It cannot send to any other address. `subject`
and `message` are optional; left out, the Business's own template is used. If the document is still a
Draft, sending issues it first.

An identical `essentio_send_document` call within about ten minutes emails nothing: it is answered with
the first call's answer, and a second text says "Nothing was written again: an identical
essentio_send_document call was made less than 10 minutes ago…". When you see that, tell the person the
document was not emailed again. If they do want it sent a second time, call it again with a fresh
`idempotency_key` of your choosing (a UUID). The same holds for `essentio_create_draft` and
`essentio_create_client`: an answer that says "Nothing was written again" is the first call's record,
not a new one.

Finish by telling the person the document number, its status and Total, and its `public_url`.

## When a tool fails

A failed call answers a tool error whose text is JSON: `{"error": {"type", "message", ...}}`. Tell the
person what happened in `message`'s words, and act on `type`:

- `refusal`: the Action is not open for the document as it stands. Quote `message`, which is written
  for the person, and name the `code`. Stop there — do not retry with other values on your own.
  Nothing was written, with one exception: a Send refused `mail_account_lost` (the connected mail
  account refused to renew its access) may have issued its Draft on the way — when the error carries
  a `document_number`, the Draft is now issued under that number and stays issued, unsent. With the
  `remedy` `connect_mail_provider`, Essentio cannot email for the Business right now, as the refusal's
  words say: the person puts it right in Essentio's settings (the document's `actions.send.remedy_url`
  leads there) — or, past the day's limit, waits for tomorrow — then asks to send again.
- `not_delivered`: the mail provider did not take the email. This is not "nothing written": a Send of a
  Draft issued it on the way. When the error carries a `document_number`, the Draft is now issued under
  that number and stays issued, unsent. Say so plainly, so the person does not think it is still a
  Draft, and do not issue it again.
- `permission`: the connection's Role may not do this (a Viewer's connection writes nothing). Someone
  with a higher Role in the Business has to do it, or the person reconnects with that Role.
- `invalid_request`: `errors` names each field at fault and what is wrong with it — a `client_id` that
  is not one of the Business's Clients is answered this way by `essentio_create_draft`. Fix what the
  person can confirm, and ask about the rest.
- `not_found`: a tool that names a record by its id — for example `essentio_issue_document`,
  `essentio_send_document` or `essentio_get_document` — did not find it in this Business. `message`
  names the search tool that lists them; find it again there.
- `idempotency_in_flight`: an identical call is still being performed, and nothing more was done. Make
  the same call again, unchanged, a few seconds later: it answers what the first one did. If the first
  call was refused or failed, it kept nothing, and the call again is a new attempt — before sending
  again, read the document with `essentio_get_document` to see whether it was issued or sent.
- `idempotency`: an `idempotency_key` you sent was used before with other arguments, and nothing was
  done. A new call takes a new key.

Two failures carry no such tool error:

- **The connector refused the request** (HTTP 429, a rate limit): the connection made more requests in
  the last minute than it may — every request counts, listing the tools included — and the request
  did not reach any tool. Wait about a minute. Before making a write again, read back with
  `essentio_get_document` or a search whether it happened.
- **An internal or server error**: a fault on Essentio's side, and it does not tell you what was
  written. Read the document back with `essentio_get_document`, or search for it, before calling
  anything again.

## In a Test business

When the connection is to a Test business, its documents are marked as samples and everything it sends
goes to its Owner, never to the Client. It is the place to try this workflow first.
`essentio_get_business_setup` and every document say so with `is_test: true`, and every number it
issues carries `TEST-`, such as `TEST-INV-2026-0007`. It issues no more Invoices a year than the
Free plan: past that, Issue and Send are refused `issuing_limit_reached`, which its Owner clears by
resetting it in Essentio. Tell the person it is a sample, not a real Invoice.

Publisher release notes

Essentio's MCP server with the draft-and-send-invoice and close-vat-month skills: draft, issue and send documents, record payments, and read a month's VAT and Income.

Declared in the saved package. Remote tools may change independently.

Package details

Publisher declarations from the archived package. These are separate from our research and the live service's terms.

Package license
MIT
Package author
Essentio
Keywords
See publisher keywords
Commerce declaration
Does not support commerceThis does not establish whether access is free or paid.
Publisher review scenarios
5 positive · 3 negativeDeclared scenarios, not independently verified test results.

Declared capabilities

  • Read
  • Write
  • Draft and send invoices
  • Record payments
  • VAT and income reports

Package observed Oct 2, 2026.

Technical details
First seen
Oct 2, 2026 · 18:00 UTC
Last seen
Oct 3, 2026 · 06:00 UTC
Collection status
Collected

plugin_asdk_app_6abe2e2df63c819197b1a6c3a85e6eb0

Download plugin data (JSON)