<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: OpenRegistry</title>
    <description>The latest articles on DEV Community by OpenRegistry (@openregistry).</description>
    <link>https://dev.to/openregistry</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887433%2F5bf952c8-814a-4f0d-be42-3667f94e9592.png</url>
      <title>DEV Community: OpenRegistry</title>
      <link>https://dev.to/openregistry</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/openregistry"/>
    <language>en</language>
    <item>
      <title>India's MCA feed still carries the Y2K date bug</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Fri, 17 Jul 2026 15:01:13 +0000</pubDate>
      <link>https://dev.to/openregistry/indias-mca-feed-still-carries-the-y2k-date-bug-2h03</link>
      <guid>https://dev.to/openregistry/indias-mca-feed-still-carries-the-y2k-date-bug-2h03</guid>
      <description>&lt;p&gt;Two-digit incorporation years still turn up in parts of the MCA bulk feeds. Last month I hit a CIN record where an upstream parser treated &lt;code&gt;01-01-00&lt;/code&gt; as 1900 during a sanctions-linked subsidiary trace. Small bug. Big consequences. One bad date can push a company earlier than the existence of its own parent when you are rebuilding ownership timelines across four jurisdictions.&lt;/p&gt;

&lt;p&gt;India’s Ministry of Corporate Affairs exposes company data through MCA services and downstream data.gov.in datasets, though the structure swings wildly between sources. Some records arrive properly typed. Others still carry formatting decisions inherited from filing systems built long before anybody expected API consumers to parse them automatically. You can pull useful registry intelligence out of the data, though it helps to treat filings as statutory records rather than reference data cleaned for analysts.&lt;/p&gt;

&lt;p&gt;OpenRegistry does not currently serve the &lt;code&gt;IN&lt;/code&gt; jurisdiction. The live matrix marks India as inactive, so there is no MCP passthrough for MCA queries right now. Registry behaviour shifts often around filing access, session handling, or CAPTCHA enforcement. Better to mark coverage offline than pretend an old integration still works.&lt;/p&gt;

&lt;p&gt;The structure still matters because Indian entities show up constantly in cross-border reporting chains. Offshore structures involving Mauritius, Cayman, Singapore, or Dubai often terminate in an Indian operating company. During one ownership reconstruction tied to procurement records, I ended up matching DIN numbers against director names from leaked spreadsheets because the register itself handled transliteration inconsistently across filings.&lt;/p&gt;

&lt;p&gt;The identifiers are fairly readable once you know the layout. The Corporate Identity Number, or CIN, encodes listing status, industry classification, state registration, incorporation year, plus registrar office. Director records use DIN identifiers. LLP entities carry LLPIN values instead.&lt;/p&gt;

&lt;p&gt;When MCA responses are available programmatically, the payloads usually expose fields like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;cin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company_status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;date_of_incorporation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registered_office_address&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;authorised_capital&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;paid_up_capital&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;director_din&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;director_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;filing_date&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Normalisation causes most of the pain. Addresses arrive as free-text blocks with inconsistent state abbreviations. Historical filings contain OCR artefacts. Director names drift between annual returns through spacing changes or shifting initials. Exact string matching falls apart quickly if you are tracing politically exposed persons or procurement beneficiaries.&lt;/p&gt;

&lt;p&gt;Public access and paid retrieval are split awkwardly as well. Basic company profiles are accessible through MCA-facing services. Full filings follow another route entirely. Annual returns, balance sheets, charge documents, incorporation PDFs: many sit behind fee workflows or session-bound requests that break automated collection.&lt;/p&gt;

&lt;p&gt;India also handles beneficial ownership differently from some European registers that briefly exposed broader public UBO access before the CJEU C-601/20 ruling shifted the position across the EU. Significant beneficial ownership obligations exist under Indian company law, though public machine-readable access remains narrow.&lt;/p&gt;

&lt;p&gt;The filings still matter because they create timelines that can be checked later. Director appointments, registered office changes, strike-off notices, charge creation dates: each becomes an anchor point during reporting work. Newsrooms working from leaked datasets usually care less about whether a register feels modern and more about whether another team can reproduce the same trail six months later.&lt;/p&gt;

&lt;p&gt;If India coverage returns inside OpenRegistry, the MCP flow would probably begin with a company search:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Adani Enterprises"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, a profile pull against the CIN returned from search:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"L51100GJ1988PLC010856"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For reporting work, the next step is usually filing enumeration rather than stopping at the profile layer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IN"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"L51100GJ1988PLC010856"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Chronology matters here. Charge satisfaction records can expose lender relationships that never appear in company websites or investor material. Director resignations often line up with enforcement actions or media scrutiny. Some entities look dormant until you inspect annual returns directly and notice the same address reused repeatedly across related companies.&lt;/p&gt;

&lt;p&gt;Language handling creates another awkward corner case. MCA records are mostly English-language, though supporting documents can include transliterated names from Hindi or regional languages. Matching against court filings, customs data, or leaked procurement spreadsheets gets fuzzy fast. I have seen the same surname rendered three different ways across registry extracts tied back to a single DIN.&lt;/p&gt;

&lt;p&gt;Compared with the legacy paid databases, direct registry access gives you provenance. You can cite the statutory filing itself rather than relying on a reshaped ownership graph. Aggregators often flatten Indian entities into simplified structures while discarding registrar metadata that later matters during fact-checking or libel review.&lt;/p&gt;

&lt;p&gt;India also sits in an uncomfortable middle ground for compliance engineering. The register is broad enough to support KYB work, though not clean enough to trust without review. Edge cases keep surfacing: struck-off restorations, duplicated director names, recycled addresses, historical filing corrections that overwrite earlier assumptions.&lt;/p&gt;

&lt;p&gt;OpenRegistry currently serves 30 active jurisdictions including GB, KY, RU, HK, and IT. India remains inactive in the live matrix today. When &lt;code&gt;IN&lt;/code&gt; returns, the MCP endpoint will expose upstream MCA fields directly instead of reinterpreting them. Current jurisdiction availability is listed at openregistry.sophymarine.com/mcp&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>legaltech</category>
    </item>
    <item>
      <title>Indonesia UBO checks after the AML clampdown</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Thu, 16 Jul 2026 15:01:23 +0000</pubDate>
      <link>https://dev.to/openregistry/indonesia-ubo-checks-after-the-aml-clampdown-4pd0</link>
      <guid>https://dev.to/openregistry/indonesia-ubo-checks-after-the-aml-clampdown-4pd0</guid>
      <description>&lt;p&gt;Two Indonesian shareholders with the same name appeared in one acquisition structure. The legacy paid database collapsed them into a single beneficial owner because both addresses had been cut down to district level. AHU filings showed different NIK-linked records and different appointment dates. The control analysis for a Singapore-linked vehicle changed after that.&lt;/p&gt;

&lt;p&gt;Indonesia’s Ministry of Law and Human Rights operates the AHU system for company administration, including PT Perorangan records and parts of the beneficial ownership disclosure process. During diligence, the interesting detail is rarely the headline company status. Filing cadence matters more. Officer rotations matter too, especially when shareholder declarations stop matching the offshore structure wrapped around them.&lt;/p&gt;

&lt;p&gt;Older filings are where things usually get awkward. Indonesian entities often appear under several transliterations, particularly where nominee arrangements exist or historic spelling changes carried forward into later paperwork. One director can surface under slightly different names across separate filings. Aggregators tend to flatten those distinctions. Sometimes that is exactly the detail you needed before signing.&lt;/p&gt;

&lt;p&gt;The raw fields worth checking first are usually:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;company_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registration_number&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;entity_type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company_status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;date_of_establishment&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;share_capital&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jurisdiction_data.pengurus&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jurisdiction_data.pemegang_saham&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jurisdiction_data.pemilik_manfaat&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;pengurus&lt;/code&gt; usually contains directors and commissioners. &lt;code&gt;pemegang_saham&lt;/code&gt; stores shareholder declarations where available. &lt;code&gt;pemilik_manfaat&lt;/code&gt; maps to beneficial ownership disclosures under Indonesia’s AML regime.&lt;/p&gt;

&lt;p&gt;Those structures matter because Indonesian corporate control is often layered through nominee holdings or Singapore family office vehicles. A cleaned entity summary can bury filing-order inconsistencies that point to a recent restructuring.&lt;/p&gt;

&lt;p&gt;One Jakarta manufacturing target looked stable in the subscription databases last year. The AHU filing sequence showed three commissioner changes inside four months, followed by a capital amendment shortly before debt refinancing. That raised immediate questions around lender consent and side agreements. Nothing had been concealed. The aggregator copy was stale.&lt;/p&gt;

&lt;p&gt;PT Perorangan entities add another wrinkle. Some records are sparse compared with larger PT structures, and historical depth varies depending on formation date or filing path. Older entities can have uneven metadata coverage. It happens.&lt;/p&gt;

&lt;p&gt;Public data also has limits.&lt;/p&gt;

&lt;p&gt;Indonesia does not expose every ownership layer required for a full UBO reconstruction, especially when offshore entities sit above the local operating company. Some AML-sensitive material stays gated or absent from public retrieval flows. OpenRegistry does not bypass those restrictions. It also does not infer missing ownership chains from partial filings.&lt;/p&gt;

