Creates, finds, credits, and sends sales invoices in Merit Aktiva via the elnora-merit CLI. Covers customer resolution, VAT tax-code selection, invoice numbering, prepayment invoices, credit notes, and e-invoice/PDF delivery.
How this skill is triggered — by the user, by Claude, or both
Slash command
/merit-aktiva-workspace:merit-sales-invoicesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
How to issue sales invoices correctly with `elnora-merit sales-invoices`. Every
How to issue sales invoices correctly with elnora-merit sales-invoices. Every
endpoint is POST with a JSON body. Writes hit the live books and feed the VAT
return — confirm the payload before posting.
If your workspace provides a company books reference (real revenue accounts, the next invoice number, customer conventions), load it first before building a payload.
InvoiceNo is required and must be unique; read your last
number (sales-invoices find --inv-no … or your books reference) and increment.
Never guess silently — confirm the number with the user.TaxId, not a percentage. Get the guid from
elnora-merit taxes list (each row: Id, Code like 24%, TaxPct). Put that
TaxId on every InvoiceRow, and repeat it in the top-level TaxAmount array
(grouped + summed per TaxId). TotalAmount is the net without VAT.delete <id> (requires the user's go-ahead) and create it again.Id; only
create a new one when none matches. customers list MUST be filtered.# find (ALWAYS filter — unfiltered customers list returns a server error)
elnora-merit customers list --name "Acme" # broad match
elnora-merit customers list --reg-no 12345678 # exact
elnora-merit customers list --vat-reg-no EE123456789
If none matches, create one. Required: Name (unique), CountryCode (2-letter),
NotTDCustomer (lowercase "true"/"false" — true for private persons and foreign
companies, false for a domestic tax-registered company):
elnora-merit customers create --data '{"Name":"Acme OÜ","CountryCode":"EE",
"NotTDCustomer":"false","RegNo":"12345678","VatRegNo":"EE123456789",
"Email":"[email protected]","PaymentDeadLine":14,"SalesInvLang":"EN"}'
For an EU customer, set the real CountryCode and VatRegNo (Merit validates EU VAT
via VIES). The invoice language is a customer property (SalesInvLang), not a setting.
Read the full field schema with elnora-merit sales-invoices create --help, or
reference/fields.md. Build the body and post:
elnora-merit sales-invoices create --file invoice.json
Minimum viable body (existing customer, one line, standard VAT):
{
"Customer": { "Id": "<customer-guid>" },
"InvoiceNo": "2026-014",
"DocDate": "20260606000000",
"DueDate": "20260620000000",
"InvoiceRow": [
{ "Item": { "Code": "CONSULT", "Description": "Consulting", "Type": 2 },
"Quantity": 1, "Price": 1000.00, "TaxId": "<taxid-from-gettaxes>" }
],
"TaxAmount": [ { "TaxId": "<same-taxid>", "Amount": 240.00 } ],
"TotalAmount": 1000.00
}
YYYYMMDDHHMMSS; query dates (list) are YYYYMMDD.Item.Type: 1 stock, 2 service, 3 item. Price is net per unit.create-v2 instead when you tag dimensions (cost centre / project / department
as a Dimensions array) or need a non-local CurrencyRate.{ CustomerId, InvoiceId, InvoiceNo, RefNo, NewCustomer }. RefNo
(viitenumber) is auto-derived from the number if you omit it.Standard/Pro have no dedicated prepayment document — bill prepayments through a prepayment service item mapped to a "prepayments received" revenue account, at the standard VAT rate (VAT is due at prepayment). On the final invoice, add the goods/service lines and a closing line for the same prepayment item at quantity −1 and price = the net prepayment, which nets it off. (Your books reference names the exact item + account.)
Use create-credit: re-send the original invoice's payload with negative Quantity
(and negative DiscountAmount/TotalAmount if discounted). TaxAmount.Amount stays
positive. For stock items, ItemCostAmount is required.
elnora-merit sales-invoices create-credit --file credit.json
elnora-merit sales-invoices find --inv-no 2026-014 # by number, no period
elnora-merit sales-invoices find --cust-name "Acme" # by customer
elnora-merit sales-invoices list --period-start 20260101 --period-end 20260331 # max 3 months
elnora-merit sales-invoices get <SIHId> # full header + lines + payments
elnora-merit sales-invoices get-pdf <SIHId> # { FileName, FileContent base64 }
elnora-merit sales-invoices send-email <SIHId> # to the customer's stored e-mail
elnora-merit sales-invoices send-einvoice <SIHId> # structured e-invoice; 'api-noeinv' if recipient can't receive
Recording the receipt of a sales invoice (marking it paid) is a payments operation —
see the merit-payments-bank skill (payments create, which matches by customer name).
customers list unfiltered — Merit returns a server stacktrace.TaxId guid from taxes list, and
mirror it in TaxAmount.merit-reverse-charge.create/create-credit/delete. Respect closed periods.delete <id> is irreversible — only on a record the user named.Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
npx claudepluginhub elnora-ai/elnora-merit-aktiva --plugin merit-aktiva-workspace