Attestation Rulebook: eucc

Organisation: webuild-consortium

Attestation Rulebook for attestations of type EU Company Certificate (EUCC)

Category: PuB-EAA

Provide information about the author(s) of this Rulebook in the following form:

Provide versioning information about the Rulebook in the following form:

Feedback: Main feedback channel: GitHub issues Alternative: Contact Business usecase 2 contact points in WE BUILD.

Version Date Description
1.1 2026-10-02 Restructured onto the generic WE BUILD attestation rulebook template (11 chapters). No normative content removed.

Written against: ARF version 3.0.0, WE BUILD template version 1.0 (generic)

Feedback: GitHub issues

Table of contents

  • 1 Introduction
    • 1.1 Document scope and purpose
    • 1.2 Document structure
    • 1.3 Key words
    • 1.4 Terminology
  • 2 Compliance
    • 2.1 Compliance statement
    • 2.2 Regulatory basis
    • 2.3 Traceability
  • 3 Attestation attributes
    • 3.1 Introduction
    • 3.2 Mandatory attributes
    • 3.3 Optional attributes
    • 3.4 Conditional attributes
  • 4 Metadata
    • 4.1 Mandatory metadata
    • 4.2 Optional metadata
    • 4.3 Conditional metadata
    • 4.4 Code lists
    • 4.5 Integrity rules
  • 5 Formats
    • 5.1 SD-JWT VC-based encoding
    • 5.2 ISO/IEC 18013-5-compliant encoding
    • 5.3 W3C Verifiable Credentials Data Model-based encoding
  • 6 Protocols
  • 7 Issuance
    • 7.1 Binding
    • 7.2 Issuance Policy
    • 7.3 Lifecycle management
    • 7.4 Embedded disclosure policy
  • 8 Revocation
  • 9 Presentation
    • 9.1 Presentation Policy
    • 9.2 Presentation modes
    • 9.3 Transactional data
  • 10 Trust Framework
  • 11 References

1 Introduction

1.1 Document scope and purpose

This document is the EU Company Certificate Data Rulebook (referred to as EUCC) based on the EU Company Law regulation. It contains the specific requirements, issuance process, formatting and content of the EUCC. This document is created and used by the WEBUILD consortium to provide a common understanding, data schema, format and usage guidlines for the WEBUILD eco system.

This document MAY be used as one of multiple innputs toward a final EUCC definition for the EBW ecosystem. That is under the sole discreation of the EU commission or any other relevant authority with delgated power from the commission.

This attestation represents a legally valid European Company Certificate (EUCC). It embodies:

  • Information of a legal person registered in a Member State
  • The legal form of the entity
  • The unique company identifier (EUID structure)
  • The Member State of registration
  • The official registered address
  • The registration date
  • The legal status of the entity
  • The main economic activity (e.g. NACE classification)
  • The legal representatives authorized to bind the company
  • The applicable signatory rules

1.2 Document structure

This Rulebook follows the generic WE BUILD attestation rulebook template. Chapter 2 states how it complies with the ARF and the applicable Regulations. Chapters 3 and 4 define the attributes and metadata in an encoding-independent manner. Chapter 5 states the formats in which this attestation is issued. Chapters 6 to 9 cover protocols, issuance, revocation and presentation. Chapter 10 sets out the trust framework, and chapter 11 lists references.

1.3 Key words

This document uses the capitalised key words 'SHALL', 'SHOULD' and 'MAY' as specified in [RFC 2119], to indicate requirements, recommendations and options.

In addition, 'must' (non-capitalised) indicates an external constraint, a requirement not mandated by this document but by an external document. The word 'can' indicates a capability. Other words such as 'will', 'is' and 'are' are statements of fact.

1.4 Terminology

This document uses terminology specified in Regulation (EU) 2024/1183 and Annex 1 of the ARF.

In addition to the attributes definition necessary to understand the data schema, it's important to understand:

