This API provides a unified interface to 30+ business registries and is designed to help automate KYB corporate processes.
It offers three endpoints:
/check_registration_number
/check_business
/get_result
To verify a company is registered in its registration country business registry proceed as follows:
/check_registration_number
endpoint to verify if the structure of the Business Registration ID (number or code depending on the country) is correct. This is designed to avoid calling the much more expensive /check_business
endpoint if we can determine from the structure only that the Business Registration ID is invalid./check_business
API endpoint. This API will return a /request_id
parameter to be used as an input parameter to the /get_result
API endpoint./get_result
API endpoint.To retrieve the check result we need to allow the target registries and our backend some time. Indeed, many registries impose rate limits on checks. Our API knows what the constraints of the target business registry are and performs the checks accordingly.
The suggested result retrieval approach for the API under normal operation is the following:
/check_business
endpoint before calling the /get_result
endpoint. The API will return a result in 99% of cases after 10 seconds./check_business
endpoint) if the previous /get_result
call returns a "The result is not ready yet, please wait longer"
message. The API will return a result in 99.5% of cases after 30 seconds./check_business
endpoint) if the previous /get_result
call returns a "The result is not ready yet, please wait longer"
message. This is for cases where the API is processing large batches of checks and results are delayed due to rate limit constraints by either the target registry or our backend infrastructure./check_business
endpoint) if the previous /get_result
call returns a "The result is not ready yet, please wait longer"
message. This is for cases where the API is under exceptionally high load and the processing queue is extremely large.If the /get_result
API endpoint still returns a "The result is not ready yet, please wait longer"
message after 24 hours contact our support team at https://open-automation.io/contact/ for assistance.
/check_registration_number/
endpointThis API endpoint is used to check if a Business Registration ID (BR_ID) has a valid structure. If the structure is valid, it can be used with the /check_business
endpoint. If it is not, it will not make sense to call the /check_business
endpoint as it will always return a "match" = 0
result.
Response sample
{ "br_id_valid": 0, "message": "string", }
"match" = 0
/check_business
API endpoint can be made/check_business
endpointThis API endpoint queries the target country business registry data to verify the submitted company is indeed actively registered.
The API returns a "request_id"
string identifier which can be used to retrieve the registry check once it is processed by the API backend.
Request sample
{ "registration_number": "35742739", "business_name": "APPLE SLOVAKIA", "country": "SK" }
Response sample
{ "request_id": "1749407497620978713", }
/get_result
API endpoint/get_result
endpointThis API endpoint is used to asynchronously retrieve the result of the business registry check.
The main result parameter is the "match"
parameter.
Request sample
{ "request_id": "1749407497620978713" }
Response sample
{ "match": 1, "message": "Match / Found registration number in the national business registry", "matching_details": ["100% <-- APPLE SLOVAKIA / APPLE SLOVAKIA", "40% <-- APPLE SLOVAKIA / APPLE COMPUTERS SLOVAKIA"], }
/check_business
API endpoint# Global Biz Verify API full example code # Step 1: Check if the business registration format is valid avoid useless business registry checks curl \ -H "Authorization: Bearer <access-token--contact-us-for-test-tokens>" \ https://eu-central-1.global-biz-verify-api.open-automation.io/check_registration_number/SK/35742739 # Step 2: Request a buisiness registry check and get back a request_id # or the result directly if it is ready immediately curl \ -H "Authorization: Bearer <access-token--contact-us-for-test-tokens>" \ -H "Content-Type: application/json" \ -d '{"registration_number": "35742739", "business_name": "APPLE SLOVAKIA", "country": "SK"}' \ https://eu-central-1.global-biz-verify-api.open-automation.io/check_business # Step 3: Get the result using the previously provided result_id curl \ -H "Authorization: Bearer <access-token--contact-us-for-test-tokens<" \ -H "Content-Type: application/json" \ -d '{"request_id": "1749407497620978713"}' \ https://eu-central-1.global-biz-verify-api.open-automation.io/get_result # Check the technical documentation for detailed exaplanation of the 3 endpoints
import requests import time # Replace this with your actual token access_token = "<access-token--contact-us-for-test-tokens<" headers = { "Authorization": f"Bearer {access_token}" } # Step 1: Validate business registration format country_code = "SK" registration_number = "35742739" response_step1 = requests.get( f"https://eu-central-1.global-biz-verify-api.open-automation.io/check_registration_number/{country_code}/{registration_number}", headers=headers ) print("Step 1 - Registration Format Validation:") print(response_step1.json()) # Step 2: Perform business registry check headers_with_content_type = { **headers, "Content-Type": "application/json" } payload_step2 = { "registration_number": "35742739", "business_name": "APPLE SLOVAKIA", "country": "SK" } response_step2 = requests.post( "https://eu-central-1.global-biz-verify-api.open-automation.io/check_business", headers=headers_with_content_type, json=payload_step2 ) print("\nStep 2 - Business Check Request:") step2_result = response_step2.json() print(step2_result) # Extract request_id if present request_id = step2_result.get("request_id") if request_id: # Step 3: Get result using request_id payload_step3 = { "request_id": request_id } time.sleep(10) response_step3 = requests.post( "https://eu-central-1.global-biz-verify-api.open-automation.io/get_result", headers=headers_with_content_type, json=payload_step3 ) print("\nStep 3 - Get Result:") print(response_step3.json()) else: print("\nStep 3 skipped: No request_id returned; result might be immediate.") # Check the technical documentation for detailed exaplanation of the 3 endpoints
using System; using System.Net.Http; using System.Net.Http.Headers; using System.Text; using System.Text.Json; using System.Threading.Tasks; class Program { static async Task Main() { var accessToken = "<access-token--contact-us-for-test-tokens>"; var client = new HttpClient(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); // Step 1: Validate business registration format var countryCode = "SK"; var registrationNumber = "35742739"; var step1Url = $"https://eu-central-1.global-biz-verify-api.open-automation.io/check_registration_number/{countryCode}/{registrationNumber}"; var responseStep1 = await client.GetAsync(step1Url); var step1Json = await responseStep1.Content.ReadAsStringAsync(); Console.WriteLine("Step 1 - Registration Format Validation:"); Console.WriteLine(step1Json); // Step 2: Perform business registry check var step2Url = "https://eu-central-1.global-biz-verify-api.open-automation.io/check_business"; var payloadStep2 = new { registration_number = "35742739", business_name = "APPLE SLOVAKIA", country = "SK" }; var step2Content = new StringContent(JsonSerializer.Serialize(payloadStep2), Encoding.UTF8, "application/json"); var responseStep2 = await client.PostAsync(step2Url, step2Content); var step2Json = await responseStep2.Content.ReadAsStringAsync(); Console.WriteLine("\nStep 2 - Business Check Request:"); Console.WriteLine(step2Json); // Parse step2 JSON and extract request_id using var doc = JsonDocument.Parse(step2Json); if (doc.RootElement.TryGetProperty("request_id", out var requestIdElement)) { string requestId = requestIdElement.GetString(); // Step 3: Get result using request_id var step3Url = "https://eu-central-1.global-biz-verify-api.open-automation.io/get_result"; var payloadStep3 = new { request_id = requestId }; await Task.Delay(10000); // sleep for 10 seconds var step3Content = new StringContent(JsonSerializer.Serialize(payloadStep3), Encoding.UTF8, "application/json"); var responseStep3 = await client.PostAsync(step3Url, step3Content); var step3Json = await responseStep3.Content.ReadAsStringAsync(); Console.WriteLine("\nStep 3 - Get Result:"); Console.WriteLine(step3Json); } else { Console.WriteLine("\nStep 3 skipped: No request_id returned; result might be immediate."); } } } // Check the technical documentation for detailed exaplanation of the 3 endpoints