12.4. Authentic Source Endpoints¶
12.4.1. e-Service PDND Authentic Source Catalog¶
Public Authentic Sources MUST provide the following e-Service through PDND to provide the Credential Issuer with User's attributes required to the issuance of a Digital Credential.
The e-service is described via an OpenAPI definition where the request, response, and error messages are detailed.
Note
The base OpenAPI Specification is available here.
This OpenAPI specification can be extended by the Authentic Sources, in fact, the array attributeClaims MAY contain additional properties specific to a particular Credential. These additional properties, as defined in the OpenAPI specification, will be inserted into the Credential by the Credential Issuer.
12.4.1.1. Get Attribute Claims¶
Description |
This e-Service provides the Credential Issuer with all attribute claims necessary for the issuance of a Digital Credential. |
|---|---|
Provider |
Authentic Source |
Consumer |
Credential Issuer |
This e-Service MUST be invoked by the Credential Issuer in the following cases:
During the Credential issuance flow to retrieve the Digital Credential dataset(s). In this situation, the
object_idclaim MUST NOT be used in the e-service request payload. The e-service response MUST include all Credential datasets that areVALIDstate and not administratively expired (i.e.,expiry_date> current date of the e-service request).After receiving an update notification through Signal Hub. In this situation, the
object_idclaim MUST be included in the request payload. The e-service response MUST return only the Credential dataset identified by theobject_idclaim independently from its state.
Note
- The Authentic Source and the Credential Issuer MUST implement the necessary logic to keep track of the requests and responses exchanged via this e-Service, in order to be able to correlate them with the related issuance of a Digital Credential. In particular,
both MUST save the
object_idvalue in the payload of the response to manage Signals related to the deferred issuance of a Digital Credential (see Signals Processing). Any subsequent notification related to a specific dataset MUST be handled viaobject_id.the Authentic Source MUST record the datetime value provided within the
last_updatedparameter, which indicates the last time the User's attributes were updated in the Authentic Source's database;the Credential Issuer MUST read the
last_updatedvalue received in the response to be able to check if the User's attributes have changed since the last issuance of a Digital Credential.
12.4.1.2. Credential Lifecycle States Mapping¶
The following mapping and operational logic MUST be applied for the status field in the attributeClaims. The mapping keeps consistency with the Electronic Attestation Lifecycle documented in Digital Credential Lifecycle and with the OpenAPI status Enum.
12.4.1.2.1. Directionality and Responsibility¶
State changes of a Digital Credential at the Credential Issuer level DO NOT imply a change at the Authentic Source. Conversely, any state change of a dataset at the Authentic Source MUST be processed by the Credential Issuer to update the technical Digital Credential status.
12.4.1.2.2. Operational Guidance¶
Technical vs Administrative Validity: Digital Credentials distinguish between a technical validity set by the Credential Issuer (claims
iatandexp) and an administrative validity determined by the Authentic Source (claimsissuance_dateandexpiry_date).Expiry Hierarchy: The technical expiry (
exp) MUST NOT be later than the administrative expiry (expiry_date). For example, a driver's license may be administratively valid for 10 years, while the issued Digital Credential may have a technical expiry of 1 year.Re-issuance: If a Digital Credential reaches its technical expiry (
exp) but the dataset is still administratively valid, the OpenAPI status remainsVALID. That status allows the Digital Credential to be re-issued multiple times within the administrative timeframe.Metadata Verification: The Credential Issuer MUST verify the effective usability by checking both the technical claims and the administrative dates.
Irreversibility: When a Digital Credential moves to
INVALID, that Digital Credential cannot return toVALID. A new issuance afterINVALIDuses a newobject_id. Whenexpiry_datepasses, the Digital Credential keeps its current status.Signal Processing: Signals MUST be processed sequentially. If a Signal invalidates a Digital Credential, subsequent correction Signals for the same object are ignored.
12.4.1.2.3. Status Mapping and Case Logic¶
The Credential Issuer MUST update the Digital Credential status based on Signals received from the Authentic Source via Signal Hub (signalType=UPDATE).
Revocation: If a dataset is revoked at the Authentic Source (status
INVALID), the Credential Issuer MUST revoke the Digital Credentials that use that dataset (status transition fromVALID/SUSPENDEDtoINVALID).Suspension: If a dataset is suspended at the Authentic Source (status
SUSPENDED), the Credential Issuer MUST suspend the Digital Credentials (status transition fromVALIDtoSUSPENDED).Restoration: If a suspended dataset returns to
VALIDat the Authentic Source, the Credential Issuer MUST restore the Digital Credential validity (status transition fromSUSPENDEDtoVALID).- Modification: The Authentic Source chooses how a change of the dataset is represented.
It MAY set the dataset to
INVALIDand identify the replacement with a newobject_id. The Credential Issuer applies Revocation to the Digital Credentials that use the previousobject_id.It MAY keep the same
object_idand leave the statusVALID. It updates the attributes andlast_updatedand sends a Signal withsignalType=UPDATE. The Credential Issuer setsATTRIBUTE_UPDATE. The Wallet Instance follows the re-issuance flow when it checks the status.
- Administrative Expiry:
Scenario A (Date in the dataset): When
expiry_dateis present inattributeClaims, the Authentic Source MUST NOT send a Signal when that date passes. Technicalexpfollows the Expiry Hierarchy above andmax_validity_daysin Digital Credentials Catalog. Whenexpiry_dateis present as an attribute, the Wallet Instance applies Status of Electronic Attestations.When the Credential type has an administrative expiry, the Authentic Source MUST include
expiry_dateinattributeClaims. The Credential Issuer MUST include that value as an attribute of the Digital Credential. The Authentic Source MUST NOT change the dataset status only becauseexpiry_datehas passed. A later dataset status ofINVALIDorSUSPENDEDis handled as Revocation or Suspension.
12.4.1.3. Example of Authentic Source response¶
The endpoint response MUST use the HTTP Content-Type set to application/json. Below is a concrete example with fictitious data to clarify the expected shape and content.
{
"userClaims": {
"given_name": "Mario",
"family_name": "Rossi",
"birth_date": "1980-01-10",
"birth_place": "Roma",
"tax_id_code": "TINIT-RSSMRA80A01H501Z",
"personal_administrative_number": "12345A123A"
},
"attributeClaims": [
{
"object_id": "6F9619FF-8B86-D011-B42D-00C04FC964FF",
"institute_name": "Nome Istituto Universitario",
"programme_type_name": "Laurea Magistrale",
"degree_course_name": "Computer Science - Informatica",
"academic_qualification_date": "2025-06-25",
"issuance_date": "2025-06-25",
"...": ""
},
{
"object_id": "7A0720AB-9C97-E122-C53E-11D05FD075GG",
"institute_name": "Nome Istituto Universitario",
"programme_type_name": "Laurea Triennale",
"degree_course_name": "Informatica",
"academic_qualification_date": "2022-11-27",
"issuance_date": "2022-11-27",
"...": ""
}
],
"metadataClaims": [
{
"object_id": "6F9619FF-8B86-D011-B42D-00C04FC964FF",
"description": "Laurea Magistrale in Informatica 2025",
"status": "VALID",
"last_updated": "2025-09-15T10:30:00Z"
},
{
"object_id": "7A0720AB-9C97-E122-C53E-11D05FD075GG",
"description": "Laurea Triennale in Informatica 2027",
"status": "VALID",
"last_updated": "2023-01-10T08:00:00Z"
}
]
}
In summary:
userClaims: user identity data (first name, family name, date/place of birth, tax id or personal administrative number). At least one of
tax_id_codeandpersonal_administrative_numberis required when providing user claims.attributeClaims: array of datasets. Each element contains
object_id, optionalissuance_dateandexpiry_date, and the attributes that go into the Credential (e.g.nationality,residence_address).metadataClaims: array of metadata per dataset. Each element contains
object_id,description,status(VALID | INVALID | SUSPENDED),last_updated(ISO 8601 format), andinterval.interval: required when the request does not include a
claimsparameter. Indicates the number of seconds to wait before repeating the request (e.g. 864000 = 10 days).
The successful response (HTTP 200) returns a CredentialClaimsResponse object formatted as a JSON Payload, accompanied by the Agid-JWT-Signature and Digest integrity headers.
12.4.1.3.1. Signature Verification and Key Management¶
The Credential Issuer (Consumer) MUST verify the integrity and authenticity of the JSON response by validating the Agid-JWT-Signature and Digest headers received from the Authentic Source.
The signature verification and key retrieval process MUST strictly follow the INTEGRITY_REST_02 standard pattern defined for PDND e-Services. Please refer to the Technical Appendix (Section e-Service PDND) for details on JWT signature validation and specifications for retrieving the Provider's public key via the Interoperability API.
Warning
Alternative mechanisms for distributing cryptographic material (e.g., public .well-known endpoints directly exposed by the Authentic Source or out-of-band distribution) are not allowed. Trust management MUST remain centralized within the perimeter of the PDND infrastructure as described in the references cited above.