&lt;p&gt;Document handling can slow diligence down. Certain filings appear only as references or metadata pointers rather than machine-readable documents. If you are tracing a director replacement during exclusivity, local counsel may still need to pull notarised paperwork directly.&lt;/p&gt;

&lt;p&gt;OpenRegistry does not currently serve Indonesia in the public MCP matrix. &lt;code&gt;ID&lt;/code&gt; returns &lt;code&gt;active: false&lt;/code&gt; from &lt;code&gt;list_jurisdictions&lt;/code&gt;. Pipelines should check jurisdiction availability at runtime instead of assuming static coverage.&lt;/p&gt;

&lt;p&gt;A typical capability check looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_jurisdictions"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ID"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If Indonesia becomes active again, the MCP flow follows the same pattern used for Companies House or KVK lookups through OpenRegistry.&lt;/p&gt;

&lt;p&gt;Searching for an entity:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"PT Alam Sutera Realty Tbk"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Pulling the company profile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"example-registration-number"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Officer retrieval during diligence would usually look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_officers"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"example-registration-number"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Shareholder retrieval follows the same structure:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_shareholders"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"ID"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"example-registration-number"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Where beneficial ownership data is legally exposed through the registry flow, &lt;code&gt;get_persons_with_significant_control&lt;/code&gt; returns the upstream fields directly. There is no confidence-scored ownership graph layered on top.&lt;/p&gt;

&lt;p&gt;That distinction matters in M&amp;amp;A work. An AI layer should not decide that two similarly named directors are the same person because their birth years roughly line up. You need the raw payloads, filing timestamps, and source-specific identifiers. Otherwise small mismatches disappear into a merged profile.&lt;/p&gt;

&lt;p&gt;Indonesia is also one of the places where chronology matters more than polished summaries. Capital amendments, commissioner rotations, and shareholder declarations can move quickly around financing events. A six-month lag from an aggregator crawl is enough to miss a control shift.&lt;/p&gt;

&lt;p&gt;Cross-border structures add another complication. Indonesian operating companies are often paired with Singapore holding entities, Hong Kong intermediaries, or Cayman financing vehicles. OpenRegistry currently serves HK and KY in the live matrix, which makes side-by-side registry verification useful when tracing outbound ownership chains. Naming inconsistencies still need manual review.&lt;/p&gt;

&lt;p&gt;For compliance engineering, the useful pattern is direct registry retrieval with minimal interpretation. Pull the upstream fields. Preserve filing timestamps. Compare appointments across jurisdictions, then decide where human review is required.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes live company registry access over MCP without intermediary parsing layers. Jurisdiction availability changes over time, so production systems should always query the runtime matrix first: &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>compliance</category>
    </item>
    <item>
      <title>Malaysia SSM e-Info: live KYB checks without aggregator lag</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Wed, 15 Jul 2026 15:01:17 +0000</pubDate>
      <link>https://dev.to/openregistry/malaysia-ssm-e-info-live-kyb-checks-without-aggregator-lag-5e62</link>
      <guid>https://dev.to/openregistry/malaysia-ssm-e-info-live-kyb-checks-without-aggregator-lag-5e62</guid>
      <description>&lt;h1&gt;
  
  
  SSM company records change faster than most KYB pipelines
&lt;/h1&gt;

&lt;p&gt;Malaysia’s SSM e-Info register updates quickly enough that stale commercial datasets stand out during onboarding reviews. We hit this with a merchant whose registered address had already changed in SSM while a paid database still carried the previous location weeks later.&lt;/p&gt;

&lt;p&gt;That gap causes trouble in ASEAN onboarding work. Malaysian entities often appear inside ownership chains linked to Singapore, Hong Kong, or Cayman structures. When audit reviews the file later, “the vendor had not refreshed yet” does not carry much weight if the register-of-record already showed different information.&lt;/p&gt;

&lt;p&gt;OpenRegistry connects directly to SSM e-Info through MCP and returns the upstream fields live. We do not reshape the register response into an internal schema before returning it. Your workflow or assistant consumes the payload as SSM supplied it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What SSM e-Info actually returns
&lt;/h2&gt;

&lt;p&gt;The useful part of Malaysian register data is rarely the company name by itself. Status changes matter. Officer appointments matter. Filing history usually matters more than branding details during KYB review.&lt;/p&gt;

&lt;p&gt;A standard &lt;code&gt;get_company_profile&lt;/code&gt; call returns fields such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;company_number&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company_status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;incorporation_date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registered_address&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;entity_type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jurisdiction_data&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;jurisdiction_data&lt;/code&gt; preserves SSM wording and values exactly as supplied upstream. Audit teams tend to care about this because evidence packs can cite the original register language instead of a vendor interpretation layered over the top.&lt;/p&gt;

&lt;p&gt;Officer records become useful once ownership checks or sanctions review starts. &lt;code&gt;get_officers&lt;/code&gt; returns director names, appointment dates, resignation dates where available, plus officer roles supplied by SSM.&lt;/p&gt;

&lt;p&gt;Filing data is where Malaysian KYB work stops being cosmetic. &lt;code&gt;list_filings&lt;/code&gt; exposes filing names, filing dates, document references, and availability metadata. For higher-risk counterparties, recent filing activity can matter more than the entity’s mere existence. A dormant shell with no current filings usually triggers another look.&lt;/p&gt;

&lt;p&gt;Entity names create their own mess. Malaysian companies frequently include punctuation, abbreviations, or legal suffix variations that break simple fuzzy matching logic. Direct register lookup cuts down false positives because you are querying the current source rather than consuming pre-normalised exports.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you will not get from SSM
&lt;/h2&gt;

&lt;p&gt;SSM is a company register. It is not a sanctions source or beneficial ownership service.&lt;/p&gt;

&lt;p&gt;OpenRegistry does not return sanctions screening, PEP data, or credit scoring because those datasets do not exist in the upstream register. You still need a separate sanctions process against OFAC, UK, EU, or local lists.&lt;/p&gt;

&lt;p&gt;Beneficial ownership visibility also varies by jurisdiction. Malaysia does not expose unrestricted UBO access in the same way some compliance teams became accustomed to under earlier European AML workflows. Access rules differ by country. Legal regimes differ too.&lt;/p&gt;

&lt;p&gt;That distinction matters more now because broad public UBO access has narrowed across several jurisdictions following decisions such as CJEU C-601/20. Compliance systems need to separate register checks from ownership analysis and sanctions review rather than treating them as one combined lookup.&lt;/p&gt;

&lt;p&gt;Document availability can also be uneven. Some filings expose metadata without exposing downloadable source documents through the public interface. Workflows should expect partial retrieval. Plenty do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying Malaysia through OpenRegistry MCP
&lt;/h2&gt;

&lt;p&gt;The Malaysia endpoint is active in the current OpenRegistry jurisdiction matrix.&lt;/p&gt;

&lt;p&gt;Most onboarding flows start with a direct company search:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Grab Holdings"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That returns candidate entities from SSM with the original register identifiers preserved.&lt;/p&gt;

&lt;p&gt;Once you have the company number, pull the profile directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"980177-W"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Enhanced due diligence usually continues with officer and filing retrieval:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_officers"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"980177-W"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MY"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"980177-W"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;OpenRegistry does not maintain historical snapshots of Malaysian register data. Every request hits the live upstream source. For onboarding controls, we generally prefer that tradeoff because decisions reference the current register state rather than a cached export from several weeks earlier.&lt;/p&gt;

&lt;p&gt;The operational effect is straightforward. If SSM updates an officer appointment today, the next query sees the revised record immediately. No downstream refresh cycle exists in the middle.&lt;/p&gt;

&lt;h2&gt;
  
  
  Audit evidence and regulator expectations
&lt;/h2&gt;

&lt;p&gt;During KYB reviews, internal audit teams increasingly ask the same thing: what was the source-of-record when the onboarding decision was made?&lt;/p&gt;

&lt;p&gt;Commercial database exports often struggle here because they cannot prove the exact upstream register state at decision time. We moved several onboarding checks back to direct register retrieval after running into that issue repeatedly.&lt;/p&gt;

&lt;p&gt;Malaysia is a good example because cross-border merchant structures often span several registers at once. One review may involve an SSM operating entity, a Hong Kong holding company, plus a Cayman parent vehicle.&lt;/p&gt;

&lt;p&gt;OpenRegistry currently covers MY alongside jurisdictions including HK, KY, GB, NL, and NZ through the same MCP interface. Teams can keep jurisdiction-specific review logic while standardising transport and authentication across registers.&lt;/p&gt;

&lt;p&gt;That removes a common engineering problem inside compliance systems. Registry integrations often turn into brittle scrapers with inconsistent authentication flows and uneven refresh cycles.&lt;/p&gt;

&lt;p&gt;For higher-risk onboarding queues, we still pair register retrieval with sanctions resolution and manual document review. Register data alone is not sufficient for AML controls. Direct SSM access does improve traceability because investigators can point to the register response itself rather than a transformed intermediary record.&lt;/p&gt;

