Socios y participaciones
Quién es propietario de una empresa y en qué participa ella.
Esta página describe quién es propietario de una empresa y en qué empresas participa ella misma. Cuatro funciones entregan los datos: shareholders (Socios), shareholders_deep (Socios en profundidad), ubos (Titulares reales) y shareholdings (Participaciones). Las respuestas de ejemplo proceden de solicitudes de ejemplo para Hetzner Online GmbH, Ansbach HRB 6089.
Los datos proceden del Handelsregister (Registro Mercantil): de las Gesellschafterlisten (listas de socios) que una GmbH o UG presenta con cada cambio, de los documentos de constitución y de los socios inscritos de las sociedades de personas.
Cada función solo cuesta cuando devuelve datos. Una función que tu plan no incluye la omite la API sin error y no se cobra.
| Función | Qué devuelve | Créditos | Disponible |
|---|---|---|---|
| shareholders | Socios: los socios actuales con sus participaciones y las listas de socios anteriores | 5 | cualquier cuenta · Beta |
| shareholders_deep | Socios en profundidad: titulares con números de participación, desde cuándo tienen participaciones y qué cambió por última vez | 80 | Max |
| ubos | Titulares reales (UBO): las personas detrás de la empresa, calculadas a partir de las listas de socios | 10 | cualquier cuenta · Beta |
| shareholdings | Participaciones: empresas en las que la propia empresa tiene participaciones | 5 | cualquier cuenta · Beta |
Socios por forma jurídica
Lo que dice el registro sobre los propietarios depende de la forma jurídica. La tabla muestra lo que obtienes normalmente.
| Forma jurídica | Socios en la respuesta |
|---|---|
| GmbH, UG | Todos los socios de la lista de socios según § 40 GmbHG, con importe nominal y participación en el Stammkapital (capital social), más las listas anteriores. |
| AG, SE, KGaA | Solo en casos concretos, porque los accionistas de una AG no figuran en ningún registro público. |
| GmbH & Co. KG | Los socios comanditarios (Kommanditisten) del registro con su suma de responsabilidad, en parte también la GmbH socia colectiva. |
| KG, OHG | Los socios inscritos: en una KG los socios colectivos (Komplementäre) y comanditarios, en una OHG los socios con responsabilidad personal. |
| e.K. | El titular. |
| eG | Ninguno. La lista de miembros de una cooperativa no es pública. |
| PartG | Los socios inscritos. |
Socios
La función shareholders devuelve los socios actuales: en una GmbH de la lista de socios más reciente, en sociedades de personas y comerciantes individuales del registro. Cuesta 5 créditos, pero solo cuando nombra socios actuales. Si solo devuelve listas anteriores, no cuesta nada.
Cada entrada de entries describe una persona o una empresa. Una persona tiene first_name, last_name y birth_date; una empresa entity_name, country_code y registration_reference.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: TU_CLAVE_API" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=shareholders'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "TU_CLAVE_API"}, params={ "q": "Hetzner Online GmbH", "feature": ["shareholders"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "shareholders"); const response = await fetch(url, { headers: { "x-api-key": "TU_CLAVE_API" }, }); const data = await response.json();
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholdersobject|null |
Los socios de la empresa: estado actual en entries, estados anteriores en history.Vacío cuando no se conocen socios, por ejemplo en una AG o eGshareholders · Beta |
– |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders.entriesarray | Los socios actuales, una entrada por persona o empresa. | – | como arriba |
| shareholders.entries[].shareholderobject | Quién tiene la participación: una persona o una empresa, con los campos siguientes. | – | como arriba |
| shareholders.entries[].shareholder.entity_idstring|null | ID de la persona o empresa, para su propio perfil de persona o perfil de empresa.Vacío cuando el socio no se pudo asignar con seguridad |
"dd1cfcd3a25b5a63d549d768e2fcaaaf" |
como arriba |
| shareholders.entries[].shareholder.first_namestring | Nombre de pila de una persona, con todos los nombres inscritos. | – |
siempre: e.K. casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders.entries[].shareholder.last_namestring | Apellido de una persona. | – | como arriba |
| shareholders.entries[].shareholder.birth_datestring|null | Fecha de nacimiento de una persona, en el formato YYYY-MM-DD.Vacío cuando el documento no indica fecha de nacimiento | – | como arriba |
| shareholders.entries[].shareholder.entity_namestring | Nombre de una empresa que es socia. |
"ENSoXX GmbH" |
casi siempre: GmbH, UG, GmbH & Co. KG rara vez: AG, SE, KGaA, KG, OHG nunca: e.K., eG, PartG |
| shareholders.entries[].shareholder.country_codestring|null | País de una empresa como código ISO de tres letras (ISO 3166-1 alpha-3), por ejemplo DEU. |
"DEU" |
como arriba |
| shareholders.entries[].shareholder.registration_referencestring|null | Inscripción registral de una empresa como texto, tal como figura en el documento.Vacío cuando el documento no indica inscripción registral, a menudo en empresas extranjeras |
"AG Ansbach HRB 6105" |
como arriba |
| shareholders.entries[].shareholder.addressstring|null | Dirección, lugar de residencia o domicilio como texto, tal como figura en el documento.Vacío cuando el documento no indica dirección |
"Gunzenhausen" |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders.entries[].contributionobject|null | El importe de la participación con amount y currency: en una GmbH el importe nominal de las participaciones, en los comanditarios la suma de responsabilidad inscrita (Haftsumme).Vacío cuando no hay importe inscrito, por ejemplo en socios con responsabilidad personal o el titular de una e.K | – |
casi siempre: GmbH, UG, GmbH & Co. KG a veces: KG, OHG rara vez: AG, SE, KGaA nunca: e.K., eG, PartG |
| shareholders.entries[].contribution_rationumber|null | Participación en el capital como decimal: 1 significa 100 %, 0.245 significa 24,5 %.Vacío cuando no se puede derivar ninguna participación, por ejemplo en sociedades de personas |
0.945 |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders.entries[].roleobject | El cargo: label como código fijo, más de y en con un nombre largo y uno corto, por ejemplo Kommanditist y Kom. | – |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders.entries[].role.labelstring |
El cargo como código fijo. Pueden añadirse valores nuevos.Valores: SHAREHOLDER socio según la lista de socios, LIMITED_PARTNER socio comanditario (Kommanditist), FULLY_LIABLE_PARTNER socio con responsabilidad personal (persönlich haftender Gesellschafter), PARTNER socio de una PartG, OWNER titular de una e.K. |
"SHAREHOLDER" |
como arriba |
| shareholders.total_capitalobject|null | El capital según la lista de socios, con amount y currency, la base para contribution_ratio.Vacío cuando la lista no indica capital, y en sociedades de personas | – |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
Con la entity_id de un socio obtienes su propio perfil de empresa o perfil de persona. Así sigues una cadena de propiedad nivel a nivel.
Historial de socios
shareholders.history llega sin coste adicional. Contiene la fecha de la lista actual y las listas de socios anteriores, las más recientes primero.
En una KG o GmbH & Co. KG, los antiguos socios están en register_ownership, con fechas de entrada y salida del registro. En OHG, PartG y e.K. los encuentras en shareholders_deep.
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholders.historyobject |
Estados anteriores de los socios, sin coste adicional.Vacío cuando no existen estados anteriores; el campo falta entonces, por ejemplo en OHG, PartG o e.Kshareholders · Beta |
– |
casi siempre: GmbH, UG a veces: GmbH & Co. KG, KG, OHG rara vez: AG, SE, KGaA nunca: e.K., eG, PartG |
| shareholders.history.current_as_ofstring|null | Fecha de la lista de socios de la que procede entries.Vacío cuando los socios proceden del registro |
"2015-08-21" |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders.history.pastarray | Listas de socios anteriores, las más recientes primero.Vacío cuando solo existe una lista | – | como arriba |
| shareholders.history.past[].as_ofstring | Fecha de esta lista de socios. |
"2015-07-28" |
como arriba |
| shareholders.history.past[].data.total_capitalobject|null | El capital según esta lista, con amount y currency. Las listas antiguas lo indican en parte en DEM. | – | como arriba |
| shareholders.history.past[].data.shareholdersarray | Los socios según esta lista, con los mismos campos que entries. | – | como arriba |
| shareholders.history.register_ownershipobject | En KG y GmbH & Co. KG: antiguos socios según el registro, en past. | – |
a veces: GmbH & Co. KG, KG, OHG nunca: GmbH, UG, AG, SE, KGaA, e.K., eG, PartG |
| shareholders.history.register_ownership.past[].shareholderobject | El antiguo socio, con los mismos campos que en entries. | – | como arriba |
| shareholders.history.register_ownership.past[].roleobject | Su cargo, estructurado como role en entries. | – | como arriba |
| shareholders.history.register_ownership.past[].effective_fromstring|null | Desde cuándo estaba inscrito, en el formato YYYY-MM-DD. |
"2022-01-07" |
como arriba |
| shareholders.history.register_ownership.past[].effective_tostring|null | Hasta cuándo estaba inscrito. |
"2026-07-06" |
como arriba |
| shareholders.history.register_ownership.past[].effective_to_inferredboolean | true si effective_to está derivado y no inscrito expresamente. |
false |
como arriba |
| shareholders.history.register_ownership.past[].contributionnull | Aquí siempre null. | – | como arriba |
| shareholders.history.register_ownership.past[].contribution_rationull | Aquí siempre null. | – | como arriba |
Socios en profundidad
La función shareholders_deep viene con el plan Max. Cuesta 80 créditos, pero solo cuando el documento actual nombra al menos un titular.
Lee todas las listas de socios de una empresa, no solo la más reciente. Así muestra desde cuándo alguien tiene participaciones, cómo eran los estados anteriores y qué cambió la última lista.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: TU_CLAVE_API" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=shareholders_deep'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "TU_CLAVE_API"}, params={ "q": "Hetzner Online GmbH", "feature": ["shareholders_deep"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "shareholders_deep"); const response = await fetch(url, { headers: { "x-api-key": "TU_CLAVE_API" }, }); const data = await response.json();
El documento. record indica de dónde procede el estado actual, share_capital da el capital según ese documento.
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholders_deepobject|null |
Titulares, participaciones, documentos anteriores y el último cambio.Vacío cuando no se conoce ningún documento actual ni ningún socio inscrito, típico en AG, SE y eGshareholders_deep · desde Max |
– |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.recordobject | El documento del que procede el estado actual: fecha y fuente. | – | como arriba |
| shareholders_deep.record.datestring|null |
La fecha a la que se refiere el documento. Suele ser poco después del cambio que muestra el documento.Vacío cuando los socios proceden del registro (COMMERCIAL_REGISTER) |
"2015-08-18" |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.record.sourcestring |
El tipo de documento.Valores: SHAREHOLDER_LIST lista de socios (Gesellschafterliste), FOUNDING_DOCUMENT documento de constitución, es decir, Musterprotokoll (acta modelo) o Gesellschaftsvertrag (estatutos), COMMERCIAL_REGISTER socios o titulares inscritos en el registro |
"SHAREHOLDER_LIST" |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.share_capitalobject|null | El capital según el documento: value, currency y basis.Vacío cuando el documento no indica capital, y siempre con COMMERCIAL_REGISTER | – |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.share_capital.basisstring |
De dónde procede el importe.Valores: REPORTED indicado en el documento, CALCULATED calculado a partir del número y el importe nominal de las participaciones |
"REPORTED" |
como arriba |
Los titulares. Cada entrada de entries es una línea del documento, la mayor participación primero. Si alguien tiene varias líneas, aparece varias veces en la lista.
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholders_deep.entriesarray |
Los titulares actuales, una línea del documento por entrada, la mayor participación primero.shareholders_deep · desde Max |
– |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.entries[].holderobject | Quién tiene la participación. type determina qué campos siguen. | – | como arriba |
| shareholders_deep.entries[].holder.typestring |
El tipo de titular.Valores: ORGANIZATION empresa u otra organización, PERSON persona física, JOINT participación en comunidad, por ejemplo de una comunidad hereditaria, con members |
"ORGANIZATION" |
como arriba |
| shareholders_deep.entries[].holder.entity_idstring|null | ID del titular, para su propio perfil de empresa o perfil de persona.Vacío cuando el titular no se pudo asignar con seguridad, y siempre con JOINT |
"dd1cfcd3a25b5a63d549d768e2fcaaaf" |
como arriba |
| shareholders_deep.entries[].holder.namestring | El nombre. En titulares asignados, el nombre actual; si no, como en el documento. |
"ENSoXX GmbH" |
como arriba |
| shareholders_deep.entries[].holder.birth_datestring|null | Solo en personas: la fecha de nacimiento.Vacío cuando el documento no la indica | – |
siempre: e.K. casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.entries[].holder.legal_formstring|null | Solo en organizaciones: la forma jurídica como texto, por ejemplo GmbH o Ltd. |
"GmbH" |
casi siempre: GmbH, UG, GmbH & Co. KG rara vez: AG, SE, KGaA, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.entries[].holder.statusstring|null |
Solo en organizaciones: el estado actual en el registro.Vacío cuando el titular no está asignado, y siempre en los documentos anteriores de historyValores: ACTIVE activa, INACTIVE ya no activa, por ejemplo cancelada o fusionada |
"ACTIVE" |
como arriba |
| shareholders_deep.entries[].holder.citystring|null | Domicilio o lugar de residencia. |
"Gunzenhausen" |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.entries[].holder.countrystring|null | País como código ISO de tres letras (ISO 3166-1 alpha-3), por ejemplo DEU, AUT o LUX. |
"DEU" |
como arriba |
| shareholders_deep.entries[].holder.registrationobject|null | Solo en organizaciones: court, register_type y register_number.Vacío cuando no se puede leer ninguna inscripción registral, por ejemplo en muchas empresas extranjeras | – |
casi siempre: GmbH, UG, GmbH & Co. KG rara vez: AG, SE, KGaA, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.entries[].holder.registration_textstring|null | Solo en organizaciones: la inscripción registral como texto, cuando falta registration o no nombra ningún tribunal. |
null |
rara vez |
| shareholders_deep.entries[].rolestring |
El cargo del titular. Pueden añadirse valores nuevos.Valores: SHAREHOLDER socio según la lista de socios o el documento de constitución, LIMITED_PARTNER socio comanditario (Kommanditist), FULLY_LIABLE_PARTNER socio con responsabilidad personal (persönlich haftender Gesellschafter), PARTNER socio de una PartG, OWNER titular de una e.K. |
"SHAREHOLDER" |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.entries[].sincestring|null | Desde cuándo tiene participaciones el titular. En socios inscritos, la fecha de inscripción.Vacío cuando no se puede determinar ninguna fecha, y siempre con JOINT |
"2015-08-18" |
como arriba |
| shareholders_deep.entries[].since_basisstring|null |
Lo seguro que es since.Valores: ENTRY_RECORDED documentado desde esta fecha: la lista anterior aún no nombra al titular, EARLIEST_RECORD ya figura en el documento más antiguo disponible, así que es socio al menos desde esta fecha |
"ENTRY_RECORDED" |
como arriba |
La participación. ownership describe cuánto tiene un titular: en porcentaje, como importe nominal y por los números correlativos de las participaciones.
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholders_deep.entries[].ownershipobject |
La participación del titular.shareholders_deep · desde Max |
– |
casi siempre: GmbH, UG, GmbH & Co. KG, KG, OHG, e.K., PartG rara vez: AG, SE, KGaA nunca: eG |
| shareholders_deep.entries[].ownership.percentagenumber|null | Participación en el capital en porcentaje, de 0 a 100. Es la participación directa, no los derechos de voto.Vacío cuando la participación no se puede determinar de forma fiable, y siempre en socios inscritos de sociedades de personas |
94.5 |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.entries[].ownership.percentage_basisstring|null |
De dónde procede percentage.Valores: REPORTED indicado en el documento o derivado del importe nominal y el capital del documento, CALCULATED calculado a partir del número y el importe nominal de las participaciones |
"REPORTED" |
como arriba |
| shareholders_deep.entries[].ownership.nominal_amountobject|null | Suma de los importes nominales con value y currency. En los comanditarios, la suma de responsabilidad inscrita (Haftsumme).Vacío cuando no se conoce ningún importe | – |
casi siempre: GmbH, UG, GmbH & Co. KG a veces: KG, OHG rara vez: AG, SE, KGaA nunca: e.K., eG, PartG |
| shareholders_deep.entries[].ownership.share_countinteger|null | Número de participaciones (Geschäftsanteile).Vacío cuando el número no se conoce para todas las participaciones |
47250 |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.entries[].ownership.share_rangesarray | Las participaciones por sus números correlativos en la lista, un rango por cada serie de participaciones iguales. | – | como arriba |
| shareholders_deep.entries[].ownership.share_ranges[].frominteger|null | Primer número correlativo del rango. |
1 |
como arriba |
| shareholders_deep.entries[].ownership.share_ranges[].tointeger|null | Último número correlativo del rango. |
47250 |
como arriba |
| shareholders_deep.entries[].ownership.share_ranges[].countinteger|null | Número de participaciones del rango. |
47250 |
como arriba |
| shareholders_deep.entries[].ownership.share_ranges[].nominal_valueobject|null | Importe nominal por participación del rango, con value y currency. | – | como arriba |
Historial y cambios. history contiene los documentos anteriores con los mismos campos. Los titulares aparecen ahí tal como figuraban en el documento de entonces. changes compara el estado actual con el anterior.
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholders_deep.historyarray |
Los documentos anteriores, los más recientes primero, cada uno con record, share_capital y entries. Los antiguos socios inscritos se agrupan en la última entrada.shareholders_deep · desde Max |
– |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.history[].entries[].holder.membersarray | En JOINT: los cotitulares de tipo PERSON u ORGANIZATION, con los mismos campos que holder. | – | rara vez |
| shareholders_deep.history[].entries[].untilstring|null | Solo en el elemento de history con COMMERCIAL_REGISTER: cuándo salió el socio. | – |
a veces: GmbH & Co. KG, KG, OHG, PartG rara vez: e.K. nunca: GmbH, UG, AG, SE, KGaA, eG |
| shareholders_deep.changesobject|null | Qué cambió con el documento actual respecto al anterior.Vacío cuando no hay documento anterior, y cuando el estado actual procede del registro o de un documento de constitución | – |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| shareholders_deep.changes.compared_tostring|null | Fecha del documento anterior. |
"2015-07-16" |
como arriba |
| shareholders_deep.changes.joinedarray | Titulares nuevos: holder con entity_id, type y name, más percentage. | – | como arriba |
| shareholders_deep.changes.leftarray | Titulares que salieron, con la participación que tenían por última vez. | – | como arriba |
| shareholders_deep.changes.changedarray | Titulares cuya participación cambió. | – | como arriba |
| shareholders_deep.changes.changed[].percentage_beforenumber|null | Participación en porcentaje en el documento anterior. |
100 |
como arriba |
| shareholders_deep.changes.changed[].percentage_afternumber|null | Participación en porcentaje en el documento actual. |
5.5 |
como arriba |
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "shareholders_deep": {5 "record": {6 "date": "2015-08-18",7 "source": "SHAREHOLDER_LIST"8 },9 "share_capital": {10 "value": 50000,11 "currency": "EUR",12 "basis": "REPORTED"13 },14 "entries": [15 {16 "holder": {17 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",18 "type": "ORGANIZATION",19 "name": "ENSoXX GmbH",20 "legal_form": "GmbH",21 "status": "ACTIVE",22 "city": "Gunzenhausen",23 "country": "DEU",24 "registration": {25 "court": "Ansbach",26 "register_type": "HRB",27 "register_number": "6105"28 },29 "registration_text": null30 },31 "role": "SHAREHOLDER",32 "ownership": {33 "percentage": 94.5,34 "percentage_basis": "REPORTED",35 "nominal_amount": {36 "value": 47250,37 "currency": "EUR"38 },39 "share_count": 47250,40 "share_ranges": [41 {42 "from": 1,43 "to": 47250,44 "count": 47250,45 "nominal_value": {46 "value": 1,47 "currency": "EUR"48 }49 }50 ]51 },52 "since": "2015-08-18",53 "since_basis": "ENTRY_RECORDED"54 },55 {56 "holder": {57 "entity_id": "08ed5f967956831ca6588930fd2693ed",58 "type": "PERSON",59 "name": "Max Felix Mustermann",60 "birth_date": "1976-01-15",61 "city": "Musterheim",62 "country": "DEU"63 },64 "role": "SHAREHOLDER",65 "ownership": {66 "percentage": 5.5,67 "percentage_basis": "REPORTED",68 "nominal_amount": {69 "value": 2750,70 "currency": "EUR"71 },72 "share_count": 2750,73 "share_ranges": [74 {75 "from": 47251,76 "to": 50000,77 "count": 2750,78 "nominal_value": {79 "value": 1,80 "currency": "EUR"81 }82 }83 ]84 },85 "since": "2015-07-16",86 "since_basis": "EARLIEST_RECORD"87 }88 ],89 "history": [90 {91 "record": {92 "date": "2015-07-16",93 "source": "SHAREHOLDER_LIST"94 },95 "share_capital": {96 "value": 50000,97 "currency": "EUR",98 "basis": "REPORTED"99 },100 "entries": [101 {102 "holder": {103 "entity_id": "08ed5f967956831ca6588930fd2693ed",104 "type": "PERSON",105 "name": "Max Mustermann",106 "birth_date": "1976-01-15",107 "city": null,108 "country": null109 },110 "role": "SHAREHOLDER",111 "ownership": {112 "percentage": 100,113 "percentage_basis": "REPORTED",114 "nominal_amount": {115 "value": 50000,116 "currency": "EUR"117 },118 "share_count": 50000,119 "share_ranges": [120 {121 "from": 1,122 "to": 50000,123 "count": 50000,124 "nominal_value": {125 "value": 1,126 "currency": "EUR"127 }128 }129 ]130 },131 "since": "2015-07-16",132 "since_basis": "EARLIEST_RECORD"133 }134 ]135 }136 ],137 "changes": {138 "compared_to": "2015-07-16",139 "joined": [140 {141 "holder": {142 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",143 "type": "ORGANIZATION",144 "name": "ENSoXX GmbH"145 },146 "percentage": 94.5147 }148 ],149 "left": [],150 "changed": [151 {152 "holder": {153 "entity_id": "08ed5f967956831ca6588930fd2693ed",154 "type": "PERSON",155 "name": "Max Felix Mustermann"156 },157 "percentage_before": 100,158 "percentage_after": 5.5159 }160 ]161 }162 }163}
Frente a shareholders, shareholders_deep añade los números de participación, la fecha desde la que alguien tiene participaciones, los cambios y las participaciones en comunidad con sus miembros. Para comparar entre empresas y años, lo mejor es usar siempre la misma función.
Titulares reales
Los titulares reales son las personas físicas a las que pertenece en última instancia una empresa. La función ubos sigue las listas de socios a través de los niveles de propiedad hasta llegar a las personas. La lista nombra a cada persona con una participación calculada, sin umbral mínimo. Cuesta 10 créditos cuando devuelve datos.
Si una participación no se puede atribuir a una persona, está en unresolved_beneficial_owners con el motivo. A menudo la tiene una empresa extranjera. Nuestros datos cubren empresas alemanas, así que no conocemos los socios de una empresa extranjera. coverage muestra qué porcentaje del capital se atribuye a personas y cuánto queda abierto. Ambos valores no siempre suman 100. Para el resto, los datos de socios no nombran ningún titular.
La función se cobra en cuanto devuelve un resultado. También cuando todas las participaciones están en unresolved_beneficial_owners.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: TU_CLAVE_API" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=ubos'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "TU_CLAVE_API"}, params={ "q": "Hetzner Online GmbH", "feature": ["ubos"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "ubos"); const response = await fetch(url, { headers: { "x-api-key": "TU_CLAVE_API" }, }); const data = await response.json();
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| ubosobject|null |
Los titulares reales, calculados a partir de las listas de socios a través de los niveles de propiedad.Vacío cuando no se puede construir ninguna cadena a partir de listas de socios, por ejemplo en AG, eG o e.Kubos · Beta |
– |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| ubos.beneficial_ownersarray | Las personas a las que pertenece la empresa directamente o a través de otras empresas.Vacío cuando ninguna participación se puede atribuir a una persona | – | como arriba |
| ubos.beneficial_owners[].personobject | La persona, con los campos siguientes. | – |
a veces: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| ubos.beneficial_owners[].person.entity_idstring|null | ID de la persona, para el perfil de persona.Vacío cuando la persona no se pudo asignar con seguridad | – | como arriba |
| ubos.beneficial_owners[].person.namestring | Nombre completo. | – | como arriba |
| ubos.beneficial_owners[].person.name_partsobject | El nombre en partes: given y family, y canonical_name cuando se conoce. | – | como arriba |
| ubos.beneficial_owners[].person.birth_datestring|null | Fecha de nacimiento. | – | como arriba |
| ubos.beneficial_owners[].person.locationobject|null | Lugar de residencia en home: city, county, state y country.Vacío cuando no se conoce ningún lugar de residencia | – | como arriba |
| ubos.beneficial_owners[].ownership_percentagenumber | Participación total de la persona en porcentaje, sumada a través de todos los caminos. |
50 |
como arriba |
| ubos.beneficial_owners[].pathsarray | Cada camino hasta la persona, con la participación a lo largo de ese camino. | – | como arriba |
| ubos.beneficial_owners[].paths[].percentagenumber | Participación en porcentaje que llega por este camino. |
50 |
como arriba |
| ubos.beneficial_owners[].paths[].viaarray | Las empresas de este camino, primero el socio directo de la empresa solicitada (depth 1). Los campos son los mismos que en via de las participaciones sin resolver.Vacío cuando la persona tiene las participaciones directamente | – | como arriba |
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| ubos.unresolved_beneficial_ownersarray |
Participaciones que no se pudieron atribuir a una persona.Vacío cuando todas las participaciones están resueltasubos · Beta |
– |
casi siempre: GmbH, UG rara vez: AG, SE, KGaA, GmbH & Co. KG, KG, OHG nunca: e.K., eG, PartG |
| ubos.unresolved_beneficial_owners[].reasonstring |
Por qué termina aquí la cadena. Pueden añadirse valores nuevos.Valores: unlinked el socio es una empresa que no podemos asignar a una inscripción del registro alemán, normalmente una empresa extranjera. No conocemos sus socios, así que la cadena termina aquí, no_further_shareholder_data el socio es una empresa alemana que conocemos, pero no existe lista de socios para ella, por ejemplo una KG, cycle la cadena vuelve a una empresa que ya está en ella, por ejemplo cuando una empresa tiene participaciones propias, unknown no se sabe nada del socio, ni nombre ni participación |
"cycle" |
como arriba |
| ubos.unresolved_beneficial_owners[].namestring|null | Nombre del socio en el que termina la cadena.Vacío cuando el motivo es unknown |
"ENSoXX Holding AG" |
como arriba |
| ubos.unresolved_beneficial_owners[].entity_idstring|null | Su ID, para su propio perfil de empresa.Vacío cuando el socio no está asignado a ninguna empresa de nuestros datos, es decir, con los motivos unlinked y unknown |
"58d67a0bb99b2bc5644cb8daba58e6a6" |
como arriba |
| ubos.unresolved_beneficial_owners[].legal_formstring|null | Su forma jurídica. |
"AG" |
como arriba |
| ubos.unresolved_beneficial_owners[].addressobject|array | Su dirección con street, house_number, postal_code, city, county, state, country y coordinates.Vacío cuando no se conoce ninguna dirección; el valor es entonces una lista vacía [] | – | como arriba |
| ubos.unresolved_beneficial_owners[].registrationobject|array | Su inscripción registral con court, register_type y register_number, también de registros extranjeros.Vacío cuando no se conoce ninguna inscripción; el valor es entonces una lista vacía [] | – | como arriba |
| ubos.unresolved_beneficial_owners[].ownership_percentagenumber | La participación sin resolver en porcentaje, calculada hasta la empresa solicitada. Puede ser 0. |
0 |
como arriba |
| ubos.unresolved_beneficial_owners[].viaarray | Las empresas por las que pasa la cadena hasta aquí, primero el socio directo de la empresa solicitada.Vacío cuando la participación sin resolver se tiene directamente en la empresa solicitada | – | como arriba |
| ubos.unresolved_beneficial_owners[].via[].depthinteger | El nivel: 1 es un socio directo de la empresa solicitada. Junto a él están el nombre y la entity_id de la empresa. |
1 |
como arriba |
| ubos.unresolved_beneficial_owners[].via[].step_percentagenumber | Participación en porcentaje en este nivel. |
94.5 |
como arriba |
| ubos.coverageobject | Cuánto del capital se atribuye a personas y cuánto queda abierto. Ambos valores no siempre suman 100. | – | como arriba |
| ubos.coverage.resolved_percentagenumber | Atribuido a personas, en porcentaje. |
5.5 |
como arriba |
| ubos.coverage.unresolved_percentagenumber | No atribuido a personas, en porcentaje. |
0 |
como arriba |
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "ubos": {5 "beneficial_owners": [6 {7 "person": {8 "entity_id": "08ed5f967956831ca6588930fd2693ed",9 "name": "Max Felix Mustermann",10 "birth_date": "1976-01-15",11 "name_parts": {12 "given": "Max Felix",13 "family": "Mustermann",14 "canonical_name": "Mustermann, Max Felix"15 },16 "location": {17 "home": {18 "city": "Musterheim",19 "county": "Musterheim (Landkreis)",20 "state": "Bayern",21 "country": "DEU"22 }23 }24 },25 "ownership_percentage": 5.5,26 "paths": [27 {28 "percentage": 5.5,29 "via": []30 }31 ]32 }33 ],34 "unresolved_beneficial_owners": [35 {36 "reason": "cycle",37 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",38 "name": "ENSoXX Holding AG",39 "legal_form": "AG",40 "address": {41 "house_number": "25",42 "street": "Industriestraße",43 "postal_code": "91710",44 "city": "Gunzenhausen",45 "county": "Weißenburg-Gunzenhausen",46 "state": "Bayern",47 "country": "DEU",48 "coordinates": {49 "latitude": 49.12483,50 "longitude": 10.7805251 }52 },53 "registration": {54 "court": "Ansbach",55 "register_type": "HRB",56 "register_number": "6211"57 },58 "ownership_percentage": 0,59 "via": [60 {61 "depth": 1,62 "name": "ENSoXX GmbH",63 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",64 "step_percentage": 94.565 },66 {67 "depth": 2,68 "name": "ENSoXX Holding AG",69 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",70 "step_percentage": 10071 }72 ]73 },74 {75 "reason": "unknown",76 "entity_id": null,77 "name": null,78 "legal_form": null,79 "address": [],80 "registration": [],81 "ownership_percentage": 0,82 "via": [83 {84 "depth": 1,85 "name": "ENSoXX GmbH",86 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",87 "step_percentage": 94.588 },89 {90 "depth": 2,91 "name": "ENSoXX Holding AG",92 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",93 "step_percentage": 10094 }95 ]96 },97 {98 "reason": "unknown",99 "entity_id": null,100 "name": null,101 "legal_form": null,102 "address": [],103 "registration": [],104 "ownership_percentage": 0,105 "via": [106 {107 "depth": 1,108 "name": "ENSoXX GmbH",109 "entity_id": "dd1cfcd3a25b5a63d549d768e2fcaaaf",110 "step_percentage": 94.5111 },112 {113 "depth": 2,114 "name": "ENSoXX Holding AG",115 "entity_id": "58d67a0bb99b2bc5644cb8daba58e6a6",116 "step_percentage": 100117 }118 ]119 }120 ],121 "coverage": {122 "resolved_percentage": 5.5,123 "unresolved_percentage": 0124 }125 }126}
Calculamos los datos a partir de las listas de socios. Los datos sobre titulares reales del Transparenzregister (registro de transparencia) no son de acceso público desde finales de 2022.
Participaciones
La función shareholdings muestra la otra dirección: en qué empresas tiene participaciones la empresa solicitada. Las participaciones proceden de las listas de socios de esas empresas. Cuesta 5 créditos cuando hay participaciones.
curl -G "https://handelsregister.ai/api/v1/fetch-organization" \ -H "x-api-key: TU_CLAVE_API" \ --data-urlencode 'q=Hetzner Online GmbH' \ --data-urlencode 'feature=shareholdings'
import requests response = requests.get( "https://handelsregister.ai/api/v1/fetch-organization", headers={"x-api-key": "TU_CLAVE_API"}, params={ "q": "Hetzner Online GmbH", "feature": ["shareholdings"], }, ) data = response.json()
const url = new URL("https://handelsregister.ai/api/v1/fetch-organization"); url.searchParams.append("q", "Hetzner Online GmbH"); url.searchParams.append("feature", "shareholdings"); const response = await fetch(url, { headers: { "x-api-key": "TU_CLAVE_API" }, }); const data = await response.json();
| Campo | Significado | Ejemplo | Disponibilidad |
|---|---|---|---|
| shareholdingsobject|null |
Las empresas en las que la empresa solicitada tiene participaciones.Vacío cuando no se conoce ninguna participaciónshareholdings · Beta |
– |
casi siempre: AG, SE, KGaA a veces: GmbH, UG rara vez: GmbH & Co. KG, KG, OHG, e.K., eG, PartG |
| shareholdings.holdings.currentarray | Las participaciones actuales, una por empresa. | – | como arriba |
| shareholdings.holdings.current[].organizationobject | La empresa en la que se tienen las participaciones. | – | como arriba |
| shareholdings.holdings.current[].organization.entity_idstring | ID de la empresa, para su perfil de empresa. |
"63529c3a793e9f002196b4fd344e1241" |
como arriba |
| shareholdings.holdings.current[].organization.namestring|null | Nombre de la empresa. |
"Hetzner Cloud GmbH" |
como arriba |
| shareholdings.holdings.current[].organization.legal_formstring|null | Forma jurídica de la empresa. |
"GmbH" |
como arriba |
| shareholdings.holdings.current[].organization.statusstring|null | Estado de la empresa en el registro, por ejemplo ACTIVE. |
"ACTIVE" |
como arriba |
| shareholdings.holdings.current[].organization.addressobject|array | Dirección de la empresa, estructurada como address en los datos básicos.Vacío cuando no se conoce ninguna dirección; el valor es entonces una lista vacía [] | – | como arriba |
| shareholdings.holdings.current[].organization.registrationobject|array | Inscripción registral de la empresa con court, register_type y register_number.Vacío cuando no se conoce ninguna inscripción; el valor es entonces una lista vacía [] | – | como arriba |
| shareholdings.holdings.current[].ownership.percentagenumber|null | Participación en porcentaje: 100 significa 100 %.Vacío cuando la lista no da ninguna participación |
100 |
como arriba |
| shareholdings.holdings.current[].ownership.contributionobject | Importe nominal de las participaciones con amount y currency. | – | como arriba |
| shareholdings.holdings.current[].as_ofstring | Fecha de la lista de socios de la que procede la participación. |
"2017-09-19" |
como arriba |
| shareholdings.summary.total_currentinteger | Número de participaciones actuales. |
2 |
como arriba |
1{2 "entity_id": "94eb910fef13f94585c48c263fa446d4",3 "name": "Hetzner Online GmbH",4 "shareholdings": {5 "holdings": {6 "current": [7 {8 "organization": {9 "entity_id": "63529c3a793e9f002196b4fd344e1241",10 "name": "Hetzner Cloud GmbH",11 "status": "ACTIVE",12 "legal_form": "GmbH",13 "address": {14 "house_number": "12A",15 "street": "Feringastraße",16 "postal_code": "85774",17 "city": "Unterföhring",18 "county": "München (Landkreis)",19 "state": "Bayern",20 "country": "DEU",21 "coordinates": {22 "latitude": 48.17815,23 "longitude": 11.6348724 }25 },26 "registration": {27 "court": "München",28 "register_type": "HRB",29 "register_number": "226782"30 }31 },32 "ownership": {33 "percentage": 100,34 "contribution": {35 "amount": 25000,36 "currency": "EUR"37 }38 },39 "as_of": "2017-09-19"40 },41 {42 "organization": {43 "entity_id": "997f1b8314b8b56573208ae2334abb1d",44 "name": "possum Projekt 1 GmbH",45 "status": "ACTIVE",46 "legal_form": "GmbH",47 "address": {48 "house_number": "169-173",49 "street": "Meisenburgstraße",50 "postal_code": "45133",51 "city": "Essen",52 "county": "Essen",53 "state": "Nordrhein-Westfalen",54 "country": "DEU",55 "coordinates": {56 "latitude": 51.40102,57 "longitude": 6.9580558 }59 },60 "registration": {61 "court": "Essen",62 "register_type": "HRB",63 "register_number": "35604"64 }65 },66 "ownership": {67 "percentage": 100,68 "contribution": {69 "amount": 25000,70 "currency": "EUR"71 }72 },73 "as_of": "2026-08-18"74 }75 ]76 },77 "summary": {78 "total_current": 279 }80 }81}
Las participaciones de una persona están en el perfil de persona, con la misma función.
Estructuras de grupo
Las relaciones de grupo las compones a partir de varios datos. shareholders y shareholdings muestran las participaciones un nivel hacia arriba y hacia abajo, ubos las personas al final de la cadena.
La Red de empresas conecta empresas y personas en dos niveles. Incluye también las empresas vinculadas.
Fusiones, escisiones y otras transformaciones están en Fusiones y adquisiciones.