
Cyprus · VAT
Invoices, receipts and bank statements in one place — Invobookz fills the 13 boxes of the Cyprus VAT return and the monthly VIES listing from them. You check, you file.

Friday, 18:40. Nineteen tax categories and a bank account in Cyprus.
Other tools hand you nineteen tax categories and let you guess. Invobookz asks four questions — your country, the customer’s country, the customer’s type, the kind of service — and derives what belongs on the invoice.
Other tools ask for a “tax category” and put 19.00 in front of you — even on a Cyprus account. Anyone who has to explain nineteen categories has handed you the decision. We derive it: from your country, the customer’s country and type, their VIES status, and the kind of service.
Steuerschuldnerschaft des Leistungsempfängers gemäß Artikel 196 der Richtlinie 2006/112/EG.
In the program the real VIES status of the VAT ID decides, not an assumption — an unverified number leads to a different result.
tax cases under test. Every one of them a table of cases — not a claim.
questions instead of nineteen categories. Anyone who has to explain the categories has handed you the decision.
fields of the Cyprus VAT return, computed from your receipts. Plus VIES, month by month.
Your data sits in the EU. Separated per client, enforced by the database itself.

The decision was made before you had to make it.
No program sells itself on a feature list. This page follows a single document instead — the four questions at the start, the number that drops when it is finalised, the money on the bank statement, and the box it ends up in. At every stop, what other programs do there stands beside it.
Invobookz asks the European Commission’s VIES service and keeps the answer — not as a tick, but as a consultation number with a date. That is the evidence an audit wants to see. It travels onto the document and stays there, even if the customer later moves or loses the number.
A number printed on an invoice is not a verified number. We ask VIES and keep the consultation number as evidence — the confirmation that counts if it is ever disputed.
One document can carry 19 %, 9 %, 5 %, 0 % and reverse charge at once — four Cypriot rates plus a supply where the recipient owes the tax. That is why Invobookz decides per line, and why the discount goes per line too. On the total it could not be split without guessing which rate takes how much of it.
On a document carrying 19 % and reverse charge side by side, a discount on the total cannot be split. With us it goes on the line — where the rate is.
Finalising draws the number from the sequence — no gaps, in the order things were finalised. At the same moment the tax decision freezes, together with the mandatory wording verbatim and the customer’s VIES status. The PDF is produced and kept, not recomputed every time someone opens it. Corrections happen through a credit note, never by editing.
Art. 196 of the VAT Directive belongs on the invoice verbatim, in its language. With us it comes along and is frozen when the invoice is finalised — it is never rewritten later.
No quote and no asterisk. What runs past here is computed by the same function that ends up on your invoice — and where it cannot decide, it stops.
Reverse charge. The recipient owes the tax.
0 % · box 6 · 8B · VIES
Cypriot VAT at the standard rate.
19 % · box 6 · 1
Outside the scope — the place of supply is outside Cyprus.
0 % · box 6 · 10
Blocked. The supply counts as made in Greece — foreign tax law, possibly a duty to register there.
no program decides that
Reverse charge pursuant to Article 196 of Directive 2006/112/EC.
verbatim, in the language of the invoice
Nothing changes after this point. Corrections go through a credit note, never through editing.
number, rate and wording freeze
19 %, 5 % and 0 % side by side — three lines, no blended rate on the total.
the sum of the lines counts
Blocked. Without a verified number it is not settled whether reverse charge applies.
get it wrong and you owe the tax yourself
The balance check does not add up: the statement is rejected, not half imported.
CAMT.053 · Revolut CSV
Two transactions fit equally well. Then neither is chosen.
ambiguous is not a match
Box 8B of the quarter against the sum of the three VIES months — and the result is on the screen.
two routes to the same number
The thirteen boxes of the Tax For All form, computed from your documents.
not a liability summary
No other promise on this page matters as much. Where a figure is missing or contradicts itself, it says “blocked” — not a number that merely looks plausible. A return that must not be filed says so at the very top, and names the receipt it is about.

And the receipt that has been in the glovebox since Tuesday.
The outgoing invoice is one half. The other half is the receipts you pay and the money that actually moved. Both belong in the same return — and both are where programs quietly become imprecise.
Photograph them or drop them in your cloud. Invobookz reads merchant, date and every VAT rate separately — the sum of the lines counts, not one blended rate across the whole receipt. In Cyprus a till receipt with 19 %, 5 % and 0 % side by side is the normal case, not the exception.
CAMT.053 and Revolut CSV. The balance check is a condition: if it does not add up, the statement is rejected rather than half imported. After that, document and transaction find each other by number, name and amount, in both directions. Ambiguous means no match is chosen.


At the end of the quarter it comes down to thirteen boxes.
The part Invobookz exists for. It does not add up what you typed in — it derives what applies, and computes the return itself.
The €550 from the top of this page goes in right here — into box 6 and box 8B, and into that month’s VIES return. Not retyped, not exported and keyed in again: the same document, carried through to the boxes where it belongs.
In the end you export numbers and retype them in the portal. We compute the thirteen fields of the Cyprus return and the monthly VIES report from your receipts — and the cross-check holds field 8B against the sum of the VIES months.

