Enforcing an Ecosystem as an Issuer
This page explains how to enforce ecosystem constraints — such as those required by EUDI — during credential issuance. Once an ecosystem is enforced, Procivis One automatically validates each credential against that ecosystem's requirements, and prevents issuance that does not comply.
For an overview of how ecosystems operate, see Ecosystem Enforcement Overview.
Prerequisites
The issuing organization must have an ecosystem enabled. See Enabling Ecosystems for instructions.
Enforcing an ecosystem
To enforce an ecosystem on any given issuance, use ecosystem during
creation of a credential.
POST /api/credential/v1
{
{{...}}
"ecosystem": "EUDI"
}
A successful call returns 201. The ecosystem will be enforced during
the issuance of this credential.
If the credential itself cannot be created due to an ecosystem constraint —
for example, EUDI is the ecosystem and you attempt to create the credential
with a DID instead of a certificate — the call returns 400 instead, with
an ecosystem validation error message.
Omitting ecosystem
If you omit ecosystem from a credential, the system checks the wallet
against every ecosystem available to your organization instead. In this
mode, failure to validate against an ecosystem does not block issuance.
The credential can still reach ACCEPTED regardless of what those checks
find; see
Checking the outcome below for how to read the
results either way.
Checking the outcome
After creating the credential, call the share endpoint and offer it to a
wallet, then poll GET /api/credential/v1/{id} to see what happens.
See Creating a Credential and Sharing a Credential for more on the issuance flow, and Credential States as an Issuer for the full state reference.
If an ecosystem was applied to the credential, the wallet must pass that ecosystem's checks to receive it. The checks run on the wallet's attestations (Wallet Instance Attestation (WIA) and/or Key Attestation (KA), according to the settings defined on the schema) when the wallet requests the credential.
If the wallet fails the checks, the credential is not issued, stays
OFFERED, and the wallet receives an error. It can try again, for example
with a new attestation from its wallet provider.
trustInformation shows the result of the checks:
"trustInformation": {
"result": "UNTRUSTED",
"name": "EUDI",
"receivedAt": "2026-09-17T14:02:05.632Z",
"ecosystemErrors": {
"EUDI": {
"result": "NOT_TRUSTED",
"error": {
"code": "BR_0486",
"message": "..."
}
}
}
}
This resolution is also recorded as an ECOSYSTEMS_RESOLVED history
event on the credential.
Requiring ecosystem enforcement
Any ecosystem selected for an issuing organization is available for use in issuance, but its use is optional. To require every issuance to use an ecosystem, update the issuing organization:
PATCH /api/organisations/v1/{id}
{
"configuration": {
"enforceEcosystemAsIssuer": true
}
}
When this flag is set, every credential must have an ecosystem assigned.
To force all issuances from this organization to use one and only one
ecosystem, make sure that selectedEcosystems only contains one ecosystem.