Term Definition in WE BUILD Context
Natural person an individual human being who has legal rights and obligations. Unlike a legal person (which refers to an organization or entity), a natural person is a human with the capacity to engage in legal relationships, enter into contracts, own property, and be subject to legal actions. Natural persons are distinct from artificial entities (like corporations or governments). In legal terms, a natural person is someone who exists as a human being, as opposed to a corporate or fictional entity.
Legal person an entity that has legal rights and obligations, similar to a natural person (an individual). It is an organization or group recognized by law as having the capacity to enter into contracts, sue, and be sued, and own property. Legal persons are distinct from the individuals who may own, manage, or be part of them. Examples of legal persons include Corporations, Government agencies, public entities (that are granted legal recognition to act on behalf of the state), Nonprofit organizations A legal person exists as a separate legal entity, meaning it can perform legal actions in its own name, distinct from the actions of its members.
Legal entity an organization or structure that is recognized by law as having legal rights and responsibilities distinct from those of its members or owners. A legal entity can enter into contracts, own property, incur debts, and be held liable for legal actions in its own name. Legal entities include various forms of organizations such as Corporations, Limited liability companies (LLCs), Nonprofit organizations, Partnerships The key characteristic of a legal entity is that it has its own legal existence, allowing it to perform actions independently of the individuals who are involved with it.
Legal representative Natural or legal person authorized to act on behalf of another person or organization in legal matters. This person has the legal authority to represent the interests of the entity, such as a company, in dealings with other parties, including signing contracts, making decisions, and appearing in legal proceedings. For businesses, a legal representative can be a director, officer, or another person designated by the company's governing body (like the board of directors) to represent the company in legal matters. In the case of individuals, a legal representative might include a guardian, power of attorney holder, or someone with similar legal authority to act on behalf of the person.
Signatory rights the authority or power granted to an individual or entity to legally bind an organization or company by signing contracts, agreements, or other formal documents. This authority can be granted to a specific person, such as an executive, director, or authorized representative, and can be either individual (where one person alone can sign) or joint (where multiple individuals are required to sign together). Signatory rights are important because they ensure that any commitments made by the organization are legally valid and enforceable. The terms and scope of signatory rights are usually outlined in the organization's internal governance documents, such as its bylaws, and can vary based on the level of responsibility and the nature of the agreements being signed.

2 Compliance

2.1 Compliance statement

This Rulebook complies with the applicable requirements of Topic 12, Attestation Rulebooks, in Annex 2 of the Architecture and Reference Framework, version 3.0.0. It uses the terminology of Annex 1 of the ARF.

2.2 Regulatory basis

This attestation includes the data required by Annex VII of Regulation (EU) 2024/1183, points a, b, c, e and h, satisfying EW-DM-12-014, EW-DM-12-017, EW-DM-12-019, EW-DM-12-021 and EW-DM-12-023 respectively. It is issued by or on behalf of a public sector body responsible for an authentic source: the business register of the Member State of registration.

2.3 Traceability

Every applicable requirement mapped to the section that satisfies it. Requirements marked not applicable carry a stated reason.

Requirement Legacy ID Applies Satisfied in section Note
EW-DM-12-001 ARB_01a yes 5 SD-JWT VC only; W3C VCDM is not permitted for a PuB-EAA, section 5.3 is retained as an informative working profile
EW-DM-12-002 ARB_01b yes 5 SD-JWT VC following the HAIP profile
EW-DM-12-003 ARB_02 no Proximity presentation is not in scope
EW-DM-12-005 ARB_04 no W3C VCDM is not permitted for a PuB-EAA; see the note in section 5.3
EW-DM-12-006 ARB_05 yes 5 Unique vct for this attestation type
EW-DM-12-007 ARB_06 yes 3 Attributes defined independently of encoding
EW-DM-12-008 ARB_06a no No mdoc encoding is defined in this version
EW-DM-12-009 ARB_06b yes 5 SD-JWT VC claim naming
EW-DM-12-010 ARB_07 yes 3 Attributes reused from the catalogued vocabulary where one exists
EW-DM-12-012 ARB_09 yes 3, 4 Mandatory, optional and conditional stated per attribute
EW-DM-12-013 ARB_10 no No domestic namespace is defined
EW-DM-12-014 ARB_11 yes 3.2 attestation_legal_category carries the Annex VII point a indication
EW-DM-12-015 ARB_12 no Applies to non-qualified EAA only
EW-DM-12-016 / EW-DM-12-017 / EW-DM-12-018 ARB_13 / ARB_14 / ARB_15 yes 2.2, 4.1 Point b, EW-DM-12-017 for a PuB-EAA, through issuing_authority and issuing_country
EW-DM-12-019 / EW-DM-12-020 ARB_16 / ARB_17 yes 2.2, 3.2 Point c, EW-DM-12-019, through the company identification attributes
EW-DM-12-021 / EW-DM-12-022 ARB_18 / ARB_19 yes 2.2, 4.1 Point e, EW-DM-12-021, through expiry_date and the issuance metadata
EW-DM-12-023 / EW-DM-12-024 ARB_20 / ARB_21 yes 4.2, 10 Point h, EW-DM-12-023: trust_anchor locates the qualified certificate that signed the attestation
EW-DM-12-029 ARB_25 yes 4.1 Legal category attribute; see the note in section 4.1
EW-DM-12-030 ARB_26 no Applies to non-qualified EAA only
EW-DM-12-031 ARB_27 no The holder is a legal person identified through the EBWOID; see section 7.1
EW-DM-12-032 ARB_28 no cryptographically_bound_to is not used by this attestation
EW-DM-12-034 ARB_30 yes 5 Selective disclosure stated per claim
EW-DM-12-035 ARB_31 no No Claim Selective Disclosure Metadata document is used
EW-DM-12-038 ARB_34 yes 7.1 Device binding MAY apply; justification in section 7.1