&lt;p&gt;OpenRegistry’s Malaysia endpoint is available at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>compliance</category>
    </item>
    <item>
      <title>Hong Kong Companies Registry: live filings without cache lag</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Tue, 14 Jul 2026 15:01:13 +0000</pubDate>
      <link>https://dev.to/openregistry/hong-kong-companies-registry-live-filings-without-cache-lag-2a26</link>
      <guid>https://dev.to/openregistry/hong-kong-companies-registry-live-filings-without-cache-lag-2a26</guid>
      <description>&lt;p&gt;Hong Kong company numbers survive renames. During IPO diligence, that identifier is often more dependable than the trading-name history copied across bank files and legacy paid databases.&lt;/p&gt;

&lt;p&gt;The Hong Kong Companies Registry (公司註冊處) exposes enough structured data to trace entities across borders without spending afternoons walking PDFs by hand. We kept hitting this in Cayman-HK-China structures where the Hong Kong company became the only stable anchor across financing rounds, director reshuffles, and offshore reorganisations.&lt;/p&gt;

&lt;p&gt;OpenRegistry connects to the live register through MCP. Registry-specific fields remain inside &lt;code&gt;jurisdiction_data&lt;/code&gt;, which means the response still carries upstream values instead of flattening everything into one normalised schema.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Hong Kong register returns
&lt;/h2&gt;

&lt;p&gt;A standard Hong Kong company profile usually contains the company number, current legal name, previous names, incorporation date, entity status, registered office, directors, company secretary details, plus filing metadata.&lt;/p&gt;

&lt;p&gt;The bilingual name fields end up mattering more than expected. Some entities appear under slightly different English transliterations across loan agreements or exchange filings. The Chinese name tends to stay stable. Matching on company number sidesteps most of the confusion.&lt;/p&gt;

&lt;p&gt;Filing history matters more.&lt;/p&gt;

&lt;p&gt;Director appointments, cessations, share allotments, and office-address changes often land quickly in the register. We have seen debt issuance reviews stall because a director rotation appeared less than two weeks before signing.&lt;/p&gt;

&lt;p&gt;The MCP calls are simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Pacific Century"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That returns the registry number used for the profile lookup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1234567"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Most finance teams then jump straight into filing history:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1234567"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Freshness is the part that matters here. OpenRegistry does not run nightly sync jobs or serve delayed mirrors. Each request goes upstream live.&lt;/p&gt;

&lt;h2&gt;
  
  
  PSC access after the 2018 changes
&lt;/h2&gt;

&lt;p&gt;Hong Kong introduced the Significant Controllers Register regime in 2018 through amendments to the Companies Ordinance. At a distance it resembles UK PSC reporting, though the access model is tighter.&lt;/p&gt;

&lt;p&gt;You should not expect full public retrieval of beneficial ownership records through OpenRegistry because the underlying register does not broadly expose them. The restriction comes from the source itself.&lt;/p&gt;

&lt;p&gt;That leaves holes in AML and onboarding flows. A Hong Kong filing can confirm directors, company secretaries, incorporation status, and certain control relationships. It usually cannot complete the entire UBO chain when Cayman or BVI entities sit above the operating company.&lt;/p&gt;

&lt;p&gt;The same pattern now shows up across several jurisdictions that tightened public-register access after privacy rulings and AML-related restrictions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filing quirks that appear during diligence
&lt;/h2&gt;

&lt;p&gt;The bilingual naming issue catches teams constantly. A Traditional Chinese company name may map to several English transliterations depending on the filing year or whichever intermediary prepared the documents. Bank records are rarely consistent.&lt;/p&gt;

&lt;p&gt;Offshore layering creates another headache. Many Hong Kong entities sit between a Cayman holding structure and mainland operating companies. The register can verify the Hong Kong legal entity cleanly. It does not rebuild the broader ownership chain for you.&lt;/p&gt;

&lt;p&gt;Timing matters too.&lt;/p&gt;

&lt;p&gt;Metadata for a filing can appear before the underlying document becomes accessible. Some records stay metadata-only. Others require additional access conditions before retrieval works.&lt;/p&gt;

&lt;p&gt;When a document is available, you can fetch it directly from the filing identifier:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fetch_document"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"HK"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"document_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"abcd1234"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Coverage varies by filing type. Certain records expose only filing references with timestamps attached.&lt;/p&gt;

&lt;h2&gt;
  
  
  Using multiple registries in one workflow
&lt;/h2&gt;

&lt;p&gt;Cross-border diligence rarely ends in Hong Kong. A typical review might begin with a Cayman exempted company, move through Hong Kong subsidiaries, then finish at a UK financing vehicle tied to the same group.&lt;/p&gt;

&lt;p&gt;OpenRegistry currently covers 27 jurisdictions. The useful part is not normalisation by itself. It is having one MCP interface that moves between registers without maintaining separate scraper logic for every source system.&lt;/p&gt;

&lt;p&gt;For lender onboarding or IPO preparation, reproducibility matters more than convenience. Teams need the actual register entry that supported a director check or entity verification step.&lt;/p&gt;

&lt;p&gt;Keeping upstream fields intact helps there. If the Hong Kong register returns a bilingual address variant or filing code exactly as submitted, the audit trail remains visible instead of disappearing behind vendor-side enrichment.&lt;/p&gt;

&lt;p&gt;There is a trade-off. OpenRegistry does not infer ownership structures or generate corporate family trees automatically. You still need to interpret the registry data yourself.&lt;/p&gt;

&lt;p&gt;You can connect an MCP client directly to the Hong Kong register through OpenRegistry at openregistry.sophymarine.com/mcp&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>compliance</category>
    </item>
    <item>
      <title>Mexico’s PSM registry after CTA: what filings still matter</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Mon, 13 Jul 2026 15:01:39 +0000</pubDate>
      <link>https://dev.to/openregistry/mexicos-psm-registry-after-cta-what-filings-still-matter-28h5</link>
      <guid>https://dev.to/openregistry/mexicos-psm-registry-after-cta-what-filings-still-matter-28h5</guid>
      <description>&lt;p&gt;Mexico’s Public Registry of Commerce still runs through state-level implementation. Look up the same company twice and historical coverage can shift depending on which Registro Público de Comercio office actually digitised its books.&lt;/p&gt;

&lt;p&gt;That causes friction in cross-border diligence work. Mexican entities turn up constantly in North American ownership structures, though plenty of compliance teams still rely on stale aggregator exports instead of checking Secretaría de Economía source records.&lt;/p&gt;

&lt;p&gt;The distinction that matters for legal and AML analysis sits between what the PSM exposes under commercial registration law and what lives elsewhere under tax, banking, or beneficial-ownership regimes. Mexico does not maintain a public UBO register comparable to the EU access model that existed before C-601/20. If you are testing ownership under OFAC’s 50% rule or UK sanctions guidance, the Registro Público de Comercio rarely settles the question by itself.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes the Mexican register through MCP, which means queries run against the registry flow directly. No browser automation needed. The MX jurisdiction is active on the server.&lt;/p&gt;

&lt;p&gt;A typical &lt;code&gt;search_companies&lt;/code&gt; request looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"GRUPO BIMBO"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For existence checks, merger history, or authority review, &lt;code&gt;get_company_profile&lt;/code&gt; tends to matter more:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"N-2023045678"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Response structure changes depending on the upstream office, though several fields appear regularly under &lt;code&gt;jurisdiction_data&lt;/code&gt;. You will usually see &lt;code&gt;razon_social&lt;/code&gt;, &lt;code&gt;folio_mercantil&lt;/code&gt;, &lt;code&gt;estado&lt;/code&gt;, &lt;code&gt;fecha_constitucion&lt;/code&gt;, &lt;code&gt;capital_social&lt;/code&gt;, &lt;code&gt;objeto_social&lt;/code&gt;. &lt;code&gt;administradores&lt;/code&gt; appears often too.&lt;/p&gt;

&lt;p&gt;That last field gets misread all the time. Appointment as administrador único or board member establishes registered authority. It does not establish beneficial ownership under FATF-style control analysis. In deposition work and transactional disputes, that distinction carries weight.&lt;/p&gt;

&lt;p&gt;Mexican filings also come with quirks around notarial intervention. Constitutive acts and amendments are commonly tied to protocolo numbers and notary references rather than the tidier filing identifiers seen in UK or Nordic registers. When tracing authority through mergers or capital increases, preserving the original notarial metadata matters.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;list_filings&lt;/code&gt; helps reconstruct the sequence:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"N-2023045678"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depending on the office, filing descriptions may expose constitutive deeds, merger registrations, bylaw amendments, liquidation entries. Some are sparse. Others contain surprisingly detailed references pulled from older index systems.&lt;/p&gt;

&lt;p&gt;A few filings expose both inscription dates and protocol execution dates. Those dates are not interchangeable. Under Mexican commercial practice, the execution date before the notary and the later registration date can change priority analysis.&lt;/p&gt;

&lt;p&gt;The register also does not solve beneficial-ownership diligence on its own. Mexico’s AML framework under the Ley Federal para la Prevención e Identificación de Operaciones con Recursos de Procedencia Ilícita imposes separate reporting duties for vulnerable activities, though those records are not publicly exposed through PSM queries.&lt;/p&gt;

