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 ecosystemErrors map in data explaining which constraint was breached.
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 the credential reaches ACCEPTED, the ecosystem checks passed. If it
reaches ERROR instead, that could be because a check failed or for a
reason unrelated to ecosystems entirely.
Whatever the state, if an ecosystem was applied, trustInformation tells
you the result:
"trustInformation": {
"result": "TRUSTED",
"name": "EUDI",
"receivedAt": "2026-09-17T14:02:05.632Z",
"ecosystemErrors": {
"EUDI": {
"result": "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.