3 Attestation attributes

Attributes are defined here in an encoding-independent manner (EW-DM-12-007). The encoding of each attribute is given in chapter 5.

3.1 Introduction

The attestation attributes are defined in the tables of this chapter. These tables contain the following information:

  • The first column specifies the identifiers of the attestation attributes. The attribute identifiers in this column SHALL be used in requests and responses. There SHALL be at most one attribute with the same attribute identifier in each attestation attribute.
  • The second column describes the meaning of the attribute.
  • The third column specifies whether the presence of the attribute in an attestation is mandatory (M), or optional (O).
    • NOTE: If the table indicates an attribute as mandatory, this solely means that the Issuer SHALL ensure that this element is present in the attestation. It does not imply that a Relying Party is required to request such an attribute when interacting with the Wallet Instance. Neither does it imply that the User cannot refuse to release a mandatory attribute if requested.
  • The fourth column indicates how the data elements SHALL be encoded, using the CDDL representation types defined in [RFC 8610].

3.1.1 Overview attributes attestation

The following table combines all attestation attributes for the EUCC (mandatory, optional, and conditional) in a single overview. Attribute identifiers SHALL be used in requests and responses.

Data Identifier Semantic Reference Definition Optionality Encoding format
attestation_legal_category attestationLegalCategory Pub-EAA; the EUCC is issued as a public sector body EAA M string
legal_person_name legalName Official current legal person name as registered in the business register. M string
legal_person_id legalIdentifier Unique ID for the legal person in the EUID structure. M string
legal_form_type legalForm Legal form of the company. M string
registration_member_state The registration member state information can be retrieved from the EUID. The member state where the company is registered (Alpha-2 country code). M string
registered_address registeredAddress The official address of the company as registered by public authority. See section 3.1.2 M object
registration_date dateOfRegistration Date of company registration. M string (date)
legal_person_status legalStatus Status of the company as defined in national law. M string
legal_person_activity activity Main activity of the company (NACE). M string
legal_representative legalRepresentative Information about the natural or legal person(s) authorized to represent the company. See section 2.4. At least one is required. M array<object>
share_capital subscribedCapital Amount of the subscribed capital with currency. Currency code used of the capital subscribed, as defined in ISO 4217:2015 O object
legal_person_duration endDate Endpoint of the legal duration of the company, if it is of a limited timespan. Given as date following ISO 8601 O string (date)
digital_contact_point contactPoint Correspondence address of the company, such as electronic mail and/or website O object

3.1.2 Address

There is currently no open standard for addresses. As such, the definitions from EWC for company addresses are re-used.

Data Identifier Semantic Reference Definition Optionality Encoding format
full_address fullAddress Complete address of the company, written as a string, separated by semicolons. M string
care_of Used when the address is at the address of another person or legal person. O string
thorough_fare thoroughfare The name of a passage or way through from one location to another. O string
locator_designator locatorDesignator A number or sequence that uniquely identifies the locator. O string
post_code postCode The code created and maintained for postal purposes. O string
post_name postName A name identifying a subdivision of addresses (e.g., city). O string
post_office_box poBox A location designator for a postal delivery point at a post office. O string
locator_name locatorName Proper noun(s) applied to the real-world entity. O string
admin_unit_level_1 adminUnitL1 The uppermost administrative unit (typically country). O string
admin_unit_level_2 adminUnitL2 Secondary level/region (typically county or state). O string

3.2 Mandatory attributes

3.3 Optional attributes

3.4 Conditional attributes

If a Natural Person is representative of a legal person, the following attributes SHALL be included:

Data Identifier Semantic Reference Definition Optionality Encoding format
full_name Person.fullName Full name of the natural person representing the company. M string
date_of_birth Person.dateOfBirth Date of birth of the natural person representing the company. M string (date)
identifier legalRepresentativeId Natural person representative or national identifier O string
nationality Person.citizenship OPTIONAL: Nationality of the natural person representing the company. O string
signatory_rule scopeOfAuthorization Information on whether the representative can engage the company alone or jointly. M string

If a Legal Person is representative of a legal person, the following attributes SHALL be included:

Data Identifier Semantic Reference Definition Optionality Encoding format
name EconomicOperator.legalName Details about the legal person representing the company. M string
id legalRepresentativeId Unique ID for the legal person in the EUID structure. M string
legal_form_type EconomicOperator.legalForm Legal form of the legal person representing the company. M string
signatory_rule scopeOfAuthorization Information on whether the representative can engage the company alone or jointly. M string

A combination of natural and legal persons can be legal representatives of a legal person.

4 Metadata

Metadata describes the attestation rather than its subject.

4.1 Mandatory metadata

Data Identifier Semantic Reference Definition
expiry_date cred:validUntil Date (and if possible time) when the attestation will expire. Does not need to be an atribute and can be covered by credentialformat metadata, such as for example the "exp" field on the sd-jwt format.
issuing_authority cred:issuer.legalName Name of the administrative authority that issued the eucc, or the ISO 3166 alpha-2 country code of the respective Member State if there is no separate authority entitled to issue the EUCC.
issuing_country cred:issuer.jurisdiction Alpha-2 country code, as specified in ISO 3166-1, of the country or territory of the provider of the person identification data.

Legal category. This Rulebook retains the attestation_legal_category attribute. Section 4.1 of the generic template replaces it with the category attribute of [ETSI TS 119 472-1], whose value for this category is urn:etsi:esi:eaa:eu:pub. EW-DM-12-029, legacy ARB_25, of ARF version 3.0.0 is a SHALL that still requires attestation_legal_category, so the template and the ARF disagree. The attribute is left as written and the deviation is recorded for the rulebook quality assurance group.

4.2 Optional metadata

4.3 Conditional metadata

Data Identifier Semantic Reference Definition
location_status cred:credentialStatus The location of validity status information on the person identification data where the providers of person identification data revoke person identification data. This attribute is required when the the time validity time periode of the attestation exceeds 24 hours.
trust_anchor cred:termsOfUse This attribute indicates at least the URL at which a machine-readable version of the trust anchor to be used for verifying the EUCC can be found or looked up. *Note: This attribute corresponds to the location meant in Annex V point h) or Annex VII point h) of the [European Digital Identity Regulation], which is mandatory for QEAAs. This Rulebook adds this as an optional attribute for EUCCs as well, so EUCC Providers are able to ensure that EUCCs can be validated by Relying Parties in the same manner as QEAAs.

4.4 Code lists

The following code lists apply to specific attributes:

legal_person_status

Examples (Member-State specific):

  • active
  • dissolved
  • in_liquidation
  • insolvent
  • struck_off

legal_person_activity

Values:

  • NACE codes (EU)
  • ATECO (Italy)

registration_member_state

ISO 3166-1 alpha-2 country codes

signatory_rule

Values:

  • sole
  • joint
  • joint_two
  • joint_all
  • limited

4.5 Integrity rules

  • registration_member_state MUST be a valid ISO 3166-1 alpha-2 code.
  • registration_date MUST be equal to or earlier than the issuance date of the attestation.
  • legal_person_id MUST follow the EUID structure.
  • At least one legal_representative MUST be present.
  • signatory_rule MUST be defined for each legal representative.

5 Formats

Format Supported Identifier Specification Notes
ISO/IEC 18013-5 mdoc no [ISO/IEC 18013-5] Not defined; no proximity presentation requirement, see section 5.2
SD-JWT VC yes vct uri:eu.eudi.eucc.1 [SD-JWT VC], [HAIP] SHALL follow the HAIP profile, see section 5.1
W3C VCDM no [W3C VCDM v2.0] Not permitted for a PuB-EAA (EW-DM-12-001); section 5.3 is an informative working profile

5.1 SD-JWT VC-based encoding

The EUCC attestation uses the SD-JWT VC format to allow for selective disclosure of company attributes. Selective Disclosure: Claims of EUCC SHALL NOT be selectively disclosable to preserve the legally mandated content of the EUCC.

The . notation is used to indicate the nesting of attributes.

Verifiable Credential Type (vct): uri:eu.eudi.eucc.1

