Skip to content

Implement Cyprus tax regime - #934

Draft
xMigma wants to merge 5 commits into
invopop:mainfrom
xMigma:feat/cyprus-regime
Draft

Implement Cyprus tax regime#934
xMigma wants to merge 5 commits into
invopop:mainfrom
xMigma:feat/cyprus-regime

Conversation

@xMigma

@xMigma xMigma commented Aug 20, 2026

Copy link
Copy Markdown

Summary

  • VAT (Value Added Tax / ΦΠΑ) with the four rates currently in force
    and their historical values:
    • 19% general
    • 9% higher reduced
    • 5% lower reduced
    • 3% super-reduced
  • Cyprus TIN normalization and format validation.
  • Invoice requirements and prescribed wording for special VAT scenarios.
  • Tests, an example invoice, generated regime data, and a changelog entry.

Implementation notes

  • Corrections remain unrestricted because the available guidance describes
    credit notes but does not establish that all corrections must use a specific
    document type.
  • The EUR 85 simplified retail invoice threshold is not enforced because GOBL's
    generic simplified tag does not represent all its eligibility conditions.
  • VAT representative details are not modelled because the invoice schema has no
    dedicated tax representative party.
  • TIN validation checks the published format only. The final letter is a control
    character, but no public validation algorithm was found.

Feedback on these scope decisions would be appreciated.

Sources

Pre-Review Checklist

  • Opened this PR as a draft
  • Read the CONTRIBUTING.md guide.
  • Performed a self-review of my code.
  • Added thorough tests with at least 90% code coverage.
  • Modified or created example GOBL documents to show my changes in use, if appropriate.
  • Added links to the source of the changes in tax regimes or addons, either structured or in the comments.
  • Run go generate . to ensure that the Schemas and Regime data are up to date.
  • Reviewed and fixed all linter warnings.
  • Been obsessive with pointer nil checks to avoid panics.
  • Updated the CHANGELOG.md with an overview of my changes.
  • Marked this PR as ready for review.

And if you are part of the org:

  • Requested a review from Copilot and fixed or dismissed (with a reason) all the feedback raised.
  • Requested a review from @samlown.

@codecov

codecov Bot commented Aug 24, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 97.26027% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 95.00%. Comparing base (8652979) to head (2e9df00).

Files with missing lines Patch % Lines
regimes/cy/tax_identity.go 86.66% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main     #934   +/-   ##
=======================================
  Coverage   94.99%   95.00%           
=======================================
  Files         327      330    +3     
  Lines       17732    17805   +73     
=======================================
+ Hits        16845    16916   +71     
- Misses        547      548    +1     
- Partials      340      341    +1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant