Skip to main content

Enterprise Credential Vocabulary

Abstract​

This specification describes an experimental vocabulary for asserting Enterprise Credentials. Enterprises can use these credentials to prove certain claims about themselves to business partners. In addition, Enterprise Credentials can be used for authorisation purposes.

Click here to open the JSON-LD file: oid.jsonld

Use Case and Requirements​

The following vocabulary is derived from the enterprise data collected and managed by the Bundesanzeiger. It provides an overview of the current presentation of existing data and maps it to credential schema definitions (JSON-LD). These can be used to create and define credentials, representing the data schema as the single source of truth for credentials based on these schemas.

Examples​

The examples presented in this section are W3C-Credentials. For brevity, they are shown without proof. W3C-Credentials can be issued using any of the following proofs:

  • LD-Proof
  • JOSE
  • JOSE + "Selective Disclosure for JWTs"

Natural Person Credential​

The following example represents the credential of a Natural Person (NaturalPerson):

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LegalEntityCertificate"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca499c2",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": "NaturalPerson",
"givenName": "JOHN",
"familyName": "DOE",
"gender": "Male",
"birthDate": "1970-01-01",
"domicile": {
"adminUnitL1": "Germany",
"postName": "Berlin",
"postCode": 10119
}
}
}

This particular credential uses key binding to bind the credential to the holder. The holder of this credential is the Natural Person described in the credential subject. Therefore, a DID which is controlled by the Natural Persons is assigned to the term id of the credential subject. This enables the Natural Person to present this credential in form of a verifiable credential.

The following example shows a European Business Wallet Owner Identification Data (EBWOID) Credential:

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.2.jsonld"
],
"type": [
"VerifiableCredential",
"EbwoidCredential"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca499c2",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": "Ebwoid",
"euid": "DEPLPOAG.123456789",
"companyName": "Flower Power AG"
}
}

This credential is bound to the Legal Entity. Therefore, a DID which is under control of the Legal Person is assigned to the term id of the credential subject.

The following example shows a self-signed minimal company identity credential (LegalPersonSelfAttestation). The legal entity issues this credential itself — the issuer DID matches the credential subject DID — and it contains only the EUID and company name:

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LegalPersonSelfAttestation"
],
"id": "urn:uuid:a1b2c3d4-0000-0000-0000-e5f6a7b8c9d0",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:fictive-1",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": "LegalPersonId",
"euid": "DEPLPOAG.123456789",
"companyName": "Flower Power AG"
}
}

Unlike an authority-issued LegalEntityCertificate, the issuer here is the company itself, making this a self-attestation rather than a third-party assertion.

The following example shows a credential which includes two types within the credentialSubject. The LegalPersonBaseData extends the Ebwoid term by additional base data of the enterprise.

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.2.jsonld"
],
"type": [
"VerifiableCredential",
"LeiCredential"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca499c2",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": [
"Ebwoid",
"LegalPersonBaseData"
],
"euid": "DEPLPOAG.123456789",
"companyName": "Flower Power AG",
"companyIdentifier": "urn:mdms:12345678",
"address": {
"type": "oid:LegalPersonAddress",
"addressArea": "Friedrichswerder",
"adminUnitL1": "Germany",
"adminUnitL2": "Berlin",
"locatorDesignator": "33",
"postCode": 10119,
"postName": "Berlin",
"thoroughfare": "Unter den Linden"
},
"registerIdentification": {
"registerType": "ABC123",
"registerTypeDescription": "Amtsgericht Tiergarten",
"registerLocation": "Berlin, Moabit",
"registerNumber": "123AVB",
"companyId": "ACDC",
"companyIdCountryCode": "DE"
},
"previousName": ["AL", "DI"],
"status": "active",
"liquidationStatus": "none",
"insolvencyStatus": "none",
"legalForm": "GmbH",
"isFoundation": false,
"isNfrdObligated": false,
"isTrust": false,
"businessObject": "Trading Company",
"registrationDate": "2010-01-01",
"exchange": {
"name": "Boerse Stuttgart",
"country": "Germany",
"marketIdentificationCode": "AA",
"tickerSymbol": "BB"
},
"isin": "1234567890",
"vatId": "22222ABC",
"ekrn": "3333",
"regulator": {
"name": "BaFin",
"regulatorId": "DeBa",
"description": "Int. Trade"
},
"wz2008": {
"type": "Industry",
"code": "IT",
"industryDescription": "Tech Int. Trade"
},
"nace020": {
"type": "Industry",
"code": "IT",
"industryDescription": "Tech Int. Trade"
},
"lei": "ABC988",
"leiStatus": "active",
"leiNextIssuance": "2027-01-10"
}
}

This example shows a credential which holds the complete information about an enterprise in the credential subject including the relations to other legal entities.

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LegalEntityCertificate"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca499c2",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": [
"LegalPersonId",
"LegalPersonBaseData",
"LegalPerson"
],
"euid": "ANY EUID",
"companyName": "Flower Power AG",
"companyIdentifier": "urn:mdms:12345678",
"address": {
"addressArea": "Friedrichswerder",
"adminUnitL1": "Germany",
"adminUnitL2": "Berlin",
"locatorDesignator": "33",
"postCode": 10119,
"postName": "Berlin",
"thoroughfare": "Unter den Linden"
},
"registerIdentification": {
"registerType": "ABC123",
"registerTypeDescription": "Amtsgericht Tiergarten",
"registerLocation": "Berlin, Moabit",
"registerNumber": "123AVB",
"companyId": "ACDC",
"companyIdCountryCode": "DE"
},
"previousName": ["AL", "DI"],
"status": "active",
"liquidationStatus": "none",
"insolvencyStatus": "none",
"legalForm": "GmbH",
"isFoundation": false,
"isNfrdObligated": false,
"isTrust": false,
"businessObject": "Trading Company",
"registrationDate": "2010-01-01",
"exchange": {
"name": "Boerse Stuttgart",
"country": "Germany",
"marketIdentificationCode": "AA",
"tickerSymbol": "BB"
},
"isin": "1234567890",
"vatId": "22222ABC",
"ekrn": "3333",
"regulator": {
"name": "BaFin",
"regulatorId": "DeBa",
"description": "Int. Trade"
},
"wz2008": {
"@type": "Industry",
"code": "IT",
"description": "Tech Int. Trade"
},
"nace020": {
"@type": "Industry",
"code": "IT",
"description": "Tech Int. Trade"
},
"lei": "ABC988",
"leiStatus": "active",
"leiNextIssuance": "2027-01-10",
"businessYear": {
"revenue": "2933",
"currency": "EUR",
"employeeCount": "39",
"balance": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"date": "2024-01-01"
},
"ultimateBeneficiaryOwner": {
"naturalPersonId": "did:key:fictive-2",
"capital": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"shareRelativeDirect": "20"
},
"votingRights": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"votingRightsRelative": "20",
"shareRelativeDirect": "20",
"otherControlReason": "20"
},
"otherControl": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"shareRelativeDirect": "20"
},
"fictitious": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"shareRelativeDirect": "20"
}
},
"functionary": {
"legalEntityId": "did:key:fictive-3",
"role": "CEO",
"isAuthorizedRepresentative": true,
"isExclusionOfParagraph181": false,
"authorizationExtent": "full"
},
"shareholder": {
"@type": "Shareholder",
"legalEntityId": "did:key:fictive-4",
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelative": "20"
},
"generalPartner": {
"@type": "Shareholder",
"legalEntityId": "did:key:fictive-6",
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
}
},
"directParentCompany": "did:key:fictive-7",
"ultimateParentCompany": "did:key:fictive-8",
"handoverFlag": false,
"handoverDescription": "no flag",
"evidence": {
"@type": "Evidence",
"source": "Transparency register",
"verifiedField": ["CEO", "CTO"],
"verificationDate": "2014-01-01"
}
}
}