Data Identifier Attribute identifier Encoding format Reference/Notes
attestation_legal_category attestation_legal_category string Pub-EAA as defined by eIDAS 2
issuing_authority iss string RFC 7519 / Section 2.6
expiry_date exp number RFC 7519 / Section 2.6 (Unix timestamp)
issuing_country issuing_country string ISO 3166-1 alpha-2
legal_person_name legal_person_name string Official current legal person name as registered in the business register.
legal_person_id legal_person_id string EUID
legal_form_type legal_form_type string Legal form of the company.
registration_member_state registration_member_state string The member state where the company is registered (Alpha-2 country code).
registration_date registration_date string ISO 8601 (YYYY-MM-DD)
legal_person_status legal_person_status string
legal_person_activity legal_person_activity object The NACE code describing the main activity
legal_person_activity.code legal_person_activity.code string
legal_person_activity.description legal_person_activity.description string
legal_person_duration legal_person_duration date Given as date following ISO 8601
registered_address registered_address object See section 3.1.2 for structure
registered_address.full_address registered_address.full_address string
registered_address.care_of registered_address.care_of string
registered_address.thorough_fare registered_address.thorough_fare string
registered_address.locator_designator registered_address.locator_designator string
registered_address.post_code registered_address.post_code string
registered_address.post_name registered_address.post_name string
registered_address.post_office_box registered_address.post_office_box string
registered_address.locator_name registered_address.locator_name string
registered_address.admin_unit_level_1 registered_address.admin_unit_level_1 string
registered_address.admin_unit_level_2 registered_address.admin_unit_level_2 string
legal_representative legal_representative array Array of natural/legal persons
legal_representative.legal_person legal_representative.legal_person object
legal_representative.legal_person.name legal_representative.legal_person.name string
legal_representative.legal_person.id legal_representative.legal_person.id string
legal_representative.legal_person.formtype legal_representative.legal_person.formtype string
legal_representative.legal_person.signatory_rule legal_representative.legal_person.signatory_rule string
legal_representative.natural_person legal_representative.natural_person object
legal_representative.natural_person.full_name legal_representative.natural_person.full_name string
legal_representative.natural_person.identifier legal_representative.natural_person.identifier string Natural person representative identifier
legal_representative.natural_person.date_of_birth legal_representative.natural_person.date_of_birth string
legal_representative.natural_person.nationality legal_representative.natural_person.nationality string
legal_representative.natural_person.signatory_rule legal_representative.natural_person.signatory_rule string
share_capital share_capital object
share_capital.amount share_capital.amount string
share_capital.currency share_capital.currency string
digital_contact_point digital_contact_point object
digital_contact_point.website digital_contact_point.website string
digital_contact_point.email digital_contact_point.email string
location_status status object See chapter 3.2.3

5.1.1 Attribute status

For SD-JWT VC-compliant EUCCs, the EUCC MUST include a status claim if the technical validity period is greater than 24 hours. This claim enables Relying Parties to determine if a credential has been revoked via a status list mechanism, as specified in SD-JWT VC.

The status claim SHALL be a JSON object with the following members:

  • status_list (object): the reference to this EUCC's entry in a Token Status List, as specified in CS-10 of the WE BUILD conformance specifications and in the IETF Token Status List.
  • status_list.idx (integer, >= 0): the index of this EUCC in the status list.
  • status_list.uri (string, URI): the URI of the Status List Token.

Example:

{
  "status": {
    "status_list": {
      "idx": 42,
      "uri": "https://issuer.example.com/statuslists/1"
    }
  }
}

5.1.2 Example Payload

Sample payloads provided under ../../data-schemas/sd-jwt-vc/sample-data/ds004-eucc-sd-jwt-sample.json

5.2 ISO/IEC 18013-5-compliant encoding

ISO/IEC 18013-5 (also called mdoc) is out of scope for this rulebook, as offline proximity presentation is not a current requirement for EUCC.

5.3 W3C Verifiable Credentials Data Model-based encoding

Note: EW-DM-12-001 (ARB_01a) permits the W3C Verifiable Credentials Data Model format for non-qualified EAA only. As a PuB-EAA the EUCC is not issued in this format. The encoding below is retained as an informative working profile of the EU Business Wallet ecosystem, pending a consortium decision, and the deviation is recorded for the rulebook quality assurance group.

W3C Verifiable Credentials are serialized using linked data (JSON-LD). Ontologies (vocabularies) are used to semantically define the different aspects of credentials including the credential subject. Validation of data structures is optional. If required, either JSON-schemes (data structure) are SHACL (data graph) can be used to validate data - see Data Schemas.

Metadata

The metadata of an W3C Verifiable Credential are defined in the Verifiable Credentials Vocabulary v2.0. The following extensions are defined in the European Business Wallet Vocabulary in order to support Electronic Attestions of Attributes:

Credential Subject

There are two different flavors of European Company Certificates:

  • for limited liability companies and
  • for partnerships.

Both are modeled by their own classes:

Holder Binding

