Lexies for Craft CMS

FAQ

Is Lexies free?

Lite is, and it is not a trial. A German shop selling to German customers can invoice every order into Lexware Office with the free edition, including the tax resolution and the reconciliation guard. Pro is $99 with a $49/year renewal, and adds contacts, credit notes, payment sync, OSS distance sales, customer downloads and the full connection log.

Is this the same as lexoffice?

Yes. Lexware Office is what lexoffice was renamed to. The API is the same one, at api.lexware.io.

Will an invoice ever disagree with what the customer paid?

Not one that Lexies sends. Every payload is recomputed the way Lexware will compute it and compared to the order total in integer cents; anything that does not reconcile is blocked rather than sent. That is the part of this plugin worth paying for.

Can it create a duplicate invoice?

No. The order-to-document relationship is a unique database index, so a replayed queue job, a double order-complete event and an impatient merchant all collide there rather than in Lexware's voucher numbering.

The harder case is a request that times out — Lexware's docs say that may still have created the voucher. Lexies never retries those. It parks the document and looks Lexware up before anything tries again.

Do invoices arrive finalised?

Only if you ask. The default is a draft, because finalising allocates the consecutive voucher number and cannot be undone — a finalised invoice can only be voided.

Does it handle reverse charge?

Yes. An EU customer who supplies a VAT ID gets intraCommunitySupply with the reverse-charge note, zero-rated. That requires a Lexware contact, which is a Pro feature.

Does it handle OSS / distance sales?

Yes, on Pro. Turn on EU distance sales and EU consumer orders are marked distanceSales so they carry the destination country's VAT rate. Your Lexware organisation needs its distance sales principle set to DESTINATION — the connection test tells you what it is.

How does it know which countries are in the EU?

It asks Lexware. Their countries endpoint returns each country's tax classification, and it is the same table their voucher validation uses — so the answer stays right when a country joins or leaves, and it never disagrees with the system it is talking to.

Can it invoice orders in other currencies?

No. Lexware Office issues vouchers in EUR only. Orders in another currency are refused with an explanation rather than converted at a rate nobody could defend.

Will it slow down checkout?

No. The order-complete handler pushes a queue job and returns. An accounting API being slow, rate limited or down can make an invoice late; it can never stop a customer paying.

What happens to orders placed before I installed it?

Nothing, until you ask. php craft lexies/sync/backfill invoices them oldest first, and --dry-run shows you the whole plan without sending anything.

Does it mark orders as paid in Commerce?

Only if you turn it on and choose a gateway. It is off by default because writing a Commerce transaction creates money in Commerce's ledger, and a shop that already takes card at checkout would end up with the same sale recorded twice.

Do I need to expose a public webhook endpoint?

No. Webhooks are the tidy way to hear about payments, but php craft lexies/payments/poll on a schedule does the same job with no inbound connectivity.

Are webhooks secure?

Every callback is verified against Lexware's published RSA-SHA512 signing key, which ships with the plugin rather than being fetched. The organisation id is checked against your own, duplicates are suppressed, and a verified callback only ever causes Lexies to go and ask Lexware what a voucher now says — the payload is never trusted as data.

Does it sync my products into Lexware as articles?

No. Every line item is sent as a custom item, which needs no article in Lexware. Keeping a product catalogue in two places is a different plugin.

What about quotations, delivery notes and dunnings?

Lexware has endpoints for all of them; none corresponds to anything Commerce holds. Lexies does invoices and credit notes, which are the two documents a shop actually produces.

Which versions are supported?

Craft CMS 5.3+, Craft Commerce 5.0+, PHP 8.2+ with ext-openssl.