Concepts​

The Enterprise Credential embeds existing enterprise data into credentials. As a result, the embedded information can be used prove certain claims about the enterprise. It also enables representatives to prove their role within an enterprise to service providers and business partners.

For example, when opening a bank account on behalf of a company, the applicant needs to provide proof of authorisation and company information to undergo a KYC process. Today, this KYC process is mainly a manual endeavour that requires manual labour and involves waiting times. With the presentation of corporate credentials, the process can be fully automated, reducing time, overhead and liability risks. Verifiable credentials permit sharing information based on cryptographically signed data. The enterprise requests the credentials from the Bundesanzeiger receives an Enterprise Credential based on the official registered data. The Bundesanzeiger cryptographically asserts the correctness and authenticity of the data. The enterprise can then use this for further service providers With this setup, the bank institute can validate the data by itself and can check, if the credential was issued by a well known and eligible authority (e.g. the Bundesanzeiger).

Information Model - Enterprise Credential​

Verifiable Credentials​

The Enterprise Credential is a list of LegalEntityCertificate credentials. There are two kinds of legal entities: human and non-human. In law, a human person is called a Natural Person and a non-human person is called a Legal Person. Therefore, there are two types of credential subjects derived from the abstract class LegalEntity:

  • NaturalPerson
  • LegalPerson

Legal Entity Certificate

The full data model of a Legal Person is shown below. There are three types representing a Legal Person depending on the amount of disclosed data:

  • LegalPersonId only containing ID and name of the company
  • LegalPersonBaseData containing only the base data of the Legal Person, mostly describing the Legal Person itself
  • LegalPerson describing the full structure of the Legal Person, including their relationship to other legal entities (Natural Persons and Legal Personss)

Legal Person Inheritance

Please note that an Enterprise Credential issued by the register consists of a list of credentials which contains:

Ebwoid (aka EBWOID)​

The Ebwoid is an unique identifier of a Legal Person, i.e. a corporation, firm or organisation.

Legal Person Id

LegalPersonBaseData​

The LegalPersonBaseData extends the LegalPersonId by base data about the Legal Person.

Legal Person Base Data

LegalPerson​

Legal Persons are entities such as corporations, firms or organisations. They are treated in law as if they were persons. The LegalPerson extends the LegalPersonBaseData by comprehensive data about the Legal Person, like relations to other legal entities.

Legal Person

Natural Person​

Natural persons acquire legal personality "naturally", simply by being born.

Natural Person

Credential Vocabulary​

LegalEntityCertificate​

The LegalEntityCertificate is the top-level credential type for authority-issued Enterprise Credentials describing a legal entity.

KeyValue
TermLegalEntityCertificate
URLhttps://oid.spherity.com/oid#LegalEntityCertificate

LegalPersonSelfAttestation​

A self-signed minimal company identity credential in which the legal entity asserts its own EUID and company name. The issuer DID matches the credential subject DID, distinguishing it from authority-issued credentials. Use this type instead of LegalEntityCertificate when the company itself is the issuer.

A LegalPersonSelfAttestation is required when requesting natural person credentials (e.g. NaturalPerson) on behalf of a legal entity, as it establishes the legal entity's identity without relying on an external authority.

KeyValue
TermLegalPersonSelfAttestation
URLhttps://oid.spherity.com/oid#LegalPersonSelfAttestation

KycCredential​

A Know Your Customer (KYC) credential issued by an authority such as the Bundesanzeiger. Attests that a KYC process has been completed for the subject.

KeyValue
TermKycCredential
URLhttps://oid.spherity.com/oid#KycCredential

LpidCredential​

A Legal Person Identification Data (LPID) credential issued by an authority such as the Bundesanzeiger. Contains the EUID and company name of a legal person.

KeyValue
TermLpidCredential
URLhttps://oid.spherity.com/oid#LpidCredential

EbwoidCredential​

An EBWOID credential issued by an authority such as the Bundesanzeiger. Contains the EUID and company name of a legal person. Successor of LpidCredential.

KeyValue
TermEbwoidCredential
URLhttps://oid.spherity.com/oid#EbwoidCredential

LeiCredential​

A Legal Entity Identifier (LEI) credential issued by an authority such as the Bundesanzeiger. Contains base data of the legal person including the LEI, address, register identification, and related fields.

KeyValue
TermLeiCredential
URLhttps://oid.spherity.com/oid#LeiCredential

euid​

EUID technical structure (source):

<country code><business register code>.<domestic registration number>_<optional validation character>

Example from Bolagsverket: SEBOLREG.5560678965s

KeyValue
Termeuid
URLhttps://oid.spherity.com/oid#euid
Expected Valuestring

otherControlReason​

Reason for Other Control of the Ultimate Beneficial Owner.

KeyValue
TermotherControlReason
URLhttps://oid.spherity.com/oid#otherControlReason
Expected Valuestring

shareRelativeDirect​

Percentage of Direct Shares in the Company Held by the Person.

KeyValue
TermshareRelativeDirect
URLhttps://oid.spherity.com/oid#shareRelativeDirect
Expected Valuestring

votingRightsRelative​

Total Percentage of Voting Rights in the Company Held Directly or Indirectly by the Person.

KeyValue
TermvotingRightsRelative
URLhttps://oid.spherity.com/oid#votingRightsRelative
Expected Valuestring

votingRightsRelativeDirect​

Percentage of Direct Voting Rights of the Company Held by the Person.

KeyValue
TermvotingRightsRelativeDirect
URLhttps://oid.spherity.com/oid#votingRightsRelativeDirect
Expected Valuestring

votingRightsShare​

Total Percentage of Voting Rights in the Company Held Directly or Indirectly by the Person.

KeyValue
TermvotingRightsShare
URLhttps://oid.spherity.com/oid#votingRightsShare
Expected Valuestring

NaturalPerson​

A natural person describes a human who may act as a legal entity.

FieldDescription
familyNameNatural person's family name
givenNameNatural person's given name
genderNatural person's specified gender
birthDateNatural person's birth date
birthPlaceNatural person's birth place
postalAddressNatural person's postal address
taxDomicileNatural person's tax domicile
isAliveIndicates if natural person is alive
jobTitleNatural person's job title
citizenshipNatural person's citizenship
domicileNatural person's current domicile

familyName​

Natural person's family name.

KeyValue
TermfamilyName
URLhttp://schema.org/familyName

givenName​

Natural person's given name.

KeyValue
TermgivenName
URLhttp://schema.org/givenName

gender​

Natural person's specified gender.

KeyValue
Termgender
URLhttp://schema.org/gender

birthDate​

Natural person's birth date.

KeyValue
TermbirthDate
URLhttp://schema.org/birthDate

jobTitle​

Natural person's job title.

KeyValue
TermfamilyName
URLhttp://schema.org/jobTitle

birthPlace​

Natural person's birth place.

KeyValue
TermbirthPlace
URLhttp://schema.org/birthPlace

postalAddress​

Natural person's postal address.

KeyValue
TermpostalAddress
URLhttp://schema.org/PostalAddress

taxDomicile​

Natural person's tax domicile.

KeyValue
TermtaxDomicile
URLhttps://oid.spherity.com/oid#NaturalPerson_taxDomicile
Expected Valuehttp://schema.org/addressCountry

isAlive​

Indicates whether the natural person is alive.

KeyValue
TermisAlive
URLhttps://oid.spherity.com/oid#NaturalPerson_isAlive
Expected Valuehttp://schema.org/Boolean

citizenship​

Natural person's citizenship.

KeyValue
Termcitizenship
URLhttps://oid.spherity.com/oid#NaturalPerson_citizenship
Expected Valuehttp://schema.org/addressCountry