EUCC credentials are hold by the organization and their legal representatives. Corresponding key binding is provided by using DID's. Please note that every node of JSON-LD tree is addressable by its own locally or globally unique identifier @id. Using Decentralized Identifiers (DIDs) v1.0 as identifiers allows to cryptographically bind any node to its underlying identity:

example of key binding using DID's:

{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://w3id.org/ebwv/v0.1"
  ],
  "@id": "urn:d5dfeb39-edc7-40b1-a2fc-3968dbd3eac8",
  "@type": [
    "VerifiableCredential",
    "ElectronicAttestationOfAttributes"
  ],
  "attestationLegalCategory": "Pub-EAA",
  "credentialSubject": {
    "@id": "did:key:$publicKeyOfHolder$", // credential subject is bound to organisation
    "@type": [
      "EconomicOperator",
      "Company",
      "Partnership"
    ],
    "legalIdentifier": {
      "@type" : "Euid",
      "@value" : "NOFOR.987654321"
    },
    "legalName": "acme Partnership",
    "legalForm": "Partnership",
    "registeredAddress": {
      "@type":"Address",
      "fullAddress": "Via Appia 123, 00100 Rome, Italy",
      "thoroughfare": "Via Appia",
      "locatorDesignator": "123",
      "postName": "Rome",
      "adminUnitL2": "Lazio",
      "postCode": "00100",
      "adminUnitL1": "IT"
    },
    "partner": [
      {
        "@type": "GeneralPartner",
        "partnerId": "did:key:$publicKeyOfPartner1$" // general partner is bound to natural person 1
      },
      {
        "@type": "LimitedPartner",
        "partnerId": "did:key:$publicKeyOfPartner2$", // limited partner is bound to natural person 2
        "liabilityOrContribution": {
          "@type": "Capital",
          "amount": 100000,
          "currency": "EUR"
        }
      },
      {
        "@type": "StatutoryPartner",
        "partnerId": "did:key:$publicKeyOfPartner3$", // statutory partner is bound to natural person 3
        "role": "Head of HR",
        "scopeOfAuthorization": "Jointly"
      }
    ]
  },
  "validUntil": "2029-12-03T12:19:52Z",
  "validFrom": "2019-12-03T12:19:52Z",
  "issuer": "did:key:$publicKeyOfIssuer$"
}

The Verifiable Credential Data Model (VCDM) doesn't dictate any specific DID-method. Instead, any did method that supports the underlying trust framework and is able to provide the required level of assurance can be used:

  • PKI-Infrastructure (e.g. EU-TLOL based on X.509 certificates): did:key - the public key is directly encoded in the identifier
  • DTL (e.g.: Ethereum): did:ethr
  • European Block Chain Infrastructure: did:ebsi
  • Domain Name System (DNS): did:web
  • Domain Name System verifiable history: did:webvh

Proof mechanisms

The preferred proof mechanism for the EUCC Attesation is ecdsa-sd-2023 as specified in Data Integrity ECDSA Cryptosuites v1.0. ecdsa-sd-2023 supports selective disclosure out of the box. The issuer doesn't need the select disclosable claims, create disclosures or manipulate the payload of the credential. The issuer just applies the ecdsa-sd-2023 data integrity proof to the credential. The holder chooses which claims he wants to disclose and derives a proof from the original assertion proof.

For backward compatibility and for trust frameworks whose policies require a particular proof mechanism, JOSE and SD-JWT as specified in Securing Verifiable Credentials using JOSE and COSE should be supported, too.

The Security Vocabulary is used to embed the proofs into the credentials.

A side-by-side comparision of the proofs is provided in the Verifiable Credentials Data Model v2.0.

Credential status

The EUCC SHALL include a status claim credentialStatus if the technical validity period is greater than 24 hours. This claim enables Relying Parties to determine if a credential has been revoked via a status list mechanism, as specified in Bitstring Status List v1.0.

6 Protocols

This attestation is issued using OpenID for Verifiable Credential Issuance [OpenID4VCI] and presented using OpenID for Verifiable Presentations [OpenID4VP], both as profiled by [HAIP].

7 Issuance

7.1 Binding

Field Value Source
Device-bound MAY EW-DM-12-038
Cryptographically bound to none EW-DM-12-032
Relying Party must also verify a PID no EW-DM-12-031
Binding subject legal person

The EUCC is a legal-person attestation held in an EU Business Wallet and identified through the EBWOID, so the PuB-EAA defaults of binding to a natural person's device and to the PID do not apply. Device binding MAY be applied to the key of the business wallet unit, and no cryptographically_bound_to attribute is used.

7.2 Issuance Policy

The EUCC is intended to be used as a standardised, machine-verifiable proof of a company's incorporation and registered company information, to be presented by a Wallet User to an RP in cross-border and domestic contexts.

