Extract Ultimate Beneficial Owners
Extract Ultimate Beneficial Owners from official registers.
Authorization
api_key Sign up at Kausate.com to get an API key
In: header
Path Parameters
Company ID
Query Parameters
Return result synchronously with 300s timeout. Not recommended: government registries are unreliable and timeouts are common. Use default async mode with webhooks (recommended) or polling using the orderId instead.
falseSet to true for bulk, non-interactive requests. They run at lower priority than interactive requests.
falseHeader Parameters
"2025-04-01"dateOptional customer ID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://api.kausate.com/v2/companies/string/ubo" \ -H "Kausate-Version: 2025-04-01" \ -H "Content-Type: application/json" \ -d '{}'{
"orderId": "co_de_4JFFrsbQ99t1nmRw2JgzmG-ubo-org_01ABC-20240319",
"customerReference": "my-ref-123",
"status": "completed",
"requestTime": "2024-03-19T14:30:22.787045Z",
"responseTime": "2024-03-19T14:32:45.108791Z",
"result": {
"ultimateBeneficialOwnerReport": {
"sources": {
"de-transparenzregister": {
"dataSource": "de-transparenzregister",
"type": "officialRegister",
"name": "Transparenzregister Deutschland",
"jurisdictionCode": "de",
"retrievalTime": "2024-03-19T14:30:50.996406",
"downloadUrl": "https://example.com/path/to/ubo.pdf",
"fileHash": "abc123def456...",
"fileName": "UBO_list_abc123def456.pdf",
"date": {
"original": "2024-03-19",
"normalized": "2024-03-19"
}
}
},
"ultimateBeneficialOwners": [
{
"type": "person",
"person": {
"jurisdictionCode": "de",
"dateOfBirth": {
"original": "1970-01-01",
"normalized": "1970-01-01"
},
"name": {
"firstName": "John",
"lastName": "Doe",
"fullName": "John Doe"
},
"nationalities": [
{
"original": "Germany",
"countryCode": "DE"
}
]
},
"interests": [
{
"type": "shareholding",
"percentage": {
"exact": 25
},
"details": "Direct shareholding"
}
],
"source": "handelsregister_ubo_******"
}
]
}
}
}{
"detail": "Invalid company ID format",
"code": "request.invalid",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "API key is required",
"code": "auth.unauthorized",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "Invalid API key",
"code": "auth.forbidden",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "Company not found",
"code": "company.not_found",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "The order did not complete within the timeout. Retry asynchronously and poll for the result.",
"code": "request.timeout",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": [
{
"loc": [
"body",
"kausateId"
],
"msg": "Field required",
"type": "missing"
}
],
"code": "request.invalid",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "The data source is rate-limiting requests right now, please try again later",
"code": "source.rate_limited",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "An unexpected error occurred. If this persists, please contact support@kausate.com",
"code": "internal.unexpected",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "This capability is offered for the requested jurisdiction but is not usable right now because of a fault on our side. Please contact support@kausate.com",
"code": "capability.not_available",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "Network error while reaching the data source",
"code": "source.network_error",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}{
"detail": "Data source temporarily unavailable",
"code": "source.unavailable",
"request_id": "req_01J8Z5V4Q2X9N7B3C6D1E0F2G4"
}Last updated on
Quote Shareholder Graph ExtensionPOST
Quote what extending a completed shareholder graph would cost — before ordering. Takes the same body as POST /v2/companies/shareholder-graph/{orderId}/extend and resolves exactly which nodes that extension would extend, pricing each at your organization's effective credit price for an extension in the node's jurisdiction. Nodes the extension would skip (and never charge) are listed under `excludedNodes` with the reason. Nothing is ordered or charged. If every requested node is excluded, `orderWouldFail` is `true`: an identical extend order would be accepted but then fail asynchronously instead of completing as a free no-op.
Get Company Report OrderGET
Get the status of a company report order and, once complete, its result.