Dotfile verifies the companies and people a business onboards. A case is one customer under
verification: the companies and individuals it involves, the checks performed on them, and the
decision that closes it. The API covers that lifecycle end to end — creation, check execution,
results, review — and the console acts on the same data, so the two can be mixed on the same case.
Connection details
| Property | Value |
|---|---|
| Base URL | https://api.dotfile.com/v1 |
| Authentication | X-DOTFILE-API-KEY: <your API key>, on every request |
| Transport | HTTPS only; plain HTTP requests fail |
API keys are workspace-wide and generated by an admin in the workspace settings. See
Authentication.
Your first call
A single POST creates the case, the entities it verifies and the checks that verify them.
name is the only required field; template_key determines which checks are created.
curl -X POST https://api.dotfile.com/v1/cases \
-H "X-DOTFILE-API-KEY: $DOTFILE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp onboarding",
"template_key": "kyb_standard",
"companies": [
{
"type": "main",
"name": "Acme Corp",
"country": "FR",
"registration_number": "552100554"
}
]
}'The response contains the complete case: its id, and every company and individual with the id
assigned to it. Checks then run asynchronously, and Webhooks report their
outcome.
The five objects
| Object | Represents | Reference |
|---|---|---|
| Case | One customer under verification, and the unit a decision is recorded against: its entities, their checks, a risk level and a review | The Case object |
| Company | A legal entity inside a case, of type main or affiliated | Create a company |
| Individual | A natural person inside a case | Create an individual |
| Check | One verification, on one entity, with its own settings, result and status | Checks |
| Template | The rules that determine which checks are created, and on which entities | Templates |
A case also carries an external_id of your choosing. Retrieval accepts it in place of the
Dotfile id, so a case can be addressed by the identifier your own system already stores.
Relations
Companies and individuals are connected by relations, not by nesting. A relation carries a role —
shareholder or legal_representative — an ownership percentage and a position. Attributes of
the person rather than of the link, such as is_beneficial_owner, sit on the individual.
A KYB case has one company of type main, any number of affiliated companies, and the
individuals holding or representing them. Finding company data populates
those entities from official registries rather than from user input.
Checks and templates
Nine check types exist: document, id_document, id_verification, ekyc, aml,
company_monitoring, electronic_signature, fraud_database and online_reputation. Checks run
asynchronously, and a check whose provider cannot decide alone reaches a state requiring a verdict,
reported as Check.ReviewNeeded. That verdict is recorded in the console or over the API.
Checks are not normally created one by one. A template targets the main company, affiliated
companies and individuals independently, so passing a template_key at case creation produces the
correct set of checks for every entity in the case.
The API specifications section follows the same structure: one group per object, and inside it
a page per endpoint.
Next
| Page | Covers |
|---|---|
| Start KYB process | The full flow for a company and its ownership chain |
| Start KYC process | The full flow for a single individual |
| Integrating the Dotfile API | Which stages to drive by API, which to leave to the console |
| Webhooks | How results reach you without polling |