Catena-X support
VERA supports the data exchange with Catena-X. It provides the ability that any partner can request specific assets or digital twins via VERAs connected EDC. The requirements to request data from other EDCs is that the consumer (partner or organization) know the providers BPN and the specific assetId or Digital Twin ID which should be requested.
In VERA this request is called DataRequest
and can be used with the DataRequest API. In the following examples we will explain, how VERA handles the communication with the providers EDC to retrieve the requested Asset.
Compatible CatenaX Standards
VERA currently supports resolving the following CatenaX Standards from other EDCs:
- AssetIds VERA can negotiate and transfer a specific assetId from a given BPN. The transferred data will be stored in the DataRequest
- EcoPass/BatteryPass
VERA can resolve a BatteryPass provided by a BPN. For this you need to provide the CatenaX related standard ID in the format of
CX:manufacturerPartId:partInstanceId
Integrated CatenaX ecosystems
The following CatenaX ecosystems are available in VERA:
- CofinityX Preprod Environment
Entities
DataRequest
The DataRequest contains the necessary data which is required to fetch and obtain data from a remote provider. To fetch a specific asset or digital twin you need the following details:
- AssetId or EcoPass Digital Twin ID
- ProviderBPN (Only needed when resolving an Asset)
Creating a DataRequest
In the DataRequest everything gets handled with the /data-requests endpoint. Since VERA can at the moment only request and receive data from other parties, there is no "answering" of "incoming" data requests at the moment.
Lets assume, that you want to receive an AssetID 123
from the BPN BPNL000000000002
. This document assumes also, that the target BPN allows to fetch this asset from the BPNs' catalog and initiate a negotiation for it.
To create a Data Request, you need to call the Endpoint: POST /data-requests with the following properties:
{
"assetId": "123",
"provider": "BPNL000000000002"
}
This request then returns the following payload and sets the DataRequest to state Created
{
"meta": {},
"data": {
"id": "41107f0e-46e9-46b6-ae73-275a21b56bcf",
"createdAt": "2024-03-15T07:01:14.303Z",
"updatedAt": "2024-03-15T07:01:14.303Z",
"assetId": "123",
"trackingId": "5bbaa76f-befb-4063-8c6d-f0320726332c",
"state": "Created",
"consumer": "BPNL000000000001",
"provider": "BPNL000000000002",
"data": {},
"organizationId": "468fa2c5-9cd5-4fd6-8f87-e6bebe3e63ea"
}
}
Now the VERA takes the request and the defined AssetId and Provider BPN to execute the following steps on the CatenaX Ecosystem:
VERA first tries to discover all registered EDCs for the given provider
against the ecosystems central EDC discovery component. When the component then returns the list of registered EDCs for the BPN, VERA will contact all EDCs and query their registered catalog to see if the specific EDC has the requested asset registered.
When one EDC has the requested asset registered, VERA will then start the negotiation phase of the asset. This includes the negotiation of a contract and afterwards the transfer initiation. When VERA receives the successful negotiation and transfer of the asset, it will fetch the assets payload from the providers EDC and will store the payload in DataRequest
's data
property.
When any error occurs in this process, the DataRequest
's state will move to Failed
and will give a detailed error message in the data
property.
Fetching the data
After the whole transfer process finishes, the data
property gets updated in the DataRequest
. When you fetch afterwards the DataRequest
with its associated ID from the Endpoint: GET /data-requests/:uuid, you will find the data attached to the DataRequest
{
"meta": {},
"data": {
"id": "41107f0e-46e9-46b6-ae73-275a21b56bcf",
"createdAt": "2024-03-15T07:01:14.303Z",
"updatedAt": "2024-03-15T07:01:14.303Z",
"assetId": "123",
"trackingId": "5bbaa76f-befb-4063-8c6d-f0320726332c",
"state": "Finished",
"consumer": "BPNL000000000001",
"provider": "BPNL000000000002",
"data": {
"userId": 1,
"id": 3,
"title": "fugiat veniam minus",
"completed": false
},
"organizationId": "468fa2c5-9cd5-4fd6-8f87-e6bebe3e63ea"
}
}
State Machine of the DataRequest
The DataRequest
can have the following state
's and also transition in the following possibilities:
Possible Errors
During the processing of the DataRequest
it can happen that errors occur. The following list provides the possible errors which can happen during processing:
- An error occurred while fetching contract agreements from EDC
- An error occured while discovering EDCs for BPN
- No EDC found for provider=BPNLXXXX
- No asset found for assetID=XXX in the provider catalog
- An error occurred while initiating contract negotiation with EDC
- An error occurred while fetching contract negotiation from EDC
- An error occurred while initiating transfer
- Failed to fetch transfer data from EDC