&lt;p&gt;That limitation shows up fast when foreign counsel try mapping Mexican entities into Corporate Transparency Act workflows. FinCEN BOI reporting under 31 CFR 1010.380 is a US federal obligation. It does not create reciprocal public access to Mexican ownership records. Teams still combine registry material with shareholder registers, notarised corporate books, sometimes local counsel certifications.&lt;/p&gt;

&lt;p&gt;OpenRegistry does not infer ownership or rebuild hidden control chains. The MX integration returns upstream registry fields exposed by the source office. Nothing more.&lt;/p&gt;

&lt;p&gt;For officer review, &lt;code&gt;get_officers&lt;/code&gt; can help establish who held registered authority at a particular point in time:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"N-2023045678"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Results vary sharply by state office and filing depth. Some entities expose detailed officer names with appointment dates attached. Others expose little beyond current management references pulled from the latest inscription.&lt;/p&gt;

&lt;p&gt;Historical coverage stays uneven. Older filings sometimes survive only as scanned ledger pages or partial index entries. Some registries digitised aggressively during the 2010s. Others still expose fragmented archives with obvious gaps. If a matter depends on pre-digital amendments, expect missing pieces.&lt;/p&gt;

&lt;p&gt;Direct registry access helps more than polished aggregator summaries in those cases. For sanctions analysis or acquisition diligence, counsel often need the exact wording attached to a filing. A translated summary can miss whether a capital increase was authorised, merely proposed, or recorded subject to conditions.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;fetch_document&lt;/code&gt; retrieves source material where the registry office exposes it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"MX"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"document_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"DOC-884421"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Document availability is inconsistent. Some offices expose PDFs directly. Others return only metadata or filing references. A few still point back to manual retrieval workflows.&lt;/p&gt;

&lt;p&gt;The evidentiary distinction matters here. The Mexican commercial register establishes notice and registration status for corporate acts. It is not a complete AML transparency system. After C-601/20, many lawyers became more careful about conflating commercial registration with beneficial-ownership disclosure. Mexican registry work demands the same discipline.&lt;/p&gt;

&lt;p&gt;For KYB tooling, the useful part of the MCP model is that an assistant can query the register live during a workflow instead of relying on cached exports from the legacy paid databases. The source remains the registry office of record.&lt;/p&gt;

&lt;p&gt;OpenRegistry’s MX endpoint is available through the remote MCP server at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>mcp</category>
      <category>compliance</category>
      <category>legaltech</category>
    </item>
    <item>
      <title>Taiwan GCIS records: fields you only notice mid-investigation</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Sun, 12 Jul 2026 15:01:02 +0000</pubDate>
      <link>https://dev.to/openregistry/taiwan-gcis-records-fields-you-only-notice-mid-investigation-l6p</link>
      <guid>https://dev.to/openregistry/taiwan-gcis-records-fields-you-only-notice-mid-investigation-l6p</guid>
      <description>&lt;p&gt;Taiwan’s GCIS register will often show a company’s status history in Chinese long before English-language databases settle on one transliteration. That turns into a real problem when you are tracing a supplier linked to export controls, chip procurement, or an intermediary that has renamed itself three times in five years.&lt;/p&gt;

&lt;p&gt;GCIS has never been pleasant to work with from outside Taiwan. The records are public. Getting them cleanly is another matter. Browser flows break unexpectedly, character encoding goes sideways, and Romanisation shifts between datasets. Anyone who has matched a director from an OCCRP spreadsheet against a Taiwan filing has probably seen the same individual written three different ways: Wade-Giles once, Hanyu Pinyin elsewhere, then only the Chinese legal name in local coverage.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes live GCIS data through MCP without rewriting the upstream payloads. Small detail. Important one. The jurisdiction block stays intact instead of being flattened into a generic company card.&lt;/p&gt;

&lt;p&gt;For Taiwan entities, &lt;code&gt;get_company_profile&lt;/code&gt; will usually return fields like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;company_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;company_status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;capital_amount&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;responsible_person&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registered_address&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;approved_establishment_date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registration_authority&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;change_approved_date&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;jurisdiction_data&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;jurisdiction_data&lt;/code&gt; is usually where the interesting work starts. GCIS often carries the original Chinese-language values beside translated variants. If you are trying to determine whether “Formosa Technologies Ltd” from an offshore leak maps back to 台灣某某股份有限公司 in the statutory filing, those source-language values matter more than whatever English alias ended up circulating later.&lt;/p&gt;

&lt;p&gt;Taiwan records also separate establishment approvals from later amendment approvals. The legacy paid databases tend to compress all of this into one “incorporation date” field. You lose chronology. During procurement investigations or sanctions reporting, that missing timing can matter quite a bit.&lt;/p&gt;

&lt;p&gt;I ran into this while tracing a hardware exporter that appeared in customs data under two English names that looked unrelated at first glance. GCIS preserved the amendment timeline and registration authority metadata clearly enough to line the entity history up against shipping manifests. The registry trail held together. The aliases did not.&lt;/p&gt;

&lt;p&gt;The filings side helps too, though there are limits. &lt;code&gt;list_filings&lt;/code&gt; can surface registry events tied to an entity, but this is not a full litigation database or a beneficial ownership system. Taiwan does not publicly expose every ownership layer investigators may want to inspect.&lt;/p&gt;

&lt;p&gt;After CJEU C-601/20, many reporters got used to beneficial ownership access disappearing across parts of Europe. Taiwan sits under a different legal framework, though practical access limits still exist depending on entity type and filing surface. OpenRegistry does not bypass AML-gated systems or private shareholder registers.&lt;/p&gt;

&lt;p&gt;Historical document retrieval still has rough edges. Some GCIS material only exists as scanned originals with uneven OCR quality. If your workflow depends on machine-reading PDFs at scale, you will still need downstream parsing and cleanup passes. No way around that yet.&lt;/p&gt;

&lt;p&gt;A typical MCP search flow looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"TW"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"台積電"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Searching the native-language company name works far better than starting with English transliterations. Pull the Chinese legal name from source material first. Then branch outward into aliases, directors, and related entities.&lt;/p&gt;

&lt;p&gt;Once you have the registry number, fetch the profile directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"TW"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"22099131"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For reporting work, the flow is usually fairly direct:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Query the Chinese entity name from source documents.&lt;/li&gt;
&lt;li&gt;Pull the GCIS profile.&lt;/li&gt;
&lt;li&gt;Compare amendment dates against customs or procurement records.&lt;/li&gt;
&lt;li&gt;Cross-reference officers against Hong Kong or Cayman entities.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Taiwan becomes far more useful when paired with nearby registers. OpenRegistry currently serves TW alongside HK, KY, KR, JP, MY, NZ, AU, RU, plus several European jurisdictions. That makes it practical to follow a supply-chain entity from Taipei into a Hong Kong holding company, then onward into a Cayman registration without swapping tools halfway through an investigation.&lt;/p&gt;

&lt;p&gt;That continuity matters for reproducibility. After the Pandora Papers period, one recurring problem was that reporters could describe an ownership trail but could not reproduce the exact registry pull months later. Aggregator datasets changed quietly. Cached snapshots drifted over time. Shared-folder screenshots vanished.&lt;/p&gt;

&lt;p&gt;With GCIS queried live, another reporter can rerun the same MCP calls and inspect the upstream registry fields directly. During libel review, provenance is often more useful than an enrichment layer that rewrites or normalises source material.&lt;/p&gt;

&lt;p&gt;There are still operational annoyances. Taiwan company names sometimes contain punctuation or spacing variants that break naive matching logic. Certain filings appear in Chinese before translated metadata catches up. Historical officer changes are not always exposed in the structure investigators expect.&lt;/p&gt;

&lt;p&gt;Even with those limits, the MCP workflow is cleaner than the old mix of browser automation and manual copy-paste from registry pages. The register stays the source of record. The client decides how to interpret the data.&lt;/p&gt;

&lt;p&gt;If you are building investigative workflows around East Asian corporate records, live GCIS access is available at openregistry.sophymarine.com/mcp&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>api</category>
    </item>
    <item>
      <title>OpenDART filings in Korea: fields worth checking twice</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Sat, 11 Jul 2026 15:01:06 +0000</pubDate>
      <link>https://dev.to/openregistry/opendart-filings-in-korea-fields-worth-checking-twice-5cb5</link>
      <guid>https://dev.to/openregistry/opendart-filings-in-korea-fields-worth-checking-twice-5cb5</guid>
      <description>&lt;p&gt;South Korea’s OpenDART feed timestamps filings to the minute, and those timestamps can change a live diligence call. On a Seoul industrials target last quarter, one of the legacy paid databases still showed the previous statutory auditor hours after the replacement filing appeared in the Financial Supervisory Service feed.&lt;/p&gt;

&lt;p&gt;That lag shows up in Korea more often than many cross-border teams expect. The register leans heavily toward disclosures and behaves closer to a securities reporting system than a conventional European companies register. When you are tracking officer changes, treasury share activity, affiliate transactions, or a capital raise close to signing, the raw filings tend to move first.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes OpenDART through MCP at the registry layer. The response stays close to the upstream shape. You get source fields inside &lt;code&gt;jurisdiction_data&lt;/code&gt;, not a derived ownership graph or scoring layer built later.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Korean registry actually returns
&lt;/h2&gt;