Typical scenarios include, but are not limited to:

  • Cross-border business onboarding (B2B): sharing official company registration data during supplier/customer onboarding, procurement qualification, or partner due diligence.
  • Public administration procedures (G2B): providing evidence of registration and company attributes when applying for permits, registrations, notifications, or access to public services.
  • Financial and regulated services: supporting organisational onboarding steps where official company data is required (e.g., account opening or contractual setup), where the RP needs a reliable, registry-backed set of company attributes.
  • Replacement/supplement of national extracts: substituting ad-hoc sharing of national registry extracts (often requiring translation) with a harmonised EUCC attestation.

The EUCC is not intended to be used as a standalone authentication mechanism to log into a company register or to replace processes that legally require a natural person to act and be authenticated in their own right.

Note: The EUCC includes information about legal representation (e.g., legal representatives and signatory rules). This supports business decisions but does not, by itself, prove that the current presenter is one of those representatives unless the RP also performs an appropriate binding to the presenter (typically via PID and/or additional authorisation evidence outside the scope of this rulebook).

Note: The EUCC is intended for online, remote presentation using EUDI Wallet-compatible presentation protocols.

  • The Authentic Source of the data contained in the EUCC MUST be the company register. The company register can or MUST authorize an issuer to issue EUCCs on their behalf.
  • The Issuance SHALL be based on up to date, authoritive data from the authorative source as defined by ????? #TODO
  • The EUCC SHALL be key bound to the wallet, IF the wallet belongs to the company that the EUCC is issued for.
  • If the EUCC is issued to a wallet that is not owned by the company that the EUCC is issued for, the EUCC SHALL NOT be key bound to the wallet.
  • The EUCC SHALL be issued in a format that is compatible with the EUDI Wallet ecosystem (e.g., OpenID4VP profiles adopted by the ecosystem).
  • To recive an EUCC with keybinding, the application shall ensure that the wallet is owned by the company that the EUCC is issued for through presentation, and matching of key material of the European busesiness wallet owner identifaction data (OID). Note If bulk issued to the same wallet, the authorisation process of the OID process SHOULD be considered sufficent for reciept of an EUCC with keybinding in the same transaction.

7.3 Lifecycle management

The issuer sets the validity period of the attestation and reissues it when the underlying facts change, revoking the superseded attestation as described in chapter 8.

7.4 Embedded disclosure policy

This attestation defines no embedded disclosure policy.

8 Revocation

Attestations of this type are revocable. The facts attested by an EU Company Certificate change when the company's registration changes, and the superseded attestation is revoked when a new one is issued (section 7.3).

Revocation status is published using a Token Status List, as specified in CS-10 of the WE BUILD conformance specifications and in the IETF Token Status List. Every revocable EUCC carries a status claim with a status_list object holding the idx of its entry and the uri of the Status List Token (section 5.1.1). The business register that issued the EUCC, or a Status Provider acting on its behalf, publishes the status. The expected time from the registration change to the status list update is to be stated by the authors.

9 Presentation

9.1 Presentation Policy

To verify and validate a received presentation of an attestation of this type, the following steps SHALL be performed:

  1. verify the signature over the attestation using a trust anchor obtained as described in chapter 10;
  2. verify that the attestation is within its validity period;
  3. check revocation status as described in chapter 8, unless the attestation is short-lived, or its remaining lifetime is below the revocation time threshold;
  4. verify device binding where section 7.1 records the attestation as device-bound;
  5. request only those attributes that are necessary for the stated purpose of the transaction, and, where the trust model for this attestation requires Relying Party registration, only those attributes it is registered and authorised to request.

Obligations specific to this attestation type, carried over from the previous version of this Rulebook:

Beyond protocol-level checks, an RP processing an EUCC presentation SHALL perform at least the following controls:

  1. Verify authenticity and integrity

    • Verify the EUCC cryptographic protections (signature/seal chain validation as applicable for the legal category).
    • Verify that the issuer is authorised to issue EUCCs according to the trust anchor mechanism defined in this rulebook (see Chapter 5).
  2. Verify time validity / freshness

    • Verify the EUCC is within its validity period (e.g., using exp in SD-JWT VC).
  3. Check revocation / status (where applicable)

    • Where the EUCC validity exceeds 24 hours and a status mechanism is provided, the RP SHALL check the EUCC validity status using the mechanism defined in Chapter 6.
  4. Process according to purpose limitation

    • RPs SHOULD request and process the EUCC only when needed for the specific transaction, and only for the purpose of the transaction, in line with applicable legal requirements.

