Set-up: Organizations

Organization – A real-world entity that owns resources in the system Service Account – A system/service identity that manages an organization’s resources User – A real user who can belong to an organization and manage its resources

Operation Endpoint Description
Create Organization(s) POST /organizations Creates an Organization
Create Service Account(s) POST /service-accounts Creates Service Accounts for the organizations
Invite Users POST /organization-invitations Creates an Invitation for a user to join an organization

Organization Settings

Configured by organization members:

{
    "branding": {
      "logo": "<organization logo - for the DPP page>",
      "primaryColor": "<Primary color of the DPP page>",
      "secondaryColor": "<Secondary color of the DPP page>",
      "slogan": "<Solgan, appears on the DPP header>"
    }
  }

Organization Configuration

Configured only by Super Admins:

{
    "dppPage": "<https://vera-dpp.spherity.io>", // custom domain for the DPP page
    "identifierDefinitions": [], // product identifiers expected to be filled for a given DPP
    "did": {
        "method": "did:web", // DID method ID for the DIDs created by this organiuation 
        "domain": "<http://did.vera-api.spherity.io>" // hostname for the DID - applicable to did:web only
    },
    "branding": {
        "poweredBy": "<spherity logo>", // Powered by logo on the DPP page (defaults to the spherity logo)
        "showPoweredBy": true, // wether or not to show the powered by logo on the spherity page
        "theme": "default" // dpp page theme
    }
}

Set-up - Templates and Profiles (Super Admins)

Templates – Define the DPP Credential data model (JSON Schema) Profiles – Combine credential templates and specify the display configuration for the DPP page

→ Templates and profiles must be published before they can be used to create DPPs or issue credentials.

Operation Endpoint Description
Create Template(s) POST /templates Creates Templates
Create Profile POST /profiles Creates Profiles
Publish Template PUT /templates/:id/publish Publishes a Template
Publish Profile PUT /profiles/:id/publish Publishes a Profile

Create and Manage Product Passports

Product Passports – Represent DPPs containing product identifiers and data (credentials) DIDs - Used as the public dppId - https://www.w3.org/TR/did-1.1/ Credentials – Contain the DPP’s signed data claims - https://www.w3.org/TR/vc-data-model-2.0/ Product Passport Amendments - represent a change to the DPP Data and the state of that change (PENDING, IN_PROGRESS, COMPLETED, FAILED)

Operation Endpoint Description
Create Product Passport POST /product-passports Creates Product Passports
Add Data to Product Passport PUT /product-passports/:id/data Append more data to the DPP by issuing a new credential

Create Product Passport

POST /product-passports?organizationId=:organizationId

{
  "display": { // DPP Page display config
    "title": "Lithium-Ion Battery Pack", // DPP Page Title
    "description": "High-capacity rechargeable battery for electric vehicles", // DPP Page Description
    "subtitle": "EV Series 5000", // DPP Page Subtitle
    "imageUrl": "<https://example.com/images/battery-pack-ev5000.jpg>" // DPP Page header Image
  },
  "identifiers": [ // Product identifiers, can be used to find DPPs on VERA Studio
    {
      "type": "partNumber",
      "value": "BP-EV5000-LI-001"
    },
    {
      "type": "binNumber",
      "value": "BIN-2024-A7B3C9"
    }
  ],
  "masterDataId": "01JEPY8K9M6N2P3Q4R5S6T7U8V", // ID of the master data instance for this DPP - contains static DPP data
  "payload": [
    {
      "templateId": "01JEPY8K9M6N2P3Q4R5S6T7U8W", // ID of the template to be validated against 
      "data": { // Data
        "manufacturer": "PowerTech Industries",
        "chemistry": "Lithium-Ion NMC",
        "nominalVoltage": "400V",
        "capacity": "75kWh",
        "weight": "450kg",
        "dimensions": {
          "length": "1200mm",
          "width": "800mm",
          "height": "150mm"
        },
        "cycleLife": "3000 cycles",
        "warrantyYears": 8,
        "manufacturingDate": "2024-11-15",
        "sustainabilityScore": "A+",
        "recycledContent": "35%"
      }
    }
  ],
  "createDidParams": { // Alias for the Product Passport DID - format: did:web:<hostname>:did-registry:<alias> - the hostname default to the API URL, but can be configured
    "alias": "bin-2024-a7b3c9"
  },
  "assignSecurityGroups": [ // Security Groups for the Product Passport Data Access Control
    "01JEPY8K9M6N2P3Q4R5S6T7U8X"
  ]
}

Add Product Passport Data