&lt;p&gt;The first split that matters is company profile data versus disclosure history. OpenDART is strongest on filings tied to listed entities and reporting issuers.&lt;/p&gt;

&lt;p&gt;A standard &lt;code&gt;get_company_profile&lt;/code&gt; response for a Korean company can include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;corp_code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;corp_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stock_code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ceo_nm&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;adres&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;hm_url&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;est_dt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;corp_cls&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;corp_cls&lt;/code&gt; matters more than some foreign diligence teams realise. KOSPI, KOSDAQ, KONEX, plus related classifications affect filing cadence and disclosure expectations. During a carve-out review earlier this year, a subsidiary looked inactive in one vendor export because its stock number changed after a market transfer. OpenDART still linked the filing history correctly through the corporate code.&lt;/p&gt;

&lt;p&gt;The filing layer is where the register becomes genuinely useful for transaction screening. &lt;code&gt;list_filings&lt;/code&gt; can surface periodic reports, shareholder disclosures, convertible bond issuances, treasury share acquisitions, mergers, spin-offs, or related-party transactions.&lt;/p&gt;

&lt;p&gt;Upstream payloads usually include receipt timestamps, filing identifiers, amendment indicators, filer names, and report titles. Amendment flags deserve manual review. Korean issuers regularly correct disclosures after publication. Sometimes the correction materially changes debt figures or share counts.&lt;/p&gt;

&lt;p&gt;Officer data behaves differently from many European registers. &lt;code&gt;get_officers&lt;/code&gt; may expose board and executive information tied to disclosed filings rather than a continuously maintained commercial register snapshot. Dates matter during cross-border director matching. A director can vanish for one filing cycle, then reappear after a governance restructure.&lt;/p&gt;

&lt;h2&gt;
  
  
  The gaps that catch diligence teams
&lt;/h2&gt;

&lt;p&gt;OpenDART is not a beneficial ownership register in the European sense.&lt;/p&gt;

&lt;p&gt;You will not get AML-gated UBO data comparable to some historical transparency registers. Korea’s disclosure regime centres on listed-company reporting obligations, securities compliance, and material ownership disclosures.&lt;/p&gt;

&lt;p&gt;Private-company coverage is uneven too. If the target is a small unlisted manufacturing subsidiary sitting outside reporting thresholds, the disclosure surface may be thin. Korean court register extracts and local counsel still matter.&lt;/p&gt;

&lt;p&gt;Document retrieval gets messy fast. Some filings expose structured metadata with attached HTML sections. Others depend heavily on embedded documents that do not parse cleanly. Tables inside Korean-language disclosures remain awkward to extract even when the filing itself is public.&lt;/p&gt;

&lt;p&gt;That distinction matters during acquisition financing reviews. A recent debt package I checked referenced guarantees inside an attachment that several aggregator exports skipped because their parser failed on the embedded section layout.&lt;/p&gt;

&lt;p&gt;OpenRegistry does not reinterpret those attachments. It returns the registry material as supplied upstream.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying OpenDART through MCP
&lt;/h2&gt;

&lt;p&gt;The workflow is usually search first, then pivot into filings.&lt;/p&gt;

&lt;p&gt;A basic company lookup:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"KR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Samsung Electronics"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you have the identifier, pull the profile directly:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"KR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"005930"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For live diligence work, filings are often more useful than the static profile.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"KR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"005930"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a filing references a material transaction, governance event, or amendment, retrieve the underlying document:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fetch_document"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"KR"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"document_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"RCP20260318001234"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;One practical point for automation teams: keep the original Korean text somewhere in the pipeline. Translating too early tends to flatten legal distinctions inside securities disclosures and board resolutions. I have seen machine translation collapse standing auditor and outside director roles into the same English label.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filing cadence during cross-border deals
&lt;/h2&gt;

&lt;p&gt;Korean targets often sit inside broader Asia-Pacific supply chains with holding entities elsewhere. During diligence on a battery-sector supplier, the Japanese parent looked operationally quiet in outside datasets. OpenDART filings on the Korean subsidiary showed recent capital activity plus a related-party transaction that had not yet propagated through vendor feeds.&lt;/p&gt;

&lt;p&gt;That timing gap affects valuation work. It also affects sanctions reviews when ownership percentages or affiliate guarantees move shortly before close.&lt;/p&gt;

&lt;p&gt;For M&amp;amp;A teams, the practical pattern is not replacing existing datasets outright. We still keep subscription products for modelling layers and broad screening. Registry-direct access is where you verify filing chronology, disclosure corrections, or officer changes against the upstream source.&lt;/p&gt;

&lt;p&gt;OpenRegistry currently serves 27 jurisdictions including KR, GB, IT, JP, NL, and RU through a single MCP endpoint. Runtime coverage differs by registry. The live jurisdiction matrix and MCP documentation are at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>legaltech</category>
    </item>
    <item>
      <title>ARES company data: fields KYB teams actually use</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Fri, 10 Jul 2026 15:01:13 +0000</pubDate>
      <link>https://dev.to/openregistry/ares-company-data-fields-kyb-teams-actually-use-4mdn</link>
      <guid>https://dev.to/openregistry/ares-company-data-fields-kyb-teams-actually-use-4mdn</guid>
      <description>&lt;h1&gt;
  
  
  ARES exposes more cross-register detail than most teams realise
&lt;/h1&gt;

&lt;p&gt;A Czech company lookup can return Commercial Register data, Trade Register data and VAT references in the same response. Teams often notice the overlap only after two upstream records drift out of sync for a few hours following a filing.&lt;/p&gt;

&lt;p&gt;ARES is run by the Czech Ministry of Finance. It fronts several public registers instead of acting as one canonical database in the style of Companies House in Great Britain. That changes onboarding logic.&lt;/p&gt;

&lt;p&gt;We use ARES as the registry-of-record source during Czech incorporation reviews, then compare discrepancies against filing timestamps and source references. OpenRegistry keeps the upstream &lt;code&gt;jurisdiction_data&lt;/code&gt; payload intact rather than flattening everything into a simplified schema. Audit teams care about that distinction later.&lt;/p&gt;

&lt;h2&gt;
  
  
  The fields that usually matter during onboarding
&lt;/h2&gt;

&lt;p&gt;A standard &lt;code&gt;get_company_profile&lt;/code&gt; call for a Czech entity can return:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;ico&lt;/code&gt; as the Czech company identifier&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;obchodniJmeno&lt;/code&gt; for the registered business name&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pravniForma&lt;/code&gt; describing the legal form&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sidlo&lt;/code&gt; for the registered address&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;datumVzniku&lt;/code&gt; showing incorporation date&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;stavSubjektu&lt;/code&gt; for current operating status&lt;/li&gt;
&lt;li&gt;references to source registers inside the ARES payload&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The upstream response also exposes register-specific fragments through &lt;code&gt;jurisdiction_data&lt;/code&gt;. We lean on those fields when a merchant describes one activity during onboarding while the Trade Register records something narrower or older.&lt;/p&gt;

&lt;p&gt;Name matching causes regular friction. Czech legal names often contain punctuation or legal suffixes that vanish from onboarding forms copied in by hand. ARES search results usually preserve the exact register representation. Fewer false mismatches end up in manual review queues.&lt;/p&gt;

&lt;p&gt;Raw registry preservation matters more than convenience formatting. Internal audit teams eventually ask where a status originated, especially when onboarding happened close to an insolvency filing or licence suspension. Screenshots are rarely enough.&lt;/p&gt;

&lt;h2&gt;
  
  
  What ARES does not give you
&lt;/h2&gt;

&lt;p&gt;ARES has clear limits.&lt;/p&gt;

&lt;p&gt;It is not a beneficial ownership register. Czech UBO access changed after AMLD 5 litigation across Europe and the CJEU C-601/20 decision. Public access is narrower now than in earlier European register models.&lt;/p&gt;

&lt;p&gt;OpenRegistry also does not add sanctions screening, PEP checks or credit scoring to Czech entities. Those checks belong elsewhere.&lt;/p&gt;

&lt;p&gt;Historical snapshots are another common misunderstanding. OpenRegistry queries the live register each time. We do not keep a private archive of earlier Czech registry states.&lt;/p&gt;

&lt;p&gt;Some filing documents and court records still sit inside separate Czech judicial systems rather than appearing directly through ARES. Workflows that depend on deeds or historical constitutional documents may still need direct court-register retrieval. We ran into this with older insolvency-linked filings.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying Czech entities through MCP
&lt;/h2&gt;

&lt;p&gt;ARES is available through the OpenRegistry MCP server for live lookups from AI clients and internal tooling.&lt;/p&gt;

&lt;p&gt;A basic company search by IČO or partial name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"27864651"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For onboarding flows, we usually follow that with a direct profile fetch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"27864651"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The operational pattern that tends to hold up best is storing both the normalised fields and the raw &lt;code&gt;jurisdiction_data&lt;/code&gt; object. During a regulator review, that gives evidence tied directly to the Czech registry response rather than an internal interpretation layer.&lt;/p&gt;

