Release of PSS v5
PSS Version 5.0
We are excited to announce the release of PSS API Version 5.0, bringing key enhancements to improve consistency, clarity, and interoperability across the bLink ecosystem. This new version refines core API elements, standardizes schemas, and introduces structural adjustments to facilitate seamless integration for all participants.
This release is the result of extensive discussions within the SFTI community, where existing API challenges were thoroughly analyzed and addressed. We encourage you to 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.
A big thank you to the entire community for your valuable contributions and to SFTI for orchestrating and refining the API.
Release Timeline
- XE: 04/2025
- XP: 05/2025
- Prod: 08/2025
Key Changes
Added
- New query parameters for pagination and filtering:
cursor
andlimit
added to endpointGET/consents
for cursor-based pagination.
- New response header
X-Next-Cursor
:- Provides pagination cursor for
GET/consents
.
- Provides pagination cursor for
- New attributes added:
- New mandatory attribute
uetr
added to schemaPaymentInstructionItem
. - New optional attributes
addressLine1
andaddressLine2
added to schemaPaymentPostalAddress
.
- New mandatory attribute
- New header
X-PSU-Accept-Lang
added to all applicable endpoints. - Schema
PaymentSubmissionResponse
added to endpointsPOST/payments
andPOST/iso20022/payments
: -ThesubmissionId
is now returned within a structured response object. - All attribute descriptions updated to reference the corresponding attributes in Swiss Payment Standards (SPS) and ISO20022.
Changed
- Naming conventions updated to comply with OpenAPI specifications:
- Header references changed to
snake_case
formatting:- Before:
$ref: '#/components/parameters/clientid_in_header'
- Now:
$ref: '#/components/parameters/client_id_in_header'
- Before:
- Schema references changed from
camelCase
toPascalCase
:- Before:
$ref: '#/components/schemas/paymentIbanAccount'
- Now:
$ref: '#/components/schemas/PaymentIbanAccount'
- Before:
- Header references changed to
- Schema refactoring for consistency and reusability:
- Several attributes (e.g.,
instructionId
,messageId
,initiatingPartyId
) are now defined as separate reusable schemas. - Example:
- Before:
instructionId
was directly defined inPaymentInstructionItemStatus
. - Now:
instructionId
references a separate InstructionId schema.
- Before:
- Several attributes (e.g.,
- Schema adjustments:
- Schema
PaymentStructuredAddress
renamed toPaymentPostalAddress
. - Status condition changes:
type
,title
,detail
in schemaCommonErrorResponse
are now required.streetName
,postCode
in schemaPaymentPostalAddress
changed to optional.
- Maximum length for
PaymentCreditor.name
increased from 70 to 140 characters. - Validation updates:
bic
in schemaPaymentCreditorAgent
updated withminLength=8
(previously unrestricted).- Regex constraints tightened: Pattern strings updated from
[A-Z]{2}
→^[A-Z]{2}$
.
- Schema
Removed
- Deprecated schemas removed:
PaymentStructuredOrUnstructuredAddress
PaymentUnstructuredAddress
- Deprecated headers removed:
optional_authorization_in_header
removed fromGET/healthcheck
andPOST/healthcheck
.optional_authorization_in_header
andoptional_instance_id_in_header
fully removed.
Changes in YAML
The following diff between PSS v4 and PSS v5 focuses only on functional and technical changes, while ignoring design-specific adjustments, including:
- Header references changed to snake_case formatting.
- Schema references changed from camelCase to PascalCase.
- Alphabetic ordering of attributes.
- Specification structure refinements.
- Schema refactoring to introduce shared components.
- Description enhancements aligning attributes with SPS 2025.
paths:
# bLink specific paths
/payments:
post:
tags:
- payments
summary: Submit payment instructions
description: Create new payments submission.
operationId: submitPaymentInstructions
parameters:
- $ref: '#/components/parameters/authorization_in_header'
- $ref: '#/components/parameters/permission_id_in_header'
- $ref: '#/components/parameters/client_id_in_header'
- $ref: '#/components/parameters/correlation_in_header'
- $ref: '#/components/parameters/agent_in_header'
- $ref: '#/components/parameters/target_id_in_header'
- $ref: '#/components/parameters/psu_ip_in_header'
- $ref: '#/components/parameters/psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_target_id_in_header'
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_psu_accept_lang_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
requestBody:
required: true
description: Payment instruction details as defined by data model.
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentSubmissionRequest'
responses:
'201':
description: Created.
headers:
Location:
$ref: '#/components/headers/Location'
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/PaymentSubmissionResponse'
'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'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
/payments/{submissionId}/status:
get:
tags:
- payments
summary: Retrieve payment submission status information
description: Retrieve a specific payment submission's status.
operationId: retrievePaymentSubmissionStatus
parameters:
- $ref: '#/components/parameters/submission_id_in_path'
- $ref: '#/components/parameters/authorization_in_header'
- $ref: '#/components/parameters/permission_id_in_header'
- $ref: '#/components/parameters/client_id_in_header'
- $ref: '#/components/parameters/correlation_in_header'
- $ref: '#/components/parameters/agent_in_header'
- $ref: '#/components/parameters/target_id_in_header'
- $ref: '#/components/parameters/psu_ip_in_header'
- $ref: '#/components/parameters/psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_target_id_in_header'
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_psu_accept_lang_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
responses:
'200':
description: Status information for the specific 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/PaymentSubmissionStatus'
'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'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
/iso20022/payments:
post:
tags:
- iso20022
summary: Submit 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
parameters:
- $ref: '#/components/parameters/authorization_in_header'
- $ref: '#/components/parameters/permission_id_in_header'
- $ref: '#/components/parameters/client_id_in_header'
- $ref: '#/components/parameters/correlation_in_header'
- $ref: '#/components/parameters/agent_in_header'
- $ref: '#/components/parameters/target_id_in_header'
- $ref: '#/components/parameters/psu_ip_in_header'
- $ref: '#/components/parameters/psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_target_id_in_header'
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_psu_accept_lang_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
requestBody:
required: true
description: Payment instruction details as defined by data model.
content:
application/xml:
schema:
# TKF6S: Use string here until a real schema is defined. Otherwise code generation will fail
type: string
+ format: binary
responses:
'201':
description: Created.
headers:
Location:
$ref: '#/components/headers/Location'
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/PaymentSubmissionResponse'
'202':
description: Accepted but the resource is not yet created.
headers:
Location:
$ref: '#/components/headers/Location'
ExpectedDurationInSeconds:
$ref: '#/components/headers/ExpectedDurationInSeconds'
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/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'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
/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
parameters:
- $ref: '#/components/parameters/submission_id_in_path'
- $ref: '#/components/parameters/authorization_in_header'
- $ref: '#/components/parameters/permission_id_in_header'
- $ref: '#/components/parameters/client_id_in_header'
- $ref: '#/components/parameters/correlation_in_header'
- $ref: '#/components/parameters/agent_in_header'
- $ref: '#/components/parameters/target_id_in_header'
- $ref: '#/components/parameters/psu_ip_in_header'
- $ref: '#/components/parameters/psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_target_id_in_header'
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_psu_accept_lang_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
responses:
'200':
description: Returns the requested ISO20022 XML pain.002 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'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
/consents:
get:
tags:
- consents
summary: Retrieve a list of consents
description: |
The consents endpoint allows the client (e.g., a third party provider) to query the consents for a given user. The provider (e.g., a financial institution) must return the consents linked with the access token supplied with the request.
operationId: retrieveConsents
parameters:
+ - $ref: '#/components/parameters/cursor_in_query'
+ - $ref: '#/components/parameters/limit_in_query'
- $ref: '#/components/parameters/authorization_in_header'
- $ref: '#/components/parameters/permission_id_in_header'
- $ref: '#/components/parameters/client_id_in_header'
- $ref: '#/components/parameters/correlation_in_header'
- $ref: '#/components/parameters/agent_in_header'
- $ref: '#/components/parameters/target_id_in_header'
- $ref: '#/components/parameters/psu_ip_in_header'
- $ref: '#/components/parameters/psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_target_id_in_header'
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- $ref: '#/components/parameters/optional_psu_accept_lang_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
responses:
'200':
description: List of consents
headers:
X-Correlation-ID:
$ref: '#/components/headers/X-Correlation-ID'
X-CorAPI-Source:
$ref: '#/components/headers/X-CorAPI-Source'
+ X-Next-Cursor:
+ $ref: '#/components/headers/X-Next-Cursor'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConsentAccountItem'
'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'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
/healthcheck:
get:
tags:
- diagnostics
summary: Returns all specified request headers and additional diagnostic information
operationId: healthCheckGet
parameters:
- $ref: '#/components/parameters/optional_correlation_in_header'
- - $ref: '#/components/parameters/optional_authorization_in_header'
- $ref: '#/components/parameters/optional_agent_in_header'
- $ref: '#/components/parameters/target_id_in_header'
- $ref: '#/components/parameters/optional_target_id_in_header'
- $ref: '#/components/parameters/client_id_in_header'
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
responses:
'200':
description: Health Check Response
headers:
X-CorAPI-Source:
$ref: '#/components/headers/X-CorAPI-Source'
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
'500':
$ref: '#/components/responses/standard500'
'501':
$ref: '#/components/responses/standard501'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
post:
tags:
- diagnostics
summary: Returns all specified request headers, the request body and additional diagnostic information
operationId: healthCheckPost
parameters:
- $ref: '#/components/parameters/optional_correlation_in_header'
- - $ref: '#/components/parameters/optional_authorization_in_header'
- $ref: '#/components/parameters/optional_agent_in_header'
- $ref: '#/components/parameters/target_id_in_header' #SCOPE(SIX,SIX_INTERNAL,SIX_CAAS,SIX_CAAS_INTERNAL)
- $ref: '#/components/parameters/optional_target_id_in_header' #SCOPE(FI)
- $ref: '#/components/parameters/client_id_in_header' #SCOPE(FI)
- $ref: '#/components/parameters/optional_psu_ip_in_header'
- $ref: '#/components/parameters/optional_psu_user_agent_in_header'
- - $ref: '#/components/parameters/optional_instance_id_in_header'
requestBody:
required: true
content:
application/json:
schema:
type: string
responses:
'200':
description: Health Check Response
headers:
X-CorAPI-Source:
$ref: '#/components/headers/X-CorAPI-Source'
content:
application/json:
schema:
$ref: '#/components/schemas/HealthCheckResponse'
'500':
$ref: '#/components/responses/standard500'
'501':
$ref: '#/components/responses/standard501'
'502':
$ref: '#/components/responses/standard502'
'503':
$ref: '#/components/responses/standard503'
'504':
$ref: '#/components/responses/standard504'
components:
schemas:
# bLink specific schemas
## /payments
PaymentSubmissionRequest:
title: Payment Submission Request
description: The payment submission request object.
type: object
required:
- bookingInstruction
- debtorAccount
- initiatingPartyId
- messageId
- requestedExecutionDate
- transactions
properties:
bookingInstruction:
$ref: '#/components/schemas/PaymentBookingInstruction'
debtorAccount:
$ref: '#/components/schemas/PaymentIbanAccount'
initiatingPartyId:
$ref: '#/components/schemas/InitiatingPartyId'
messageId:
$ref: '#/components/schemas/MessageId'
requestedExecutionDate:
$ref: '#/components/schemas/Date'
transactions:
type: array
description: The transaction items.
items:
$ref: '#/components/schemas/PaymentInstructionItem'
+ PaymentSubmissionResponse:
+ title: Payment Submission Response (200)
+ description: The payment submission response object.
+ type: object
+ properties:
+ submissionid:
+ $ref: '#/components/schemas/SubmissionId'
PaymentInstructionItem:
title: Payment Instruction Item
description: The payment instruction item object.
type: object
required:
- endToEndId
- instructedAmount
- instructionId
properties:
endToEndId:
$ref: '#/components/schemas/EndToEndId'
instructedAmount:
$ref: '#/components/schemas/PaymentCurrencyAmount'
instructionId:
$ref: '#/components/schemas/InstructionId'
ibanDetails:
$ref: '#/components/schemas/PaymentIbanDetail'
otherDetails:
$ref: '#/components/schemas/PaymentOtherDetail'
qrDetails:
$ref: '#/components/schemas/PaymentQrDetail'
+ uetr:
+ $ref: '#/components/schemas/Uetr'
PaymentIbanDetail:
title: Payment IBAN Detail
description: Details of an IBAN payment.
type: object
required:
- creditor
- creditorAccount
properties:
chargeBearer:
$ref: '#/components/schemas/PaymentChargeBearerMethod'
creditor:
$ref: '#/components/schemas/PaymentCreditor'
creditorAccount:
$ref: '#/components/schemas/PaymentIbanAccount'
creditorAgent:
$ref: '#/components/schemas/PaymentCreditorAgent'
remittanceInformation:
$ref: '#/components/schemas/PaymentRemittanceInformation'
remittanceReference:
$ref: '#/components/schemas/PaymentIbanRemittanceReference'
sepaIndicator:
type: boolean
description: Indicates if payment is a SEPA payment or not. Corresponds to the attribute _InstrPrty ⇾ SvcLvl ⇾ Cd_ in SPS/ISO-20022.
example: true
PaymentOtherDetail:
title: Payment Other Detail
type: object
required:
- creditor
- creditorAccount
+ - creditorAgent
properties:
creditor:
$ref: '#/components/schemas/PaymentCreditor'
creditorAccount:
$ref: '#/components/schemas/PaymentOtherAccount'
creditorAgent:
$ref: '#/components/schemas/PaymentCreditorAgent'
chargeBearer:
$ref: '#/components/schemas/PaymentChargeBearerMethod'
remittanceReference:
$ref: '#/components/schemas/PaymentOtherRemittanceReference'
remittanceInformation:
$ref: '#/components/schemas/PaymentRemittanceInformation'
PaymentQrDetail:
title: Payment QR Detail
description: Details of a QR payment.
type: object
required:
- creditor
- creditorAccount
properties:
creditor:
$ref: '#/components/schemas/PaymentCreditor'
creditorAccount:
$ref: '#/components/schemas/PaymentQrIbanAccount'
remittanceInformation:
$ref: '#/components/schemas/PaymentRemittanceInformation'
remittanceReference:
$ref: '#/components/schemas/PaymentIbanRemittanceReference'
ultimateCreditor:
$ref: '#/components/schemas/PaymentCreditor'
ultimateDebtor:
$ref: '#/components/schemas/PaymentDebtor'
PaymentCreditor:
title: Payment Creditor
description: The creditor of a payment.
type: object
required:
- name
- postalAddress
properties:
name:
type: string
maxLength: 140
description: The name of the creditor of a payment. Restriction for payment type SEPA is 70 characters.
example: Hans Muster
postalAddress:
description: The postal address of the creditor of a payment.
# $ref: '#/components/schemas/PaymentPostalAddress'
PaymentDebtor:
title: Payment Debtor
description: The debtor of a payment.
type: object
required:
- name
- postalAddress
properties:
name:
type: string
+ maxLength: 140
+ description: The name of the debtor of a payment. Restriction for payment type SEPA is 70 characters.
- maxLength: 70
example: Hans Muster
postalAddress:
description: The postal address of the debtor of a payment.
# $ref: '#/components/schemas/PaymentPostalAddress'
PaymentChargeBearerMethod:
title: Payment Charge Bearer Method
description: >
The payment charge bearer method, i.e. who is responsible for paying the transaction fees associated with a payment. Corresponds to the attribute _SvcLvl ⇾ Cd_ in SPS/ISO-20022. Possible methods are: - DEBT (debtor) - CRED (creditor) - SHAR (shared) - SLEV (service level)
type: string
enum:
- DEBT
- CRED
- SHAR
- SLEV
example: SHAR
PaymentBookingInstruction:
title: Payment Booking Instruction
description: >
The payment booking instruction, i.e. the method for processing and grouping a payment. Corresponds to the attribute _DbtrAcct ⇾ Tp ⇾ Prtry_ in SPS/ISO-20022. Possible methods are:
- SINGLEBOOKING_SIA
- SINGLEBOOKING_NOA
- BATCHBOOKING_SALA_NOA
- BATCHBOOKING_SALA_CND
- BATCHBOOKING_NOA
- BATCHBOOKING_CND
- BATCHBOOKING_CWD
type: string
enum:
- SINGLEBOOKING_SIA
- SINGLEBOOKING_NOA
- BATCHBOOKING_SALA_NOA
- BATCHBOOKING_SALA_CND
- BATCHBOOKING_NOA
- BATCHBOOKING_CND
- BATCHBOOKING_CWD
example: BATCHBOOKING_SALA_CND
+ Uetr:
+ description: >-
+ Globally unique reference Reference assigned by the debtor (optional) or by the debtor agent. Corresponds to the attribute _CdtTrfTxInf ⇾ PmtId ⇾ UETR_ in SPS/ISO-20022.
+ type: string
+ pattern: ^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$
+ example: fdc01a3e-4567-4abc-8def-1234567890ab
PaymentSubmissionStatus:
title: Payment Submission Status
description: The payment submission status.
type: object
required:
- statusCode
properties:
statusCode:
type: string
description: |
The status of the payment. Corresponds to the attribute _TxSts_ in SPS/ISO-20022. Possible status values are:
- ACCP (accepted)
- RJCT (rejected)
- PART (partially accepted)
- RCVD (received)
enum:
- ACCP
- RJCT
- PART
- RCVD
example: PART
messageId:
description: The unique identifier (UUID) of the payment instruction message.
# $ref: '#/components/schemas/MessageId'
transactions:
type: array
description: The payment transaction items.
items:
$ref: '#/components/schemas/PaymentInstructionItemStatus'
PaymentInstructionItemStatus:
title: Payment Instruction Item Status
description: The status of the payment instruction item.
type: object
required:
- instructionId
- statusCode
properties:
instructionId:
description: The unique identifier (UUID) of the payment instruction item.
# $ref: '#/components/schemas/InstructionId'
statusCode:
type: string
description: |
The status of the payment. Corresponds to the attribute _TxSts_ in SPS/ISO-20022. Possible status values are:
- ACCP (accepted)
- RJCT (rejected)
enum:
- ACCP
- RJCT
example: RJCT
reasonCode:
type: string
description: The reason code for the instruction item. Corresponds to the attribute _StsRsnInf_ in SPS/ISO-20022.
example: CURR
reasonInformation:
type: string
maxLength: 105
description: The reason information for the instruction item. Corresponds to the attribute _StsRsnInf ⇾ Rsn ⇾ Prtry_ in SPS/ISO-20022.
example: currency USD not allowed for payment type IBAN
PaymentCreditorAgent:
type: object
properties:
bic:
type: string
+ minLength: 8
maxLength: 11
description: >
The bank identifier code (BIC) of the creditor agent of a payment. Corresponds to the attribute _CdtrAgt ⇾ FinInstnId ⇾ BIC_ in SPS/ISO-20022. The BIC is an 8 or 11-character code that breaks down as follows:
- First 4 characters - bank code (letters only)
- Next 2 characters - ISO 3166-1 alpha-2 country code (letters only)
- Next 2 characters - location code (letters and digits)
- Last 3 characters (optional) - branch code, specifying a particular branch of the bank (letters and digits)
+ example: DEUTDE5M101
clearingSystemMemberIdentification:
description: The clearing system member identification of the creditor agend of a payment.
# $ref: '#/components/schemas/CommonClearingSystemMemberIdentification'
PaymentIbanAccount:
title: Payment IBAN Account
description: The IBAN account object.
type: object
required:
- identification
- type
properties:
identification:
$ref: '#/components/schemas/IbanIdentification'
# description: The International Bank Account Number (IBAN), associated with the debtor account.
type:
type: string
description: The allowed account identification type for the creditor account depends on the payment type. The debtor account must always be an IBAN.
enum:
- IBAN
example: IBAN
IbanIdentification:
description: The International Bank Account Number (IBAN), associated with the account.
type: string
maxLength: 34
pattern: ^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$
example: CH5481230000001998736
EndToEndId:
description: The endToEndId of the instruction item. Corresponds to the attribute _EndToEndId_ in SPS/ISO-20022.
type: string
maxLength: 35
example: ENDTOENDID-001
InitiatingPartyId:
description: The identifier of the third party provider (TPP) who created the payment instruction message derived from the OAuth 2.0 flow.
type: string
maxLength: 32
example: TPP01746
Amount:
description: An amount. Corresponds to the attribute _Amt_ in SPS/ISO-20022.
type: string
maxLength: 18
pattern: '^[0-9]{1,12}([.][0-9]{1,5})?$'
example: '10.25'
Currency:
description: The ISO currency three-letter code. Corresponds to the attribute _Ccy_ in SPS/ISO-20022.
type: string
minLength: 3
maxLength: 3
example: CHF
PaymentCurrencyAmount:
title: Payment Currency-Amount
description: Specifies the entry amount according to the account currency.
type: object
required:
- amount
- currency
properties:
amount:
$ref: '#/components/schemas/Amount'
# description: The entry amount, which will be reflected in the account balance.
currency:
$ref: '#/components/schemas/Currency'
# description: The ISO currency three-letter code in which the entry was posed.
InstructionId:
description: The unique identifier (UUID) of the instruction item. Corresponds to the attribute _InstrId_ in SPS/ISO-20022.
type: string
maxLength: 35
example: INSTR-001
MessageId:
description: The unique identifier (UUID) of the the instruction message. Corresponds to the attribute _MsgId_ in SPS/ISO-20022.
type: string
maxLength: 35
example: eb6305c91f7f49deaed016487c27b42d
PaymentQrIbanAccount:
title: Payment QR-IBAN Account
description: The QR-IBAN account object.
type: object
required:
- identification
- type
properties:
identification:
$ref: '#/components/schemas/IbanIdentification'
# description: The International Bank Account Number (IBAN), associated with the debtor account.
type:
type: string
description: IBAN or QR-IBAN of the creditor, only IBANs with CH or LI country code permitted.
enum:
- IBAN
- QR_IBAN
example: IBAN
PaymentOtherAccount:
title: Payment Other Account
description: The OTHER account object.
type: object
required:
- identification
- type
properties:
identification:
type: string
description: The unique identification (UUID) of the OTHER payment account.
maxLength: 34
example: 01-39139-1
type:
type: string
description: The account identification type. Must always be OTHER.
enum:
- OTHER
+ PaymentPostalAddress:
+ title: Address for Payments
+ description: The postal address of a participant within the payment. Corresponds to the attribute _PstlAdr_ in SPS/ISO-20022.
+ type: object
+ required:
+ - country
+ - townName
+ properties:
+ country:
+ type: string
+ maxLength: 2
+ pattern: '^[A-Z]{2}$'
+ description: The ISO country two-letter code. Corresponds to the attribute _Ctry_ in SPS/ISO-20022.
+ example: CH
+ townName:
+ type: string
+ maxLength: 35
+ description: The town name. Corresponds to the attribute _TwnNm_ in SPS/ISO-20022.
+ example: Biel
+ addressLine1:
+ type: string
+ maxLength: 70
+ description: Additional address information, which cannot be supplied in structured elements. Corresponds to the attribute _AdrLine_ in SPS/ISO-20022.
+ example: Carribean At Keppel Bay
+ addressLine2:
+ type: string
+ maxLength: 70
+ description: Additional address information, which cannot be supplied in structured elements. Corresponds to the attribute _AdrLine_ in SPS/ISO-20022.
+ example: 05-66
+ buildingNumber:
+ type: string
+ maxLength: 16
+ description: The building number. Corresponds to the attribute _BldgNb_ in SPS/ISO-20022.
+ example: '24'
+ postCode:
+ type: string
+ maxLength: 16
+ description: The post code. Corresponds to the attribute _PstCd_ in SPS/ISO-20022.
+ example: '2501'
+ streetName:
+ type: string
+ maxLength: 70
+ description: The street name. Corresponds to the attribute _StrtNm_ in SPS/ISO-20022.
+ example: Rue de la gare
- paymentStructuredAddress:
- title: Structured Address for Payments
- type: object
- properties:
- streetName:
- type: string
- maxLength: 70
- example: Rue de la gare
- buildingNumber:
- type: string
- maxLength: 16
- example: 24
- postCode:
- type: string
- maxLength: 16
- example: 2501
- townName:
- type: string
- maxLength: 35
- example: Biel
- country:
- type: string
- maxLength: 2
- example: CH
- paymentUnstructuredAddress:
- title: Unstructured Address for Payments
- type: object
- properties:
- addressLines:
- type: array
- description: max 2 lines of 70 characters
- maxItems: 2
- example: [ Robert Schneider SA, Rue de la gare 24 ]
- items:
- type: string
- maxLength: 70
- country:
- type: string
- maxLength: 2
- example: CH
- paymentStructuredOrUnstructuredAddress:
- title: Payment Structured or Unstructured Address
- description: Either structured or unstructured must be set
- type: object
- properties:
- structured:
- $ref: '#/components/schemas/paymentStructuredAddress'
- unstructured:
- $ref: '#/components/schemas/paymentUnstructuredAddress'
PaymentIbanRemittanceReference:
title: Payment Remittance Reference
description: >
The IBAN payment remittance reference. A specific code or number that is used to identify and track payment transactions. Either remittanceReference or remittanceInformation must be set.
type: object
properties:
reference:
$ref: '#/components/schemas/RemittanceReference'
type:
type: string
description: >-
The specific type of remittance reference. Either SCOR (Swiss QR Code Reference) or QRR (QR-Reference). Corresponds to the attribute
_RmtInf ⇾ Strd ⇾ CdtrRefInf ⇾ Tp_ in SPS/ISO-20022.
enum:
- SCOR
- QRR
example: SCOR
RemittanceReference:
description: >-
The reference number associated to the choosen remittance type. Corresponds to the attribute _RmtInf ⇾ Strd ⇾ CdtrRefInf ⇾ Ref_ in
SPS/ISO-20022.
type: string
maxLength: 35
example: '210000000003139471430009017'
PaymentOtherRemittanceReference:
title: Payment Remittance Reference
description: >
The OTHER payment remittance reference. A specific code or number that is used to identify and track payment transactions. Either remittanceReference or remittanceInformation must be set.
type: object
properties:
reference:
$ref: '#/components/schemas/RemittanceReference'
type:
type: string
description: The specific type of remittance reference. Has to be SCOR (Swiss QR Code Reference).
enum:
- SCOR
example: SCOR
PaymentRemittanceInformation:
title: Payment Remittance Information
description: Either remittanceReference or remittanceInformation must be set. Correspond to the attribute _RmtInf ⇾ Ustrd_ in SPS/ISO-20022.
type: string
maxLength: 140
example: Rechnung Nr. 408
CommonClearingSystemMemberIdentification:
title: Common Clearing System Member Identification
description: Specifies the Information used to identify a member within a clearing system.
type: object
required:
- code
- memberId
properties:
code:
type: string
maxLength: 5
description: >-
Identification code of a clearing system. Only "CHBCC" is permitted inSwitzerland. Corresponds to the attribute _ClrSysId ⇾ Cd_ in SPS/ISO-20022.
example: CHBCC
memberId:
type: string
maxLength: 35
description: >-
The identification of a clearing system member. Clearing ID (Bank Code, "National Identifier") of the financial institution. Corresponds to the attribute _ClrSysId ⇾ MmbId_ in SPS/ISO-20022.
example: 00230
+ SubmissionId:
+ title: Submission ID
+ description: ID of payment submission to be retrieved.
+ type: string
+ maxLength: 35
+ example: 618d4ac6e8a64e3d9f26aa3d8c4f323e
## Date Formats
Date:
title: Date
description: A date.
type: string
format: date
example: 2018-04-13
## errors
CommonErrorResponse:
title: Common Error Response
description: The common error response object.
type: object
+ required:
+ - detail
+ - title
+ - type
properties:
detail:
type: string
description: The details about the common error response.
example: Detailed problem description with respect to the current request
title:
type: string
description: The title of the common error response.
example: This is the general problem description
type:
$ref: '#/components/schemas/CommonErrorType'
instance:
type: string
description: The path to the corresponding resource.
example: path/to/corresponding/resource
CommonErrorType:
title: Common Error Type
description: Error Types for commonErrorResponse.
type: string
enum:
- /problems/INVALID_PAYLOAD
- /problems/MALFORMED_PAYLOAD
- /problems/INVALID_TOKEN
- /problems/EXPIRED_TOKEN
- /problems/INSUFFICIENT_PRIVILEGES
- /problems/NO_ACCESS_TO_RESOURCE
- /problems/RESOURCE_DOES_NOT_EXIST
- /problems/RESOURCE_NOT_READY
- /problems/RESOURCE_TOO_LARGE
- /problems/WRONG_METHOD
- /problems/OPERATION_NOT_ALLOWED
- /problems/TECHNICAL_ERROR
- /problems/NOT_IMPLEMENTED
example: /problems/TECHNICAL_ERROR
# bLink specific schemas
## /consents
ConsentAccountItem:
title: Consent Account Item
required:
- accountId
- currency
- iban
- accountOwner
type: object
properties:
accountId:
type: string
example: 13579
iban:
maxLength: 34
pattern: '[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}'
type: string
example: CH9300762011623852957
currency:
maxLength: 3
minLength: 3
type: string
example: CHF
accountOwner:
maxLength: 70
type: string
example: Account Owner XYZ
designation:
type: string
example: Savings ABC
allowedCurrencies:
type: array
items:
type: string
example: CHF
## /healthcheck
HealthCheckResponse:
title: Health Check Response
type: object
properties:
requestDateTime:
title: Request Time
type: string
format: date-time
example: 2018-04-13T11:11:11Z
receivedHeaders:
title: Received Headers
type: array
items:
type: object
properties:
headerName:
type: string
example: X-Correlation-ID
headerValue:
type: string
description: As received
receivedPayload:
title: Received Payload
type: string
example: ... as received ...
responses:
standard400:
headers:
Content-Language:
$ref: '#/components/headers/Content-Language'
WWW-Authenticate:
$ref: '#/components/headers/WWW-Authenticate'
X-Correlation-ID:
$ref: '#/components/headers/X-Correlation-ID'
X-CorAPI-Source:
$ref: '#/components/headers/X-CorAPI-Source'
description: |
Bad Request - The format of the request was invalid.
Examples:
- InvalidPayload:
type: /problems/INVALID_PAYLOAD
title: Payload does not comply with API specification
detail: Malformed JSON
instance: path/to/corresponding/resource
- InvalidParameter:
type: /problems/INVALID_PAYLOAD
title: Invalid parameter values have been detected
detail: Sent data could not processed
instance: path/to/corresponding/resource
- MissingId:
type: /problems/INVALID_PAYLOAD
title: The payload was not valid
detail: ID is missing
instance: path/to/corresponding/resource
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard401:
headers:
Content-Language:
$ref: '#/components/headers/Content-Language'
WWW-Authenticate:
$ref: '#/components/headers/WWW-Authenticate'
X-Correlation-ID:
$ref: '#/components/headers/X-Correlation-ID'
X-CorAPI-Source:
$ref: '#/components/headers/X-CorAPI-Source'
description: |
Unauthorized - The request has not been applied because it provides no valid authentication credentials for the target resource.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard403:
headers:
Content-Language:
$ref: '#/components/headers/Content-Language'
WWW-Authenticate:
$ref: '#/components/headers/WWW-Authenticate'
X-Correlation-ID:
$ref: '#/components/headers/X-Correlation-ID'
X-CorAPI-Source:
$ref: '#/components/headers/X-CorAPI-Source'
description: |
Forbidden - A valid OAuth Token was received, but access was denied. (Depending on the security requirements, providers can return 404 instead)
Examples:
- InsufficientPrivileges:
type: /problems/INSUFFICIENT_PRIVILEGES
title: No privileges for the requested operation
detail: Insufficient privileges for the requested operation
instance: path/to/corresponding/resource
- ExpiredToken:
type: /problems/EXPIRED_TOKEN
title: The OAuth Token is expired
detail: The token is no longer valid
instance: path/to/corresponding/resource
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard404:
headers:
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: |
Not Found - Either the endpoint does not exist or a requested resource is not yet available (e.g., account statements)
Examples:
- InvalidAccounts:
type: /problems/INSUFFICIENT_PRIVILEGES
title: Insufficient privileges to access resource
detail: The provided token does not grant access to the requested account
instance: path/to/corresponding/resource
- InvalidToken:
type: /problems/INSUFFICIENT_PRIVILEGES
title: Insufficient privileges to access resource
detail: The provided token is not valid
instance: path/to/corresponding/resource
- WrongEndpointUrl:
type: /problems/TECHNICAL_ERROR
title: URL not found
detail: The requested endpoint does not exist
instance: path/to/corresponding/resource
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard405:
headers:
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 - The method received in the request-line is known by the origin server but not supported by the target resource.
Examples:
- NotSupportedOperation:
type: /problems/WRONG_METHOD
title: This HTTP operation is not allowed on this endpoint
detail: Only GET operations are allowed
instance: path/to/corresponding/resource
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard500:
headers:
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: |
Internal Server Error - The server encountered an unexpected condition that prevented it from fulfilling the request.
Examples:
- TechnicalServerError:
type: /problems/TECHNICAL_ERROR
title: Technical error on server side
detail: Processing yielded a technical error
instance: path/to/corresponding/resource
- ResourceTooLarge:
type: /problems/RESOURCE_TOO_LARGE
title: Generated resource was too large
detail: The generated resource exceeded the size limit
instance: path/to/corresponding/resource
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard501:
headers:
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: |
Not Implemented - The server does not support the functionality required to fulfill the request.
Examples:
- EndpointNotImplemented:
type: /problems/NOT_IMPLEMENTED
title: Target endpoint is not implemented
detail: This endpoint is not implemented
instance: path/to/corresponding/resource
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard502:
headers:
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: |
Bad Gateway - The upstream gateway or proxy issued an invalid response.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard503:
headers:
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: |
Service Unavailable - The server is currently unable to handle the request due to a temporary overload or scheduled maintenance.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
standard504:
headers:
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: |
Gateway Timeout - The upstream gateway or proxy did not provide a response in time.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/CommonErrorResponse'
parameters:
+ cursor_in_query:
+ in: query
+ name: cursor
+ description: Optional parameter for pagination. Use the ID of the last item from the previous response to retrieve the next set of results.
+ required: false
+ schema:
+ type: string
+ example: cursorIDxyz
+ limit_in_query:
+ in: query
+ name: limit
+ description: Optional parameter for pagination, specifying the number of items to return. The actual maximum limit can be defined by the provider.
+ required: false
+ schema:
+ type: integer
+ format: int32
+ example: 25
+ minimum: 1
+ default: 25
submission_id_in_path:
name: submissionid
in: path
description: ID of payment submission to be retrieved.
required: true
schema:
maxLength: 35
type: string
example: submissionid
# bLink specific parameters
target_id_in_header:
name: X-CorAPI-Target-ID
in: header
description: 'ID that identifies the provider (e.g., a financial institution).'
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'
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'
required: true
schema:
type: string
permission_id_in_header:
name: Permission-ID
in: header
description: 'This contains the permission Id returned by the post permission, which was performed prior to any request.'
required: true
schema:
format: uuid,
type: string
client_id_in_header:
name: X-CorAPI-Client-ID
in: header
description: 'ID of the client forwarded to the provider.'
required: true
schema:
type: string
+ optional_psu_accept_lang_in_header:
+ in: header
+ name: X-PSU-Accept-Lang
+ description: Language of client software
+ required: false
+ schema:
+ type: string
authorization_in_header:
name: Authorization
in: header
description: Bearer followed by a base64 encoded OAuth access token
required: true
schema:
type: string
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
- optional_authorization_in_header:
- name: Authorization
- in: header
- description: Bearer followed by a base64 encoded OAuth access token
- required: false
- schema:
- type: string
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_target_id_in_header:
name: X-CorAPI-Target-ID
in: header
description: 'ID of the target, e.g., a financial institution.'
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_psu_ip_in_header:
name: X-PSU-IP-Address
in: header
description: 'IP address of the user initiating the operation'
required: false
schema:
type: string
optional_psu_user_agent_in_header:
name: X-PSU-User-Agent
in: header
description: 'User of the client software'
required: false
schema:
type: string
- 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. (SCOPE: SIX_CAAS - optional, SIX_CAAS_INTERNAL - optional).'
- required: false
- schema:
- type: string
- maxLength: 64
optional_permission_id_in_header:
name: Permission-ID
in: header
description: 'This contains the permission Id returned by the post permission, which was performed prior to any request.'
required: false
schema:
format: uuid,
type: string
headers:
Content-Language:
description: 'always en'
schema:
type: string
WWW-Authenticate:
description: 'i.e. "Bearer error=''invalid_token''" according to RFC6750 section-3'
schema:
type: string
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 (URI-reference) of the submitted message. The relative path shall be returned as URI-reference.
schema:
type: string
example: /payments/618d4ac6e8a64e3d9f26aa3d8c4f323e
X-Correlation-ID:
description: Client defined ID from request to correlate HTTP requests between a client and a server
schema:
type: string
maxLength: 64
example: f058ebd6-02f7-4d3f-942e-904344e8cde5
X-CorAPI-Source:
description: |
Indicates whether the response was created by the bLink platform or by the provider.
schema:
type: string
enum:
- PLATFORM
- PROVIDER
+ X-Next-Cursor:
+ description: >-
+ An opaque string value used for pagination. Include this value in the cursor parameter of the subsequent request to fetch the next page of
+ results. An empty string indicates that there are no more results.
+ required: false
+ schema:
+ type: string
+ example: nextCursorIDxyz