Release of Platform v3
 · 7 min read
Welcome to the release notes of the new major version of the Platform API on bLink!
This release is the result of extensive discussions within the bLink community in order to streamline the information of the bLink directory and improve the usability of the API. Here you can find all relevant information about the updates, improvements and new features introduced in this version.
Release
- XE: 06/2024
- XP/Prod: 11/2024
Added
- Response code standard503added to all endpoints
- Property companyNameAbbreviationadded to schemadirectoryParticipantItem
- Property iconadded to schemadirectoryParticipantItem
- Value ICONadded to EnumdirectoryEmbedAssetType
- Property productNameandproductInfoUrladded to schemadirectoryParticipantItem
- Pagination added to API
- New Parameter offsetwith default value0added
- New Parameter limitwith default value20added
- New schemas pagedDirectoryClientItemsandpagedDirectoryProviderItemswith new propertypaginationadded to response of endpointsGET/directory/clientsandGET/directory/providers
 
- New Parameter 
Changed
- Schema directoryImageReferencechanged todirectoryImage- Properties assetIdandmimeTyperemoved
- Pattern of value changed to include mimetype inline
 
- Properties 
- Properties companyLogoindirectoryParticipantItemchanged tologo
- Property softwarein schemadirectoryParticipantItemremoved
- Schema directorySoftwareDescriptionremoved
Removed
- Property marketingImagein schemadirectoryParticipantItemremoved
- Endpoint GET/assets/{assetId}removed
- Parameter path_assetIdremoved
- Redundant Header-Declarations optional_authorization_in_header,targetid_in_header,psu_ip_in_header,psu_user_agent_in_headerandoptional_correlation_in_headerremoved
- Response code standard405removed
Changes in YAML
paths:
  /directory/clients:
    ...
      parameters:
        - $ref: '#/components/parameters/query_participant_status'
        - $ref: '#/components/parameters/query_embed_asset_type'
-       - $ref: '#/components/parameters/optional_authorization_in_header'
        - $ref: '#/components/parameters/correlation_in_header'
        - $ref: '#/components/parameters/agent_in_header'
        - $ref: '#/components/parameters/optional_instance_id_in_header'
+       - $ref: '#/components/parameters/offset'
+       - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of clients
          headers:
            X-Correlation-ID:
              $ref: '#/components/headers/X-Correlation-ID'
            X-CorAPI-Source:
              $ref: '#/components/headers/X-CorAPI-Source'
          content:
            application/json:
              schema:
-               type: array
-               items:
-                 $ref: '#/components/schemas/directoryClientItem'
+               $ref: '#/components/schemas/pagedDirectoryClientItems'
        '400':
          $ref: '#/components/responses/standard400'
        '401':
          $ref: '#/components/responses/standard401'
        '403':
          $ref: '#/components/responses/standard403'
        '404':
          $ref: '#/components/responses/standard404'
-       '405':
-         $ref: '#/components/responses/standard405'
        '500':
          $ref: '#/components/responses/standard500'
        '501':
          $ref: '#/components/responses/standard501'
+       '503':
+         $ref: '#/components/responses/standard503'
  /directory/clients/{clientId}:
    ...
      parameters:
        - $ref: '#/components/parameters/path_clientId'
        - $ref: '#/components/parameters/query_embed_asset_type'
-       - $ref: '#/components/parameters/optional_authorization_in_header'
        - $ref: '#/components/parameters/correlation_in_header'
        ...
        '404':
          $ref: '#/components/responses/standard404'
-       '405':
-         $ref: '#/components/responses/standard405'
        '500':
          $ref: '#/components/responses/standard500'
        '501':
          $ref: '#/components/responses/standard501'
+       '503':
+         $ref: '#/components/responses/standard503'
  /directory/providers:
    ...
      parameters:
        - $ref: '#/components/parameters/query_participant_status'
        - $ref: '#/components/parameters/query_embed_asset_type'
-       - $ref: '#/components/parameters/optional_authorization_in_header'
        - $ref: '#/components/parameters/correlation_in_header'
        - $ref: '#/components/parameters/agent_in_header'
        - $ref: '#/components/parameters/optional_instance_id_in_header'
+       - $ref: '#/components/parameters/offset'
+       - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: List of providers
          headers:
            X-Correlation-ID:
              $ref: '#/components/headers/X-Correlation-ID'
            X-CorAPI-Source:
              $ref: '#/components/headers/X-CorAPI-Source'
          content:
            application/json:
              schema:
-               type: array
-               items:
-                 $ref: '#/components/schemas/directoryProviderItem'
+               $ref: '#/components/schemas/pagedDirectoryProviderItems'
        '400':
          $ref: '#/components/responses/standard400'
        '401':
          $ref: '#/components/responses/standard401'
        '403':
          $ref: '#/components/responses/standard403'
        '404':
          $ref: '#/components/responses/standard404'
-       '405':
-         $ref: '#/components/responses/standard405'
        '500':
          $ref: '#/components/responses/standard500'
        '501':
          $ref: '#/components/responses/standard501'
+       '503':
+         $ref: '#/components/responses/standard503'
  /directory/providers/{providerId}:
    ...
      parameters:
        - $ref: '#/components/parameters/path_providerId'
        - $ref: '#/components/parameters/query_embed_asset_type'
-       - $ref: '#/components/parameters/optional_authorization_in_header'
        - $ref: '#/components/parameters/correlation_in_header'
        - $ref: '#/components/parameters/agent_in_header'
        - $ref: '#/components/parameters/optional_instance_id_in_header'
      responses:
        '200':
          description: Information for a provider
          headers:
            X-Correlation-ID:
              $ref: '#/components/headers/X-Correlation-ID'
            X-CorAPI-Source:
              $ref: '#/components/headers/X-CorAPI-Source'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/directoryProviderItem'
        '400':
          $ref: '#/components/responses/standard400'
        '401':
          $ref: '#/components/responses/standard401'
        '403':
          $ref: '#/components/responses/standard403'
        '404':
          $ref: '#/components/responses/standard404'
-       '405':
-         $ref: '#/components/responses/standard405'
        '500':
          $ref: '#/components/responses/standard500'
        '501':
          $ref: '#/components/responses/standard501'
+       '503':
+         $ref: '#/components/responses/standard503'
- /assets/{assetId}:
-   get:
-     tags:
-       - directory
-       - asset
-       - image
-     summary: Retrieve assets for participants
-     description: |
-       Returns logo- and marketing images/assets for a participant (SCOPE: SIX)
-     operationId: retrieveAssets
-     parameters:
-       - $ref: '#/components/parameters/path_assetId'
-       - $ref: '#/components/parameters/optional_authorization_in_header'
-       - $ref: '#/components/parameters/correlation_in_header'
-       - $ref: '#/components/parameters/agent_in_header'
-       - $ref: '#/components/parameters/optional_instance_id_in_header'
-     responses:
-       '200':
-         description: Asset for the participant (image)
-         headers:
-           X-Correlation-ID:
-             $ref: '#/components/headers/X-Correlation-ID'
-           X-CorAPI-Source:
-             $ref: '#/components/headers/X-CorAPI-Source'
-         content:
-           image/svg+xml:
-             schema:
-               type: string
-               format: binary
-           image/png:
-             schema:
-               type: string
-               format: binary
-       '400':
-         $ref: '#/components/responses/standard400'
-       '401':
-         $ref: '#/components/responses/standard401'
-       '403':
-         $ref: '#/components/responses/standard403'
-       '404':
-         $ref: '#/components/responses/standard404'
-       '405':
-         $ref: '#/components/responses/standard405'
-       '500':
-         $ref: '#/components/responses/standard500'
-       '501':
-         $ref: '#/components/responses/standard501'
  /healthcheck:
    get:
      tags:
        - diagnostics
      summary: Returns all specified request headers and additional diagnostic information
      operationId: healthCheckGet
      parameters:
-       - $ref: '#/components/parameters/optional_authorization_in_header'
-       - $ref: '#/components/parameters/optional_correlation_in_header'
+       - $ref: '#/components/parameters/correlation_in_header'
        - $ref: '#/components/parameters/optional_agent_in_header'
        - $ref: '#/components/parameters/optional_instance_id_in_header'
        ...
    post:
      ...
      parameters:
-       - $ref: '#/components/parameters/optional_authorization_in_header'
-       - $ref: '#/components/parameters/optional_correlation_in_header'
+       - $ref: '#/components/parameters/correlation_in_header'
        - $ref: '#/components/parameters/optional_agent_in_header'
        - $ref: '#/components/parameters/optional_instance_id_in_header'
  /routinginstructions:
    get:
      tags:
        - routinginstructions