&lt;p&gt;The same MCP interface also works across the other registers currently exposed by OpenRegistry, including Companies House in Great Britain, the Finnish Trade Register and the Dutch Handelsregister.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Czech registry quirks worth planning for
&lt;/h2&gt;

&lt;p&gt;ARES is fairly stable. Edge cases still matter.&lt;/p&gt;

&lt;p&gt;Status propagation between Czech systems is not always simultaneous. A company can appear active in one source while another still shows a pending update. We treat those mismatches as manual-review triggers instead of automatic failures. Saves pointless escalations.&lt;/p&gt;

&lt;p&gt;Address formatting creates another category of false positives. Czech addresses often include district references, municipal subdivisions and orientation numbers that merchants abbreviate aggressively. Exact string matching fails a lot.&lt;/p&gt;

&lt;p&gt;Legal form handling deserves attention too. Czech entities such as &lt;code&gt;s.r.o.&lt;/code&gt; and &lt;code&gt;a.s.&lt;/code&gt; carry different governance expectations during KYB reviews. Keeping the original &lt;code&gt;pravniForma&lt;/code&gt; value from ARES avoids downstream mapping errors that are surprisingly tedious to unwind later.&lt;/p&gt;

&lt;p&gt;ARES is also not a sanctions system. Ownership chains still need separate resolution before running OFAC 50% analysis or UK sanctions checks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Direct registry access and audit trails
&lt;/h2&gt;

&lt;p&gt;Teams using aggregator datasets eventually hit the same problem: stale records with weak provenance. A regulator asks where a company status came from, then someone discovers the provider updated its Czech mirror days after the filing itself.&lt;/p&gt;

&lt;p&gt;Direct registry retrieval removes that ambiguity. The onboarding decision stays tied to the registry response available at review time. That matters during investigations.&lt;/p&gt;

&lt;p&gt;It also cuts reconciliation work caused by third-party normalisation layers.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes ARES through a free MCP endpoint with raw upstream fields preserved. Current jurisdiction coverage and connection details are listed at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>compliance</category>
    </item>
    <item>
      <title>Corporations Canada filings via MCP: issuer checks in real time</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Thu, 09 Jul 2026 15:01:03 +0000</pubDate>
      <link>https://dev.to/openregistry/corporations-canada-filings-via-mcp-issuer-checks-in-real-time-3ick</link>
      <guid>https://dev.to/openregistry/corporations-canada-filings-via-mcp-issuer-checks-in-real-time-3ick</guid>
      <description>&lt;p&gt;Federal corporations in Canada use an eight-digit corporation number, though the fields that matter in diligence work sit much deeper in the registry payload. Corporations Canada exposes status history, annual filing state, registered office details, director appointments, and continuance events that often appear later in cached commercial datasets.&lt;/p&gt;

&lt;p&gt;That gap shows up fast when you are tracing a financing vehicle across provinces or checking whether a reporting issuer still exists before settlement. We have seen dissolved CBCA entities remain marked active in internal systems for weeks after the federal register changed state.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the federal register returns
&lt;/h2&gt;

&lt;p&gt;Corporations Canada covers entities incorporated under the Canada Business Corporations Act. Through OpenRegistry MCP, the usual flow starts with &lt;code&gt;search_companies&lt;/code&gt; and then moves into &lt;code&gt;get_company_profile&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;A basic search call looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CA"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Maple Leaf Holdings"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The response includes the federal corporation number together with the legal name recorded by Corporations Canada. That number becomes the stable reference for later checks.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;get_company_profile&lt;/code&gt; returns the current federal profile and keeps upstream registry fields inside &lt;code&gt;jurisdiction_data&lt;/code&gt;. For Canadian diligence work, these are usually the fields people care about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;corporationNumber&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;businessNumber&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;governingLegislation&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;statusDate&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;annualFilings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registeredOfficeAddress&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;directorMinimum&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;directorMaximum&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;continuanceDate&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The corporation number and CRA business number get mixed up constantly in onboarding documents. They are not interchangeable. The corporation number identifies the entity on the CBCA register. The business number belongs to the CRA tax system.&lt;/p&gt;

&lt;p&gt;Director data is often more detailed than people expect from a public register. &lt;code&gt;get_officers&lt;/code&gt; exposes director names, appointment dates, and service addresses where the registry publishes them.&lt;/p&gt;

&lt;p&gt;Example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_officers"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CA"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1234567-8"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Continuance history is easy to miss during M&amp;amp;A screening. Canadian entities move between provincial and federal regimes more often than internal entity-resolution systems expect. We ran into this while tracing an Ontario corporation that later continued under the CBCA. Same legal name. Older internal records still treated the federal registration as a separate entity.&lt;/p&gt;

&lt;p&gt;Annual filing state is another useful signal. An overdue annual return does not mean immediate dissolution, though it often tells you where the file is drifting. Treasury and credit teams usually care more about whether the legal shell can still execute agreements than whichever industry description appears in the profile.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the register stops
&lt;/h2&gt;

&lt;p&gt;Corporations Canada is not a beneficial ownership register.&lt;/p&gt;

&lt;p&gt;Canada has expanded transparency obligations in recent years, including the federal Individuals with Significant Control regime under the CBCA. Public disclosure still remains narrower than many compliance teams expect. The federal register should not be treated as a complete UBO source comparable to internal KYC records held by financial institutions.&lt;/p&gt;

&lt;p&gt;OpenRegistry also does not layer interpretation onto the registry response. The MCP server returns upstream data exactly as provided by the source authority. No ownership graphing is attached to the output. No sanctions enrichment either.&lt;/p&gt;

&lt;p&gt;Historical state has limits as well. Requests hit the live register directly. If a director resigns today and the filing is processed, the current response reflects that latest state instead of a stored historical snapshot.&lt;/p&gt;

&lt;p&gt;Document availability varies. Some filings expose retrievable source documents through &lt;code&gt;fetch_document&lt;/code&gt;. Others return little beyond filing metadata.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with filings and documents
&lt;/h2&gt;

&lt;p&gt;Federal filing history becomes useful during IPO preparation or debt issuance reviews because you can compare amendments against disclosure drafts and board materials.&lt;/p&gt;

&lt;p&gt;A filing query looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CA"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"1234567-8"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Depending on the entity, the register may return annual returns, articles of amendment, continuance filings, dissolution notices, or director changes.&lt;/p&gt;

&lt;p&gt;If a filing exposes a retrievable source document, &lt;code&gt;fetch_document&lt;/code&gt; can pull it directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"fetch_document"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"CA"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"document_id"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"filing-2024-09-18-001"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That direct registry path matters during audit disputes. A reviewer can trace the exact filing used in a diligence decision instead of relying on copied summaries from the legacy paid databases.&lt;/p&gt;

&lt;h2&gt;
  
  
  Cross-border checks get messy quickly
&lt;/h2&gt;

&lt;p&gt;Canadian corporate structures regularly split operations across federal and provincial registrations. A CBCA corporation may still maintain extra-provincial registrations in British Columbia or elsewhere.&lt;/p&gt;

&lt;p&gt;That creates matching problems during counterparty screening.&lt;/p&gt;

&lt;p&gt;OpenRegistry currently covers federal Canada alongside British Columbia and Northwest Territories registries. The MCP interface stays consistent even though the underlying registries behave differently.&lt;/p&gt;

&lt;p&gt;A typical compliance workflow looks something like this:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search the federal CBCA entity.&lt;/li&gt;
&lt;li&gt;Pull current directors and filing state.&lt;/li&gt;
&lt;li&gt;Search provincial registries for matching legal names.&lt;/li&gt;
&lt;li&gt;Compare addresses against incorporation dates.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The workflow sounds straightforward. It still catches real problems. One recurring lending issue is a dissolved federal corporation remaining marked active inside internal CRM systems because a provincial registration stayed open.&lt;/p&gt;

&lt;p&gt;Issuer verification work is usually blocked by stale data rather than missing data. Overnight exports from aggregator platforms can lag behind the official register when director appointments or dissolution filings change during the day.&lt;/p&gt;

&lt;p&gt;The OpenRegistry MCP server gives AI assistants direct access to the live registry response instead of a warehouse copy normalised weeks earlier. Teams building KYB tooling around CBCA entities can inspect the raw filing state directly at openregistry.sophymarine.com/mcp&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>compliance</category>
    </item>
    <item>
      <title>New Zealand Companies Office: officer data quirks in practice</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Wed, 08 Jul 2026 15:01:15 +0000</pubDate>
      <link>https://dev.to/openregistry/new-zealand-companies-office-officer-data-quirks-in-practice-5ghc</link>
      <guid>https://dev.to/openregistry/new-zealand-companies-office-officer-data-quirks-in-practice-5ghc</guid>
      <description>&lt;p&gt;New Zealand company records still expose director residential addresses in situations where many UK practitioners now expect redaction. The Companies Act 1993 preserved disclosure routes that disappeared across parts of Europe after C-37/20 and C-601/20 reshaped access to beneficial-ownership records.&lt;/p&gt;

&lt;p&gt;That catches people during APAC KYB work. The New Zealand Companies Office is not a beneficial ownership register in the EU sense, yet it remains one of the cleaner public datasets for checking directors, filings, and company status changes. For sanctions ownership analysis or statutory notice work, that distinction matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the Companies Office returns
&lt;/h2&gt;

