Custom Entities
Custom entities let you create and manage companies and persons that aren't found in public registries. This is useful for foreign entities, shell companies, or individuals without official identifiers in supported countries.
Custom companies
You can create, update, and delete companies that don't exist in a public registry.
Create a custom company
Use customCompanyCreate to create a company:
mutation CreateCustomCompany {
customCompanyCreate(
where: {
name: "Acme Holdings Ltd"
country: "GB"
orgNumber: "12345678"
legalForm: LIMITED_COMPANY
address: { addressLine: "10 Downing Street", city: "London", zipCode: "SW1A 2AA", country: "GB" }
companyShareholders: []
personShareholders: []
}
) {
success
company {
id
name
}
}
}The returned id can be used in all subsequent operations,
such as adding the company to monitoring or creating reviews.
Create with shareholders
You can specify company and person shareholders at creation time:
mutation CreateCompanyWithOwners {
customCompanyCreate(
where: {
name: "Acme Holdings Ltd"
country: "GB"
companyShareholders: [
{ id: "<parent_company_id>", share: 60.0 }
]
personShareholders: [
{ id: "<person_id>", share: 40.0 }
]
}
) {
success
company {
id
name
}
}
}Update a custom company
Use customCompanyUpdate to modify a custom company's details:
mutation UpdateCustomCompany {
customCompanyUpdate(
where: {
id: "<company_id>"
name: "Acme Holdings International Ltd"
country: "GB"
companyShareholders: []
personShareholders: []
}
) {
success
company {
id
name
}
}
}Delete a custom company
Use customCompanyDelete to remove a custom company:
mutation DeleteCustomCompany {
customCompanyDelete(where: { id: "<company_id>" }) {
success
}
}Custom persons
Custom persons are business persons (officers, shareholders) that you create manually. These differ from private persons — custom persons represent publicly associated individuals in a business context.
Create a custom person
Use customPersonCreate to create a person:
mutation CreateCustomPerson {
customPersonCreate(
where: {
name: "Jane Smith"
citizenship: "GB"
birthDate: { year: 1985, month: 3, day: 15 }
sex: FEMALE
address: [{ addressLine: "10 Downing Street", city: "London", zipCode: "SW1A 2AA", country: "GB" }]
}
) {
success
person {
id
name
}
}
}The returned id can be used when assigning the person as a
shareholder on a custom company.
Update a custom person
Use customPersonEdit to modify a custom person's details:
mutation UpdateCustomPerson {
customPersonEdit(
where: {
id: "<person_id>"
name: "Jane Smith-Johnson"
citizenship: "GB"
birthDate: { year: 1985, month: 3, day: 15 }
sex: FEMALE
address: [{ addressLine: "20 New Street", city: "London", zipCode: "EC2M 4TP", country: "GB" }]
}
) {
success
person {
id
name
}
}
}Delete a custom person
Use customPersonDelete to remove a custom person:
mutation DeleteCustomPerson {
customPersonDelete(where: { id: "<person_id>" }) {
success
}
}Workflow: onboard a foreign entity
A typical workflow for onboarding a company not found in a public registry:
- Create custom persons for known shareholders and officers.
- Create the custom company with shareholders linked.
- Add the company to monitoring using companyAddToMonitoring.
- Create a review using reviewCompanyCreate.
# Step 1: Create a shareholder
mutation Step1 {
customPersonCreate(
where: { name: "Jane Smith", citizenship: "GB", address: [] }
) {
success
person { id }
}
}
# Step 2: Create the company with the shareholder
mutation Step2 {
customCompanyCreate(
where: {
name: "Acme Holdings Ltd"
country: "GB"
companyShareholders: []
personShareholders: [{ id: "<person_id_from_step_1>", share: 100.0 }]
}
) {
success
company { id }
}
}
# Step 3: Start monitoring
mutation Step3 {
companyAddToMonitoring(where: { id: "<company_id_from_step_2>" }) {
success
}
}