domicile​

Natural person's current domicile.

KeyValue
Termdomicile
URLhttps://oid.spherity.com/oid#NaturalPerson_domicile
adminUnitL1​

Geographical name of the administrative unit (e.g. country)

KeyValue
TermadminUnitL1
URLhttps://oid.spherity.com/oid#NaturalPerson_domicile_adminUnitL1
Expected Valuehttp://www.w3.org/ns/locn#adminUnitL1
postCode​

Post code of the city

KeyValue
TermpostCode
URLhttps://oid.spherity.com/oid#NaturalPerson_domicile_postCode
Expected Valuehttp://www.w3.org/ns/locn#postCode
postName​

Reflects the city name

KeyValue
TermpostName
URLhttps://oid.spherity.com/oid#NaturalPerson_domicile_postName
Expected Valuehttp://www.w3.org/ns/locn#postName

LegalPersonId​

The Legal Person Identification Data uniquely identifies a legal person, as defined by the EWC.

FieldDescription
euidUnique id for legal persons
companyNameName of the company

companyName​

The name of the company as defined in the official company registers.

KeyValue
TermcompanyName
URLhttps://oid.spherity.com/oid#LegalPersonId_companyName
Expected Valuehttps://schema.org/name

Ebwoid​

The EBWOID uniquely identifies a legal person, as defined by the EWC. Successor of LegalPersonId.

FieldDescription
euidUnique id for legal persons
companyNameName of the company

companyName​

The name of the company as defined in the official company registers.

KeyValue
TermcompanyName
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_companyName
Expected Valuehttps://schema.org/name

LegalPersonBaseData​

Description of a Legal Entity according to registry.

Field
companyIdentifier
address
registerIdentification
previousName
status
liquidationStatus
insolvencyStatus
legalForm
isFoundation
isNfrdObligated
isTrust
businessObject
registrationDate
exchange
isin
vatId
ekrn
regulator
wz2008
nace020
lei
isOnOrganizedMarket
leiStatus
leiNextIssuance

companyIdentifier​

The unique identification number provided by Bundesanzeiger Verlag, which identifies the company to be checked (focus Legal Entity) or entity (as part of the MDMS service).

KeyValue
TermcompanyIdentifier
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_companyIdentifier
Expected Valuestring

address​

Address of the Legal Person according to the address in the official register.

KeyValue
Termaddress
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address
adminUnitL1​

Geographical name of the administrative unit (e.g. country)

KeyValue
TermadminUnitL1
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_adminUnitL1
Expected Valuehttp://www.w3.org/ns/locn#adminUnitL1
adminUnitL2​

Geographical name of the administrative unit within the adminUnitL1 (e.g. state)

KeyValue
TermadminUnitL2
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_adminUnitL2
Expected Valuehttp://www.w3.org/ns/locn#adminUnitL2
addressArea​

Area within the post code reagion (e.g. name of village)

KeyValue
TermaddressArea
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_addressArea
Expected Valuehttp://www.w3.org/ns/locn#addressArea
postCode​

Post code of the city

KeyValue
TermpostCode
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_postCode
Expected Valuehttp://www.w3.org/ns/locn#postCode
postName​

Reflects the city name

KeyValue
TermpostName
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_postName
Expected Valuehttp://www.w3.org/ns/locn#postName
thoroughfare​

Reflects the street name

KeyValue
Termthoroughfare
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_thoroughfare
Expected Valuehttp://www.w3.org/ns/locn#thoroughfare
locatorDesignator​

House number and similar

KeyValue
TermlocatorDesignator
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_address_locatorDesignator
Expected Valuehttp://www.w3.org/ns/locn#locatorDesignator

registerIdentification​

Information about the official register in which the focus company is registered.

KeyValue
TermregisterIdentification
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification
FieldDescription
registerTypeRegister code
registerTypeDescriptionRegistration authority
registerLocationName of the district court
registerNumberOfficial identification number
companyIdIdentification number of the company
companyIdCountryCodeCountry code for the identification number
registerType​

Register code in which the focus company is registered according to the official register.

KeyValue
TermregisterType
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification_registerType
Expected Valuestring
registerTypeDescription​

Registration authority where the focus company is registered according to the official register.

KeyValue
TermregisterTypeDescription
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification_registerType
Expected Valuestring
registerLocation​

Name of the district court where the focus company is registered according to the official register.

KeyValue
TermregisterLocation
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification_registerLocation
Expected Valuestring
registerNumber​

Official identification number of the district court where the focus company is registered according to the official register.

KeyValue
TermregisterNumber
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification_registerNumber
Expected Valuestring
companyId​

Identification number of the company in the register (international) according to the official national register.

KeyValue
TermcompanyId
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification_companyId
Expected Valuestring
companyIdCountryCode​

Country code for the identification number of the company in the register (international) according to the official national register.

KeyValue
TermcompanyIdCountryCode
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registerIdentification_companyIdCountryCode
Expected Valuestring

previousName​

Previous registered names of the focus company according to the official register

KeyValue
TermpreviousName
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_previousName
Expected Valuestring

status​

Activity status of the focus company according to the official register.

KeyValue
Termstatus
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_status
Expected Valuestring

liquidationStatus​

Liquidation status of the focus company.

KeyValue
TermliquidationStatus
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_liquidationStatus
Expected Valuestring

insolvencyStatus​

Insolvency status of the focus company.

KeyValue
TerminsolvencyStatus
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_insolvencyStatus
Expected Valuestring

legalForm​

Legal form of the focus company according to the official register.

KeyValue
TermlegalForm
URLhttps://oid.spherity.com/oid#legalForm
Expected Valuestring

isFoundation​

Indicates whether the focus company is a foundation.

KeyValue
TermisFoundation
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_isFoundation
Expected Valuehttps://schema.org/Boolean

isNfrdObligated​

Indicates whether the focus company is required to report under the Nfrd (Non financial reporting directive) with regard to the new CSRD - Corprate Sustainability Reporting Directive.

KeyValue
TermisNfrdObligated
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_isNfrdObligated
Expected Valuehttps://schema.org/Boolean

isTrust​

Indicates whether the focus company is a trust.

KeyValue
TermisTrust
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_isTrust
Expected Valuehttps://schema.org/Boolean

businessObject​

Description of the type of business activities of the company, including the type and purpose according to the official register.

KeyValue
TermbusinessObject
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_businessObject
Expected Valuestring

registrationDate​

Date the company was registered.

KeyValue
TermregistrationDate
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_registrationDate
Expected Valuehttps://schema.org/date

exchange​

Stock exchange of the focus Legal Entity.

KeyValue
Termexchange
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_exchange
FieldDescription
nameName of the stock exchange
countryCountry of the stock exchange
marketIdentificationCodeStock exchange identification code
ticketSymbolStock ticker symbol
marketIdentificationCode​

Stock exchange identification code of the focus Legal Entity.

KeyValue
Termcountry
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_exchange_marketIdentificationCode
Expected Valuestring
tickerSymbol​

Stock ticker symbol of the focus Legal Entity.

KeyValue
TermticketSymbol
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_exchange_tickerSymbol
Expected Valuestring

isin​

ISIN - international securities identification number for the uniquely identified security of the focus Legal Entity.

KeyValue
Termisin
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_isin
Expected Valuestring

ekrn​

EKRN (Uniform and Continuous Legal Entity Number) is the identification number assigned to the focus company by the transparency register upon initial registration.

KeyValue
Termekrn
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_ekrn
Expected Valuestring

regulator​

Descriptions of the responsible regulator.

KeyValue
Termregulator
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_regulator
FieldDescription
nameRegulator name
regulatorIdAssigned ID
descriptionClassification of the type of entity
regulatorId​