&lt;p&gt;The Companies Register under Part 4 of the Companies Act 1993 exposes a fairly direct operational dataset. Through OpenRegistry MCP, the New Zealand endpoint returns upstream registry fields inside &lt;code&gt;jurisdiction_data&lt;/code&gt; with only light schema alignment.&lt;/p&gt;

&lt;p&gt;A standard &lt;code&gt;get_company_profile&lt;/code&gt; response usually includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;NZBN identifiers&lt;/li&gt;
&lt;li&gt;company number&lt;/li&gt;
&lt;li&gt;incorporation date&lt;/li&gt;
&lt;li&gt;registered office address&lt;/li&gt;
&lt;li&gt;address for service&lt;/li&gt;
&lt;li&gt;company status&lt;/li&gt;
&lt;li&gt;annual return filing month&lt;/li&gt;
&lt;li&gt;entity subtype&lt;/li&gt;
&lt;li&gt;director records&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Director data is usually the useful bit. Depending on the entity type and the current disclosure settings, the upstream payload may include appointment dates, service addresses, or residency indicators.&lt;/p&gt;

&lt;p&gt;For filing work, &lt;code&gt;list_filings&lt;/code&gt; exposes registry events tied to annual returns, constitutions, director changes, amalgamations, and liquidation actions. Some registers collapse years of activity into one status field. New Zealand usually does not. You get a readable event trail instead of a derived summary.&lt;/p&gt;

&lt;p&gt;Officer lookups sit separately from the company profile. &lt;code&gt;get_officers&lt;/code&gt; returns appointment data linked to the entity record, which matters during insolvency tracing or deposition prep because historical officer movement is often clearer in raw registry events than in the legacy paid databases that overwrite prior states.&lt;/p&gt;

&lt;p&gt;New Zealand also keeps a fairly hard separation between registration data and beneficial ownership concepts. The public Companies Office interface does not expose a UBO register equivalent. There is no direct analogue to the UK PSC disclosure model under Companies Act 2006 s.790E.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you will not get
&lt;/h2&gt;

&lt;p&gt;The first limitation is simple: there is no public beneficial ownership register.&lt;/p&gt;

&lt;p&gt;New Zealand’s AML/CFT regime imposes customer due diligence obligations under the Anti-Money Laundering and Countering Financing of Terrorism Act 2009, but those obligations do not create a public dataset comparable to the EU access model that existed before C-601/20.&lt;/p&gt;

&lt;p&gt;If your sanctions workflow depends on tracing natural persons through layered structures, the Companies Office alone will not cover it. You still need supporting material such as trust analysis, shareholder agreements, offshore register records, or regulated-source KYC documents.&lt;/p&gt;

&lt;p&gt;You also should not treat the register as an archive. OpenRegistry does not store snapshots. Every request hits the live registry directly.&lt;/p&gt;

&lt;p&gt;That affects evidence handling. If a director resigns today, tomorrow’s query reflects the updated state. Litigation hold work or transaction chronology still requires your own preservation process.&lt;/p&gt;

&lt;p&gt;Document availability shifts by filing type. Some events expose downloadable documents. Others expose metadata only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying the registry through MCP
&lt;/h2&gt;

&lt;p&gt;The OpenRegistry server exposes the New Zealand register through the same MCP tool surface used for the other 26 jurisdictions. Upstream data quality varies between registers, though the tool interface stays consistent.&lt;/p&gt;

&lt;p&gt;Searching by company name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Fisher &amp;amp; Paykel Healthcare"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Retrieving a company profile after identifying the company number:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"110508"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reviewing officer history:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_officers"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"110508"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Reviewing filing chronology:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"NZ"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"110508"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That consistency matters operationally. A compliance team reviewing NZ entities alongside GB, AU, HK, or IE records can keep the same MCP integration and switch only the jurisdiction code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Statutory notice work versus commercial datasets
&lt;/h2&gt;

&lt;p&gt;New Zealand is a good reminder that official registers and commercial KYB products solve different problems.&lt;/p&gt;

&lt;p&gt;For statutory notice questions, the Companies Register is the source that matters. Courts care about what was filed with the registrar. Cached vendor copies carry less weight once dates, service addresses, or appointment timing become disputed.&lt;/p&gt;

&lt;p&gt;That shows up regularly in insolvency matters and director liability disputes. If someone challenges service of notice or the timing of a resignation, the official filing trail is usually where the argument turns.&lt;/p&gt;

&lt;p&gt;The legacy paid databases also tend to smooth over registry inconsistencies that investigators actually need to inspect. New Zealand filings include spelling variations, formatting quirks, plus occasional address inconsistencies. Raw registry output is not always tidy. The messy parts often contain the useful facts.&lt;/p&gt;

&lt;p&gt;The jurisdiction is also useful during sanctions and export-control reviews because New Zealand entities appear regularly in trans-Tasman structures involving Australian parents, Pacific subsidiaries, or UK-linked trusts. Direct access to filing events makes director overlap analysis much easier across those structures.&lt;/p&gt;

&lt;p&gt;For APAC diligence work, the practical point is straightforward: the New Zealand register is unusually accessible by international standards, though it remains a company register rather than a verified beneficial ownership system.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes the live Companies Office data through MCP at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt; so assistants and internal tooling can query the registry directly instead of relying on cached aggregator exports.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>compliance</category>
      <category>legaltech</category>
    </item>
    <item>
      <title>ABR lookups from code: what Australia exposes live</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Tue, 07 Jul 2026 15:01:10 +0000</pubDate>
      <link>https://dev.to/openregistry/abr-lookups-from-code-what-australia-exposes-live-4fid</link>
      <guid>https://dev.to/openregistry/abr-lookups-from-code-what-australia-exposes-live-4fid</guid>
      <description>&lt;p&gt;Australia’s ABN register exposes GST status changes with effective dates attached. That gets interesting when a procurement vehicle appears four days before a tender closes, or when a shelf company that sat dormant for years suddenly starts filing again.&lt;/p&gt;

&lt;p&gt;The Australian Business Register occupies an awkward middle ground for investigations. Public enough for basic verification. Fragmented enough that you still bounce between ABR records, ASIC extracts, court filings, archived tenders, and procurement PDFs. Anyone tracing Australian mining entities or trust structures has probably run into this already.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes the ABR through MCP. Responses come directly from the live register source, not a cached profile stitched together from aggregator feeds.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the ABR actually returns
&lt;/h3&gt;

&lt;p&gt;The ABR revolves around the Australian Business Number. Search by entity name and you usually get fields such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;abn&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;entity_name&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;entity_status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;entity_type&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;gst_status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;state_code&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;postcode&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;registration_date&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The more interesting details tend to live inside &lt;code&gt;jurisdiction_data&lt;/code&gt;, where the original field names remain untouched. Australian entity records get messy fast because trusts, sole traders, incorporated associations, and Pty Ltd companies all follow different naming conventions. Preserving the upstream structure helps during verification work.&lt;/p&gt;

&lt;p&gt;Historical business names appear where available. GST registration transitions do too. That matters when an entity quietly rebrands after litigation, media scrutiny, or procurement attention.&lt;/p&gt;

&lt;p&gt;For reporters, timing usually matters more than existence. When did the ABN become active? Did GST registration begin months later? Was the business name updated shortly before a political donation or property transfer?&lt;/p&gt;

&lt;p&gt;ABR data will not answer beneficial ownership questions by itself. Australia still scatters corporate control information across ASIC systems, procurement disclosures, court records, and sector-specific filings.&lt;/p&gt;

&lt;h3&gt;
  
  
  ABR is not ASIC
&lt;/h3&gt;

&lt;p&gt;People often assume the ABR is Australia’s full company register. It is not.&lt;/p&gt;

&lt;p&gt;The ABR covers tax-facing registration data. ASIC remains the statutory corporate regulator. Director histories, insolvency notices, lodged filings, and formal extracts still sit on the ASIC side.&lt;/p&gt;

&lt;p&gt;That distinction matters in cross-border investigations. Entity tracing often depends on linking a tax-facing identity to a formal company record, then walking directors or shareholders across multiple jurisdictions.&lt;/p&gt;

&lt;p&gt;ASIC extracts remain part of that process. OpenRegistry does not bypass ASIC paywalls or AML-gated systems.&lt;/p&gt;

&lt;p&gt;Australia also lacks a public beneficial ownership register comparable to the short-lived access journalists had in parts of the EU before CJEU C-601/20 changed disclosure rules. Control can still be inferred through directors, shareholder filings, procurement disclosures, or trust relationships. There is no single public UBO database sitting behind an API call.&lt;/p&gt;

&lt;h3&gt;
  
  
  Querying the ABR through MCP
&lt;/h3&gt;

&lt;p&gt;The MCP calls are simple enough to drop into an existing newsroom workflow.&lt;/p&gt;

&lt;p&gt;Search by entity name:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AU"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Pilbara Minerals"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That returns candidate entities with ABNs attached alongside registry status fields. Once you have the identifier, pull the full profile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"AU"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"25112277230"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The useful bit is reproducibility. A fact-checker can rerun the same query later and compare the live registry response against publication notes or archived drafts.&lt;/p&gt;

