| “Unauthorized” (401) |
The API key is wrong, was renewed or revoked. Create a new key in Lexware Office (Settings > Public API), enter it, register the event subscriptions again. Jobs wait six hours before the next try |
| 402 |
The Lexware Office contract does not include the function (for example XRechnung). Check your plan |
| 403 |
The key has no access to the resource, or the URL is wrong |
406 with details (for example lineItems[0].unitPrice.taxRatePercentage) |
Lexware Office refused the data. The field and the violation are in the message. Common: a tax rate Lexware Office does not accept (use the Tax rates page), a vat-free sale without a contact, a missing country |
| “Tax rate X% … is not accepted by Lexware Office” |
The CS-Cart tax has a percentage other than 0, 7 or 19 for a domestic sale. Enter 7 or 19 for that tax on the Tax rates page |
| “accepts EUR only” |
The primary currency of the store is not EUR |
| 409 on a file |
The invoice is a draft in Lexware Office; finalize it there |
| 404 on the XML |
Only XRechnung invoices have an XML file; ZUGFeRD and normal invoices are PDF |
| 429 or “rate limit” |
More than 2 requests per second. The add-on spaces calls and retries by itself; a long queue just takes longer. If another program uses the same key at the same time, give it its own key |
| “Total at Lexware Office … differs from order total” (log) |
Lexware Office computes the totals itself from the line prices and tax rates. A cent of rounding with net prices is normal; a larger difference means a tax rate or discount the shop calculated differently. The invoice cannot be changed through the API: credit it and create it again after fixing the tax mapping |
| “Waiting to find out whether the invoice was created” |
A request timed out. The job looks the invoice up automatically; wait for the next run |
| “More than one document … could be the one” |
Two invoices with the same total exist for that contact on that day. Check Lexware Office; if the invoice exists, remove the job; if not, press Create invoice now again after removing the pending row by discarding the job |
| Subscriptions cannot be registered |
The callback address must be HTTPS with a valid certificate (Lexware Office checks it with a HEAD request and answers 406 otherwise). Without subscriptions the cron run reads open invoices every 15 minutes |
| Paid state does not update |
Check the cron job runs every minute; check the event subscription list on the Connection page |
| Credit note refused |
The invoice is a draft, or it has a credit note already (Lexware Office allows one credit note per invoice; create further credits in Lexware Office) |
| “Not sure whether the invoice … was created” |
The answer of Lexware Office was lost and nothing carrying our reference (“Ref KV-…” in the closing text) was found. Look in Lexware Office; if the invoice is not there, press Issue now. The add-on never sends it again by itself |
| Contact “VAT ID rejected” warning |
Lexware Office checks vatRegistrationId by German rules; the contact was created without it. Add the VAT ID in Lexware Office if needed |