├── readthedocs_requirements.txt ├── babel_bods_schema.cfg ├── docs ├── _static │ ├── statement.json │ ├── entity-record.json │ ├── person-record.json │ ├── relationship-record.json │ └── theme_overrides.css ├── about │ └── privacy-notice.rst ├── standard │ ├── system │ │ └── index.rst │ ├── modelling │ │ └── index.rst │ └── warningbox.rst ├── _templates │ └── layout.html └── Makefile ├── babel_bods_codelist.cfg ├── setup.cfg ├── .gitmodules ├── .gitignore ├── schema └── codelists │ ├── directOrIndirect.csv │ ├── recordStatus.csv │ ├── personType.csv │ ├── sourceType.csv │ ├── nameType.csv │ └── recordType.csv ├── requirements.in ├── .github ├── workflows │ ├── spellcheck.yml │ ├── docsbuild.yml │ └── test.yml └── ISSUE_TEMPLATE │ ├── bug-report.md │ └── feature_request.md ├── tests └── data │ ├── invalid-statements │ ├── statement_recordDetails_missing.json │ ├── statement_recordDetails_no_object.json │ ├── person_type_missing.json │ ├── entity_statementDate_missing.json │ ├── entity_missing_declarationSubject.json │ ├── entity_type_not_object.json │ ├── entity_recordDetails_missing_isComponent.json │ ├── entity_statementDate_format.json │ ├── person_isComponent_missing.json │ ├── person_type_not_codelist.json │ ├── entity_type_type_not_codelist.json │ ├── statement_recordId_missing.json │ ├── statements_not_array.json │ ├── statement_statementId_missing.json │ ├── person_iscomponent_not_bool.json │ ├── statement_declarationSubject_missing.json │ ├── entity_type_subtype_not_codelist.json │ ├── entity_name_not_string.json │ ├── entity_uri_string.json │ ├── relationship_interestedParty_missing.json │ ├── relationship_subject_missing.json │ ├── entity_isComponent_missing.json │ ├── statement_statementDate_missing.json │ ├── person_birth_date_number.json │ ├── person_death_date_number.json │ ├── entity_founding_date_not_date.json │ ├── entity_founding_date_not_string.json │ ├── entity_uri_format.json │ ├── relationship_isComponent_missing.json │ ├── statement_recordStatus_code.json │ ├── statement_statementId_too_short.json │ ├── entity_addresses_not_object.json │ ├── entity_dissolution_date_number.json │ ├── entity_formed_by_statute_string.json │ ├── entity_jurisdiction_missing_name.json │ ├── entity_jurisdiction_not_object.json │ ├── publication_details_not_object.json │ ├── entity_alternate_names_not_array.json │ ├── entity_dissolution_date_string.json │ ├── person_politicalExposure_no_status.json │ ├── statement_recordId_string.json │ ├── person_birth_place_not_object.json │ ├── person_politicalExposure_no_object.json │ ├── person_taxResidencies_no_object.json │ ├── statement_recordType_code.json │ ├── entity_isComponent_not_boolean.json │ ├── entity_unspecified_entity_details_not_object.json │ ├── statement_declarationSubject_string.json │ ├── entity_alternate_names_not_strings.json │ ├── entity_identifiers_not_objects.json │ ├── relationship_subject_invalid_type.json │ ├── statement_statementDate_not_string.json │ ├── statement_statementId_not_string.json │ ├── entity_jurisdiction_name_number.json │ ├── relationship_interested_party_invalid_type.json │ ├── statement_statementDate_not_date_string.json │ ├── entity_formed_by_statute_date_number.json │ ├── entity_formed_by_statute_name_number.json │ ├── entity_jurisdiction_code_1char.json │ ├── person_unspecified_person_details_not_object.json │ ├── entity_formed_by_statute_date_year_only.json │ ├── relationship_isComponent_not_boolean.json │ ├── entity_addresses_not_array.json │ ├── entity_jurisdiction_code_3chars.json │ ├── person_identifiers_not_object.json │ ├── person_names_not_objects.json │ ├── statement_declaration_not_string.json │ ├── entity_address_not_string.json │ ├── entity_public_listing_has_public_listing_not_bool.json │ ├── person_politicalExposure_status_code.json │ ├── entity_addresses_type.json │ ├── entity_identifiers_not_array.json │ ├── entity_postcode_not_string.json │ ├── entity_public_listing_not_object.json │ ├── statement_source_no_object.json │ ├── statement_statementId_too_long.json │ ├── entity_identifiers_schemeName_number.json │ ├── statement_annotations_not_object.json │ ├── entity_identifiers_id_number.json │ ├── entity_unspecified_entity_no_reason.json │ ├── person_names_fullName_string.json │ ├── statement_annotations_statementPointerTarget_type.json │ ├── entity_identifiers_no_scheme_info.json │ ├── person_names_not_array.json │ ├── publication_details_publisher_no_publisher.json │ ├── relationship_component_records_not_array.json │ ├── statement_source_description_string.json │ ├── statement_source_retrievedAt_date.json │ ├── statement_source_url.json │ ├── entity_type_no_entity_type.json │ ├── person_identifiers_not_array.json │ ├── statement_source_type_not_array.json │ ├── entity_unspecified_entity_description_not_string.json │ ├── person_names_fullName_missing.json │ ├── entity_identifiers_uri_format.json │ ├── entity_public_listing_has_public_listing_missing.json │ ├── entity_public_listing_company_filings_not_array.json │ ├── person_addresses_type.json │ ├── publication_details_publisher_no_publication_date.json │ ├── statement_source_type_code.json │ ├── entity_unspecified_entity_reason_not_codelist.json │ ├── entity_public_listing_company_filings_not_string.json │ ├── entity_type_notype.json │ ├── person_addresses_birthplace.json │ ├── publication_details_publisher_no_bods_version.json │ ├── relationship_component_records_not_string.json │ ├── statement_annotations_creationDate.json │ ├── relationship_interests_no_array.json │ ├── statement_annotations.statementPointerTarget_missing.json │ ├── entity_public_listing_company_filings_not_uri.json │ ├── publication_details_publisher_not_object.json │ ├── person_names_givenName_string.json │ ├── person_names_patronymic.json │ ├── person_names_type_code.json │ ├── statement_annotations_createdBy_no_object.json │ ├── person_names_familyName_string.json │ ├── statement_source_assertedBy_not_array.json │ ├── publication_details_date_not_date.json │ ├── publication_details_date_not_string.json │ ├── publication_details_publisher_url_not_string.json │ ├── publication_details_publisher_name_not_string.json │ ├── publication_details_publisher_no_name_url.json │ ├── publication_details_publisher_url_not_uri.json │ ├── publication_details_version_not_string.json │ ├── publication_details_version_not_version.json │ ├── relationship_interests_type_code.json │ ├── entity_address_country_no_object.json │ ├── person_politicalExposure_details_not_array.json │ ├── relationship_interests_end_date_string.json │ ├── relationship_interests_share_not_object.json │ ├── statement_annotations_createdBy_name_string.json │ ├── relationship_interests_details_string.json │ ├── relationship_interests_share_startDate_format.json │ ├── relationship_interests_end_date_dateformat.json │ ├── entity_address_country_name_not_string.json │ ├── publication_details_license_not_string.json │ ├── relationship_interests_direct_indirect_code.json │ ├── statement_annotations_motivation_code.json │ ├── entity_addressType_placeOfBirth.json │ ├── entity_address_country_code_1chars.json │ ├── entity_address_country_code_3chars.json │ ├── relationship_component_records_true.json │ ├── statement_source_assertedBy_name_string.json │ ├── entity_type_details_number.json │ ├── statement_annotations_url_linking_missing.json │ ├── statement_source_assertedBy_uri.json │ ├── entity_type_state_stateAgency.json │ ├── person_PepStatusDetails_reason.json │ ├── person_addresses_no_array.json │ ├── statement_annotations_not_array.json │ ├── entity_address_country_no_name.json │ ├── entity_type_nomination_unknown.json │ ├── entity_type_trust_registeredentity.json │ ├── person_PepStatusDetails_endDate_string.json │ ├── person_PepStatusDetails_startDate_string.json │ ├── publication_details_license_not_uri.json │ ├── relationship_interests_beneficialOwnershipOrControl_not_boolean.json │ ├── statement_annotations_motivation_missing.json │ ├── statement_annotations_createdBy_uri.json │ ├── person_PepStatusDetails_jurisdiction_no_object.json │ ├── person_PepStatusDetails_source_no_object.json │ ├── entity_type_governmentDepartment_arrangement.json │ ├── person_PepStatusDetails_missingInfoReason_string.json │ ├── relationship_interests_share_exact_too_big.json │ ├── relationship_interests_share_exact_too_small.json │ ├── statement_annotations_url_format.json │ ├── relationship_interests_share_maximum_too_big.json │ ├── relationship_interests_share_maximum_too_small.json │ ├── relationship_interests_share_minimum_too_big.json │ ├── relationship_interests_share_minimum_too_small.json │ ├── statement_annotations_description_not_string.json │ ├── statement_annotations_transformedContent_not_string.json │ ├── entity_security_listing_not_array.json │ ├── relationship_interests_exclusive_max_negative.json │ ├── relationship_interests_exclusive_max_too_big.json │ ├── relationship_interests_exclusive_min_negative.json │ ├── relationship_interests_exclusive_min_too_big.json │ ├── statement_annotations_transformedContent_wrong_motivation.json │ ├── entity_security_listing_no_security.json │ ├── entity_security_listing_no_stock_exchange.json │ ├── entity_security_listing_string.json │ ├── entity_security_listing_no_jurisdiction.json │ ├── entity_security_stock_name_string.json │ ├── entity_security_ticker_number.json │ └── entity_security_listing_no_ticker.json │ └── valid-statements │ ├── entity_statementDate.json │ ├── entity_statementDate_time.json │ ├── entity_name.json │ ├── record_status.json │ ├── entity_founding_date.json │ ├── person_birth_date_year.json │ ├── person_death_date_year.json │ ├── person_birth_date.json │ ├── entity_dissolution_date.json │ ├── entity_formed_by_statute.json │ ├── entity_uri.json │ ├── person_birth_date_year_month.json │ ├── person_death_date_full.json │ ├── person_death_date_year_month.json │ ├── entity_alternate_names.json │ ├── entity_jurisdiction_name.json │ ├── relationship_subject.json │ ├── entity_public_listing.json │ ├── relationship_interested_party.json │ ├── entity_formed_by_statute_date.json │ ├── entity_formed_by_statute_name.json │ ├── relationship_is_component_true2.json │ ├── entity_address_type.json │ ├── entity_jurisdiction_code.json │ ├── entity_type_registered_entity_subtype.json │ ├── entity_address_postcode.json │ ├── entity_identifiers_scheme.json │ ├── entity_unspecified_entity_details.json │ ├── person_politicalExposure_object.json │ ├── source.json │ ├── person_unspecified_person_details.json │ ├── relationship_is_component_true.json │ ├── entity_identifiers_id.json │ ├── entity_identifiers_scheme_name.json │ ├── entity_address_address.json │ ├── person_nationalities_name.json │ ├── statement_source_retrievedAt.json │ ├── person_names_full_name.json │ ├── person_identifiers_scheme.json │ ├── relationship_subject_unspecified_object.json │ ├── statement_source_url.json │ ├── entity_identifiers_uri.json │ ├── statement_annotations_statementPointerTarget.json │ ├── statement_source_retrievedAt_time.json │ ├── relationship_interested_party_unspecified_object.json │ ├── statement_source_description.json │ ├── entity_address_country_2.json │ ├── statement_source_type.json │ ├── entity_unspecified_entity_description.json │ ├── person_identifiers_scheme_name.json │ ├── person_nationalities_code.json │ ├── person_taxResidencies.json │ ├── entity_public_listing_company_filings.json │ ├── statement_annotations_creationDate.json │ ├── person_identifiers_id.json │ ├── person_names_type.json │ ├── person_names_given_name.json │ ├── publication_details_version.json │ ├── person_names_family_name.json │ ├── statement_annotations_creationDate_time.json │ ├── person_names_patronymic.json │ ├── publication_details_date.json │ ├── publication_details_publisher_name.json │ ├── publication_details_publisher_url.json │ ├── relationship_interests_type.json │ ├── statement_annotations_createdBy.json │ ├── relationship_interests_start_date.json │ ├── entity_addresses_type.json │ ├── person_birth_place.json │ ├── relationship_interests_end_date.json │ ├── relationship_component_records.json │ ├── relationship_interests_direct_or_indirect.json │ ├── relationship_interests_details.json │ ├── publication_details_publisher_name_url.json │ ├── entity_nomination.json │ ├── entity_trust_legal_entity.json │ ├── entity_type_statebody_other.json │ ├── entity_type_trust_arrangement.json │ ├── entity_government_body.json │ ├── relationship_interests_beneficial_ownership_or_control.json │ ├── entity_type_details.json │ ├── person_PepStatusDetails_endDate.json │ ├── publication_details_license.json │ ├── statement_source_assertedBy_uri.json │ ├── entity_address_country_no_code.json │ ├── person_PepStatusDetails_startDate.json │ ├── person_PepStatusDetails_reason.json │ ├── relationship_interests_share.json │ ├── statement_annotations_createdBy_uri.json │ ├── entity_address_country.json │ ├── person_PepStatusDetails_missingInfoReason.json │ ├── statement_annotations_empty_transformed.json │ ├── statement_annotations_transformedContent.json │ ├── statement_annotations_url.json │ ├── statement_annotations_url_linking.json │ ├── person_addresses_type.json │ ├── relationship_interests_share_exclusive_minmax.json │ ├── statement_annotations_description.json │ ├── entity_security_listing.json │ └── person_PepStatusDetails_source.json ├── requirements_test.in ├── svg-its-rules.xml └── .readthedocs.yml /readthedocs_requirements.txt: -------------------------------------------------------------------------------- 1 | -r requirements.txt 2 | -------------------------------------------------------------------------------- /babel_bods_schema.cfg: -------------------------------------------------------------------------------- 1 | [ocds_schema: schema/*.json] 2 | -------------------------------------------------------------------------------- /docs/_static/statement.json: -------------------------------------------------------------------------------- 1 | ../../schema/statement.json -------------------------------------------------------------------------------- /docs/_static/entity-record.json: -------------------------------------------------------------------------------- 1 | ../../schema/entity-record.json -------------------------------------------------------------------------------- /docs/_static/person-record.json: -------------------------------------------------------------------------------- 1 | ../../schema/person-record.json -------------------------------------------------------------------------------- /docs/_static/relationship-record.json: -------------------------------------------------------------------------------- 1 | ../../schema/relationship-record.json -------------------------------------------------------------------------------- /babel_bods_codelist.cfg: -------------------------------------------------------------------------------- 1 | [ocds_codelist: schema/codelists/*.csv] 2 | headers = title,description,technical note 3 | -------------------------------------------------------------------------------- /setup.cfg: -------------------------------------------------------------------------------- 1 | [flake8] 2 | exclude=build,.git,.ve,.hypothesis 3 | ignore=E123,E128,E265,W503,W601,W293 4 | max-line-length = 119 5 | 6 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "docs/_static/docson"] 2 | path = docs/_static/docson 3 | url = https://github.com/OpenDataServices/docson 4 | branch = master-bods 5 | -------------------------------------------------------------------------------- /docs/about/privacy-notice.rst: -------------------------------------------------------------------------------- 1 | Privacy Notice 2 | -------------- 3 | 4 | Open Ownership's full privacy notice, covering all of our services, can be found 5 | at https://openownership.org/privacy on our main website 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # sphinx build folder 2 | _build 3 | # translated schema build folder 4 | _build_schema 5 | .ve 6 | node_modules 7 | *~ 8 | *.swp 9 | *.pytest_cache* 10 | *.mo 11 | /schema/testing 12 | tx 13 | tests/__pycache__/ 14 | src/ 15 | .tx/*bak -------------------------------------------------------------------------------- /schema/codelists/directOrIndirect.csv: -------------------------------------------------------------------------------- 1 | code,title,description 2 | direct,Direct,The interest is held directly. 3 | indirect,Indirect,The interest is held through one or more intermediate entities (including arrangements). 4 | unknown,Unknown,The interest may be direct or indirect. 5 | -------------------------------------------------------------------------------- /requirements.in: -------------------------------------------------------------------------------- 1 | sphinx 2 | sphinx-intl 3 | sphinx_rtd_theme<=2.0.0 4 | sphinxcontrib-opendataservices-jsonschema 5 | sphinxcontrib-opendataservices 6 | -e git+https://github.com/openownership/data-standard-sphinx-theme.git@v1.0#egg=standard_theme 7 | ocds-babel 8 | urllib3>=1.23 9 | requests>=2.21.0 10 | -------------------------------------------------------------------------------- /docs/_static/theme_overrides.css: -------------------------------------------------------------------------------- 1 | 2 | /** A newer version of docutils aligns center by default. We want the old behavior of left align. **/ 3 | body .align-default { 4 | text-align: left !important; 5 | } 6 | 7 | body table.align-default { 8 | margin-left: 0 !important; 9 | margin-right: auto !important; 10 | } 11 | -------------------------------------------------------------------------------- /docs/standard/system/index.rst: -------------------------------------------------------------------------------- 1 | .. _system-requirements: 2 | 3 | System requirements 4 | =================== 5 | 6 | .. include:: /standard/warningbox.rst 7 | 8 | This section contains requirements for systems generating beneficial ownership data. 9 | 10 | .. toctree:: 11 | :maxdepth: 1 12 | :glob: 13 | 14 | * 15 | -------------------------------------------------------------------------------- /.github/workflows/spellcheck.yml: -------------------------------------------------------------------------------- 1 | name: Spellcheck Action 2 | on: [push, pull_request] 3 | 4 | jobs: 5 | build: 6 | name: Spellcheck 7 | runs-on: ubuntu-latest 8 | steps: 9 | # The checkout step 10 | - uses: actions/checkout@v3 11 | - uses: rojopolis/spellcheck-github-actions@v0 12 | name: Spellcheck 13 | -------------------------------------------------------------------------------- /docs/standard/modelling/index.rst: -------------------------------------------------------------------------------- 1 | .. _modelling-requirements: 2 | 3 | Modelling requirements 4 | ====================== 5 | 6 | .. include:: /standard/warningbox.rst 7 | 8 | This section contains requirements for representing beneficial ownership information. 9 | 10 | .. toctree:: 11 | :maxdepth: 1 12 | :glob: 13 | 14 | * 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_recordDetails_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "isComponent": false 9 | } 10 | ] -------------------------------------------------------------------------------- /docs/standard/warningbox.rst: -------------------------------------------------------------------------------- 1 | .. attention:: 2 | 3 | This is v0.4 of the Beneficial Ownership Data Standard. It includes updates to the data model, codelists, and technical guidance. 4 | 5 | Future changes are anticipated before a version 1.0 release. See the :ref:`Changelog ` and `About <../about>`_ pages for more information. 6 | -------------------------------------------------------------------------------- /docs/_templates/layout.html: -------------------------------------------------------------------------------- 1 | {% extends "!layout.html" %} 2 | {% block footer %} 3 | 4 | 5 | 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_recordDetails_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": true, 9 | "isComponent": false 10 | } 11 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_type_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "person", 8 | "recordDetails": { 9 | "isComponent": false 10 | } 11 | } 12 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_statementDate_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "recordDetails": { 8 | "entityType": { 9 | "type": "registeredEntity" 10 | }, 11 | "isComponent": false 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_missing_declarationSubject.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "recordDetails": { 8 | "entityType": { 9 | "type": "registeredEntity" 10 | }, 11 | "isComponent": false 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": "registeredEntity", 10 | "isComponent": false 11 | } 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_recordDetails_missing_isComponent.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "declarationSubject": "xyz", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | } 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /schema/codelists/recordStatus.csv: -------------------------------------------------------------------------------- 1 | code,title,description 2 | new,New Record,This is the first Statement published pertaining to the record referenced by `recordId`. 3 | updated,Updated Record,This Statement updates information published in a prior Statement pertaining to the record referenced by `recordId`. 4 | closed,Closed Record,This is the final Statement published pertaining to the record referenced by `recordId`. 5 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_statementDate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false 13 | } 14 | } 15 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_statementDate_format.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2020", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false 13 | } 14 | } 15 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_isComponent_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "personType": "knownPerson" 10 | } 11 | } 12 | ] 13 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_type_not_codelist.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "person", 8 | "recordDetails": { 9 | "personType": "person", 10 | "isComponent": false 11 | } 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_type_not_codelist.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "listedCompany" 11 | }, 12 | "isComponent": false 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_statementDate_time.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2020-09-11T16:30:23Z", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false 13 | } 14 | } 15 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_recordId_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordType": "person", 5 | "recordStatus": "new", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson" 11 | } 12 | } 13 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statements_not_array.json: -------------------------------------------------------------------------------- 1 | { 2 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 3 | "recordId": "ent-93c75c87ab28f889", 4 | "recordType": "entity", 5 | "declarationSubject": "ent-93c75c87ab28f889", 6 | "statementDate": "2017-11-18", 7 | "recordDetails": { 8 | "isComponent": false, 9 | "entityType": { 10 | "type": "registeredEntity" 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementId_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "recordId": "ent-93c75c87ab28f889", 4 | "recordType": "entity", 5 | "declarationSubject": "ent-93c75c87ab28f889", 6 | "statementDate": "2017-11-18", 7 | "recordDetails": { 8 | "isComponent": false, 9 | "entityType": { 10 | "type": "registeredEntity" 11 | } 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_iscomponent_not_bool.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": "false", 10 | "personType": "knownPerson" 11 | } 12 | } 13 | ] 14 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_declarationSubject_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "statementDate": "2017-11-18", 7 | "recordDetails": { 8 | "isComponent": false, 9 | "entityType": { 10 | "type": "registeredEntity" 11 | } 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_subtype_not_codelist.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity", 11 | "subtype": "listedCompany" 12 | }, 13 | "isComponent": false 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "name": "Fermentcat Ltd" 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_name_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "name": 12 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_uri_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "uri": true 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interestedParty_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889" 11 | } 12 | } 13 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_subject_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "interestedParty": "per-5faa4103dee78621" 11 | } 12 | } 13 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/record_status.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "recordStatus": "new", 7 | "declarationSubject": "ent-93c75c87ab28f889", 8 | "statementDate": "2017-11-18", 9 | "recordDetails": { 10 | "isComponent": false, 11 | "personType": "knownPerson" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_isComponent_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | } 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementDate_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "123456789012345678901234567890123", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "recordDetails": { 8 | "isComponent": false, 9 | "entityType": { 10 | "type": "registeredEntity" 11 | } 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_founding_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "foundingDate": "2019-09-11" 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_birth_date_year.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "birthDate": "1990" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_death_date_year.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "deathDate": "2001" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_birth_date_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "birthDate": 1990 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_death_date_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "deathDate": 2001 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_birth_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "birthDate": "1990-06-12" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_founding_date_not_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "foundingDate": "2019" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_founding_date_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "foundingDate": 2019 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_uri_format.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "uri": "example.com/index.html" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_isComponent_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "subject": "ent-93c75c87ab28f889", 10 | "interestedParty": "per-5faa4103dee78621" 11 | } 12 | } 13 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_recordStatus_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "recordStatus": "live", 7 | "declarationSubject": "ent-93c75c87ab28f889", 8 | "statementDate": "2017-11-18", 9 | "recordDetails": { 10 | "isComponent": false, 11 | "personType": "knownPerson" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementId_too_short.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "12345", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_dissolution_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "dissolutionDate": "2019-09-11" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_formed_by_statute.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": { 14 | } 15 | } 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "uri": "https://www.example.com/index.html" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_birth_date_year_month.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "birthDate": "1990-06" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_death_date_full.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "deathDate": "2001-06-12" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_death_date_year_month.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "deathDate": "2001-06" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /requirements_test.in: -------------------------------------------------------------------------------- 1 | -r requirements.in 2 | 3 | attrs 4 | flake8 5 | jsonschema==4.20.0 6 | mccabe 7 | pip-tools 8 | pluggy 9 | py 10 | pycodestyle 11 | pyflakes 12 | pytest 13 | six 14 | json-merge-patch 15 | jscc>=0.2.3 16 | 17 | # Libraries required for jsonschema format checking 18 | # See table at bottom of https://python-jsonschema.readthedocs.io/en/latest/validate/#validating-formats 19 | rfc3987 20 | strict-rfc3339 21 | compiletojsonschema==0.3.0 22 | rfc3339-validator 23 | rfc3986-validator 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_addresses_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | "23 Regent St, London" 15 | ] 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_dissolution_date_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "dissolutionDate": 2019 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_formed_by_statute_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": "statute 123" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_jurisdiction_missing_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "jurisdiction": { 14 | "code": "GB" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_jurisdiction_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "jurisdiction": "Ireland" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": true, 5 | "recordId": "ent-93c75c87ab28f889", 6 | "recordType": "entity", 7 | "declarationSubject": "ent-93c75c87ab28f889", 8 | "statementDate": "2017-11-18", 9 | "recordDetails": { 10 | "isComponent": false, 11 | "entityType": { 12 | "type": "registeredEntity" 13 | } 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_alternate_names_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "alternateNames": "Fermentcat Ltd" 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_dissolution_date_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "dissolutionDate": "not a date" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_politicalExposure_no_status.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": {} 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_recordId_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "ent-93c75c87ab28f889", 5 | "recordId": 93758728889, 6 | "recordType": "entity", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug-report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve the data standard 4 | title: "[BUG] - " 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Summary of the bug or issue** 11 | A clear and concise description of what the problem is. 12 | 13 | **Additional context and details** 14 | Add any other context about the problem here. 15 | 16 | **Suggested resolution** 17 | If the way to resolve the problem is not obvious, do you have a preferred solution? 18 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_birth_place_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "placeOfBirth": "Ireland" 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_politicalExposure_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": "isPep" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_taxResidencies_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "taxResidencies": "Ireland" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_recordType_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "company", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_isComponent_not_boolean.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": "false", 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_unspecified_entity_details_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "unknownEntity" 12 | }, 13 | "unspecifiedEntityDetails": false 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_declarationSubject_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": 93758728889, 5 | "recordId": "ent-93c75c87ab28f889", 6 | "recordType": "entity", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /.github/workflows/docsbuild.yml: -------------------------------------------------------------------------------- 1 | name: Docs build 2 | on: [push, pull_request] 3 | 4 | jobs: 5 | linkcheck: 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v2 9 | with: 10 | submodules: 'true' 11 | - name: Setup python 12 | uses: actions/setup-python@v2 13 | with: 14 | python-version: 3.9 15 | architecture: x64 16 | - run: pip install -r requirements.txt 17 | - run: cd ./docs/ && make dirhtml 18 | - run: cd ./docs/ && make linkcheck 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_alternate_names_not_strings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "alternateNames": [ 14 | 11 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_identifiers_not_objects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "identifiers": [ 14 | "id" 15 | ] 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_subject_invalid_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": true, 11 | "interestedParty": "ent-93c75c87ab28f88" 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementDate_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "123456789012345678901234567890123", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": 2017, 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementId_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": 123456789012345678901234567890123, 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_alternate_names.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "alternateNames": [ 14 | "Fermentcat Ltd" 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_jurisdiction_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "jurisdiction": { 14 | "name": "Ireland" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_subject.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_jurisdiction_name_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "jurisdiction": { 14 | "code": "GB", 15 | "name": 7463 16 | } 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interested_party_invalid_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f88", 11 | "interestedParty": 1 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementDate_not_date_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "123456789012345678901234567890123", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_public_listing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "hasPublicListing": false 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interested_party.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_formed_by_statute_date_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": { 14 | "date": 2019 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_formed_by_statute_name_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": { 14 | "name": 123 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_jurisdiction_code_1char.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "jurisdiction": { 14 | "code": "G", 15 | "name": "United Kingdom" 16 | } 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_unspecified_person_details_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "unknownPerson", 11 | "unspecifiedPersonDetails": "unknown" 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_formed_by_statute_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": { 14 | "date": "2019-03-04" 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_formed_by_statute_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": { 14 | "name": "statute 123" 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_is_component_true2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": true, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621" 12 | } 13 | } 14 | ] 15 | -------------------------------------------------------------------------------- /schema/codelists/personType.csv: -------------------------------------------------------------------------------- 1 | code,title,description 2 | knownPerson,Known person,"A natural person who has been identified, and information such as names, identifiers or biographical information can be provided about them." 3 | anonymousPerson,Anonymous person,"A natural person who has been identified, but identifying information is being withheld. The reason for non-disclosure should be given in the accompanying `unspecifiedPersonDetails` field." 4 | unknownPerson,Unknown person,A natural person whose identity has not been discovered or confirmed. 5 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_formed_by_statute_date_year_only.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "stateBody" 12 | }, 13 | "formedByStatute": { 14 | "date": "2019" 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_isComponent_not_boolean.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": "false", 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621" 12 | } 13 | } 14 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_addresses_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses":{ 14 | "type": "business", 15 | "address": "23 Regent St, London" 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_jurisdiction_code_3chars.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "jurisdiction": { 14 | "code": "GB-SCOTLAND", 15 | "name": "United Kingdom" 16 | } 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_identifiers_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "identifiers": [ 12 | "7700225VH" 13 | ] 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_not_objects.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | "Riyadh Byrne-Amin" 13 | ] 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_address_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "addresses": [ 14 | { 15 | "type": "registered" 16 | } 17 | ] 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_jurisdiction_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "jurisdiction": { 14 | "name": "Ireland", 15 | "code": "IE" 16 | } 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_type_registered_entity_subtype.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity", 12 | "subtype": "other", 13 | "details": "other type of entity" 14 | } 15 | } 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_declaration_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "declaration": 123, 8 | "statementDate": "2017-11-18", 9 | "recordDetails": { 10 | "isComponent": false, 11 | "entityType": { 12 | "type": "registeredEntity" 13 | } 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_address_postcode.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "addresses": [ 14 | { 15 | "postCode": "V94 V3VT" 16 | } 17 | ] 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_identifiers_scheme.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "identifiers": [ 14 | { 15 | "scheme": "IE-BAU" 16 | } 17 | ] 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_unspecified_entity_details.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "unknownEntity" 12 | }, 13 | "unspecifiedEntityDetails": { 14 | "reason": "noBeneficialOwners" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_politicalExposure_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep" 13 | } 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_address_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": 98745672435 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_public_listing_has_public_listing_not_bool.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "hasPublicListing": 12 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_politicalExposure_status_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "yes" 13 | } 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_addresses_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "nonsense", 16 | "address": "23 Regent St, London" 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_identifiers_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "identifiers": { 14 | "id": "434151", 15 | "scheme": "IE-BAU" 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_postcode_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "postCode": 98745672435 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_public_listing_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": true 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": "https://www.example.com/index.html", 9 | "recordDetails": { 10 | "isComponent": false, 11 | "entityType": { 12 | "type": "registeredEntity" 13 | } 14 | } 15 | } 16 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_statementId_too_long.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "NhQk1exCaQZIDZKOEPtouC4lyjXVhew6TCI20SiKTr7sRbftCajzpg3oXt8WnfdB3PxObVbJcaMxK11l", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | } 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/valid-statements/source.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "assertedBy": [ 10 | { 11 | "name": "Mary Walsh" 12 | } 13 | ] 14 | }, 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_identifiers_schemeName_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "identifiers": [ 14 | { 15 | "schemeName": 64732, 16 | "id": "2475625" 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | "/recordDetails/interestedParty" 8 | ], 9 | "recordId": "123", 10 | "recordType": "entity", 11 | "recordDetails": { 12 | "entityType": { 13 | "type": "unknownEntity" 14 | }, 15 | "isComponent": false 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_unspecified_person_details.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "unknownPerson", 11 | "unspecifiedPersonDetails": { 12 | "reason": "unknown" 13 | } 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_is_component_true.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": true, 10 | "componentRecords": [], 11 | "subject": "ent-93c75c87ab28f889", 12 | "interestedParty": "per-5faa4103dee78621" 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_identifiers_id.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "identifiers": [ 14 | { 15 | "id": "434151", 16 | "scheme": "IE-BAU" 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /svg-its-rules.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 9 | 10 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_identifiers_id_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "identifiers": [ 14 | { 15 | "schemeName": "Company register, Atlantis", 16 | "id": 2475625 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_identifiers_scheme_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "identifiers": [ 14 | { 15 | "schemeName": "Irish Business Authority " 16 | } 17 | ] 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_unspecified_entity_no_reason.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "unknownEntity" 12 | }, 13 | "unspecifiedEntityDetails": { 14 | "description": "no shareholders with over 10% of shares" 15 | } 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_fullName_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "fullName": 123 14 | } 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_statementPointerTarget_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": true, 9 | "motivation": "identifying" 10 | } 11 | ], 12 | "recordId": "123", 13 | "recordType": "entity", 14 | "recordDetails": { 15 | "entityType": { 16 | "type": "unknownEntity" 17 | }, 18 | "isComponent": false 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_identifiers_no_scheme_info.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "identifiers": [ 14 | { 15 | "schemeNam": "Company register, Atlantis", 16 | "id": "2475625" 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": { 12 | "type": "legal", 13 | "fullName": "Riyadh Byrne-Amin" 14 | } 15 | } 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_no_publisher.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4" 7 | }, 8 | "recordId": "ent-93c75c87ab28f889", 9 | "recordType": "entity", 10 | "declarationSubject": "ent-93c75c87ab28f889", 11 | "statementDate": "2017-11-18", 12 | "recordDetails": { 13 | "isComponent": false, 14 | "entityType": { 15 | "type": "registeredEntity" 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_component_records_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "componentRecords": "per-1234", 11 | "subject": "ent-93c75c87ab28f889", 12 | "interestedParty": "per-5faa4103dee78621" 13 | } 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_description_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "description": 2017 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_retrievedAt_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "retrievedAt": 2017 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_url.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "url": "example.com/index.html" 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_address_address.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "addresses": [ 14 | { 15 | "address": "53 Killard, Kilteragh, Dooradoyle, Co. Limerick " 16 | } 17 | ] 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_nationalities_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "nationalities": [ 12 | { 13 | "name": "Iraq" 14 | } 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_source_retrievedAt.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "retrievedAt": "2017-11-15" 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_no_entity_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2022-01-08", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_identifiers_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "identifiers": { 12 | "id": "7700225VH", 13 | "scheme": "IRL-TAXID" 14 | } 15 | } 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_type_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "type": "selfDeclaration" 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_names_full_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "fullName": "Riyadh Byrne-Amin" 14 | } 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_identifiers_scheme.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "identifiers": [ 12 | { 13 | "scheme": "IRL-TAXID" 14 | } 15 | ] 16 | } 17 | } 18 | ] 19 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_subject_unspecified_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": { 11 | "reason": "subjectExemptFromDisclosure" 12 | }, 13 | "interestedParty": "per-5faa4103dee78621" 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_source_url.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "url": "https://www.example.com/index.html" 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_unspecified_entity_description_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "unknownEntity" 12 | }, 13 | "unspecifiedEntityDetails": { 14 | "reason": "noBeneficialOwners", 15 | "description": true 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_fullName_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "patronymicName": "Sergeyevich" 14 | } 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_identifiers_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "identifiers": [ 14 | { 15 | "schemeName": "64732", 16 | "id": "2475625", 17 | "uri": "http://www.righturl.com" 18 | } 19 | ] 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_statementPointerTarget.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying" 10 | } 11 | ], 12 | "recordId": "123", 13 | "recordType": "entity", 14 | "recordDetails": { 15 | "entityType": { 16 | "type": "unknownEntity" 17 | }, 18 | "isComponent": false 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_source_retrievedAt_time.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "retrievedAt": "2017-11-15T16:30:23Z" 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_identifiers_uri_format.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "eyh3827439", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "identifiers": [ 14 | { 15 | "schemeName": "64732", 16 | "id": "2475625", 17 | "uri": "http//www.wrongurl.com" 18 | } 19 | ] 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_public_listing_has_public_listing_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "companyFilingsURLs": [ 15 | "http://www.test.com" 16 | ] 17 | } 18 | } 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_public_listing_company_filings_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "hasPublicListing": false, 15 | "companyFilingsURLs": "https://www.test.org" 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interested_party_unspecified_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f88", 11 | "interestedParty": { 12 | "reason": "interestedPartyExemptFromDisclosure" 13 | } 14 | } 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_source_description.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "description": "Official register updated annually" 10 | }, 11 | "recordDetails": { 12 | "isComponent": false, 13 | "entityType": { 14 | "type": "registeredEntity" 15 | } 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_addresses_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "person", 8 | "recordDetails": { 9 | "personType": "knownPerson", 10 | "isComponent": false, 11 | "addresses": [ 12 | { 13 | "type":"business", 14 | "address": "23 Regent St, London" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_no_publication_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "bodsVersion": "0.4", 6 | "publisher": { 7 | "name": "test" 8 | } 9 | }, 10 | "recordId": "ent-93c75c87ab28f889", 11 | "recordType": "entity", 12 | "declarationSubject": "ent-93c75c87ab28f889", 13 | "statementDate": "2017-11-18", 14 | "recordDetails": { 15 | "isComponent": false, 16 | "entityType": { 17 | "type": "registeredEntity" 18 | } 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_type_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "type": [ 10 | "self" 11 | ] 12 | }, 13 | "recordDetails": { 14 | "isComponent": false, 15 | "entityType": { 16 | "type": "registeredEntity" 17 | } 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_unspecified_entity_reason_not_codelist.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "unknownEntity" 12 | }, 13 | "unspecifiedEntityDetails": { 14 | "reason": "noBOs", 15 | "description": "no shareholders with over 10% of shares" 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_address_country_2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "addresses": [ 14 | { 15 | "country": { 16 | "name": "Ireland", 17 | "code": "IE" 18 | } 19 | } 20 | ] 21 | } 22 | } 23 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_source_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "type": [ 10 | "selfDeclaration" 11 | ] 12 | }, 13 | "recordDetails": { 14 | "isComponent": false, 15 | "entityType": { 16 | "type": "registeredEntity" 17 | } 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_public_listing_company_filings_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "hasPublicListing": false, 15 | "companyFilingsURLs": [ 16 | 11 17 | ] 18 | } 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_notype.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2022-01-08", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | } 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_addresses_birthplace.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "declarationSubject": "xyz", 6 | "recordId": "123", 7 | "recordType": "person", 8 | "recordDetails": { 9 | "personType": "knownPerson", 10 | "isComponent": false, 11 | "addresses": [ 12 | { 13 | "type":"placeOfBirth", 14 | "address": "23 Regent St, London" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_no_bods_version.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "publisher": { 7 | "name": "test" 8 | } 9 | }, 10 | "recordId": "ent-93c75c87ab28f889", 11 | "recordType": "entity", 12 | "declarationSubject": "ent-93c75c87ab28f889", 13 | "statementDate": "2017-11-18", 14 | "recordDetails": { 15 | "isComponent": false, 16 | "entityType": { 17 | "type": "registeredEntity" 18 | } 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_component_records_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "componentRecords": [ 11 | 1234 12 | ], 13 | "subject": "ent-93c75c87ab28f889", 14 | "interestedParty": "per-5faa4103dee78621" 15 | } 16 | } 17 | ] 18 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_creationDate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "creationDate": 2017 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_unspecified_entity_description.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "unknownEntity" 12 | }, 13 | "unspecifiedEntityDetails": { 14 | "reason": "noBeneficialOwners", 15 | "description": "no shareholders with over 10% of shares" 16 | } 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_identifiers_scheme_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "identifiers": [ 12 | { 13 | "schemeName": "Ireland Personal Public Service Number" 14 | } 15 | ] 16 | } 17 | } 18 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_nationalities_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "nationalities": [ 12 | { 13 | "name": "Iraq", 14 | "code": "IQ" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_taxResidencies.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "taxResidencies": [ 12 | { 13 | "name": "Ireland", 14 | "code": "IE" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_no_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": { 13 | "details": "details about interest" 14 | } 15 | } 16 | } 17 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations.statementPointerTarget_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "motivation": "identifying" 9 | } 10 | ], 11 | "recordId": "123", 12 | "recordType": "entity", 13 | "recordDetails": { 14 | "entityType": { 15 | "type": "unknownEntity" 16 | }, 17 | "isComponent": false 18 | } 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_public_listing_company_filings.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "hasPublicListing": false, 15 | "companyFilingsURLs": [ 16 | "https://www.test.org" 17 | ] 18 | } 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_creationDate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "creationDate": "2017-11-20" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_public_listing_company_filings_not_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing": { 14 | "hasPublicListing": false, 15 | "companyFilingsURLs": [ 16 | "www.test.org" 17 | ] 18 | } 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": "Irish Business Authority" 8 | }, 9 | "recordId": "ent-93c75c87ab28f889", 10 | "recordType": "entity", 11 | "declarationSubject": "ent-93c75c87ab28f889", 12 | "statementDate": "2017-11-18", 13 | "recordDetails": { 14 | "isComponent": false, 15 | "entityType": { 16 | "type": "registeredEntity" 17 | } 18 | } 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_identifiers_id.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "identifiers": [ 12 | { 13 | "id": "7700225VH", 14 | "scheme": "IRL-TAXID" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_names_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "type": "legal", 14 | "fullName": "Riyadh Byrne-Amin" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_givenName_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "givenName": 123, 14 | "fullName": "Riyadh Byrne-Amin" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_patronymic.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "patronymicName": true, 14 | "fullName": "Yuri Sergeyevich" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_type_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "type": "person", 14 | "fullName": "Riyadh Byrne-Amin" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_createdBy_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "createdBy": "Joe Harris" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_names_given_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "givenName": "Riyadh", 14 | "fullName": "Riyadh Byrne-Amin" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/publication_details_version.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "publisher": { 7 | "name": "Test Publisher" 8 | }, 9 | "bodsVersion": "0.4" 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_names_familyName_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "familyName": 123, 14 | "fullName": "Riyadh Byrne-Amin" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_assertedBy_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "assertedBy": { 10 | "name": "Mary Walsh" 11 | } 12 | }, 13 | "recordDetails": { 14 | "isComponent": false, 15 | "entityType": { 16 | "type": "registeredEntity" 17 | } 18 | } 19 | } 20 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_names_family_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "familyName": "Byrne-Amin", 14 | "fullName": "Riyadh Byrne-Amin" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_creationDate_time.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "creationDate": "2017-11-20T16:30:23Z" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /.github/workflows/test.yml: -------------------------------------------------------------------------------- 1 | name: Test 2 | on: [push, pull_request] 3 | 4 | jobs: 5 | build: 6 | runs-on: ubuntu-latest 7 | strategy: 8 | matrix: 9 | python-version: [ '3.11'] 10 | steps: 11 | - uses: actions/checkout@v2 12 | - name: Setup python 13 | uses: actions/setup-python@v2 14 | with: 15 | python-version: ${{ matrix.python-version }} 16 | architecture: x64 17 | - name: Install requirements_test.txt 18 | run: pip install -r requirements_test.txt 19 | - name: flake8 20 | run: flake8 --exclude=src --max-line-length=119 21 | - name: pytest 22 | run: pytest tests 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_date_not_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "bodsVersion": "0.4", 6 | "publisher": { 7 | "name": "Test Publisher" 8 | }, 9 | "publicationDate": "2021" 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_date_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "bodsVersion": "0.4", 6 | "publisher": { 7 | "name": "Test Publisher" 8 | }, 9 | "publicationDate": 2021 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_url_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "url": 11 9 | } 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_names_patronymic.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "names": [ 12 | { 13 | "patronymicName": "Sergeyevich", 14 | "fullName": "Yuri Sergeyevich" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/publication_details_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "bodsVersion": "0.4", 6 | "publisher": { 7 | "name": "Test Publisher" 8 | }, 9 | "publicationDate": "2021-09-11T00:00:00+00:00" 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_name_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "name": true 9 | } 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_no_name_url.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "other": "string" 9 | } 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_publisher_url_not_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "url": "test.org" 9 | } 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_version_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "publisher": { 7 | "name": "Test Publisher" 8 | }, 9 | "bodsVersion": 0.4 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/publication_details_publisher_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "name": "Irish Business Authority" 9 | } 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/publication_details_publisher_url.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "url": "https://www.test.org" 9 | } 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_version_not_version.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "publisher": { 7 | "name": "Test Publisher" 8 | }, 9 | "bodsVersion": "4.2.1" 10 | }, 11 | "recordId": "ent-93c75c87ab28f889", 12 | "recordType": "entity", 13 | "declarationSubject": "ent-93c75c87ab28f889", 14 | "statementDate": "2017-11-18", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_type_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "type": "share" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "type": "shareholding" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_createdBy.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "createdBy": { 11 | "name": "Joe Harris" 12 | } 13 | } 14 | ], 15 | "recordId": "123", 16 | "recordType": "entity", 17 | "recordDetails": { 18 | "entityType": { 19 | "type": "unknownEntity" 20 | }, 21 | "isComponent": false 22 | } 23 | } 24 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_address_country_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "53 Killard, Kilteragh, Dooradoyle, Co. Limerick ", 17 | "postCode": "V94 V3VT", 18 | "country": "IE" 19 | } 20 | ] 21 | } 22 | } 23 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_politicalExposure_details_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": { 14 | "startDate": "2016-10-15" 15 | } 16 | } 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_end_date_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "endDate": 1 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_not_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": 50 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_createdBy_name_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "createdBy": { 11 | "name": 2020 12 | } 13 | } 14 | ], 15 | "recordId": "123", 16 | "recordType": "entity", 17 | "recordDetails": { 18 | "entityType": { 19 | "type": "unknownEntity" 20 | }, 21 | "isComponent": false 22 | } 23 | } 24 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_start_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "startDate": "2019-09-11" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_details_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "details": true 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_startDate_format.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "startDate": 2019 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_addresses_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "business", 16 | "address": "23 Regent St, London", 17 | "country": { 18 | "name": "United Kingdom", 19 | "code": "GB" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_birth_place.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "placeOfBirth":{ 12 | "type": "placeOfBirth", 13 | "country": { 14 | "code":"IE", 15 | "name":"Ireland" 16 | } 17 | } 18 | 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_end_date.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "endDate": "2019-09-11" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /schema/codelists/sourceType.csv: -------------------------------------------------------------------------------- 1 | code,title,description 2 | selfDeclaration,Self declaration,"The information was provided by the person or entity referred to from `declarationSubject`, or by their authorised representative." 3 | officialRegister,Official register,The information was taken from an official register. 4 | thirdParty,Third party,"The information was provided by a third party, not directly related to the person, entity or interests described by this statement." 5 | primaryResearch,Primary research,The information was provided as a result of research into primary sources. 6 | verified,Verified,The information has been verified through the process documented in the associated description. 7 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_end_date_dateformat.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "endDate": "2019" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_component_records.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "componentRecords": [ 11 | "per-1234", 12 | "ent-5678", 13 | "rel-7890" 14 | ], 15 | "subject": "ent-93c75c87ab28f889", 16 | "interestedParty": "per-5faa4103dee78621" 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_direct_or_indirect.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "directOrIndirect": "direct" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_address_country_name_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "xyz", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "23 Regent St, London", 17 | "country": { 18 | "name": false, 19 | "code": "GB" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_license_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "name": "Test Publisher" 9 | }, 10 | "license": true 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "statementDate": "2017-11-18", 16 | "recordDetails": { 17 | "isComponent": false, 18 | "entityType": { 19 | "type": "registeredEntity" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_direct_indirect_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "directOrIndirect": "partly" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_motivation_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "note" 10 | } 11 | ], 12 | "recordId": "123", 13 | "recordType": "entity", 14 | "recordDetails": { 15 | "entityType": { 16 | "type": "unknownEntity" 17 | }, 18 | "isComponent": false 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_details.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "details": "details about interest" 15 | } 16 | ] 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_addressType_placeOfBirth.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "xyz", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "placeOfBirth", 16 | "address": "23 Regent St, London", 17 | "country": { 18 | "name": "United Kingdom", 19 | "code": "GB" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_address_country_code_1chars.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "xyz", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "23 Regent St, London", 17 | "country": { 18 | "name": "United Kingdon", 19 | "code": "G" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_address_country_code_3chars.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-11-18", 5 | "recordId": "123", 6 | "recordType": "entity", 7 | "declarationSubject": "xyz", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "23 Regent St, London", 17 | "country": { 18 | "name": "United Kingdon", 19 | "code": "GBR" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_component_records_true.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": true, 10 | "componentRecords": [ 11 | "per-1234", 12 | "ent-5678", 13 | "rel-7890" 14 | ], 15 | "subject": "ent-93c75c87ab28f889", 16 | "interestedParty": "per-5faa4103dee78621" 17 | } 18 | } 19 | ] 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_assertedBy_name_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "assertedBy": [ 10 | { 11 | "name": true 12 | } 13 | ] 14 | }, 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/publication_details_publisher_name_url.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "name": "test", 9 | "url": "https://www.test.org" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "statementDate": "2017-11-18", 16 | "recordDetails": { 17 | "isComponent": false, 18 | "entityType": { 19 | "type": "registeredEntity" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_details_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-01-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "stateBody", 19 | "details": 12 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_url_linking_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "linking" 10 | } 11 | ], 12 | "recordId": "123", 13 | "recordType": "entity", 14 | "recordDetails": { 15 | "entityType": { 16 | "type":"unknownEntity" 17 | }, 18 | "isComponent": false 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_nomination.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2018-09-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "arrangement", 19 | "subtype": "nomination" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_trust_legal_entity.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2022-01-08", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "legalEntity", 19 | "subtype": "trust" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_type_statebody_other.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-01-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "stateBody", 19 | "subtype": "other" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_source_assertedBy_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "assertedBy": [ 10 | { 11 | "uri": "example.com/index.html" 12 | } 13 | ] 14 | }, 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_type_trust_arrangement.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2022-01-08", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "arrangement", 19 | "subtype": "trust" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_state_stateAgency.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-01-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "state", 19 | "subtype": "stateAgency" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_PepStatusDetails_reason.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "reason": true 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_addresses_no_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "person", 8 | "recordDetails": { 9 | "personType": "knownPerson", 10 | "isComponent": false, 11 | "addresses": { 12 | "type": "residence", 13 | "address": "23 Regent St, London", 14 | "country": { 15 | "name": "United Kingdom", 16 | "code": "GB" 17 | } 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "url": "example.com/index.html" 11 | }, 12 | "recordId": "123", 13 | "recordType": "entity", 14 | "recordDetails": { 15 | "entityType": { 16 | "type": "unknownEntity" 17 | }, 18 | "isComponent": false 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_government_body.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-01-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "stateBody", 19 | "subtype": "governmentDepartment" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_beneficial_ownership_or_control.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "beneficialOwnershipOrControl": true 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = BeneficialOwnershipDataStandardalpha 8 | SOURCEDIR = . 9 | BUILDDIR = _build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_address_country_no_name.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "53 Killard, Kilteragh, Dooradoyle, Co. Limerick ", 17 | "postCode": "V94 V3VT", 18 | "country": { 19 | "code": "IE" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_nomination_unknown.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2018-09-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "unknownEntity", 19 | "subtype": "nomination" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_type_details.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-01-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "stateBody", 19 | "details": "department for transport" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_PepStatusDetails_endDate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "endDate": "2020-10-15" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/publication_details_license.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "name": "Test Publisher" 9 | }, 10 | "license": "http://opendefinition.org/licenses/cc-zero" 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "statementDate": "2017-11-18", 16 | "recordDetails": { 17 | "isComponent": false, 18 | "entityType": { 19 | "type": "registeredEntity" 20 | } 21 | } 22 | } 23 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_source_assertedBy_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "source": { 9 | "assertedBy": [ 10 | { 11 | "uri": "https://www.example.com/index.html" 12 | } 13 | ] 14 | }, 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity" 19 | } 20 | } 21 | } 22 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_trust_registeredentity.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2022-01-08", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "registeredEntity", 19 | "subtype": "trust" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_PepStatusDetails_endDate_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "endDate": 2020 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_PepStatusDetails_startDate_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "startDate": 2020 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/publication_details_license_not_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "publicationDetails": { 5 | "publicationDate": "2021-09-11", 6 | "bodsVersion": "0.4", 7 | "publisher": { 8 | "name": "Test Publisher" 9 | }, 10 | "license": "opendefinition.org/licenses/cc-zero" 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "statementDate": "2017-11-18", 16 | "recordDetails": { 17 | "isComponent": false, 18 | "entityType": { 19 | "type": "registeredEntity" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_beneficialOwnershipOrControl_not_boolean.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "beneficialOwnershipOrControl": "true" 15 | } 16 | ] 17 | } 18 | } 19 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_motivation_missing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "url": "https://www.example.com/index.html" 10 | } 11 | ], 12 | "recordId": "123", 13 | "recordType": "entity", 14 | "recordDetails": { 15 | "entityType": { 16 | "type": "unknownEntity" 17 | }, 18 | "isComponent": false 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_address_country_no_code.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "53 Killard, Kilteragh, Dooradoyle, Co. Limerick ", 17 | "postCode": "V94 V3VT", 18 | "country": { 19 | "name": "Ireland" 20 | } 21 | } 22 | ] 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_PepStatusDetails_startDate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "startDate": "2016-10-15" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_createdBy_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "createdBy": { 11 | "name": "Joe Harris", 12 | "uri": "example.com/index.html" 13 | } 14 | } 15 | ], 16 | "recordId": "123", 17 | "recordType": "entity", 18 | "recordDetails": { 19 | "entityType": { 20 | "type": "unknownEntity" 21 | }, 22 | "isComponent": false 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_PepStatusDetails_reason.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "reason": "Member of Parliament" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_share.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exact": 50 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_PepStatusDetails_jurisdiction_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "jurisdiction": "gb" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_PepStatusDetails_source_no_object.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "source": "selfDeclaration" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_createdBy_uri.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "createdBy": { 11 | "name": "Joe Harris", 12 | "uri": "https://www.example.com/index.html" 13 | } 14 | } 15 | ], 16 | "recordId": "123", 17 | "recordType": "entity", 18 | "recordDetails": { 19 | "entityType": { 20 | "type": "unknownEntity" 21 | }, 22 | "isComponent": false 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /schema/codelists/nameType.csv: -------------------------------------------------------------------------------- 1 | code,title,description 2 | legal,Legal name,"A name that identifies the person for legal, administrative and other official purposes. A person's legal name will usually be the one that is found on official government documents." 3 | translation,Translation of name,A translation of the person's legal name in a different language. 4 | transliteration,Transliteration of name,A transliteration of the person's legal name in a different script. 5 | former,Former name,A name that the person has used in the past. 6 | alternative,Alternative name,"Another name that the person is known by. This might be an alias, a nickname or a name that the person is also known as (aka)." 7 | birth,Birth name,The legal name of the person at birth. 8 | -------------------------------------------------------------------------------- /schema/codelists/recordType.csv: -------------------------------------------------------------------------------- 1 | code,title,description,technical note 2 | person,Person,"The Record Details in this Statement contain information about a natural person at a particular point in time.",The recordDetails object should be validated using the Person Record schema. 3 | entity,Entity,"The Record Details in this Statement contain information that identifies and describes an entity at a particular point in time.",The recordDetails object should be validated using the Entity Record schema. 4 | relationship,Relationship,"The Record Details in this Statement describe the interests held by an interested party in a subject (an entity) at a particular point in time.",The recordDetails object should be validated using the Relationship Record schema. 5 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_type_governmentDepartment_arrangement.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "statementDate": "2017-01-01", 5 | "publicationDetails": { 6 | "publicationDate": "2021-09-11T00:00:00+00:00", 7 | "bodsVersion": "0.4", 8 | "publisher": { 9 | "name": "Irish Business Authority" 10 | } 11 | }, 12 | "recordId": "ent-93c75c87ab28f889", 13 | "recordType": "entity", 14 | "declarationSubject": "ent-93c75c87ab28f889", 15 | "recordDetails": { 16 | "isComponent": false, 17 | "entityType": { 18 | "type": "arrangement", 19 | "subtype": "governmentDepartment" 20 | } 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/person_PepStatusDetails_missingInfoReason_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "unknown", 13 | "details": [ 14 | { 15 | "missingInfoReason": true 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_exact_too_big.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exact": 500 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_exact_too_small.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exact": -5 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_url_format.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "url": "example.com/index.html" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_address_country.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "entity", 8 | "recordDetails": { 9 | "entityType": { 10 | "type": "registeredEntity" 11 | }, 12 | "isComponent": false, 13 | "addresses": [ 14 | { 15 | "type": "registered", 16 | "address": "53 Killard, Kilteragh, Dooradoyle, Co. Limerick ", 17 | "postCode": "V94 V3VT", 18 | "country": { 19 | "name": "Ireland", 20 | "code": "IE" 21 | } 22 | } 23 | ] 24 | } 25 | } 26 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_maximum_too_big.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "maximum": 500 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_maximum_too_small.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "maximum": -5 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_minimum_too_big.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "minimum":500 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_share_minimum_too_small.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "minimum": -5 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/person_PepStatusDetails_missingInfoReason.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "unknown", 13 | "details": [ 14 | { 15 | "missingInfoReason": "Awaiting record" 16 | } 17 | ] 18 | } 19 | } 20 | } 21 | ] -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_empty_transformed.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "correcting", 10 | "transformedContent": "" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_transformedContent.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/statementDate", 9 | "motivation": "transformation", 10 | "transformedContent": "12-31-2020" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_description_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "description": 2020 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_transformedContent_not_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/statementDate", 9 | "motivation": "transformation", 10 | "transformedContent": true 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_url.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "url": "https://www.example.com/index.html" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /.readthedocs.yml: -------------------------------------------------------------------------------- 1 | # .readthedocs.yaml 2 | # Read the Docs configuration file 3 | # See https://docs.readthedocs.io/en/stable/config-file/v2.html for details 4 | 5 | # Required 6 | version: 2 7 | 8 | # Include docson submodule 9 | submodules: 10 | include: all 11 | 12 | # Set the version of Python and other tools you might need 13 | build: 14 | os: ubuntu-22.04 15 | tools: 16 | python: "3.9" 17 | 18 | # Build documentation in the docs/ directory with Sphinx 19 | sphinx: 20 | configuration: docs/conf.py 21 | 22 | # We recommend specifying your dependencies to enable reproducible builds: 23 | # https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html 24 | python: 25 | install: 26 | - requirements: requirements.txt 27 | 28 | 29 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_url_linking.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "linking", 10 | "url": "https://www.example.com/index.html" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_listing_not_array.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": { 16 | "stockExchangeName" :"Irish stock exchange", 17 | "stockExchangeJurisdiction": "IE" 18 | } 19 | } 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_exclusive_max_negative.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exclusiveMaximum": -5 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_exclusive_max_too_big.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exclusiveMaximum": 105 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_exclusive_min_negative.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exclusiveMinimum": -5 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/relationship_interests_exclusive_min_too_big.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exclusiveMinimum": 105 16 | } 17 | } 18 | ] 19 | } 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/statement_annotations_transformedContent_wrong_motivation.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/statementDate", 9 | "motivation": "correcting", 10 | "transformedContent": "12-31-2020" 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_addresses_type.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "recordId": "123", 7 | "recordType": "person", 8 | "recordDetails": { 9 | "personType": "knownPerson", 10 | "isComponent": false, 11 | "addresses": [ 12 | { 13 | "type":"residence", 14 | "address": "23 Regent St, London", 15 | "country": { 16 | "name": "United Kingdom", 17 | "code":"GB" 18 | } 19 | } 20 | ] 21 | } 22 | } 23 | ] 24 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_listing_no_security.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "stockExchangeName" :"Irish stock exchange", 18 | "stockExchangeJurisdiction": "IE" 19 | } 20 | ] 21 | } 22 | } 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /tests/data/valid-statements/relationship_interests_share_exclusive_minmax.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "9d167324c416bbfd37fe5c1a1b2afa95", 4 | "recordId": "rel-b05e7c91e0a04e4f", 5 | "recordType": "relationship", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "subject": "ent-93c75c87ab28f889", 11 | "interestedParty": "per-5faa4103dee78621", 12 | "interests": [ 13 | { 14 | "share": { 15 | "exclusiveMinimum": 25, 16 | "exclusiveMaximum": 75 17 | } 18 | } 19 | ] 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_listing_no_stock_exchange.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": { 18 | "ticker": "FMT" 19 | }, 20 | "stockExchangeJurisdiction": "IE" 21 | } 22 | ] 23 | } 24 | } 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_listing_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": "FMT", 18 | "stockExchangeName" :"Irish stock exchange", 19 | "stockExchangeJurisdiction": "IE" 20 | } 21 | ] 22 | } 23 | } 24 | } 25 | ] 26 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_listing_no_jurisdiction.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": { 18 | "ticker": "FMT" 19 | }, 20 | "stockExchangeName" :"Irish stock exchange" 21 | } 22 | ] 23 | } 24 | } 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest a feature for the data standard 4 | title: "[Feature request]" 5 | labels: feature request 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. For example: I'm always frustrated when [...] 12 | 13 | **Are there any obvious dependencies or challenges that would be encountered when developing this feature?** 14 | Highlight links to other, related areas of the data standard or to difficulties around handling beneficial ownership information. 15 | 16 | **What publishers and users of beneficial ownership data would be benefited by adding this feature?** 17 | 18 | **Additional context** 19 | Add any other context or screenshots about the feature request here. 20 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_stock_name_string.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": { 18 | "ticker": "FMT" 19 | }, 20 | "stockExchangeName" :true, 21 | "stockExchangeJurisdiction": "IE" 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /tests/data/valid-statements/statement_annotations_description.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "declarationSubject": "xyz", 5 | "statementDate": "2017-11-18", 6 | "annotations": [ 7 | { 8 | "statementPointerTarget": "/recordDetails/interestedParty", 9 | "motivation": "identifying", 10 | "description": "The interested party is a British MP and, at the time this statement was made, the Secretary of State for Health and Social Care." 11 | } 12 | ], 13 | "recordId": "123", 14 | "recordType": "entity", 15 | "recordDetails": { 16 | "entityType": { 17 | "type": "unknownEntity" 18 | }, 19 | "isComponent": false 20 | } 21 | } 22 | ] 23 | -------------------------------------------------------------------------------- /tests/data/valid-statements/entity_security_listing.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": { 18 | "ticker": "FMT" 19 | }, 20 | "stockExchangeName" :"Irish stock exchange", 21 | "stockExchangeJurisdiction": "IE" 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_ticker_number.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": { 18 | "ticker": 12 19 | }, 20 | "stockExchangeName" :"Irish stock exchange", 21 | "stockExchangeJurisdiction": "IE" 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /tests/data/valid-statements/person_PepStatusDetails_source.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "733b20a572f8b306b538344c7946c9cb", 4 | "recordId": "per-5faa4103dee78621", 5 | "recordType": "person", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "personType": "knownPerson", 11 | "politicalExposure": { 12 | "status": "isPep", 13 | "details": [ 14 | { 15 | "source": { 16 | "type": [ 17 | "selfDeclaration" 18 | ] 19 | } 20 | } 21 | ] 22 | } 23 | } 24 | } 25 | ] -------------------------------------------------------------------------------- /tests/data/invalid-statements/entity_security_listing_no_ticker.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "statementId": "2f7bf9370f1254068e5e946df067d07d", 4 | "recordId": "ent-93c75c87ab28f889", 5 | "recordType": "entity", 6 | "declarationSubject": "ent-93c75c87ab28f889", 7 | "statementDate": "2017-11-18", 8 | "recordDetails": { 9 | "isComponent": false, 10 | "entityType": { 11 | "type": "registeredEntity" 12 | }, 13 | "publicListing":{ 14 | "hasPublicListing" : true, 15 | "securitiesListings": [ 16 | { 17 | "security": { 18 | "name": "FMT" 19 | }, 20 | "stockExchangeName" :"Irish stock exchange", 21 | "stockExchangeJurisdiction": "IE" 22 | } 23 | ] 24 | } 25 | } 26 | } 27 | ] 28 | --------------------------------------------------------------------------------