&lt;p&gt;That starts to matter during long investigations. One recurring issue during the Pandora Papers reporting cycle involved reconstructing exactly when an entity changed status or registration state. Commercial datasets often flattened the timeline into a single “current” profile once updates arrived.&lt;/p&gt;

&lt;p&gt;OpenRegistry does not keep historical snapshots. Every request hits the live registry source. If the register changes next week, the response changes as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Australian register quirks
&lt;/h3&gt;

&lt;p&gt;Australian entity names are noisier than UK Companies House records. Trusts often trade under names that barely resemble the underlying legal entity. Indigenous corporations can appear under separate frameworks. Universities and charities may expose ABNs even though they do not behave like ordinary commercial companies.&lt;/p&gt;

&lt;p&gt;GST status causes confusion too.&lt;/p&gt;

&lt;p&gt;An active GST registration does not prove meaningful operations. Plenty of dormant entities leave GST registration active far longer than expected. A newly activated GST status, though, can signal that a procurement vehicle or contractor network has started operating.&lt;/p&gt;

&lt;p&gt;Address data is another weak spot. The ABR often exposes suburb, state, and postcode without a structured service address. Matching entities against leaks, donor records, or shipping manifests usually requires fuzzy joins instead of exact matching.&lt;/p&gt;

&lt;p&gt;Australian investigations also overlap heavily with New Zealand structures. Directors and service providers appear on both sides of the Tasman all the time. OpenRegistry exposes AU and NZ through the same MCP endpoint, which cuts down some of the registry switching during research.&lt;/p&gt;

&lt;p&gt;Most investigations do not begin with enterprise subscriptions to the legacy paid databases. They begin with a name in a leaked spreadsheet, a procurement notice, or a shipping record.&lt;/p&gt;

&lt;p&gt;You check whether the ABN existed at the claimed date. You compare GST activation dates against transaction records. Then the trail branches into court filings, archived websites, offshore structures, or procurement disclosures.&lt;/p&gt;

&lt;p&gt;That workflow gets repetitive quickly. MCP helps because the assistant can make the registry calls directly while preserving the raw source fields needed for verification.&lt;/p&gt;

&lt;p&gt;OpenRegistry’s Australian endpoint is live at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt; and currently covers AU alongside 29 other jurisdictions including NZ, KY, RU, GB, and PL.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>api</category>
    </item>
    <item>
      <title>Ireland CRO filings: what shows up before diligence calls</title>
      <dc:creator>OpenRegistry</dc:creator>
      <pubDate>Mon, 06 Jul 2026 15:01:03 +0000</pubDate>
      <link>https://dev.to/openregistry/ireland-cro-filings-what-shows-up-before-diligence-calls-2a80</link>
      <guid>https://dev.to/openregistry/ireland-cro-filings-what-shows-up-before-diligence-calls-2a80</guid>
      <description>&lt;p&gt;Irish targets often look cleaner in aggregator datasets than they do in the CRO feed. During a Dublin software acquisition last quarter, the paid database still showed the previous registered office six weeks after the CRO filing changed it. The CRO entry had already shifted the company into a shared-services address used by four unrelated entities.&lt;/p&gt;

&lt;p&gt;That sort of drift matters during pre-LOI screening. Ireland’s Companies Registration Office publishes filings fairly quickly, yet downstream datasets can sit behind for days or longer. Querying the register directly usually exposes the filing sequence the same day it appears.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the CRO actually returns
&lt;/h2&gt;

&lt;p&gt;The Irish dataset is useful because it exposes filing-level records instead of a heavily normalised company profile. Through OpenRegistry MCP, the Irish tools return raw upstream fields inside &lt;code&gt;jurisdiction_data&lt;/code&gt; alongside a unified schema.&lt;/p&gt;

&lt;p&gt;For a standard Irish LTD company, &lt;code&gt;get_company_profile&lt;/code&gt; usually returns:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;company number&lt;/li&gt;
&lt;li&gt;legal status&lt;/li&gt;
&lt;li&gt;incorporation date&lt;/li&gt;
&lt;li&gt;registered office&lt;/li&gt;
&lt;li&gt;company type&lt;/li&gt;
&lt;li&gt;last annual return date&lt;/li&gt;
&lt;li&gt;next annual return due date&lt;/li&gt;
&lt;li&gt;filing status indicators from the CRO source&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The filing metadata tends to matter most during diligence. Irish records often carry CRO-specific labels and references that the legacy paid databases flatten into generic categories.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;list_filings&lt;/code&gt; is where patterns start showing up. You can walk annual returns, director appointments, office moves, constitution amendments, charge registrations, and capital filings from the same stream.&lt;/p&gt;

&lt;p&gt;On distressed targets or companies moving quickly, filing cadence matters more than the summary page. I ran into one case where a burst of B10 director appointments was followed by address changes and charge filings over nine days. Management still described the entity as operationally unchanged during the first diligence call.&lt;/p&gt;

&lt;p&gt;Officer data helps with cross-border matching as well. &lt;code&gt;get_officers&lt;/code&gt; exposes appointment dates, resignation dates, officer roles, and names exactly as filed upstream. Irish officer formatting is less standardised than GB Companies House records, so direct register access helps when matching directors across Ireland, the UK, or offshore entities.&lt;/p&gt;

&lt;p&gt;The CRO does not expose everything.&lt;/p&gt;

&lt;p&gt;There is no unrestricted beneficial ownership dataset equivalent to what some diligence teams still expect from older European UBO workflows. Ireland tightened RBO access after the CJEU C-601/20 ruling on public beneficial ownership registers. OpenRegistry does not bypass those restrictions.&lt;/p&gt;

&lt;p&gt;Financial statements are uneven too. Filing depth depends on company type and exemptions. Small-company abridged accounts can leave large gaps if you are trying to model operational exposure from registry filings alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filing sequences beat snapshots
&lt;/h2&gt;

&lt;p&gt;A cross-border subsidiary review last month involved an Irish holding company tied to a Dutch financing structure. The aggregator snapshot looked stable. The CRO filings showed a reorganisation already in motion.&lt;/p&gt;

&lt;p&gt;Three filings landed within eleven days: a director resignation, a new charge registration, then a constitution amendment. The sell-side materials still described the structure as unchanged.&lt;/p&gt;

&lt;p&gt;That sequence changed the risk picture immediately. The financing layer was already shifting before the transaction process formally acknowledged it.&lt;/p&gt;

&lt;p&gt;Irish records are useful for spotting these timing gaps because the filing stream is comparatively accessible next to several continental registries.&lt;/p&gt;

&lt;p&gt;Charge information is another signal worth watching. If a lender registers a charge shortly before a process starts, it can indicate refinancing pressure or covenant restructuring. You still need the underlying documents to interpret the exposure correctly. Timing alone can change diligence priorities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Querying the CRO through OpenRegistry MCP
&lt;/h2&gt;

&lt;p&gt;The MCP endpoint connects directly to the registry source. OpenRegistry does not maintain a scoring layer or historical warehouse.&lt;/p&gt;

&lt;p&gt;A typical company search looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"search_companies"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Stripe Payments Europe"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once you identify the company number, pull the profile:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_company_profile"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"513174"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For diligence work, filings are usually the next call:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"list_filings"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"513174"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Officer tracing is straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"tool"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"get_officers"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"arguments"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"jurisdiction"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"IE"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"company_number"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"513174"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The key detail is field preservation. OpenRegistry keeps the original CRO terminology instead of rewriting everything into a simplified corporate schema. That matters when diligence notes need to match source filing language exactly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the Irish registry still falls short
&lt;/h2&gt;

&lt;p&gt;The CRO works well for operational corporate status checks. Ownership transparency is weaker than many deal teams expect.&lt;/p&gt;

&lt;p&gt;You will not get a clean beneficial ownership graph for every Irish-linked structure. AML-gated registers remain restricted. Complex fund structures, nominee arrangements, and layered offshore ownership still require legal work outside registry data.&lt;/p&gt;

&lt;p&gt;Historical depth is another limitation. OpenRegistry queries the live register directly and does not store historical snapshots. If you need a point-in-time reconstruction from eighteen months ago, you still need your own archive process or a specialist historical dataset.&lt;/p&gt;

&lt;p&gt;Irish filings can also be sparse for smaller private companies. An entity may remain technically compliant while disclosing very little operational detail.&lt;/p&gt;

&lt;p&gt;Direct CRO access still catches stale assumptions quickly. Most Irish diligence failures I have seen were timing failures rather than missing-data failures. Someone relied on a downstream cache while the registry had already moved.&lt;/p&gt;

&lt;p&gt;OpenRegistry exposes the CRO through MCP at &lt;a href="https://openregistry.sophymarine.com/mcp" rel="noopener noreferrer"&gt;https://openregistry.sophymarine.com/mcp&lt;/a&gt; for live registry calls inside diligence tooling or AI workflows.&lt;/p&gt;

</description>
      <category>programming</category>
      <category>mcp</category>
      <category>kyb</category>
      <category>legaltech</category>
    </item>
  </channel>
</rss>