-     summary: Returns instructed routes for service user to service provider communication
+     summary: instructed routes per communication
+     description: Returns instructed routes for service user to service provider communication
      operationId: routingInstructions
      parameters:
-       - $ref: '#/components/parameters/optional_authorization_in_header'
-       - $ref: '#/components/parameters/optional_correlation_in_header'
+       - $ref: '#/components/parameters/correlation_in_header'
        - $ref: '#/components/parameters/optional_agent_in_header'
-       - $ref: '#/components/parameters/optional_instance_id_in_header'
components:
  parameters:
    # bLink specific parameters
    path_clientId:
      ...
-   path_assetId:
-     name: assetId
-     in: path
-     description: id of assetId
-     required: true
-     schema:
-       maxLength: 36
-       type: string
    query_participant_status:
      name: status
      in: query
      description: |
        Returns clients or providers with the corresponding status.
-       Possible status: ACTIVE, ONBOARDING_DEVELOPMENT, INACTIVE, SUSPENDED
-       Default value when no matching status is found: ACTIVE
      schema:
        $ref: '#/components/schemas/directoryParticipantStatus'
    query_embed_asset_type:
      name: embed_assets
      in: query
      description: |
        ALL  = Embed all assets as base64
        LOGO = Embed all logos as base64
        NONE = No embedded assets
        Default value when no matching type is found: LOGO
      schema:
        $ref: '#/components/schemas/directoryEmbedAssetType'
-   optional_authorization_in_header:
-     name: Authorization
-     in: header
-     description: Bearer followed by a base64 encoded OAuth access token
-     required: false
-     schema:
-       type: string
-   targetid_in_header:
-     name: X-CorAPI-Target-ID
-     in: header
-     description: 'ID that identifies the provider (e.g., a Service Provider). (SCOPE: SIX required)'
-     required: true
-     schema:
-       type: string
-   psu_ip_in_header:
-     name: X-PSU-IP-Address
-     in: header
-     description: 'IP address of the user initiating the operation or AUTO for system triggered processes (SCOPE: SIX required)'
-     required: true
-     schema:
-       type: string
-   psu_user_agent_in_header:
-     name: X-PSU-User-Agent
-     in: header
-     description: 'User agent of the user initiating the operation or AUTO for system triggered processes (SCOPE: SIX required)'
-     required: true
-     schema:
-       type: string
+   offset:
+     name: offset
+     in: query
+     description: The number of items to skip before starting to collect the result set.
+     required: false
+     schema:
+       type: integer
+       minimum: 0
+       default: 0
+   limit:
+     name: limit
+     in: query
+     description: The number of items to return.
+     required: false
+     schema:
+       type: integer
+       minimum: 1
+       maximum: 100
+       default: 20
    correlation_in_header:
      name: X-Correlation-ID
      in: header
      description: Unique ID (defined by the caller) which will be reflected back in the response.
      required: true
      schema:
        type: string
        maxLength: 64
    agent_in_header:
      name: User-Agent
      in: header
      description: Name and version of the of the Client software
      required: true
      schema:
        type: string
    optional_agent_in_header:
      name: User-Agent
      in: header
      description: Name and version of the of the client software
      required: false
      schema:
        type: string
-   optional_correlation_in_header:
-     name: X-Correlation-ID
-     in: header
-     description: Unique ID (defined by the caller) which will be reflected back in the response.
-     required: false
-     schema:
-       type: string
-       maxLength: 64
    optional_instance_id_in_header:
      name: X-Instance-ID
      in: header
      description: '(Deprecated) Identifies an on-prem application instance which uses a legacy on-prem certificate in the mTLS connection. Do not use the header otherwise.'
      required: false
      schema:
        type: string
        maxLength: 64
    ...
headers:
  ...
  responses:
      ...
-   standard405:
-     headers:
-       Content-Type:
-         $ref: '#/components/headers/Content-Type'
-       Content-Language:
-         $ref: '#/components/headers/Content-Language'
-       X-Correlation-ID:
-         $ref: '#/components/headers/X-Correlation-ID'
-       X-CorAPI-Source:
-         $ref: '#/components/headers/X-CorAPI-Source'
-     description: Method Not Allowed
-     content:
-       application/problem+json:
-         schema:
-           $ref: '#/components/schemas/commonErrorResponse'
    standard500:
      ...
  schemas:
    # bLink specific schemas
    ## /directory