Identification of whether the company is registered with BaFin (Federal Financial Supervisory Authority in Germany).

KeyValue
TermregulatorId
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_regulator_regulatorId
Expected Valuestring
description​

Classification of the type of entity according to BaFin (Federal Financial Supervisory Authority in Germany) definition.

KeyValue
Termdescription
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_regulator_description
Expected Valuestring
wz2008​

wz2008 industry description.

KeyValue
Termwz2008
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_wz2008
Expected Valuehttps://oid.spherity.com/oid#Industry
nace020​

nace020 industry description.

KeyValue
Termnace020
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_nace020
Expected Valuehttps://oid.spherity.com/oid#Industry

lei​

Company ID according to LEI (Legal Entity Identifier).

KeyValue
Termlei
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_lei
Expected Valuestring

isOnOrganizedMarket​

Company ID according to LEI (Legal Entity Identifier).

KeyValue
TermisOnOrganizedMarket
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_isOnOrganizedMarket
Expected Valuehttps://schema.org/Boolean

leiStatus​

Status of the LEI (Legal Entity Identifier).

KeyValue
TermleiStatus
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_leiStatus
Expected Valuestring

leiNextIssuance​

Next date for a new LEI (Legal Entity Identifier) issuance.

KeyValue
TermleiNextIssuance
URLhttps://oid.spherity.com/oid#LegalPersonBaseData_leiNextIssuance
Expected Valuehttps://schema.org/date

Industry​

Description of Industries according defined by different authorities.

KeyValue
TermIndustry
URLhttps://oid.spherity.com/oid#Industry

code​

Standardized industry code.

KeyValue
Termcode
URLhttps://oid.spherity.com/oid#Industry_code
Expected Valuestring

industryDescription​

Standardized industry description.

KeyValue
TermindustryDescription
URLhttps://oid.spherity.com/oid#Industry_description
Expected Valuestring

LegalPerson​

Description of a Legal Person, including its business details and ownership information.

FieldDescription
businessYearInformation about the business year, including revenue, currency, employee count, balance, and date
ultimateBeneficiaryOwnerDetails of the ultimate beneficiary owner, including person, capital, voting rights, other control, and fictitious entries
functionaryInformation about the functionary associated with the Legal Person
shareholderInformation about shareholders
generalPartnerInformation about general partners
directParentCompanyInformation about the direct parent company
ultimateParentCompanyInformation about the ultimate parent company
handoverFlagIndicator whether there is a handover
handoverDescriptionDescription of the handover
evidenceEvidence related to the Legal Person

businessYear​

Details about the business year of the Legal Person.

KeyValue
TermbusinessYear
URLhttps://oid.spherity.com/oid#LegalPerson_businessYear
FieldDescription
revenueRevenue of the Legal Entity during the business year
currencyCurrency of the revenue
employeeCountNumber of employees during the business year
balanceBalance information for the business year
dateDate of the financial statements
revenue​

Revenue of the Legal Entity during the business year.

KeyValue
Termrevenue
URLhttps://oid.spherity.com/oid#LegalPerson_businessYear_revenue
Expected Valuestring
employeeCount​

Number of employees during the business year.

KeyValue
TermemployeeCount
URLhttps://oid.spherity.com/oid#LegalPerson_businessYear_employeeCount
Expected Valuestring
balance​

Balance information for the business year.

KeyValue
Termbalance
URLhttps://oid.spherity.com/oid#LegalPerson_businessYear_balance
Expected Valuehttps://oid.spherity.com/oid#Balance

ultimateBeneficiaryOwner​

Details of the ultimate beneficiary owner.

KeyValue
TermultimateBeneficiaryOwner
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner
FieldDescription
naturalPersonIdNatural person Id of the ultimate ultimate beneficiary owner
natureOfInterestElement used to provide information about nature of interest
descriptionTextual description of the entity
ownershipTypeDirect or indirect ownership
registrableDateDate of UBO registration
inactiveDateSpecifies when the entity became inactive
lastChangeDateLast date the UBO information was changed
capitalDetails about the capital held by the ultimate beneficiary owner
votingRightsInformation about the voting rights held by the ultimate beneficiary owner
otherControlOther control details of the ultimate beneficiary owner
fictitiousFictitious details of the ultimate beneficiary owner
natureOfInterest​

The element is used to provide information about nature of interest.

KeyValue
TermnatureOfInterest
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_natureOfInterest
Expected Valuestring
description​

Optional textual description of the entity.

KeyValue
Termdescription
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_description
Expected Valuestring
ownershipType​

Specifies if the ownership is direct or indirect.

KeyValue
TermownershipType
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_ownershipType
Expected Valuestring
registrableDate​

Specifies the date the UBO was first registered.

KeyValue
TermregistrableDate
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_registrableDate
Expected Valuehttp://schema.org/Date
inactiveDate​

Specifies the date the UBO became inactive.

KeyValue
TerminactiveDate
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_inactiveDate
Expected Valuehttp://schema.org/Date
lastChangeDate​

Specifies the date the UBO was last modified.

KeyValue
TermlastChangeDate
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_lastChangeDate
Expected Valuehttp://schema.org/Date
naturalPersonId​

Unique Id of the person who is the ultimate beneficiary owner. This Id is the Id of the credentials subject information of the natural person certificate providing all natural person information.

KeyValue
TermnaturalPersonId
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_naturalPersonId
Expected ValueDID
capital​

Details about the capital held by the ultimate beneficiary owner.

KeyValue
Termcapital
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_capital
FieldDescription
shareInformation about the share held
votingRightsRelativeDirectRelative direct voting rights
shareRelativeDirectRelative direct share
share​
warning

This term appears multiple times in the document. Needs to be reviewed.

Information about the share held by the ultimate beneficiary owner.

KeyValue
Termshare
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_capital_share
Expected Valuehttps://oid.spherity.com/oid#Share
votingRights​

Information about the voting rights held by the ultimate beneficiary owner.

KeyValue
TermvotingRights
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_votingRights
FieldDescription
shareInformation about the share of voting rights
votingRightsRelativeDirectRelative direct voting rights
votingRightsRelativeRelative voting rights
shareRelativeDirectRelative direct share
otherControlReasonReason for other control
share​
warning

This term appears multiple times in the document. Needs to be reviewed.

Information about the share of voting rights held by the ultimate beneficiary owner.

KeyValue
Termshare
URLhttps://oid.spherity.com/oidLegalPerson_ultimateBeneficiaryOwner_votingRights_share
Expected Valuehttps://oid.spherity.com/oid#Share
otherControl​

Other control details of the ultimate beneficiary owner.

KeyValue
TermotherControl
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateBeneficiaryOwner_otherControl
FieldDescription
shareInformation about the share
votingRightsRelativeDirectRelative direct voting rights
shareRelativeDirectRelative direct share
fictitious​

Fictitious details of the ultimate beneficiary owner.

KeyValue
Termfictitious
URLhttps://oid.spherity.com/oidLegalPerson_ultimateBeneficiaryOwner_fictitious
FieldDescription
shareInformation about the share
votingRightsRelativeDirectRelative direct voting rights
shareRelativeDirectRelative direct share
share​
warning

This term appears multiple times in the document. Needs to be reviewed.

Information about the share in fictitious control.

KeyValue
Termshare
URLhttps://oid.spherity.com/oid#fictitiousShareLegalPerson_ultimateBeneficiaryOwner_fictitious_share)
Expected Valuehttps://oid.spherity.com/oid#Share

functionary​

Information about the functionary associated with the Legal Person

KeyValue
Termfunctionary
URLhttps://oid.spherity.com/oid#LegalPerson_functionary
FieldDescription
legalEntityIdLegal entity id of the functionary
roleRole of the functionary
isAuthorizedRepresentativeIndicator if the functionary is an authorized representative
isExclusionOfParagraph181Indicator if the functionary is excluded from Paragraph 181
authorizationExtentExtent of the functionary's authorization
legalEntityId​

