Records Stripe card payments in Merit Aktiva via clearing-account method: books gross revenue, Stripe fees as expense, and handles VAT timing per Estonian KMS §11. Use when setting up Stripe in Merit or reconciling payouts.
How this skill is triggered — by the user, by Claude, or both
Slash command
/merit-aktiva-workspace:merit-stripeThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
How Stripe card payments are set up and recorded in Merit Aktiva. The implementation is
How Stripe card payments are set up and recorded in Merit Aktiva. The implementation is
the elnora-merit reconcile command; this skill is the why and the rules so any agent
books it correctly and can spot a wrong entry.
The one thing to get right: Stripe is a clearing account, not your bank. Stripe holds the money, deducts its fee, then pays out the NET in batches. So you cannot book the bank deposit as revenue — it is already net of fees. Revenue is booked GROSS, the fee is a separate expense, and a clearing account in between holds the payout net until the real bank-import row clears it.
Each Stripe payout is booked as a single balanced sendglbatch. Card sales are aggregated
(no per-buyer customer or invoice — the canonical treatment for high-volume B2C card sales;
genuine company invoices that need an A/R record are booked separately).
Dr Clearing gross all card sales in the payout, VAT-inclusive
Cr Revenue net gross ÷ 1.24 — carries the 24% TaxId + VatAmount
[Cr VAT payable vat] output VAT — IMPLICIT, Merit posts it from the tag
Dr Stripe fees fees processing + platform fees, a separate expense
Cr Clearing fees
Dr Refunds / Cr Clearing only when the payout contains refunds
The clearing account is left holding exactly the payout net, which the real bank-import row clears against (one manual match in the Merit UI).
Estonian time of supply (KMS §11) is the earlier of supply or payment — for a card sale the
charge/capture date, not when Stripe pays out. reconcile dates each batch on the charge
month: usually equal to the payout arrival, except a month-end straddle (charges captured
in month N, paid out in N+1), which it dates back to the charge month so the output VAT lands
in the correct KMD period.
A payout whose charges span two or more months cannot be dated to one VAT month. The tool
flags it in preview and run skips it (marked not bookable) rather than mis-dating it —
it does not auto-split (yet). Book it by hand as one GL batch per charge month (DocNo
po_…-MAY / po_…-JUN), splitting gross/net/VAT/fees per charge, not by dividing the
aggregate ÷ 1.24. Per-charge rounding ties to the cent and matches the tool's
single-month batches; the aggregate method is ~1 cent off per batch. The two batches together
net to the payout and are cleared by the single bank row.
Configured in ~/.config/elnora-merit/stripe-map.json (reconcile init writes a placeholder).
Confirm every code and the VAT guid against your own company (accounts list / taxes list),
or load it from your company books reference.
| Role | Maps to | Notes |
|---|---|---|
clearing | a 10xx clearing / vahekonto account | nets to zero per payout |
revenue | your sales-revenue account | booked NET, VAT via the tag |
vatPayable | your output-VAT account | Merit posts here implicitly — never an explicit row |
stripeFees | a bank-service expense account | VAT-exempt payment service (see VAT below) |
platformFees | a fee-expense account | platform / application fee (e.g. an events platform's commission) |
refunds | contra-revenue account | |
vat.code / vat.rate | the standard-rate TaxId from taxes list / the rate (e.g. 0.24) | tags the revenue line for the KMD |
Output VAT is tagged, never an explicit row. The revenue line carries TaxId +
VatAmount; Merit both posts the VAT credit to the output-VAT account and flows it
onto the KMD from that tag. The batch's explicit rows are intentionally short by exactly the VAT amount —
Merit's implicit credit balances it. Adding a separate VAT-account row double-posts and
Merit rejects the batch (PR kanne ei ole tasakaalus). An untagged VAT row lands in
the GL but never reaches the KMD. So: tag the revenue line, add no VAT row.
Stripe processing fees are a VAT-EXEMPT payment service — NO reverse charge. Book
them to your bank-services expense account (e.g. 4340) like an ordinary pangateenus, with no TaxId and
no KMD reverse-charge lines. This is the explicit exception to [merit-reverse-charge]:
a payment service under the Payment Institutions Act §3 is exempt under KMS §16(2¹)(4)
regardless of who provides it, so it is NOT reverse-charged even though Stripe is foreign
(EMTA VAT-department position). Do not treat the Stripe fee like a US/EU SaaS bill.
Nuance — a platform fee (e.g. an events platform's commission) is not the payment
service; strictly it is a reverse-chargeable platform service. But when it arrives netted
inside the Stripe payout as an application fee (no separate invoice), this flow expenses it
to the fee-expense account alongside the Stripe fee. If the platform ever issues a
standalone invoice, book that one via the merit-reverse-charge skill.
VAT is always on the gross sale, never on the net payout.
Read-only preview first, then the gated write. The merit-bookkeeper agent owns the write.
elnora-merit reconcile preview # what WOULD book per payout — no writes
elnora-merit reconcile preview --payout po_… # one payout
elnora-merit reconcile run --yes # book; skips already-booked + unbalanced
elnora-merit reconcile status # booked vs outstanding
STRIPE_API_KEY (live secret key) + a populated stripe-map.json.~/.config/elnora-merit/reconcile-ledger.json) records every
booked payout — run never double-books. Only --force re-books, and only after you
confirm a payout was not already booked.See reference/recipe.md for first-time setup (reconcile init, the
map fields) and a worked payout.
merit-reverse-charge rule does not apply.)--yes to reconcile run without explicit approval, and never --force
without confirming the payout was not already booked.merit-reverse-charge skill.npx claudepluginhub elnora-ai/elnora-merit-aktiva --plugin merit-aktiva-workspaceProvides 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.