+   pagedDirectoryClientItems:
+     title: Paged Directory Client Items
+     type: object
+     properties:
+       data:
+         type: array
+         items:
+           $ref: '#/components/schemas/directoryClientItem'
+       pagination:
+         $ref: '#/components/schemas/pagination'
    directoryClientItem:
      title: Directory Client Item
      allOf:
        - required:
            - clientId
          type: object
          properties:
            clientId:
              type: string
              example: CIDX1234567890
        - $ref: '#/components/schemas/directoryParticipantItem'
+   pagedDirectoryProviderItems:
+     title: Paged Directory Provider Items
+     type: object
+     properties:
+       data:
+         type: array
+         items:
+           $ref: '#/components/schemas/directoryProviderItem'
+       pagination:
+         $ref: '#/components/schemas/pagination'
    directoryProviderItem:
      title: Directory Provider Item
      allOf:
        - required:
            - providerId
          type: object
          properties:
            providerId:
              type: string
              example: IIDX1234567890
        - $ref: '#/components/schemas/directoryParticipantItem'
    directoryParticipantItem:
      title: Directory Participant Item
      required:
-       - companyLogo
        - status
        - companyName
+       - companyNameAbbreviation
        - companyUrl
+       - productName
+       - productInfoUrl
        - contact
-       - marketingDescription
-       - shortDescription
-       - software
        - registrationDate
        - lastModified
      type: object
      properties:
        status:
          $ref: '#/components/schemas/directoryParticipantStatus'
        companyName:
          maxLength: 50
          type: string
          example: ACME
+       companyNameAbbreviation:
+         maxLength: 50
+         type: string
+         description: Abbreviation of company name for mobile applications
+         example: ACME
        companyUrl:
          type: string
          example: https://www.acme.com
-       marketingDescription:
-         $ref: '#/components/schemas/directoryMarketingDescription'
-       shortDescription:
-         $ref: '#/components/schemas/directoryShortDescription'
+       productName:
+         maxLength: 50
+         type: string
+         description: Product name of client
+         example: ACME accounting software
+       productInfoUrl:
+         type: string
+         example: https://acme.com/amce_accounting
+         description: Product Url of client
        contact:
          type: array
          example:
            - type: BUSINESS
              designation: Account and Payments Services
              emailAddress: business-contact@acme.com
            - type: TECHNICAL
              emailAddress: technical-contact@acme.com
              phone: +41 58 999 9999
            - type: SUPPORT
              emailAddress: support-contact@acme.com
              phone: +41 58 999 9997
          items:
            $ref: '#/components/schemas/directoryContact'
-       companyLogo:
-         $ref: '#/components/schemas/directoryMultisizeImageReference'
-       marketingImage:
-         $ref: '#/components/schemas/directoryImageReference'
+       logo:
+         $ref: '#/components/schemas/directoryImage'
+       icon:
+         $ref: '#/components/schemas/directoryImage'
        registrationDate:
          type: string
          format: date
          example: 2018-04-13
        lastModified:
          type: string
          format: date-time
          example: 2018-04-13T11:11:11Z
-       software:
-         $ref: '#/components/schemas/directorySoftwareDescription'
        useCases:
            ...
    directoryContact:
        emailAddress:
-         maxLength: 50
+         maxLength: 80
          type: string
          format: email
        ...
