Vismaz for Craft CMS

Craft Commerce 5 · Sverige

Your orders, in Visma, correctly

Getting an order into an accounting API is the easy part. The parts that are actually hard are all Swedish — öresavrundning, omvänd betalningsskyldighet, OSS, and the fact that Klarna, Swish and card do not settle to the same account. Vismaz does those, and it shows you exactly what it will post before it posts it.

Vismaz

Rehearse it before you mean it

A dry run needs no Visma connection at all and creates nothing. It prints the journal it would post, as debits and credits, and tells you whether it balances — because a voucher that does not balance is refused rather than sent.

bash
$ php craft vismaz/sync/voucher --from=2026-08-01 --to=2026-08-31 --dryRun

Webshop sales 2026-08-01 – 2026-08-31 (412 orders)

  Account                                     Debit        Credit
  1580     Kortfordringar                 504 655,80
  6570     Bankkostnader                    7 685,10
  3001     Försäljning, 25 % moms                       409 872,00
  2610     Utgående moms, 25 %                          102 468,00
  3740     Öresavrundning                                     0,90

  Balances.

Features

Built around one idea: a bookkeeping integration is only worth having if you can check it before you trust it.

Invoices or summary vouchers

One customer invoice per order when you need Visma's statements and reminders. Or a periodic summary journal — daily, weekly, monthly — when you don't.

  • 412 orders a day becomes one verifikat, not 412 invoices
  • Both go through the same builder, so they cannot disagree

Swedish VAT, decided once

Domestic rates, reverse charge for EU business customers, OSS destination rates for consumers, zero-rating outside the EU — resolved in one place and used by the invoice, the journal, the SIE file and the OSS report alike.

Öresavrundning as a real posting

A Swedish invoice settles to whole kronor. Vismaz books the difference to 3740 as its own line instead of hiding it in the last item's price, where it quietly corrupts a different account.

Reverse charge you can defend

EU VAT numbers are validated against VIES before a sale is zero-rated, and the invoice carries the required wording. A number VIES cannot confirm leaves the sale taxed — charging the VAT is the recoverable mistake.

  • Every decision records its reason, on the order screen
  • VIES results are cached; a timeout is never cached

Payment methods that reconcile

Klarna, Swish, Stripe and card each settle to their own account, and the processor's cut is booked as a cost rather than a discount on revenue. This is the setting that decides whether the books tie out against the payment statements.

It cannot post twice

Every document has an idempotency key with a unique index behind it. The queue can retry, you can press the button twice and the console can run at the same moment — one document exists at the end of it.

  • The total Visma booked is checked against the total sent
  • Retries rebuild from the order, never replay a stale payload

Frequently Asked Questions

The questions worth answering before you install it.

Check it before you trust it

$79 with a $59/year renewal. Connect Visma's free sandbox, preview a real order, and read the exact payload before anything touches your books.