Skip to content

feat(ontology): Organization.taxNumber - #1212

Open
andpuc23 wants to merge 1 commit into
MetaState-Prototype-Project:mainfrom
andpuc23:feat/organization-tax-number
Open

andpuc23 wants to merge 1 commit into
MetaState-Prototype-Project:mainfrom
andpuc23:feat/organization-tax-number

Conversation

@andpuc23

Copy link
Copy Markdown
Contributor

Description of change

In some jurisdictions an organisation has two official numbers: the one it is
registered under, and a separate one the tax authority uses. In the Netherlands
the Chamber of Commerce issues both: the KvK number (registration) and the
RSIN (Rechtspersonen en Samenwerkingsverbanden Informatienummer), which the
Belastingdienst uses and which stichtingen and verenigingen need for ANBI status,
gift deductions and tax returns.

Organization (0f9a3cb8-…402) can hold the first as registrationNumber, but has
no place for the second. eCommons CORE keeps an RSIN for the communities it
manages, and once a community has a signed Organization record the board's record
becomes the source of its legal details. The RSIN is the one detail with nowhere
to go.

This PR adds one optional field:

Field What it holds
taxNumber The organisation's tax identification number in its jurisdiction, where that differs from registrationNumber, e.g. the Dutch RSIN.

Every existing field, the required list and additionalProperties: false are
unchanged.

Why a separate field

  • Not registrationNumber. The KvK number and the RSIN are different numbers
    with different uses, and a Dutch organisation needs both on file.
  • Not a free-form identifiers map. A named field is what the rest of
    Organization does (registrationNumber, iban), and readers can rely on it
    without a convention for keys.
  • Where the two are the same number, leave taxNumber out. The description
    says this, so readers don't expect a duplicate.

Who may change it

Like every field on Organization, taxNumber belongs to the signed record:
only a director can set or change it (authorization), so it carries the same
guarantee as iban. This PR adds nothing to that rule.

Issue Number

None.

Type of change

  • New (a change which implements a new feature)

Optional field only: every Organization record valid today stays valid, and
readers that don't know taxNumber can ignore it.

How the change has been tested

  • company.json parses as JSON and compiles as JSON Schema draft-07 (Ajv 8 +
    ajv-formats).
  • An Organization record without taxNumber (a devstack test stichting) still
    validates.
  • The same record with taxNumber: "123456789" validates.
  • Rejected as intended: taxNumber given as a number instead of a string.

Change checklist

  • I have ensured that the CI Checks pass locally
  • I have removed any unnecessary logic
  • My code is well documented
  • I have signed my commits
  • My code follows the pattern of the application
  • I have self reviewed my code

@andpuc23
andpuc23 requested a review from coodos as a code owner October 30, 2026 13:15
@coderabbitai

coderabbitai Bot commented Oct 30, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: c265737b-6355-4091-8270-e98513e24584
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
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