Legal entity of the functionary.

KeyValue
TermlegalEntityId
URLhttps://oid.spherity.com/oid#LegalPerson_functionary_legalEntityId
Expected ValueDID
role​

Role of the functionary.

KeyValue
Termrole
URLhttps://oid.spherity.com/oid#LegalPerson_functionary_role
Expected Valuestring
isAuthorizedRepresentative​

Indicator if the functionary is an authorized representative.

KeyValue
TermisAuthorizedRepresentative
URLhttps://oid.spherity.com/oid#LegalPerson_functionary_isAuthorizedRepresentative
Expected Valuehttps://schema.org/Boolean
isExclusionOfParagraph181​

Indicator if the functionary is excluded from Paragraph 181.

KeyValue
TermisExclusionOfParagraph181
URLhttps://oid.spherity.com/oid#LegalPerson_functionary_isExclusionOfParagraph181
Expected Valuehttps://schema.org/Boolean
authorizationExtent​

Extent of the functionary's authorization.

KeyValue
TermauthorizationExtent
URLhttps://oid.spherity.com/oid#LegalPerson_functionary_authorizationExtent
Expected Valuestring

shareholder​

Information about shareholders.

KeyValue
Termshareholder
URLhttps://oid.spherity.com/oid#LegalPerson_shareholder
Expected Valuehttps://oid.spherity.com/oid#Shareholder

generalPartner​

Information about general partners.

KeyValue
TermgeneralPartner
URLhttps://oid.spherity.com/oid#LegalPerson_generalPartner
Expected Value[https://oid.spherity.com/oid#Shareholder

directParentCompany​

Unique Id of the direct parent company. This Id is the Id of the credential subject of the legal entity certificate.

KeyValue
TermdirectParentCompany
URLhttps://oid.spherity.com/oid#LegalPerson_directParentCompany
Expected ValueDID

ultimateParentCompany​

Unique Id of the ultimate parent company. This Id is the Id of the credential subject of the legal entity certificate.

KeyValue
TermultimateParentCompany
URLhttps://oid.spherity.com/oid#LegalPerson_ultimateParentCompany
Expected ValueDID

handoverFlag​

Indicator whether there is a handover.

KeyValue
TermhandoverFlag
URLhttps://oid.spherity.com/oid#LegalPerson_handoverFlag
Expected Valuehttps://schema.org/Boolean

handoverDescription​

Description of the handover.

KeyValue
TermhandoverDescription
URLhttps://oid.spherity.com/oid#LegalPerson_handoverDescription
Expected Valuestring

evidence​

Evidence related to the Legal Entity.

KeyValue
Termevidence
URLhttps://oid.spherity.com/oid#LegalPerson_evidence
Expected Valuehttps://oid.spherity.com/oid#Evidence

Balance​

Balance information for the Legal Entity.

KeyValue
TermBalance
URLhttps://oid.spherity.com/oid#Balance
FieldDescription
amountAmount of the balance
currencyCurrency of the balance
amount​

Amount of the balance.

KeyValue
Termamount
URLhttps://oid.spherity.com/oid#Balance_amount
Expected Valuestring

Share​

Information about shares.

KeyValue
TermShare
URLhttps://oid.spherity.com/oid#Share
FieldDescription
relativeRelative share value
absoluteAbsolute share value
absoluteInEurAbsolute share value in EUR
isDirectShareIndicator if it is a direct share
relative​

Relative share value.

KeyValue
Termrelative
URLhttps://oid.spherity.com/oid#Share_relative
Expected Valuestring
absolute​

Absolute share value.

KeyValue
Termabsolute
URLhttps://oid.spherity.com/oid#Share_absolute
Expected Valuehttps://oid.spherity.com/oid#Balance
absoluteInEur​

Absolute share value in EUR.

KeyValue
TermabsoluteInEur
URLhttps://oid.spherity.com/oid#Share_absoluteInEur
Expected Valuehttps://oid.spherity.com/oid#Balance
isDirectShare​

Indicator if it is a direct share.

KeyValue
TermisDirectShare
URLhttps://oid.spherity.com/oid#Share_isDirectShare
Expected Valuehttps://schema.org/Boolean

Shareholder​

Information about shareholders.

KeyValue
TermShareholder
URLhttps://oid.spherity.com/oid#Shareholder
FieldDescription
legalEntityIdLegal entity Id of the shareholder
shareShare information
votingRightsRelativeRelative voting rights
legalEntityId​
warning

This term should be checked

Legal Entity Id of the shareholder. This Id is the Id of the credential subject of the legal entity certificate.

KeyValue
TermlegalEntityId
URLhttps://oid.spherity.com/oid#Shareholder_legalEntityId
Expected ValueDID
share​
warning

This term appears multiple times in the document. Needs to be reviewed

Share information of the shareholder.

KeyValue
Termshare
URLhttps://oid.spherity.com/oid#Shareholder_share
Expected Valuehttps://oid.spherity.com/oid#Share

ShareholderLegalPerson​

Information about Legal Persons who are shareholders.

KeyValue
TermShareholderLegalPerson
URLhttps://oid.spherity.com/oid#ShareholderLegalPerson
FieldDescription
handoverHandover information
handoverDescriptionDescription of the handover
shareholderInformation about the shareholder
generalPartnerInformation about the general partner
handover​

Handover information for the Legal Person.

KeyValue
Termhandover
URLhttps://oid.spherity.com/oid#ShareholderLegalPerson_handover
Expected Valuehttps://schema.org/Boolean
handoverDescription​

Description of the handover.

KeyValue
TermhandoverDescription
URLhttps://oid.spherity.com/oid#ShareholderLegalPerson_handoverDescription
Expected Valuestring
shareholder​

Information about the shareholder.

KeyValue
Termshareholder
URLhttps://oid.spherity.com/oid#ShareholderLegalPerson_shareholder
Expected Valuehttps://oid.spherity.com/oid#Shareholder
generalPartner​

Information about the general partner.

KeyValue
TermgeneralPartner
URLhttps://oid.spherity.com/oid#ShareholderLegalPerson_generalPartner
Expected Valuehttps://oid.spherity.com/oid#Shareholder

Evidence​

Evidence related to the Legal Entity.

KeyValue
TermEvidence
URLhttps://oid.spherity.com/oid#Evidence
FieldDescription
sourceSource of the evidence
verifiedFieldVerified field
verificationDateDate of verification
source​

Source of the evidence.

KeyValue
Termsource
URLhttps://oid.spherity.com/oid#Evidence_source
Expected Valuestring
verifiedField​

Verified field in the evidence.

KeyValue
TermverifiedField
URLhttps://oid.spherity.com/oid#Evidence_verifiedField
Expected Valuestring
verificationDate​

Date of verification.

KeyValue
TermverificationDate
URLhttps://oid.spherity.com/oid#Evidence_verificationDate
Expected Valuehttps://schema.org/date

References​

Annex A - Proof comparison with EBWOID credential​

Annex A.1 - EcdsaSecp256r1Signature2019​

Example of an EBWOID W3C credential protected by a LD-Proof using a EcdsaSecp256r1Signature2019 signature.

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.2.jsonld"
],
"type": [
"VerifiableCredential",
"EbwoidCredential"
],
"credentialSubject": {
"id": "did:key:zDnaeyXvqvYVJhVBe2ysSQ2Z4LwW8L8ZWrkqzsczLTf8PjDGA",
"type": "Ebwoid",
"euid": "HUOCCSZ12345678",
"companyName": "Flower Power AG"
},
"issuer": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP",
"validFrom": "2023-08-24T13:06:21Z",
"proof": {
"@context": "https://www.w3.org/ns/credentials/v2",
"type": "EcdsaSecp256r1Signature2019",
"created": "2023-08-24T13:06:21Z",
"proofPurpose": "assertionMethod",
"verificationMethod": "did:key:zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP#zDnaepBuvsQ8cpsWrVKw8fbpGpvPeNSjVPTWoq6cRqaYzBKVP",
"proofValue": "8upuIPtJVkTkunL9/tKH/cgnVZweG1f8mdMaAdu7KG3zWqfQhKuHuwnjmUttBhdzDhfdVB1qSh/2pcXWgYdQ/w=="
}
}