EUCC presentation may involve transactional data exchanged as part of the presentation protocol. The following transactional data elements are relevant for EUCC usage:

  • Relying Party request parameters, including the requested credential type(s) and any policy constraints (e.g., requirement to include PID alongside EUCC).
  • Challenge/nonce and session identifiers used to prevent replay and bind the presentation to a specific session.
  • Presentation timestamp (implicit or explicit), to support auditability and freshness validation.
  • Relying Party identification information presented to the Wallet Unit (e.g., RP name, domain, certificate details), to support user transparency and consent decisions.

The specific protocol artefacts and parameter names depend on the adopted OpenID4VP profile(s). This rulebook does not prescribe additional EUCC-specific transactional data beyond what is required by the underlying presentation protocol(s).

9.2 Presentation modes

Remote presentation is in scope. Proximity presentation is in scope only where chapter 5 records an mdoc encoding.

9.3 Transactional data

This Rulebook defines no transactional data.

10 Trust Framework

The trust anchor for this attestation is obtained as described below for a PuB-EAA. The trust anchor location applies in either case.

PuB-EAA

The Relying Party verifies a PuB-EAA by first verifying the signature of the PuB-EAA Provider over the attestation, using the PuB-EAA Provider certificate issued by a qualified trust service provider. It then verifies the signature over that certificate using the corresponding trust anchor from the QTSP Trusted List, as described in section 6.6.3.6 of the ARF main document. Both the PuB-EAA Provider and the QTSP may use an intermediate signing certificate, in which case the trust anchor is used to verify that certificate rather than the attestation directly.

Trust anchor location

The attribute or metadata carrying the trust anchor location contains at least the URL at which a machine-readable version can be found or looked up. For a PuB-EAA this location refers to the qualified certificate that signed the attestation (EW-DM-12-023); in this Rulebook it is the trust_anchor metadata of section 4.2.

Deployment profile

#TODO: the authors are to record how the business registers' certificates are distributed in the WE BUILD deployment, how a Relying Party or Wallet Unit looks them up, and the ordered verification steps.

11 References

Item Reference Standard name/details
[European Digital Identity Regulation] Regulation (EU) 2024/1183 of the European Parliament and of the Council of 11 April 2024 amending Regulation (EU) No 910/2014 as regards establishing the European Digital Identity Framework
[HAIP] Yasuda, K. et al, OpenID4VC High Assurance Interoperability Profile, OpenId Foundation, Version draft-03
[IANA-JWT-Claims] IANA JSON Web Token Claims Registry. Available: https://www.iana.org/assignments/jwt/jwt.xhtml
[ISO/IEC 18013-5] ISO/IEC 18013-5, Personal identification --- ISO-compliant driving licence - Part 5: Mobile driving licence (mDL) application, First edition, 2021-09
[OIDC] Sakimura, N. et al., "OpenID Connect Core 1.0", OpenID Foundation. Available: https://openid.net/specs/openid-connect-core-1_0.html
[RFC 3339] RFC 3339 - Date and Time on the Internet: Timestamps, G. Klyne et al., July 2002
[RFC 8610] RFC 8610 - Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures, H. Birkholz et al., June 2019
[RFC 8943] RFC 8943 - Concise Binary Object Representation (CBOR) Tags for Date, M. Jones et al., November 2020
[RFC 8949] RFC 8949 - Concise Binary Object Representation (CBOR), C. Bormann et al., December 2020
[SD-JWT VC] SD-JWT-based Verifiable Credentials (SD-JWT VC). Available: https://datatracker.ietf.org/doc/draft-ietf-oauth-sd-jwt-vc/, version draft-ietf-oauth-sd-jwt-vc-09
[Topic 7] ARF Annex 2 - Topic 7 - Attestation revocation and revocation checking Available: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a237-topic-7-attestation-revocation-and-revocation-checking
[Topic 10] ARF Annex 2 - Topic 10 - Issuing a PID or attestation to a Wallet Unit: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a2310-topic-10-issuing-a-pid-or-attestation-to-a-wallet-unit
[Topic 12] ARF Annex 2 - Topic 12 - Attestation Rulebooks, Available: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a2312-topic-12-attestation-rulebooks
[Topic 20] ARF Annex 2 - Strong User authentication for electronic payments, Available: https://eu-digital-identity-wallet.github.io/eudi-doc-architecture-and-reference-framework/latest/annexes/annex-2/annex-2-high-level-requirements/#a2320-topic-20-strong-user-authentication-for-electronic-payments
[W3C VCDM v2.0] Sporny, M. et al, Verifiable Credentials Data Model v2.0, W3C Recommendation.