Corp Verify
CorpVerify provides company registry data and documents across 60+ jurisdictions worldwide. Reports include registration details, shareholder information, and financial data where available.
For the full list of supported countries and their capabilities, see CorpVerify Country Coverage.
Default Flow
Use
/cra/{countryCode}/search/companiesto find the Company IDPass this ID to
/cra/requestto initiate the report requestReceive results via webhook or poll
/cra/poll
Result Delivery
Webhook (recommended) — Pass a callbackUrl in the /cra/request body. When the report is ready, a POST request is sent to that URL with the report payload wrapped in a WebhookPayload envelope. Polling remains available as a fallback if delivery fails.
Polling — Call /cra/poll with the returned token until a 200 response is returned.
Retrieval Methods
Automated Retrieval — For supported countries (for example Hong Kong), providing a valid companyId enables automatic document fetching. The /cra/poll endpoint typically resolves within 5 minutes. Use /cra/{countryCode}/search/companies to obtain valid Company IDs.
Manual Processing — For countries without automation or when companyId is unavailable, Fill Easy processes requests manually. This may take up to several business days. You can still poll /cra/poll to check status and retrieve the document when ready.
Note: The search endpoint may return an empty
companyIdfor certain countries. In these cases, provide thecompanyNameinstead and the request will be processed manually.
Try It Out
Explore available regions, search for companies, and purchase documents using our web interface: search.fill-easy.com
Initiate a company report request. Returns a JWT token for use with /cra/poll.
Required: countryCode (ISO 3166 alpha-2)
Recommended: companyId from /cra/{countryCode}/search/companies for faster automated processing.
Fallback: Provide companyName if companyId is unavailable — request will be processed manually.
Document Request: Provide documentId from /cra/{countryCode}/search/documents to request specific document. If /cra/info indicates that the documentId is required for retrieval, it must be provided.
Document Type: Each country has a defaultDocumentType (see /cra/info). Omitting documentType selects that default. To request a specific document, pass its name or alias from the country's documentTypes list.
Dry Run: Set dryRun: true to test the integration without incurring costs. The response includes dryRun: true and a token that can be polled normally via /cra/poll.
Webhook Delivery: Provide callbackUrl to receive a POST when a report is available. The webhook body is a WebhookPayload containing the same data as a 200 response from /cra/poll. Requests that support partial reports may send one webhook with reportMetadata.status: processing (header X-Webhook-Event: cra.report.partial) and another with reportMetadata.status: completed (header X-Webhook-Event: cra.report.completed). The X-Request-Id header is included on every delivery, plus any custom headers supplied in callbackHeaders. If the order is cancelled before any report is produced, a final webhook is sent with X-Webhook-Event: cra.report.cancelled, carrying reportMetadata.status: cancelled and the reason. Cancelled orders are never billed. Polling via /cra/poll remains available regardless of whether a callbackUrl is provided.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
Name of the company. At least one of companyId / companyName is required.
Company ID (e.g., BRN for Hong Kong, ACN for Australia). At least one of companyId / companyName is required.
The document type to retrieve. Must match a name (or alias) from the country's documentTypes list in /cra/info.
If omitted, defaults to the country's defaultDocumentType from /cra/info (unless a specific documentId is provided).
Year of the document. Only provide it when the retrieval supports or requires it.
Specific document ID - if provided, it is prioritized over "documentType" and "documentYear"
Branch number of the business — only used by Hong Kong IRD documents (Business Registration Certificate, Business Registration Extract of Information). Defaults to "000" (the main business).
^\d{3}$Set to true to test the full request-poll flow without incurring costs.
Optional field for usage analytics
Your own reference ID (optional field for usage analytics)
Expediate request speed (Only used if turn-around times have been agreed upon)
HTTPS URL to receive a webhook POST when the report is ready.
When provided, available reports use the same payload as a 200 response from /cra/poll.
Requests that support partial reports may send both a processing and completed payload.
Polling remains available as a fallback.
^https://.+Successfully initiated the request
JWT token that encodes the request details and should be used in the /cra/poll endpoint to check the status and retrieve the document
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8UEchoed back as true when the request was a dry run — no cost incurred
Bad Request - Unsupported country code, neither companyId nor companyName provided, document not available for the specified company, or request cannot be fulfilled
Internal server error
POST /cra/request HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 42
{
"companyId": "0157548",
"countryCode": "HK"
}{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
}Check the status of a company registry report request. Keep polling until a 200 response is returned.
Returns 202 while the report is still being processed.
A 200 is terminal for polling, but it does not always carry a report — branch on reportMetadata.status before using the payload: completed is the final report, processing is an interim partial report (keep polling for the rest), and cancelled means the order was cancelled and no report will ever be produced. On cancelled, reportMetadata.cancellationReason says why and originalDocuments is empty. Cancelled orders are never billed.
If a callbackUrl was provided in /cra/request, available report states are also delivered via webhook. Polling is always available as a fallback.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
JWT token
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8UPattern: ^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$Terminal for polling — the completed report, an interim partial report, or a cancelled order
Report is still being processed
Bad Request - Invalid input parameters
Internal server error
POST /cra/poll HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 120
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0.dozjgNryP4J3jVmNHl0w5N_XgL0n3I9PlFUP0THsR8U"
}{
"reportMetadata": {
"reportDate": "2026-01-27",
"countryCode": "HK",
"status": "cancelled",
"cancellationReason": "BRC is not available for this company."
},
"originalDocuments": []
}This endpoint performs a search for companies in the respective country's Companies Registry by company name. It supports both English and Chinese company names and returns a list of matching companies.
Certain countries are unable to return a companyId - in those cases the idType in the response will be "Unavailable" and companyId will be an empty string.
The search will automatically detect if the input is in Chinese characters and adjust the search parameters accordingly.
The type of search is dependent on the country:
Substring search: KY, TH, PH, JP
Tokenized search (e.g. searching "PLE" will not result in "APPLE"): AU, SG
Left partial search: HK, BM, MY, FR
Partial name search: US
Client ID in x-client-id header.
Client Secret in x-client-secret header.
Company name to search (English or Chinese)
Page of results to return. Pagination support varies by country — for countries where it is not supported, only the first N results are returned regardless of this value. Check meta.page in the response to confirm whether pagination was applied.
1Successfully retrieved matching companies
Response message
Bad Request - Unsupported country code or search not implemented
Too many results - search term is too broad
Internal server error
POST /cra/{countryCode}/search/companies HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 53
{
"companyName": "WING KAI INVESTMENT COMPANY LIMITED"
}{
"message": "Success",
"result": [
{
"companyName": "WING KAI INVESTMENT COMPANY LIMITED",
"companyId": "0123456",
"idType": "BRN",
"status": "Live",
"nameType": "current",
"registrationDetails": [
"Private Company",
"Company Limited by Shares"
]
}
]
}Searches the Hong Kong Inland Revenue Department (IRD) Business Register by business name and reports whether the business exists and which IRD documents can be purchased for it.
Two documents are offered by the IRD for a registered business:
BR Extract of Information ("BR Search") — a document extract of the business register record.
Business Registration Certificate (BRC) — a duplicate of the certificate.
This is a read-only availability check — it never starts a payment.
By default only existence is returned (whether the business is in the register, plus its registry basics). Pass checkDocumentAvailability: true for a deeper, authoritative check that also returns whether the BR Extract and BRC can be purchased, plus the business type/status and cessation date. That path is slower because it solves a second captcha.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
ISO 3166 alpha-2 country code in lowercase. Only hk is supported — the IRD Business Register is Hong Kong-only.
^[a-z]{2}(-[a-z]{2})?$Business name to search (English).
Defaults to false (existence only). Set true to also annotate each match with whether its BR Extract and BRC can be purchased (solves a second captcha, slower).
falseSearch completed
Whether any business matched the name in the IRD Business Register.
Bad Request - missing or invalid input
Internal server error
POST /cra/{countryCode}/search/ird HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 43
{
"companyName": "HANG LEE MEDICINE COMPANY"
}{
"found": true,
"matches": [
{
"brn": "30267618",
"branchNumber": "000",
"nameEn": "HANG LEE MEDICINE COMPANY",
"nameZh": "恆利中西大藥行",
"address": "新界沙田石門安群街3號京瑞廣場",
"commencementDate": "1999-08-02"
}
]
}This endpoint searches for and returns documents filed by a company with the Companies Registry. Documents are grouped by category (e.g., Annual Return, Director/Secretary Changes, Charges Filed, etc.).
You can optionally filter by document type and year to narrow down the results.
Document categories include: Annual Return, Director / Secretary Changes, Charges Filed, Incorporation & Name Change, Liquidation & Deregistration, Registered Office / Address, Share Capital, and Other.
Note: Not all countries have document search available, please refer to /cra/info to confirm
Recommended: First retrieve/confirm the companyId from /cra/{countryCode}/search/companies or /cra/{countryCode}/search/company prior to calling this endpoint
Client ID in x-client-id header.
Client Secret in x-client-secret header.
Company ID (e.g., BRN for Hong Kong, ACN for Australia)
Optional filter by document type. (Country Specific)
- HK: Any valid document category, such as "Annual Return / Financial Statements", "Mortgage & Charges", etc.
Valid document categories can be any of the values returned under
categoryof this endpoint. - PH: A name or alias from
/cra/info(GIS,Amended AFS, …) or adocumentNamethis endpoint returns, which is the same name. Amendments are their own types (Amended General Information Sheet,Amended Articles of Incorporation, …); registration documents carry no year, so ordering one by name buys the newest on file and an earlier one needs itsdocumentId. - GB: Specific filing type codes (e.g. CS01, AA, AR01, AP01, TM01, SH01, MR01) or
category names (e.g. accounts, officers, confirmation-statement). Specific codes
are the primary interface and match the
documentNamevalues returned by this endpoint and thedocumentTypeaccepted by/cra/request.
The year the document covers, as returned by the documentYear value of this endpoint.
documentYear has no strict check against filingDate.
Page of results to return. Check meta.totalPages in the response to determine total pages available.
1Successfully retrieved documents as a flat array
Status of the operation
Bad Request - Unsupported country code or search not implemented
Internal server error
POST /cra/{countryCode}/search/documents HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 24
{
"companyId": "12104666"
}{
"message": "success",
"result": [
{
"category": "Annual Return & Accounts",
"documentYear": "2023",
"documentName": "Annual Return",
"pages": "5",
"filingDate": "2023-12-15",
"documentId": "12345678",
"companyId": "12104666",
"hasLinked": false
},
{
"category": "Directors & Company Secretaries",
"documentYear": "2023",
"documentName": "Director Change",
"pages": "2",
"filingDate": "2023-11-10",
"documentId": "12345679",
"companyId": "12104666",
"hasLinked": false
}
]
}Search Hong Kong court records for a given party (typically a company name). Returns three aggregated arrays:
judgments— public court judgments matching the party name.writs— submitted Writs of Summons, grouped by court / format variant.hearings— scheduled (past and upcoming) court hearings.
Currently only HK is supported. Other country codes return 400.
Matching is case-insensitive substring against party-name text. The judgments source additionally normalises away common corporate suffixes (LTD, LIMITED, CO, COMPANY, etc.) before matching, since those suffixes vary across records.
Per-country response shape. The result envelope is currently modelled on Hong Kong court records (judgments + writs + hearings). If other jurisdictions are implemented, the populated arrays and their item shapes may differ per countryCode: a future jurisdiction may omit writs or hearings entirely, add new top-level arrays, or use a different LitigationWrit variant set. Callers should branch on countryCode when consuming result, and treat unrecognised caseType values as other.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
Party name to search for (typically a company name; English or Chinese).
Successfully retrieved litigation records
Bad Request - Unsupported country code or search not implemented
Internal server error
POST /cra/{countryCode}/search/litigation HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 52
{
"searchTerm": "SAMPLE CONSTRUCTION COMPANY LIMITED"
}{
"message": "success",
"result": {
"searchTerm": "text",
"judgments": [
{
"title": "SAMPLE ENGINEERING LTD V. EXAMPLE CONSTRUCTION CO LTD",
"caseRef": "HCA1234/2020",
"citation": "[2020] HKCFI 1234",
"court": "Court of First Instance",
"date": "text",
"parties": "text",
"judge": "text",
"judgmentUrl": "text"
}
],
"writs": [
{
"caseType": "civil_action",
"caseNo": "HCA 712/2026",
"primaryDate": "text",
"parties": [
{
"side": "plaintiff",
"nameRaw": "text",
"nameEn": "text",
"nameLocal": "text"
}
],
"remarks": "text",
"representation": "text",
"claimNature": "text",
"claimAmount": 1,
"claimCurrency": "text",
"claimAmountRaw": "text",
"filingResponses": [
{
"partyName": "text",
"filingDate": "text",
"intentionToContest": "text"
}
],
"lowerCourtCaseNo": "text",
"lowerCourtJudge": "text",
"appellantRepresentation": "text",
"respondentRepresentation": "text",
"subjectMatter": "text"
}
],
"hearings": [
{
"hearingDate": "text",
"courtCode": "HCMC",
"court": "text",
"time": "9:30",
"caseNumber": "text",
"parties": "text",
"nature": "text"
}
]
}
}This endpoint retrieves the base information for a specific company from the Companies Registry using its Company ID.
For Hong Kong Companies, the information includes company name (English and Chinese), status, type, category, incorporation date, dissolution date (if applicable), and any remarks.
For other countries, the information includes company name, status, category, incorporation date, and other available details such as entity type, registration address, and remarks where applicable. The exact fields returned may vary depending on the data provided by each country’s registry.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
Company ID (e.g., BRN for Hong Kong, ACN for Australia)
Successfully retrieved company information
Status of the operation
Bad Request - Unsupported country code or search not implemented
Internal server error
POST /cra/{countryCode}/search/company HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 24
{
"companyId": "12104666"
}{
"message": "success",
"result": {
"companyId": "12104666",
"idType": "BRN",
"companyName": "ABC COMPANY LIMITED",
"localName": "ABC公司有限公司",
"status": "Live",
"registrationDetails": [
"Private Company",
"Company Limited by Shares"
],
"incorporationDate": "2015-03-20",
"remarks": ""
}
}Returns metadata and a list of all countries supported by the CorpVerify service, including their automation status, available search capabilities, report contents, and the available document types per country. Each country includes a defaultDocumentType indicating which document is returned when documentType is omitted from a /cra/request call.
This contains the same data as the CorpVerify Country Coverage table.
Client ID in x-client-id header.
Client Secret in x-client-secret header.
ISO 3166 alpha-2 country code (e.g. HK). Case insensitive.
Successfully retrieved country information
Bad Request
Internal server error
GET /cra/info HTTP/1.1
Host: sandbox.staging-api.fill-easy.com
x-client-id: YOUR_API_KEY
x-client-secret: YOUR_API_KEY
Accept: */*
{
"meta": {
"totalCountries": 59,
"automated": 6,
"manual": 53,
"searchable": 8
},
"countries": [
{
"name": "Hong Kong",
"code": "HK",
"region": "Asia",
"sourceLanguage": "zh",
"status": "automated",
"search": {
"companies": true,
"company": true,
"documents": true
},
"defaultDocumentType": "Company Particulars",
"documentTypes": [
{
"name": "Company Particulars",
"contents": [
"Company Name",
"Unique Identifier",
"Date of Incorporation"
],
"source": "Companies Registry",
"sampleUrl": "https://corpverify-samples.s3.us-east-1.amazonaws.com/HK/Company_Particulars.pdf"
}
]
}
]
}Last updated