The holder controls the private key belonging to the credential subject id did:key:zDnaeyXvqvYVJhVBe2ysSQ2Z4LwW8L8ZWrkqzsczLTf8PjDGA. He signs the presentation using this key in order to authenticates as holder against the verifier.

Annex A.2 - Ecdsa 2023 with selective disclosure​

Example of an EBWOID W3C credential including a LD-Proof using a ecdsa-sd-2023 signature. The example uses ecdsa multikeys and uses did:key method for issuer and holder binding.

Specifications:

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.2.jsonld",
"https://w3id.org/security/data-integrity/v2"
],
"credentialSubject": {
"id": "did:key:zDnaeedsxPevxCm5LG4jQHG2DNgHyny9Duis8aGReRoKNaRtL",
"type": "Ebwoid",
"euid": "DEPLPOAG.123456789",
"companyName": "Flower Power AG"
},
"validUntil": "2029-12-03T12:19:52Z",
"validFrom": "2019-12-03T12:19:52Z",
"issuer": "did:key:zDnaekozcqN7AkYygVYGAzdsWGjx4vwAAdaDWWvskYZtU2Lbr",
"type": [
"VerifiableCredential",
"EbwoidCredential"
],
"proof": {
"type": "DataIntegrityProof",
"created": "2024-07-02T09:44:09Z",
"verificationMethod": "did:key:zDnaekozcqN7AkYygVYGAzdsWGjx4vwAAdaDWWvskYZtU2Lbr#zDnaekozcqN7AkYygVYGAzdsWGjx4vwAAdaDWWvskYZtU2Lbr",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0AhVhAcFCTqNxuCDdpt-a3UmSLNklG8Hhtcv0hMTY86vu50BhJWSYcFnXPdGAmv080QVojJW_ZCnSmlKqDQGpgEJUwMFgjgCQDvqVEqlWWu0a8r7af4MCUk1BxtGw5u8ODk0g2cseynBVYIPVGUvZXxhBA1RIVjeDLAJzBJqUj20522DKDvB06_sHmiVhA1smUhQcRrv33Io7_nlEh4MI-gSa72DsrgAAy1sSWsj8sGlbBuPHdf3R0cPUNCmSHot2gnCdz_JQp8GhtLgH5iFhAsFmKHHMRvqxTTcvgumLzsWK6gFm6Jynuab7B3jVVCObxXE9GR1xWkNXe8ghruO4YtNrJHg-JIF1yegMIYoYUIVhAqNGuV0vdHFzRb901HIG7FZkvNKpl85lmm3AroKEukrG5EPeZqCnwjzX0z5OoAdxzzCazogelzBBQ7Muiy9167lhAQPkFnVPzvrg6b2doh1hAy21FuD_a5VnCSui4-QGYfl3OXcWxZepBccb6RMf8VFP3gz8AiSZO7KM0ui-PGF1zP1hAUvsgfxK1o-CKeB7_uVSv34sao5rJFqZMJlw6PzJ1pXR4raTIDxeoJuhSN12vJ09LFbC8nofCE9bMf07R7PDLdlhAz41-iAJcwDR0zZAQ4wUQ2nP1un75wI2mHVn6ur8tDHv40rbvAOUUxHTUXaJfJKEaU1S40TXqiY5ALmkBn1dBrFhA2YYD2TQsziVOaIEB4M5_Bw1qW9yeAqjLjR8eAS2MvmhBLFld95WJuv-SaAjPpGFV0d-RfkPJX-5w3JpfwsKaSlhAIoKxsi3vaDyu2tblaw4SBkJINFvd81dtsJMMHqBucww4nQRzQho03V1okSsqjF4coL4AIqOFHMMQfkgeMiloQFhADpQtf26t-dzariHI0j7oZD6mWQRIvzUYRy53GOywgdRNKQ-D1EkE_kQED9_INUkl99W2pphgDMPrf95d-xA7Q4A"
}
}

Each value under the credential subject can be selective disclosed, by deriving the proof. When leaving out the company name, the derived credential would look like this:

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.2.jsonld",
"https://w3id.org/security/data-integrity/v2"
],
"type": [
"VerifiableCredential",
"EbwoidCredential"
],
"credentialSubject": {
"id": "did:key:zDnaeqfpRavGNV3EiDTZBJ2CTt8nKZDAfAUcaN1bmBEcGsuAN",
"type": "Ebwoid",
"euid": "DEPLPOAG.123456789"
},
"proof": {
"type": "DataIntegrityProof",
"created": "2024-07-02T09:49:49Z",
"verificationMethod": "did:key:zDnaeR4heVyHbhLPyzrzEd8xqupG1VAHj7BHXHu2Sb1FaZWSy#zDnaeR4heVyHbhLPyzrzEd8xqupG1VAHj7BHXHu2Sb1FaZWSy",
"cryptosuite": "ecdsa-sd-2023",
"proofPurpose": "assertionMethod",
"proofValue": "u2V0BhVhACd9JgGb9ITlwa8njCT62JEEeBd8vqM59cg9mRcxkc93mAFB-RRVnxXnxP_OgPo_FYfDzz3tKHLId-r10dKnsT1gjgCQDxX2U4HRo5dnWfzlV7P3YM8kb4KsazrcVRPiAGfkJ1yiFWEBfjd2DuF0NDWJ9B1kskLxmGPERiy1swxygG1St4RNo1rIRK1Q9WMOUJa37YcTkW0LZOD-oxq00ZDNqTUYh4dQgWEDsc6ZgyauIOxq7HbT3RiCMiw88-DpwLtET1E5X2en9AIGD6xe-7CF5w8MHW_fPhNt1kLSk9DLBsFZHNqONhukGWEDM3ABMureZc6aSAUBZKJ0e1ViNWvPnsKwNPcjTllKiHSYShRjIAeo4xWDIc2PtHRpjkbwjOjBz0IVYOwZJGEBIWEDvx8Y8i7HiluG5OPWdaK-qCpzo4UUBOka7AhDeCPrvbEjOzfTDlCuyhQ11LmFh6LP3ZVHygFr-JcBtSIkzfNR8WEDMCCX7vydvzCZm_LV_g1cuviBvfYZp4LmYF2GwwAN1_3nPMifPWnkSzv-AjrU9xqNX7R1Br7zgG-ARllaYhjsGoQBYIOA12z6Y1mILTSgzCbX6prmoaKI7zRZhtmjVxpyZT20mgA"
}
}

Annex A.3 - SD-JWT EBWOID credential​

Example of a SD-JWT credential using ES256. Every disclosure value is hashed with a salt value (minimum 128 bits of cryptographically secure random) using the algorithm defined in _sd_alg. This digest, together with dummy decoy digests, is stored with random order in the token (under _sd) and the nonce is kept secret until disclosure. Keep in mind, the following JSON does not contain any proof nor the disclosure definitions it self. Only the string representation of the JWT token is signed by the issuer and contains the disclosures.

