# Korea Business Check — BRN (사업자등록번호) Status & KYB (`kr-data/korea-business-verify`) Actor

Verify South Korean companies from official government data. Input a Korean business registration number (BRN, 사업자등록번호), corporate registration number (CRN, 법인등록번호) or company name; get tax registration status (active / suspended / closed), VAT type, English company profile and summary financials.

- **URL**: https://apify.com/kr-data/korea-business-verify.md
- **Developed by:** [KR Data](https://apify.com/kr-data) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 business status checks

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Korea Business Registration Check — BRN (사업자등록번호) Status, KYB & Company Data

Verify South Korean companies against **official Korean government data** in one call.
Give it a Korean **business registration number (BRN, 사업자등록번호)**, a **corporate registration number (CRN, 법인등록번호)**, or a **company name**, and get back clean English JSON:

- **Is this Korean business still operating?** Tax registration status from the National Tax Service (NTS, 국세청): `active`, `suspended` (휴업), `closed` (폐업) or `not_registered`, with the closure date.
- **What VAT / tax type is it?** General taxpayer, simplified taxpayer, VAT-exempt, non-profit, etc.
- **Who is this company?** English and Korean name, establishment date, industry, employees, average salary, listing market (KOSPI / KOSDAQ / KONEX / unlisted), address, website, auditor and audit opinion — from the Financial Services Commission (FSC, 금융위원회).
- **How big is it?** Optional latest annual summary financials: revenue, operating profit, net income, total assets, liabilities, equity, debt ratio (consolidated and separate).

### Why use this Actor

The Korean public data portal (data.go.kr) only issues API keys to **Korean residents and Korean-registered businesses with Korean identity verification**. Foreign developers, compliance teams and AI agents cannot call these APIs directly. This Actor gives you the same official data with no Korean account, in English, in bulk.

Typical uses:

- **KYB / supplier due diligence** — check that a Korean supplier, customer or marketplace seller is a registered, active business before you pay or onboard them.
- **Invoice and payout checks** — confirm a Korean counterparty's BRN is valid and not closed.
- **Lead and CRM hygiene** — flag closed or suspended Korean companies in a list.
- **Company research** — look up a Korean company's English name, size, listing and headline financials.

### Input

| Field | Type | Description |
|---|---|---|
| `queries` | array of strings | BRNs (10 digits, e.g. `124-81-00998`), CRNs (13 digits, e.g. `130111-0006246`) or company names (e.g. `삼성전자`). Hyphens and spaces are ignored. Up to 1,000 per run. |
| `includeCompanyProfile` | boolean | For BRN queries, also return the company profile when available. Default `true`. Turn off for status-only bulk checks. |
| `includeFinancials` | boolean | Add latest annual summary financials for companies found by CRN or name. Default `false`. |
| `maxMatchesPerName` | integer | For name queries, how many matching companies to return (1–10). Default `3`. |

```json
{
  "queries": ["124-81-00998", "130111-0006246", "삼성전자"],
  "includeFinancials": true
}
```

#### What each query type returns

| You provide | You get |
|---|---|
| **BRN** (사업자등록번호, 10 digits) | Registration status and tax type for any Korean business, including sole proprietors. Plus the company profile (and financials if requested) when the company is in the FSC corporate database. |
| **CRN** (법인등록번호, 13 digits) | Company profile **plus** registration status (the BRN is resolved automatically). Financials if requested. |
| **Company name** | Up to `maxMatchesPerName` matching companies, each with profile and status. |

Company profiles and financials cover companies in the FSC corporate database (listed companies and companies subject to external audit). Small private companies and sole proprietors return status only.

### Output

One dataset item per business. Example:

```json
{
  "query": "124-81-00998",
  "queryType": "business_registration_number",
  "businessRegistrationNumber": "124-81-00998",
  "status": "active",
  "statusKo": "계속사업자",
  "taxType": "vat_general",
  "taxTypeKo": "부가가치세 일반과세자",
  "closedDate": null,
  "taxTypeChangedDate": null,
  "eInvoiceAppliedDate": null,
  "isSummaryTaxPayerUnit": false,
  "company": {
    "corporateRegistrationNumber": "130111-0006246",
    "businessRegistrationNumber": "124-81-00998",
    "nameKo": "삼성전자(주)",
    "nameEn": "SAMSUNG ELECTRONICS CO,.LTD",
    "establishedDate": "1969-01-13",
    "industryKo": null,
    "mainBusinessKo": null,
    "employees": 128881,
    "averageTenureYears": 13.7,
    "averageAnnualSalaryKrw": 158000000,
    "isSme": null,
    "listingMarket": "KOSPI",
    "listingMarketKo": "유가",
    "fiscalYearEndMonth": 12,
    "addressKo": "경기도 수원시 영통구  삼성로 129 (매탄동)",
    "website": "www.samsung.com/sec",
    "auditor": "삼정회계법인",
    "auditOpinionKo": "적정의견",
    "mainBank": null,
    "fssCorpCode": "00126380"
  },
  "financials": [
    {
      "fiscalYear": 2025,
      "statementType": "consolidated",
      "statementTypeKo": "연결요약재무제표",
      "currency": "KRW",
      "revenue": 333605938000000,
      "operatingProfit": 43601051000000,
      "profitBeforeTax": 49481471000000,
      "netIncome": 45206805000000,
      "totalAssets": 566942110000000,
      "totalLiabilities": 130621773000000,
      "totalEquity": 436320337000000,
      "capitalStock": 897514000000,
      "debtRatioPercent": 29.937126905,
      "baseDate": "2025-12-31"
    }
  ],
  "matchRank": null,
  "error": null,
  "sources": [
    "National Tax Service (국세청) business status API via data.go.kr",
    "Financial Services Commission (금융위원회) corporate basic info API via data.go.kr",
    "Financial Services Commission (금융위원회) financial statements API via data.go.kr"
  ],
  "checkedAt": "2026-09-30T15:47:18+00:00"
}
```

#### Status values

| `status` | Meaning |
|---|---|
| `active` | Registered and operating (계속사업자) |
| `suspended` | Temporarily suspended (휴업자) |
| `closed` | Closed (폐업자); see `closedDate` |
| `not_registered` | The BRN is not registered with the NTS |
| `invalid_number` | The BRN check digit is wrong — the number cannot exist. Not charged. |
| `invalid_input` | Not a BRN, CRN or name. Not charged. |
| `company_not_found` | No company matched the CRN or name |
| `no_business_number` | Company found, but no BRN is on record, so status could not be checked |
| `lookup_failed` | The government API returned an error; see `error` |

#### Tax type values (`taxType`)

`vat_general` (일반과세자), `vat_simplified` (간이과세자), `vat_simplified_invoicing` (간이과세자, 세금계산서 발급), `vat_special` (과세특례자), `vat_exempt` (면세사업자), `non_profit_or_public_body`, `registered_organization`, `other`. The original Korean label is always included in `taxTypeKo`.

### Pricing

Pay per event — you only pay for results:

- **business-status** — per business whose registration status was returned
- **company-profile** — per company profile returned
- **financial-summary** — per company with financials returned

Invalid numbers and invalid input are never charged. See the Pricing tab for current prices.

### Data sources and freshness

- **National Tax Service (국세청)** business registration status API, via data.go.kr. Updated about every 30 minutes (new businesses may take 1–2 days).
- **Financial Services Commission (금융위원회)** corporate basic information and financial statements APIs, via data.go.kr. Updated daily (one business day lag).

Both datasets are published by the Korean government under the "no restrictions" (제한 없음) use license.

### Privacy

This Actor returns **company-level data only**. Representative (CEO) names, phone and fax numbers present in the source data are deliberately **removed**. Queries are not stored beyond your own run's dataset.

### Use with AI agents

This Actor is designed to be called by AI agents (MCP, tool calling). One call answers "Is this Korean company real and still operating?" Pass whatever identifier you have — the Actor detects BRN, CRN or name automatically — and read `status` from the result.

### Limitations

- Name search matches the Korean registered name best. English names may not match; use the BRN or CRN when you have it.
- Company profiles exist only for companies in the FSC corporate database (listed and externally audited companies). Sole proprietors return status only.
- Registration status reflects tax registration, not creditworthiness.

# Actor input Schema

## `queries` (type: `array`):

One item per business. Accepts: a 10-digit business registration number (BRN, 사업자등록번호, e.g. 124-81-00998), a 13-digit corporate registration number (CRN, 법인등록번호, e.g. 130111-0006246), or a company name in Korean or as registered (e.g. 삼성전자). Hyphens and spaces are ignored. Up to 1,000 per run.

## `includeCompanyProfile` (type: `boolean`):

For business registration numbers, also look up the company profile (English name, industry, employees, listing, address). Companies outside the FSC corporate database (most sole proprietors and small private firms) return status only. Turn off for faster, cheaper status-only bulk checks.

## `includeFinancials` (type: `boolean`):

For companies found by CRN or name, add the latest available annual summary financials (revenue, operating profit, net income, assets, liabilities, equity, debt ratio; consolidated and separate). Charged as an extra event.

## `maxMatchesPerName` (type: `integer`):

When a query is a company name, return up to this many matching companies (best match first).

## Actor input object example

```json
{
  "queries": [
    "124-81-00998",
    "130111-0006246",
    "삼성전자"
  ],
  "includeCompanyProfile": true,
  "includeFinancials": false,
  "maxMatchesPerName": 3
}
```

# Actor output Schema

## `results` (type: `string`):

One item per Korean business: registration status, tax type, company profile and financials.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "queries": [
        "124-81-00998",
        "130111-0006246"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("kr-data/korea-business-verify").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "queries": [
        "124-81-00998",
        "130111-0006246",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("kr-data/korea-business-verify").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "queries": [
    "124-81-00998",
    "130111-0006246"
  ]
}' |
apify call kr-data/korea-business-verify --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,kr-data/korea-business-verify"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/WENXzyMxJNwc3VUrW/builds/DsUjRgn6CndV30c2X/openapi.json