Till, shop, your own software: whatever triggers an invoice on your side can create it here, finalise it and fetch the PDF. There is exactly one thing it cannot do — send the tax rate along.
See the whole interfacePOST /v1/invoicesAuthorization: Bearer ibz_live_…{ "customer_id": "clx8f2q1…", "line_items": [{ "service_type_id": "clx3a9h7…", "name": "Beratung Juni", "quantity_milli": 1000, "unit_price_minor": 55000 }]}{ "success": true, "data": { "status": "FESTGESCHRIEBEN", "number": "INVOICE-2026-0147", "tax_minor": 0, "net_minor": 55000, "total_minor": 55000, "mandatory_notes": ["rc_eu_b2b"], "customer_vies_consultation_number": "CY202606174711" }}The caller gets the result, not the lever: the number, the tax amount, the mandatory wording and the VIES consultation number are produced here and returned. The wording itself is printed on the PDF, which the same key can fetch.
Company, service types, items, customers, invoices — create, finalise, cancel, fetch the PDF. Read and write are separate rights per key.
The key is displayed exactly once; only its SHA-256 is stored. The list shows when it last did any work — “never” there means something different from “a long time ago”.
A sliding window, counted per server instance. That is imprecise, and it says so: security rests on the key’s 256 bits, not on the throttle.
There is no Access-Control-Allow-Origin header. Using the key from a browser would mean putting it there — and that is exactly what should not happen.

Database and application run in the EU. Not “in the cloud” — in Frankfurt.
Client separation does not live in the application but in the database itself. A mistake in the code cannot get around it.
Receipts are read only if you explicitly allow it. Where the image goes is written in the consent text — with the provider and the country.
Your cloud password is stored encrypted, the key kept elsewhere. That it was changed goes in the log — its value never.
Two plans, both net and cancellable monthly. A 14-day trial before; pay yearly and two months are on us.
or €14.90 a month
For day-to-day business.
or €19.90 a month
With the Cyprus tax module.
All prices net. VAT follows your country.
Twelve of them, the awkward ones included. A question we leave out here still gets asked — only later, and with more annoyance.
No. Invobookz writes the invoices, reads the receipts, reconciles the bank and calculates the return. The year-end accounts of a Cyprus company are signed off by a licensed auditor — no software may do that. What changes is what you bring to them.
No, you do. Invobookz calculates the thirteen boxes of the Tax For All form and the VIES months and lays them out ready to copy — or as XML for Bulk Return Filing. The last click in the portal stays with you, and that is deliberate: what gets filed is what you have seen.
For sellers established in Cyprus who invoice services — company or sole trader, both. Goods are not covered: the 65 tested cases are written for services, and we do not promise what we have not tested.
Because there a person picks the tax treatment from a list — and it is no different at the Cyprus vendors: nineteen entries at one, seven at another. The wrong pick only surfaces at the audit. Invobookz asks four questions — your country, the customer's country, the customer type, the type of service —, checks the VAT ID against VIES and derives what applies.
It says “blocked”, with the document it depends on right beside it. No plausible number, no estimate, no “roughly 19 %”. A return that must not be filed says so at the top.
Revolut Business does, directly and read-only — the consent is limited to reading, and no service provider sits in between reading along. Every other bank through the statement: CAMT.053 or CSV. The balance check is a condition — if it does not add up, the statement is rejected rather than half-imported.
Database and application in Frankfurt. The separation between tenants sits in the database itself, not in the application code — a bug in the code cannot get around it. And your documents go to your own cloud as well if you want: any server that speaks WebDAV.
Only if you allow it. Extraction is voluntary and switched on separately; the consent text names the provider and the country — today Anthropic in the United States. All five processors are listed with purpose and location in the privacy notice, not only the convenient ones.
See the five processorsAt the press of a button. An archive with a JSON and a CSV file per table, and every document file in the original. It is built fresh on every request — a stored export would be a second set of books lying around and going stale.
Yes, with a role of their own: they read and export, they do not write, and they never cost a seat.
Yes, on your own. Under Settings · Import you upload three tables as CSV — templates are there to download. A dry run shows what would come in and writes nothing; each record is recognised by its number, and two runs in a row change nothing. And your invoice numbers carry on: we read the pattern from your last one instead of starting you at 0001.
€14.90 or €19.90 net per month, cancel monthly. 14 days to look around with the full scope; the card is stored when you sign up, the charge comes only after that. We are cheaper than the others because we sell less: no payroll, no company formation, no bookkeeper filing on your behalf.

Set it up once. After that it is just the island again.
Creating an account takes two minutes — the button is above. If something needs clearing up first, drop us a line.
€14.90 or €19.90 a month, net · 14-day trial · cancel monthly