{
"vct": "https://oid.spherity.com/oid#Ebwoid",
"iss": "did:key:zNGbSC9VYff6tTGyp7jPbK5D9BpWMdSMtGdkHd3MDi7QWDPQ2RaaCCXWtaXxo7RGctWKGyGrDr8fmHCa6HX4dsxhw",
"cnf": {
"jwk": {
"key_ops": [
"verify"
],
"ext": true,
"kty": "EC",
"x": "mtXN2SIoPBOl6Ul9sUwZNR3WBYQ8xSMYgARbgp35aco",
"y": "QwXQzHD62zbCQK5Srz8oYoIrrQDlF6nQrD3NvJyih8s",
"crv": "P-256"
}
},
"_sd": [
"09G5wxf4enAsiyQJygcP1BM-AlhVeSYyvWkAlqbtN2E",
"O9x7UwuQHPpX-uQtufKqt_eUg6SiyVuZvzHOJhedN3E",
"SEaUwUR6Z1md0kg2E3u8PxGCP6eld1lvrKpYL0fhTpo",
"TCbyH6UROQc3k_SUVfhMijN_RzoXUS7TXcgPJqyPrnU",
"sgXVCySO78f11XEvBBACI3WTbresOeY3qgeklhyyI_0"
],
"_sd_alg": "SHA-256"
}

This is packed into a JWT token and signed by the issuer. All disclosures are attached to the token as well, separated by ~ character.

eyJ0eXAiOiJzZCtqd3QiLCJhbGciOiJFUzI1NiJ9.eyJ2Y3QiOiJodHRwczovL3NwaGVyaXR5LmdpdGh1Yi5pby9vaWQjTGVnYWxQZXJzb25JZCIsImlzcyI6ImRpZDprZXk6ek5HYlNDOVZZZmY2dFRHeXA3alBiSzVEOUJwV01kU010R2RrSGQzTURpN1FXRFBRMlJhYUNDWFd0YVh4bzdSR2N0V0tHeUdyRHI4Zm1IQ2E2SFg0ZHN4aHciLCJjbmYiOnsiandrIjp7ImtleV9vcHMiOlsidmVyaWZ5Il0sImV4dCI6dHJ1ZSwia3R5IjoiRUMiLCJ4IjoibXRYTjJTSW9QQk9sNlVsOXNVd1pOUjNXQllROHhTTVlnQVJiZ3AzNWFjbyIsInkiOiJRd1hRekhENjJ6YkNRSzVTcno4b1lvSXJyUURsRjZuUXJEM052SnlpaDhzIiwiY3J2IjoiUC0yNTYifX0sIl9zZCI6WyIwOUc1d3hmNGVuQXNpeVFKeWdjUDFCTS1BbGhWZVNZeXZXa0FscWJ0TjJFIiwiTzl4N1V3dVFIUHBYLXVRdHVmS3F0X2VVZzZTaXlWdVp2ekhPSmhlZE4zRSIsIlNFYVV3VVI2WjFtZDBrZzJFM3U4UHhHQ1A2ZWxkMWx2cktwWUwwZmhUcG8iLCJUQ2J5SDZVUk9RYzNrX1NVVmZoTWlqTl9Sem9YVVM3VFhjZ1BKcXlQcm5VIiwic2dYVkN5U083OGYxMVhFdkJCQUNJM1dUYnJlc09lWTNxZ2VrbGh5eUlfMCJdLCJfc2RfYWxnIjoiU0hBLTI1NiJ9.qrnJB0HRL2q03BJ0YLJBH1bco80hr_tfonEdtGBi-q2qaegzqbCNpWc8tHDQpiGah2Gm3Za7uQamHKSO7JukJA~WyI3NDM3ZjQ2ZWZjYzg3M2VkIiwiaWQiLCJkaWQ6a2V5OnpRWno1UWtYYmpRYkhUWU02YzQ1VTg3V3J6RW5SS3NmZzM3U0phdXdrQnJoMmZUTjN3V283UDhLUDhqd1JUTWJGbzZUWU1tQmZCelhyQ1V3RUJtcEMxMVdpIl0~WyIyOGFjZTk5NDAxMzdjOGU3IiwiZXVpZCIsIkRFUExQT0FHLjEyMzQ1Njc4OSJd~WyIyNjRjMDEyMGMzZmZiMzZmIiwiY29tcGFueU5hbWUiLCJGbG93ZXIgUG93ZXIgQUciXQ~WyI2ODY4ZmVmYjIwYmZkNWUwIiwib3B0aW9uYWxGaWVsZCIsIm9wdGlvbmFsIHZhbHVlIl0~

The serialized format for an SD-JWT+KB extends the SD-JWT format by concatenating a Key Binding JWT.

<Issuer-signed JWT>~<Disclosure 1>~<Disclosure 2>~...~<Disclosure N>~<KB-JWT>

So we can split the SD-JWT into the following:

  • eyJ0eXAiOiJzZCtqd3QiLCJhbGciOiJFUzI1NiJ9.eyJ2Y3QiOiJodHRwczovL3NwaGVyaXR5LmdpdGh1Yi5pby9vaWQjTGVnYWxQZXJzb25JZCIsImlzcyI6ImRpZDprZXk6ek5HYlNDOVZZZmY2dFRHeXA3alBiSzVEOUJwV01kU010R2RrSGQzTURpN1FXRFBRMlJhYUNDWFd0YVh4bzdSR2N0V0tHeUdyRHI4Zm1IQ2E2SFg0ZHN4aHciLCJjbmYiOnsiandrIjp7ImtleV9vcHMiOlsidmVyaWZ5Il0sImV4dCI6dHJ1ZSwia3R5IjoiRUMiLCJ4IjoibXRYTjJTSW9QQk9sNlVsOXNVd1pOUjNXQllROHhTTVlnQVJiZ3AzNWFjbyIsInkiOiJRd1hRekhENjJ6YkNRSzVTcno4b1lvSXJyUURsRjZuUXJEM052SnlpaDhzIiwiY3J2IjoiUC0yNTYifX0sIl9zZCI6WyIwOUc1d3hmNGVuQXNpeVFKeWdjUDFCTS1BbGhWZVNZeXZXa0FscWJ0TjJFIiwiTzl4N1V3dVFIUHBYLXVRdHVmS3F0X2VVZzZTaXlWdVp2ekhPSmhlZE4zRSIsIlNFYVV3VVI2WjFtZDBrZzJFM3U4UHhHQ1A2ZWxkMWx2cktwWUwwZmhUcG8iLCJUQ2J5SDZVUk9RYzNrX1NVVmZoTWlqTl9Sem9YVVM3VFhjZ1BKcXlQcm5VIiwic2dYVkN5U083OGYxMVhFdkJCQUNJM1dUYnJlc09lWTNxZ2VrbGh5eUlfMCJdLCJfc2RfYWxnIjoiU0hBLTI1NiJ9.qrnJB0HRL2q03BJ0YLJBH1bco80hr_tfonEdtGBi-q2qaegzqbCNpWc8tHDQpiGah2Gm3Za7uQamHKSO7JukJA
  • ~WyI3NDM3ZjQ2ZWZjYzg3M2VkIiwiaWQiLCJkaWQ6a2V5OnpRWno1UWtYYmpRYkhUWU02YzQ1VTg3V3J6RW5SS3NmZzM3U0phdXdrQnJoMmZUTjN3V283UDhLUDhqd1JUTWJGbzZUWU1tQmZCelhyQ1V3RUJtcEMxMVdpIl0
  • ~WyIyOGFjZTk5NDAxMzdjOGU3IiwiZXVpZCIsIkRFUExQT0FHLjEyMzQ1Njc4OSJd
  • ~WyIyNjRjMDEyMGMzZmZiMzZmIiwiY29tcGFueU5hbWUiLCJGbG93ZXIgUG93ZXIgQUciXQ
  • ~WyI2ODY4ZmVmYjIwYmZkNWUwIiwib3B0aW9uYWxGaWVsZCIsIm9wdGlvbmFsIHZhbHVlIl0