-   directorySoftwareDescription:
-     title: Directory Software Description
-     required:
-       - category
-       - manufacturer
-       - marketingDescription
-       - productInfoUrl
-       - productLogo
-       - productName
-       - shortDescription
-     type: object
-     properties:
-       productName:
-         $ref: '#/components/schemas/directoryProductName'
-       manufacturer:
-         maxLength: 50
-         type: string
-         example: ACME Corp.
-       category:
-         minItems: 1
-         type: array
-         example:
-           - ACCOUNTING
-         items:
-           type: string
-           enum:
-             - ACCOUNTING
-             - IT
-             - CRM
-       productInfoUrl:
-         type: string
-         example: https://acme.com/amce_accounting
-       productLogo:
-         $ref: '#/components/schemas/directoryMultisizeImageReference'
-       marketingImage:
-         $ref: '#/components/schemas/directoryImageReference'
-       marketingDescription:
-         $ref: '#/components/schemas/directoryMarketingDescription'
-       shortDescription:
-         $ref: '#/components/schemas/directoryShortDescription'
-   directoryMarketingDescription:
-     title: Directory Marketing Description
-     required:
-       - de
-       - en
-       - fr
-       - it
-     type: object
-     properties:
-       de:
-         type: array
-         items:
-           maxLength: 140
-           type: string
-       en:
-         type: array
-         items:
-           maxLength: 140
-           type: string
-       fr:
-         type: array
-         items:
-           maxLength: 140
-           type: string
-       it:
-         type: array
-         items:
-           maxLength: 140
-           type: string
-     example:
-       de:
-         - bullet1
-         - bullet2
-         - bullet3
-         - bullet4
-         - bullet5
-       en:
-         - bullet1
-         - bullet2
-         - bullet3
-         - bullet4
-         - bullet5
-       fr:
-         - bullet1
-         - bullet2
-         - bullet3
-         - bullet4
-         - bullet5
-       it:
-         - bullet1
-         - bullet2
-         - bullet3
-         - bullet4
-         - bullet5
-   directoryShortDescription:
-     title: Directory Short Description
-     required:
-       - de
-       - en
-       - fr
-       - it
-     type: object
-     properties:
-       de:
-         maxLength: 300
-         type: string
-       en:
-         maxLength: 300
-         type: string
-       fr:
-         maxLength: 300
-         type: string
-       it:
-         maxLength: 300
-         type: string
-     example:
-       de: Kurzbeschreibung
-       en: Short description
-       fr: Description rapide
-       it: Corta descrizione
    directoryUseCaseItem:
        ...
        properties:
          type: object
          additionalProperties:
            type: string
-       endpointInfos:
-         type: array
-         items:
-           $ref: '#/components/schemas/directoryEndpointInfo'
-   directoryProductName:
-     title: Directory Product Name
-     required:
-       - de
-       - en
-       - fr
-       - it
-     type: object
-     properties:
-       de:
-         maxLength: 50
-         type: string
-       en:
-         maxLength: 50
-         type: string
-       fr:
-         maxLength: 50
-         type: string
-       it:
-         maxLength: 50
-         type: string
-     example:
-       de: ACME Buchhaltungssoftware
-       en: ACME accounting software
-       fr: ACME software comptable
-       it: ACME software contabilità
-   directoryMultisizeImageReference:
-     title: Directory Multisize Image Reference
-     required:
-       - large
-       - small
-     type: object
-     properties:
-       small:
-         $ref: '#/components/schemas/directoryImageReference'
-       large:
-         $ref: '#/components/schemas/directoryImageReference'
    directoryParticipantStatus:
      title: Directory Participant Status
      type: string
      example: ACTIVE
      default: ACTIVE
      enum:
        - ACTIVE
        - INACTIVE
        - SUSPENDED
        - ONBOARDING_DEVELOPMENT
    directoryEmbedAssetType:
      title: Embed Asset Type
      type: string
-     example: LOGO
-     default: LOGO
+     example: ALL
+     default: ALL
      enum:
        - ALL
+       - ICON
        - LOGO
        - NONE
-   directoryImageReference:
-     title: Directory Image Reference
-     required:
-       - assetId
-       - mimeType
-     type: object
-     properties:
-       mimeType:
-         type: string
-         example: image/svg+xml
-       image:
-         pattern: '^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$'
-         type: string
-         format: byte
-         example: QUNNRQ==
-       assetId:
-         type: string
-         format: string
-         example: assetId.svg
+   directoryImage:
+     title: Directory Image
+     type: string
+     pattern: '^data:image/svg\+xml;base64,[A-Za-z0-9+/]+=*$'
+     format: base64
+     example: 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIj4KICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI1MCIgc3R5bGU9ImZpbGw6cmVkOyIgLz4KPC9zdmc+Cg=='
    directoryEndpointInfo:
        ...
+   pagination:
+     type: object
+     properties:
+       totalCount:
+         type: integer
+         description: |
+           Total number of records, useful for pagination: use offset and limit parameters to query for any given page.
+           As long as the offset is less than totalCount, there will be records in the response. Once offset is larger
+           than totalCount, the response will be empty.
+         example: 100
+       offset:
+         type: integer
+         description: the offset which was requested in the query, or the default used by the server.
+         example: 0
+      limit:
+          type: integer
+         description: the limit which was requested in the query, or the default used by the server.
+         example: 20
    ## errors
    commonErrorResponse: