Skip to main content

Release of Platform v3

· 12 min read
Simon Meyer
Product Manager @ bLink

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 standard503 added to all endpoints
  • Property companyNameAbbreviation added to schema directoryParticipantItem
  • Property icon added to schema directoryParticipantItem
  • Value ICON added to Enum directoryEmbedAssetType
  • Property productName and productInfoUrl added to schema directoryParticipantItem
  • Pagination added to API
    • New Parameter offset with default value 0 added
    • New Parameter limit with default value 20 added
    • New schemas pagedDirectoryClientItems and pagedDirectoryProviderItems with new property pagination added to response of endpoints GET/directory/clients and GET/directory/providers

Changed

  • Schema directoryImageReference changed to directoryImage
    • Properties assetId and mimeType removed
    • Pattern of value changed to include mimetype inline
  • Properties companyLogo in directoryParticipantItem changed to logo
  • Property software in schema directoryParticipantItem removed
  • Schema directorySoftwareDescription removed

Removed

  • Property marketingImage in schema directoryParticipantItem removed
  • Endpoint GET/assets/{assetId} removed
  • Parameter path_assetId removed
  • Redundant Header-Declarations optional_authorization_in_header, targetid_in_header, psu_ip_in_header, psu_user_agent_in_header and optional_correlation_in_header removed
  • Response code standard405 removed

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 financial institution). (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:

Update of Consent Flow v2

· 2 min read
Simon Meyer
Product Manager @ bLink

Here you find the latest updates to the Consent Flow API, which were introduced with the patch version 2.0.15.

Release

  • XE/XP: 04/2024
  • Prod: 04/2024

Added

  • New endpoint /revoke added
    • Applicable for specification: *-six, *-fi

Removed

  • Endpoint /oauth/bankingservices/b-link/v2/token removed
    • The endpoint was used to access previous CaaS, which was revised in 05/2023

Changes in YAML

  '/oauth/token':
post:
...

+ '/oauth/revoke':
+ post:
+ tags:
+ - oauth
+ summary: Revoke an OAuth token (access or refresh)
+ description: |
+ Revokes the specified OAuth token (must be done separately for access token and refresh token)
+ operationId: oauthRevoke
+ parameters:
+ - $ref: '#/components/parameters/correlation_in_header'
+ - $ref: '#/components/parameters/agent_in_header'
+ - $ref: '#/components/parameters/targetid_in_header'
+ - $ref: '#/components/parameters/psu_ip_in_header'
+ - $ref: '#/components/parameters/psu_user_agent_in_header'
+ requestBody:
+ required: true
+ content:
+ application/x-www-form-urlencoded:
+ schema:
+ required:
+ - token
+ properties:
+ token:
+ type: string
+ description: token to be revoked
+ token_type_hint:
+ type: string
+ description: either access_token or refresh_token
+ enum:
+ - access_token
+ - refresh_token
+ responses:
+ '200':
+ description: OAuth token revocation success
+ headers:
+ X-Correlation-ID:
+ $ref: '#/components/headers/X-Correlation-ID'
+ X-CorAPI-Source:
+ $ref: '#/components/headers/X-CorAPI-Source'
+ Cache-Control:
+ $ref: '#/components/headers/Cache-Control'
+ Pragma:
+ $ref: '#/components/headers/Pragma'
+ '400':
...

/oauth/username:
post:
...

Release of AIS v4

· 4 min read
Simon Meyer
Product Manager @ bLink

AIS Version 4.0

Today, we are excited to announce the release of the new major version of the Account Information Service API on bLink!

This release is the result of extensive discussions within the SFTI community, where existing API issues were throroughly examined and improved through various changes. Explore the detailed changes in the SFTI GitHub Changelog. A big thank you to the entire community for their contributions and to SFTI for the orchestration and refinement of the API.

Release

  • XE/XP: 05/2024
  • Prod: 11/2024

Added

  • New field accountTypeCode added to schema accountItem
  • New fields accountOwner and allowedCurrencies added to schema accountItem
  • New fields schemaVersion, account-type, account-identification, dateFrom, dateTo added to schema iso20022ReportReference
  • New examples added to error codes to specify usage

Changed

  • Status condition of additionalEntryInformation changed to required
  • Status condition and description of designation in schema accountItem changed to strongly recommended
  • Pattern of field exchangeRate in schema accountTransactionInstructedAmount changed to ^\d{1,11}$|^(?=\d+[.]\d+$).{3,12}$
  • Description of endpoints /iso20022/statements and /iso20022/statements/{reportId} changed to specify supported XML-Schema

Removed

  • Endpoint POST/healthcheck removed

Changes in YAML

  '/iso20022/statements':
get:
...
description: >
Get the resources links to available account statements (camt.053).
The returned account statements must be conform to the XML schema and
implementation guidelines defined by Swiss Payment Standards.
+ * bLink supports account statements only in XML-Schema «camt.053.001.08»
operationId: retrieveIso20022AccountStatementIds
...
'/iso20022/statements/{reportId}':
get:
...
responses:
'200':
description: |
Returns the requested ISO20022 XML camt.053 message.
+ * bLink supports account statements only in XML-Schema «camt.053.001.08».
Invalid schemas will result in an error to the client.
headers:
...
    accountItem:
title: Account Information Item
type: object
required:
+ - accountOwner
- id
- account
- currency
properties:
id:
$ref: '#/components/schemas/commonAccountId'
account:
$ref: '#/components/schemas/paymentIbanAccount'
+ accountOwner:
+ maxLength: 140
+ type: string
+ example: Account Owner XYZ
currency:
type: string
minLength: 3
maxLength: 3
example: CHF
+ allowedCurrencies:
+ type: array
+ items:
+ type: string
+ example: CHF
designation:
type: string
maxLength: 140
+ description: This element shall always be populated with the account alias, if defined, otherwise with specific bank account name (e.g. bank saving account).
example: Firmenkonto
+ accountTypeCode:
+ type: string
+ description: |
+ Contains the account type code according to the ISO external cash account type code list. It is strongly recommended to use only the 5 codes below as follows:
+ LOAN: Account used for loans (loan and mortgage accounts) - DE: Darlehenskonto, Kreditkonto, Baukreditkonto, Hypothekarkonto
+ LLSV: Account used for savings with special interest and withdrawal terms (pension provision and vested benefits accounts) - DE: Vorsorge- und Freizügigkeitskonten
+ SVGS: Account used for savings (all types of saving accounts)
+ TRAN: Account used for transactions (all types of personal, current and payment accounts) - DE: Privat-, Kontokorent- und Zahlungsverkehrskonten
+ OTHR: Account not otherwise specified (gathering pool for all other accounts)
+ example: TRAN
+ enum:
+ - CACC
+ - CARD
+ - CASH
+ - CHAR
+ - CISH
+ - COMM
+ - CPAC
+ - LLSV
+ - LOAN
+ - MGLD
+ - MOMA
+ - NFCA
+ - NREX
+ - ODFT
+ - ONDP
+ - OTHR
+ - SACC
+ - SLRY
+ - SVGS
+ - TAXE
+ - TRAN
+ - TRAS
+ - VACC
_links:
type: object
...
    accountTransactionEntry:
title: Account Transaction Entry
type: object
required:
- entryId
- transactionType
- bookingDate
- valueDate
- amount
- bankTransactionCode
+ - additionalEntryInformation
properties:
...
    accountTransactionInstructedAmount:
title: Account Transaction Instructed Amount
...
exchangeRate:
type: string
example: '0.957'
- pattern: '[0-9][.][0-9]{1,10}'
+ pattern: '^\d{1,11}$|^(?=\d+[.]\d+$).{3,12}$'
maxLength: 12
exchangeIndicator:
...
    iso20022ReportReference:
title: ISO 20022 Report Reference
type: object
properties:
name:
type: string
description:
type: string
type:
type: string
enum:
- CAMT53
+ schemaVersion:
+ type: string
+ example: camt.053.001.08
+ description: Indicates the delivered camt.053 schema version.
+ pattern: 'camt\.053\.[0-9]{3}\.[0-9]{2}'
id:
type: string
+ account:
+ $ref: '#/components/schemas/paymentIbanAccount'
+ dateFrom:
+ $ref: '#/components/schemas/date'
+ dateTo:
+ $ref: '#/components/schemas/date'

Release of PSS v4

· 4 min read
Simon Meyer
Product Manager @ bLink

PSS Version 4.0

Today, we are excited to announce the release of the new major version of the Payment Submission Service API on bLink!

This release is the result of extensive discussions within the SFTI community, where existing API issues were throroughly examined and improved through various changes. Explore the detailed changes in the SFTI GitHub Changelog. A big thank you to the entire community for their contributions and to SFTI for the orchestration and refinement of the API.

Release

  • XE/XP: 05/2024
  • Prod: 11/2024

Added

  • New value RCVD added to schema paymentSubmissionStatus

Changed

  • Description of endpoints POST/iso20022/payments changed to specify supported XML-Schema
  • Description of endpoints POST/iso20022/payments/{submissionId}/status changed to specify supported XML-Schema
  • Status condition postalAddress in schema paymentCreditor changed to required
  • Description of Location in headers changed to indicate that relative path shall be returned

Removed

  • Endpoint GET/payments/{submissionId} removed
  • Endpoint GET/iso20022/payments/{submissionId} removed

Changes in YAML

  '/payments':
post:
...
- '/payments/{submissionId}':
- get:
- tags:
- - payments
- summary: Retrieve a payment submission
- operationId: retrievePaymentSubmission
- parameters:
- - $ref: '#/components/parameters/path_submissionId'
- - $ref: '#/components/parameters/permissionid_in_header'
- - $ref: '#/components/parameters/correlation_in_header'
- - $ref: '#/components/parameters/agent_in_header'
- - $ref: '#/components/parameters/targetid_in_header'
- - $ref: '#/components/parameters/psu_ip_in_header'
- - $ref: '#/components/parameters/psu_user_agent_in_header'
- - $ref: '#/components/parameters/optional_authorization_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'

- responses:
- '200':
- description: The original payment submission
- 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/paymentSubmissionRequest'
- '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'

'/payments/{submissionId}/status':
...
  /iso20022/payments:
post:
tags:
- iso20022
summary: Submit an ISO20022 XML payment instruction (PAIN.001)
description: |
Submit an XML pain.001 payment instruction according to the ISO20022 specification.
+ * bLink supports payment instructions only in XML-Schema «pain.001.001.09».
operationId: submitIso20022PaymentInstruction
- '/iso20022/payments/{submissionId}':
- get:
- tags:
- - iso20022
- summary: Retrieve the submitted ISO20022 XML PAIN.001 message.
- operationId: retrieveIso20022PaymentInstruction
- parameters:
- - $ref: '#/components/parameters/path_submissionId'
- - $ref: '#/components/parameters/permissionid_in_header'
- - $ref: '#/components/parameters/correlation_in_header'
- - $ref: '#/components/parameters/agent_in_header'
- - $ref: '#/components/parameters/targetid_in_header'
- - $ref: '#/components/parameters/psu_ip_in_header'
- - $ref: '#/components/parameters/psu_user_agent_in_header'
- - $ref: '#/components/parameters/optional_authorization_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'

- responses:
- '200':
- description: Returns the submitted ISO20022 XML PAIN.001 message
- headers:
- X-Correlation-ID:
- $ref: '#/components/headers/X-Correlation-ID'
- X-CorAPI-Source:
- $ref: '#/components/headers/X-CorAPI-Source'
- content:
- application/xml:
- 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'
  /iso20022/payments/{submissionId}/status:
get:
tags:
- iso20022
summary: Retrieve ISO20022 XML status report of a payment instruction (PAIN.002)
description: |
Retrieve the status report for the requested XML ISO20022 payment instruction (PAIN.002).
+ * bLink supports status reports only in XML-Schema «pain.002.001.10».
operationId: retrieveIso20022PaymentInstructionStatusReport
    ...
ExpectedDurationInSeconds:
description: Indicates by when Retrieve ISO20022 XML status report (PAIN.002) can be called to fetch the related PAIN.002.
schema:
type: string
Location:
- description: Location (submissionId) of the submitted message. Add /status for the status report.
+ description: Location (URI-reference) of the submitted message. The relative path shall be returned as URI-reference.
schema:
type: string
X-Correlation-ID:
description: Client defined ID from request to correlate HTTP requests between a client and a server
schema:
...
    paymentCreditor:
title: Payment Creditor
type: object
required:
- name
+ - postalAddress
properties:
name:
type: string
maxLength: 70
example: Hans Muster
postalAddress:
$ref: '#/components/schemas/paymentStructuredOrUnstructuredAddress'
    paymentSubmissionStatus:
title: Payment Submission Status
type: object
required:
- statusCode
properties:
messageId:
type: string
example: eb6305c91f7f49deaed016487c27b42d
statusCode:
type: string
enum:
- ACCP
- RJCT
- PART
+ - RCVD
example: PART
transactions:
type: array
items:
$ref: '#/components/schemas/paymentInstructionItemStatus'

Release of AIS v3

· 2 min read
Simon Meyer
Product Manager @ bLink

AIS Version 3.1

Welcome to the release notes of the major version 3 of the Account Information Service API!

Here you can find all relevant information about updates, improvements and new features introduced in this version.

Release

  • XE/XP: 07/2023
  • Prod: 11/2023

Added

  • New status code 202 added to endpoints /balance and /transactions.
  • New status code 204 added to endpoints /balance and /transactions
Defined AIS behavior

Expected behavior for AIS when retrieving data via JSON endpoints:

  • Technical correct requests return always a successful status 20X
  • Requests for transactions or balance for specific days without any data are always returned with either
    • 200 + empty list of transactions / 200 + last available balance
    • 204 + without content
  • Requests for transactions or balance for specific days that have not yet completed the day-end-process return a 202

Changes in YAML

  '/accounts/{accountId}/balance':
get:
tags:
...
responses:
'200':
description: Account balance information of the specified account.
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/accountBalanceItem'
+ '202':
+ $ref: '#/components/responses/standard202'
+ '204':
+ $ref: '#/components/responses/standard204'
'400':
$ref: '#/components/responses/standard400'
...

'/accounts/{accountId}/transactions':
get:
...
responses:
'200':
description: Returns transactions of an account.
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/accountTransactionReport'
+ '202':
+ $ref: '#/components/responses/standard202'
+ '204':
+ $ref: '#/components/responses/standard204'
'400':
$ref: '#/components/responses/standard400'
...

   responses:
...
+ standard202:
+ 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: |
+ Accepted - Valid request, requested data not available yet. The request may be attempted at a later time.
+ content:
+ application/json:
+ schema:
+ type: object
+ # properties: ??

+ standard204:
+ headers:
+ X-Correlation-ID:
+ $ref: '#/components/headers/X-Correlation-ID'
+ X-CorAPI-Source:
+ $ref: '#/components/headers/X-CorAPI-Source'
+ description: |
+ No content - The server has successfully fulfilled the request. There is no content to return and never will be.
...

AIS Version 3.0

Welcome to the change log for the Account Information Service API version 3, where you can find information about updates, improvements, and new features introduced in this version.

Release

  • XE/XP: 06/2022
  • Prod: 11/2022

Changed

  • Support of XML-Schema changed from camt.053.001.04 to camt.053.001.08

Release of PSS v3

· One min read
Simon Meyer
Product Manager @ bLink

PSS Version 3.0

Welcome to the release notes of the major version 3 of the Payment Submission Service API!

Here you can find all relevant information about updates, improvements and new features introduced in this version.

Release

  • XE/XP: 06/2022
  • Prod: 11/2022

Changed

  • Support of XML-Schema changed from pain.001.001.03 to pain.001.001.09
  • Support of XML-Schema changed from pain.002.001.03 to pain.002.001.10

Removed

  • Schema paymentISRDetail removed
  • Property paymentISRDetail removed from model paymentInstructionItem

Changes in YAML

    paymentInstructionItem:
title: Payment Instruction Item
type: object
required:
- instructionId
- endToEndId
- instructedAmount
properties:
instructionId:
type: string
maxLength: 35
example: "INSTR-001"
endToEndId:
type: string
maxLength: 35
example: "ENDTOENDID-001"
instructedAmount:
$ref: '#/components/schemas/paymentCurrencyAmount'
ibanDetails:
$ref: '#/components/schemas/paymentIBANDetail'
- isrDetails:
- $ref: '#/components/schemas/paymentISRDetail'
otherDetails:
$ref: '#/components/schemas/paymentOtherDetail'
qrDetails:
$ref: '#/components/schemas/paymentQRDetail'

paymentIBANDetail:
title: Payment IBAN Detail
type: object
required:
...

- paymentISRDetail:
- title: Payment ISR Detail
- type: object
- description: End of ISR/IS process on 30.09.2022 - ISR Payments with date later than 30.09.2022 will not be executed
- deprecated: true
- required:
- - remittanceReference
- properties:
- creditorAccount:
- $ref: '#/components/schemas/paymentOtherAccount'
- creditor:
- $ref: '#/components/schemas/paymentCreditor'
- remittanceReference:
- $ref: '#/components/schemas/paymentIsrRemittanceReference'

paymentOtherDetail: