# Verify a company

> Check a name, number, status and address against the official register and get a clear verdict.

Canonical: https://corpoapi.com/solutions/verify-company

## A verdict you can explain

Verify answers one question: does this company, as described, exist in the register? It resolves the company, runs the checks you asked for, and returns a verdict with the result of each check, so you can explain the decision.

## How to read the verdict

- `verified` means every check you asked for passed.
- `partial` means nothing disagreed, but at least one check could not run. A VAT number the register does not store is a common case.
- `mismatch` means at least one field you passed disagreed with the register.

Because the checks are listed individually, a `mismatch` tells you which field to look at.

## A worked example

Resolve and verify by company number, which is the exact path:

```bash
curl -X POST https://api.corpoapi.com/v1/verify \
  -H "Authorization: Bearer ck_live_..." \
  -d '{"jurisdiction": "se", "company_number": "5560129206", "expected": {"legal_name": "Ahlsell Sverige AB", "status": "active"}}'
```

The company record this resolves to is a real, active entity in the Swedish company register that our own end-to-end checks use:

```json
{
  "jurisdiction": "se",
  "company_number": "5560129206",
  "legal_name": "Ahlsell Sverige AB",
  "status": "active",
  "company_number_scheme": "SE-ORGNR"
}
```

Ask for the same record but with a status the register does not report, and the status check disagrees while the name check still passes. The verdict becomes `mismatch`, and the response shows exactly which check failed.

## What it costs

A `200` that returns a company is one verified company: $0.01 after the first 100 starter calls. A not-found or ambiguous result is free, so a check that finds nothing costs nothing. The same company is billed at most once per UTC day, so re-running verify for a retry does not double the cost.

## A per-check verdict

Verify resolves the company and checks the fields you pass, then returns verified, partial or mismatch with the result of each check.

- Per-check match results
- Exact identifiers, fuzzy names
- Not-found and ambiguous results are free

## The entity step of any onboarding

Verify is the check that gates the rest of a flow: you confirm the counterparty is real and active before you extend credit, open an account or release a payout.

- Customer, merchant and vendor onboarding
- Re-verify an existing book
- Batch up to 100 companies in one call

## FAQ

### What counts as a mismatch?

At least one field you passed disagreed with the register. The response lists each check so you can decide what to do with the result.

### Do you return a score?

You get a per-check breakdown rather than a single opaque score, so the decision stays yours and stays explainable to an auditor.

### Is a failed check billed?

Not when the company was not found or the result was ambiguous. You are billed one verified company only when a check returns a company.