Each disclosure is a base64 encoded value, built out of an array with the following format;

  1. A salt value
  2. claim name
  3. claim value

Example:

["28ace9940137c8e7","euid","DEPLPOAG.123456789"]

A presentation, with key binding for holder enabled, will look like this (decoded JWT content). When using key binding for holder, its important to add the cnf containing the holder jwk, otherwise it will not be valid. Not disclosed fields will be simply left out in the string representation of the JWT presentation:

{
"payload": {
"vct": "https://oid.spherity.com/oid#Ebwoid",
"iss": "did:key:zNGbSC9VYff6tTGyp7jPbK5D9BpWMdSMtGdkHd3MDi7QWDPQ2RaaCCXWtaXxo7RGctWKGyGrDr8fmHCa6HX4dsxhw",
"cnf": {
"jwk": {
"key_ops": [
"verify"
],
"ext": true,
"kty": "EC",
"x": "mtXN2SIoPBOl6Ul9sUwZNR3WBYQ8xSMYgARbgp35aco",
"y": "QwXQzHD62zbCQK5Srz8oYoIrrQDlF6nQrD3NvJyih8s",
"crv": "P-256"
}
},
"id": "did:key:zQZz5QkXbjQbHTYM6c45U87WrzEnRKsfg37SJauwkBrh2fTN3wWo7P8KP8jwRTMbFo6TYMmBfBzXrCUwEBmpC11Wi",
"companyName": "Flower Power AG",
"euid": "DEPLPOAG.123456789"
},
"header": {
"typ": "sd+jwt",
"alg": "ES256"
},
"kb": {
"payload": {
"nonce": "3652191003",
"aud": "https://example.com/verifier",
"iat": 1709576037,
"sd_hash": "r5EFZOtPljnor5IslvxhB-ZkVCp0CWQPrqOowkh3Kuk"
},
"header": {
"typ": "kb+jwt",
"alg": "ES256"
}
}
}

Annex B - EU Company Certificate​

Below we show the EU Core Vocabulary for the EU Company Certificate and how it maps to the OID Vocabulary presented.

EU Core VocabulariesOID Vocabulary
LegalEntity.legalNamecompanyName
LegalEntity.legalFormTypelegalForm
LegalEntity.legalIdentifier.Identifier.notation; Identifier.schemaAgencyregisterNumber
LegalEntity.identifier.Identifier.notationeuid
LegalEntity.registeredAddress.Addressaddress
LegalEntity.registeredAddress.Address OR LegalEntity.contactPoint.ContactPoint.hasEmail?
LegalEntity.registrationDateregistrationDate
LegalEntity.legalEntityStatusstatus
LegalEntity.legalRepresentative?
LegalEntity.legalEntityActivitynace020
LegalEntity.contactPoint.ContactPoint.contactPage?

The presented semantic model enables the efficient issuance of an EU Company Certificate, as presented in the following example:

{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LeiCredential"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca499c2",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": [
"LegalPersonId",
"LegalPersonBaseData"
],
"companyName": "Flower Power AG",
"euid": "HUOCCSZ12345678",
"legalForm": "GmbH",
"registerIdentification": {
"registerNumber": "123AVB"
},
"address": {
"postalCode": "10119",
"addressCountry": "Germany",
"addressLocality": "Berlin"
},
"registrationDate": "2010-01-01",
"status": "active",
"nace020": {
"type": "Industry",
"code": "IT",
"industryDescription": "Tech Int. Trade"
}
}
}

Annex C - Ultimate Beneficial Owner Certificate​

The Ultimate Beneficial Owners (UBOs) can be declared as a subset of the Legal Entity Certificate. In the following we show how to create an UBO credential by presenting the required subset of propterties from our schema. We provide all the required company information such as name and euid and include the list of UBOs. A unique credential is issued for each natural person. As a result, data duplication is prevented and a natural person can be referenced in multiple ways. For example, a natural person can be a UBO and a functionary at the same time.

The following fields are required to an UBO credential:

VocabularyRequired
companyNamemandatory
euidmandatory
legalFormmandatory
addressmandatory
[ultimateBeneficiaryOwner]mandatory
ultimateBeneficiaryOwner_naturalPersonIdmandatory
ultimateBeneficiaryOwner_natureOfInterestmandatory
ultimateBeneficiaryOwner_descriptionoptional
ultimateBeneficiaryOwner_ownershipTypeoptional
ultimateBeneficiaryOwner_registrableDateoptional
ultimateBeneficiaryOwner_inactiveDateoptional
ultimateBeneficiaryOwner_lastChangeDateoptional

For every UBO, a natural person is referenced using the naturalPersonId:

FieldRequired
familyNamemandatory
givenNamemandatory
birthDatemandatory
birthPlaceoptional
postalAddressoptional
taxDomicileoptional
isAliveoptional
citizenshipmandatory
domicilemandatory

The following example shows a credential with two UBOs. The second UBO contains additional optional data. To comply with the defined standard, the mandatory fields must be present. Since the natural person credentials are issued separately, they are referenced and are part of the credential array:

[
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LegalEntityCertificate"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca499c2",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-1",
"type": [
"LegalPersonId",
"LegalPersonBaseData",
"LegalPerson"
],
"companyName": "Flower Power AG",
"euid": "HUOCCSZ12345678",
"legalForm": "GmbH",
"address": {
"postalCode": "10119",
"addressCountry": "Germany",
"addressLocality": "Berlin"
},
"ultimateBeneficiaryOwner": [
{
"naturalPersonId": "did:key:fictive-2",
"natureOfInterest": "control through ownership",
"ownershipType": "direct",
"registrableDate": "2024-07-08"
},
{
"naturalPersonId": "did:key:fictive-3",
"natureOfInterest": "voting rights",
"votingRights": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"votingRightsRelative": "20",
"shareRelativeDirect": "20"
},
"capital": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"shareRelativeDirect": "20"
},
"otherControl": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"shareRelativeDirect": "20"
},
"fictitious": {
"share": {
"@type": "Share",
"relative": "20",
"absolute": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"absoluteInEur": {
"@type": "Balance",
"amount": "399399",
"currency": "EUR"
},
"isDirectShare": true
},
"votingRightsRelativeDirect": "20",
"shareRelativeDirect": "20"
}
}
]
}
},
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LegalEntityCertificate"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca4993",
"validFrom": "2019-12-03T12:19:52Z",
"validUntil": "2029-12-03T12:19:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-2",
"type": "NaturalPerson",
"givenName": "John",
"familyName": "Doe",
"gender": "Male",
"taxDomicile": "DE",
"birthDate": "1970-01-01",
"citizenship": "DE",
"domicile": {
"postalCode": "10119",
"addressCountry": "DE",
"addressLocality": "Berlin"
}
}
},
{
"@context": [
"https://www.w3.org/ns/credentials/v2",
"https://oid.spherity.com/contexts/oid/v1.1.jsonld"
],
"type": [
"VerifiableCredential",
"LegalEntityCertificate"
],
"id": "urn:uuid:f086cced-1153-4540-993b-b4d52ca4994",
"validFrom": "2019-12-03T12:20:52Z",
"validUntil": "2029-12-03T12:20:52Z",
"issuer": "did:key:z6MkiY62766b1LJkExWMsM3QG4WtX7QpY823dxoYzr9qZvJ3",
"credentialSubject": {
"id": "did:key:fictive-3",
"type": "NaturalPerson",
"givenName": "Jane",
"familyName": "Doe",
"gender": "Female",
"birthDate": "1972-01-01",
"isAlive": true,
"citizenship": "FR",
"domicile": {
"postalCode": "10777",
"addressCountry": "DE",
"addressLocality": "Berlin"
}
}
}
]