Skip to content

Add Iceland (IS) tax regime - #887

Open
jaimerabazo wants to merge 5 commits into
invopop:mainfrom
jaimerabazo:feat/is-regime
Open

Add Iceland (IS) tax regime#887
jaimerabazo wants to merge 5 commits into
invopop:mainfrom
jaimerabazo:feat/is-regime

Conversation

@jaimerabazo

@jaimerabazo jaimerabazo commented Jul 1, 2026

Copy link
Copy Markdown

Summary

Adds Iceland (IS) as a new tax regime. Completes Nordic coverage alongside dk, se and no.

Changes

  • regimes/is/ — regime, VSK category (24% / 11%, since 2015), kennitala validation, IdentityTypeKennitala.
  • Tests at 95.5% coverage; example invoice in examples/is/.
  • changelog entry, regenerated schemas.

Design decisions

  • Single kennitala model. Iceland uses one national identifier for persons and companies; the distinction is the first digit (0–3 person, 4–7 company, 8–9 temporary). Modeled as one type with IsCompany / IsPerson helpers rather than mirroring Sweden's split.
  • VAT-ID restricted to company-form. Person and temporary kennitalas rejected — only companies hold VSK numbers.
  • Current rates only. Modeled post-2015 rates; pre-2015 (25.5% / 7%) omitted to keep the MVP focused, can be backfilled symmetrically.

Out of scope

  • TS-236 addon. Iceland's B2G Peppol BIS 3.0 CIUS. Natural follow-up under addons/is/ts236/. Left out here because it requires reading the full spec and ideally a domain-expert review.
  • Custom scenarios beyond bill.InvoiceScenarios().

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.

@jaimerabazo

Copy link
Copy Markdown
Author

@codecov full review

@jaimerabazo jaimerabazo changed the title feat/iceland Add Iceland (IS) tax regime Jul 1, 2026
@jaimerabazo

Copy link
Copy Markdown
Author

@copilot full review

@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 96.49123% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 94.77%. Comparing base (595b77a) to head (004e4ce).

Files with missing lines Patch % Lines
regimes/is/tax_identity.go 92.50% 3 Missing and 3 partials ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #887      +/-   ##
==========================================
+ Coverage   94.75%   94.77%   +0.01%     
==========================================
  Files         343      346       +3     
  Lines       18815    18986     +171     
==========================================
+ Hits        17829    17994     +165     
- Misses        600      603       +3     
- Partials      386      389       +3     

☔ 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.

@samlown samlown added the regime Related to a specific regime. label Jul 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

regime Related to a specific regime.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants