- API base URL: https://psd2.api.commerzbank.com
- Authorisation base URL: https://psd2.redirect.commerzbank.com/public
- Sandbox base URL : https://psd2.api-sandbox.commerzbank.com
- Sandbox authorisation base URL : https://psd2.redirect-sandbox.commerzbank.com/public
- BerlinGroup Conformity : Implementation Guidelines version 1.3
More details on how the APIs work, including sample queries, etc, are available in the Berlin Group's specifications. The above link redirects to the Implementation Guidelines, as well as the Berlin Group specifications in Open API 3.0 format.
A valid QWAC Certificate for PSD2 is required to access the Sandbox and Berlin Group API. The following conditions are verified:
- The certificate must be valid (the connection date is strictly between the creation date and the expiration date of the certificate)
- The certificate must be issued by a QWAC Certificate Authority. The official list of QTSP is available on the eIDAS Trusted List
- The certificate should not be revoked
If one of the conditions is not fulfilled, the connection is closed and the TPP received an HTTP 403 response (Access forbidden).
A TPP can provide and use any number of valid certificates as long as the CA properties and organizationIdentifier stay the same. The old certificates are not revoked when a new valid certificate is presented by the TPP and can be kept in use until their expiration date is passed.
Topic |
Subtopic |
Content |
Market Test |
Requirements for market test |
To participate in the market test, the TPP needs to fulfill several requirements: |
SCA Approach | Supported | |
---|---|---|
Redirect OAuth 2.0 workflow | ✔ | |
App redirection using App-to-App redirection based on deep linking workflow | ✖ | |
Decoupled workflow | ✔ | |
Embedded workflow | ✖ |
Services | Supported | |
---|---|---|
Support of multiple consents | ✖ | |
Support of Signing Baskets | ✖ | |
Support of Card Accounts Endpoints | ✖ | |
Support display of Account ownerName and ownerNames | ✔ | |
Support display of Account psuName | ✖ | |
Owner name always delivered without taking into account the consent scope | ✔ | |
Support of Trusted Beneficiaries endpoint | ✖ | |
Support of Multilevel SCA Approach | ✖ | |
Maximum Frequency Per Day Value Supported on Consent Request | 4 | |
SCA Validity for a current consent | 180 days | |
SCA Validity for a one-off consent | 20 min | |
Consent establishment Timeout | 3 days | |
Support of parameter withBalance on APIs | ✖ | |
Supported Account Reference Identifiers | IBAN | ✔ |
MaskedPan | ✖ | |
BBAN | ✖ | |
Consent scope | Dedicated consent (List of accounts) | ✔ |
Dedicated consent - Support of ownerName in additionalInformation property | ✔ | |
Dedicated consent - Support of trustedBeneficiaries in additionalInformation property | ✖ | |
Global consent - availableAccounts = allAccounts | ✔ | |
Global consent - availableAccountsWithBalance= allAccounts | ✔ | |
Global consent - allPsd2= allAccounts | ✔ | |
Global consent - availableAccounts = allAccountsWithOwnerName | ✔ | |
Global consent - availableAccountsWithBalance= allAccountsWithOwnerName | ✔ | |
Global consent - allPsd2= allAccountsWithOwnerName | ✔ | |
Supported Access for MultiCurrency Accounts | ✔ | |
Multicurrency level | Aggregation level | ✔ |
Sub-account level | ✔ | |
Aggregation & sub-account level | ✔ | |
Balance Type | closingBooked | ✔ |
expected | ✔ | |
openingBooked | ✖ | |
interimAvailable | ✖ | |
interimBooked | ✖ | |
forwardAvailable | ✖ | |
Supported Transactions Query Parameters | bookingStatus = booked | ✔ |
bookingStatus = pending | ✖ | |
bookingStatus = both | ✔ | |
Support of Standing orders endpoint (bookingStatus=information) | ✔ | |
bookingStatus = all to request all types of transactions (pending, booked and information) at once | ✖ | |
dateFrom | ✔ | |
dateTo | ✔ | |
entryReferenceFrom | ✖ | |
deltaList | ✖ |
Topic |
Subtopic |
Content |
Account Information retrieval |
Business information AIS |
Transactions will appear with a certain delay in the transaction list and be included in the balances. |
Account Information retrieval |
Business information AIS |
Accounts are described by account product name (e.g. PremiumKonto) and ISO20022 code (e.g. CACC) |
Account Information retrieval |
Technical information AIS |
Amounts are returned as float type values. |
Consent creation for AIS |
Type of allowed consent |
AIS consents may be requested for all accounts or for a given set of IBANs only. |
Consent creation for AIS |
Time zone |
We advise to use GMT as a timezone sent with each request. Using a different time zone can lead to 500 errors when trying to establish a consent between 0:00 and 2:00am. |
Account Information retrieval |
Business information AIS |
Currently, when retrieving transaction information, booking text information is delivered in the fields "remittanceInformationUnstructured", "remittanceInformationUnstructuredArray", and "remittanceInformationStructured". However, we advise the TPPs to use the field "remittanceInformationUnstructuredArray" as only this array contains the complete booking text and remittance information related to a transaction. Please note, that the field "remittanceInformationStructured" may currently exceed the berlin-group-defined max. length of 140 signs. This is a known defect and will be fixed soon. |
Transactions retrieval |
Business information AIS |
In order to the information disclosed to the PSU in the bank's online interfaces, we will not show the counterparty's (payer) account information (IBAN and BIC) anymore for all transactions that are not initiated by the PSU directly (incoming transactions, or Sepa direct debit transactions). This is taking effect with our release from 20.07.2023. |
Services | Supported | |
---|---|---|
Support of Signing Baskets | ✖ | |
Payment initiation Timeout | 2 days | |
Support of PIS without IBAN - Retrieval of debtor accounts with AIS flow | ✔ | |
Selection of debtor account on CBS pages when payment submission without IBAN | ✖ | |
Funds Availability on Payment Status Information (implicit FCS over PIS) | ✔ |
|
Support of TPP-Rejection-NoFunds-Preferred Header | ✔ | |
Support payment status notification (instant payment only) | ✖ | |
Mandatory Authorisation on Payment Cancellation | ✔ | |
Supported Access for MultiCurrency Accounts | ✔ | |
Multicurrency level | Aggregation level | ✔ |
Sub-account level | ✔ | |
Aggregation & sub-account level | ✔ | |
Support display of ownerNames in payment status request | ✔ | |
Support display of psuName in payment status request and SCA status request | ✖ |
Support of SEPA credit transfers |
|||
---|---|---|---|
Payment services |
Single payments |
Periodic Payments |
Bulk Payments |
Support | ✔ | ✔ | ✔ |
Cancel | ✔ | ✔ | ✔ |
Support of Future Dated Payments | ✖ | ||
Multilevel SCA Approach | ✖ | ||
Optional properties management on payment |
Single payments |
Periodic Payments |
Bulk Payments |
endToEndIdentification | ✖ | ✖ | ✖ |
debtorId | ✖ | ✖ | ✖ |
debtorName | ✖ | ✖ | ✖ |
ultimateDebtor | ✖ | ✖ | ✖ |
currencyOfTransfer | ✖ | ✖ | ✖ |
instructionIdentification | ✖ | ✖ | ✖ |
exchangeRateInformation | ✖ | ✖ | ✖ |
creditorAgentName | ✖ | ✖ | ✖ |
creditorId | ✖ | ✖ | ✖ |
creditorNameAndAddress | ✖ | ✖ | ✖ |
ultimateCreditor | ✖ | ✖ | ✖ |
purposeCode | ✖ | ✖ | ✖ |
chargeBearer | ✖ | ✖ | ✖ |
remittanceInformationUnstructured | ✔ | ✔ | ✔ |
remittanceInformationUnstructuredArray | ✖ | ✖ | ✖ |
remittanceInformationStructured | ✖ | ✖ | ✖ |
remittanceInformationStructuredArray | ✖ | ✖ | ✖ |
paymentInformationId | ✖ | ✖ | ✖ |
requestedExecutionDate | ✔ | ✔ | ✔ |
requestedExecutionTime | ✖ |
Support of crossborder payment |
|||
---|---|---|---|
Payment services |
Single payments |
Periodic Payments |
Bulk Payments |
Support | ✔ | ✖ | ✖ |
Cancel | ✔ | ✖ | ✖ |
Support of Future Dated Payments | ✖ | ||
Multilevel SCA Approach | ✖ | ||
Optional properties management on payment |
Single payments |
Periodic Payments |
Bulk Payments |
endToEndIdentification | ✖ | ✖ | ✖ |
debtorId | ✖ | ✖ | ✖ |
debtorName | ✖ | ✖ | ✖ |
ultimateDebtor | ✖ | ✖ | ✖ |
currencyOfTransfer | ✖ | ✖ | ✖ |
instructionIdentification | ✖ | ✖ | ✖ |
exchangeRateInformation | ✖ | ✖ | ✖ |
creditorAgentName | ✖ | ✖ | ✖ |
creditorId | ✖ | ✖ | ✖ |
creditorNameAndAddress | ✖ | ✖ | ✖ |
ultimateCreditor | ✖ | ✖ | ✖ |
purposeCode | ✔ | ✖ | ✖ |
chargeBearer | ✔ | ✖ | ✖ |
remittanceInformationUnstructured | ✔ | ✖ | ✖ |
remittanceInformationUnstructuredArray | ✖ | ✖ | ✖ |
remittanceInformationStructured | ✖ | ✖ | ✖ |
remittanceInformationStructuredArray | ✖ | ✖ | ✖ |
paymentInformationId | ✖ | ✖ | ✖ |
requestedExecutionDate | ✖ | ✖ | ✖ |
requestedExecutionTime | ✖ | ||
Identification management for crossborder payment |
Supported |
||
IBAN | ✖ | ||
IBAN + BIC + Country Code | ✖ | ||
IBAN + BIC | ✔ | ||
BBAN + BIC + Country Code | ✖ | ||
BBAN + BIC | ✔ |
Support of Instant SEPA credit transfers |
|||
---|---|---|---|
Payment services |
Single payments |
Periodic Payments |
Bulk Payments |
Support | ✔ | ✖ | ✖ |
Cancel | ✖ | ✖ | ✖ |
Support of Future Dated Payments | ✖ | ||
Multilevel SCA Approach | ✖ | ||
Optional properties management on payment |
Single payments |
Periodic Payments |
Bulk Payments |
endToEndIdentification | ✖ | ✖ | ✖ |
debtorId | ✖ | ✖ | ✖ |
debtorName | ✖ | ✖ | ✖ |
ultimateDebtor | ✖ | ✖ | ✖ |
currencyOfTransfer | ✖ | ✖ | ✖ |
instructionIdentification | ✖ | ✖ | ✖ |
exchangeRateInformation | ✖ | ✖ | ✖ |
creditorAgentName | ✖ | ✖ | ✖ |
creditorId | ✖ | ✖ | ✖ |
creditorNameAndAddress | ✖ | ✖ | ✖ |
ultimateCreditor | ✖ | ✖ | ✖ |
purposeCode | ✔ | ✖ | ✖ |
chargeBearer | ✔ | ✖ | ✖ |
remittanceInformationUnstructured | ✔ | ✖ | ✖ |
remittanceInformationUnstructuredArray | ✖ | ✖ | ✖ |
remittanceInformationStructured | ✖ | ✖ | ✖ |
remittanceInformationStructuredArray | ✖ | ✖ | ✖ |
paymentInformationId | ✖ | ✖ | ✖ |
requestedExecutionDate | ✔ | ✖ | ✖ |
requestedExecutionTime | ✖ |
Support of Target2 payment |
|||
---|---|---|---|
Payment services |
Single payments |
Periodic Payments |
Bulk Payments |
Support | ✖ | ✖ | ✖ |
Cancel | ✖ | ✖ | ✖ |
Support of Future Dated Payments | ✖ | ||
Multilevel SCA Approach | ✖ | ||
Optional properties management on payment |
Single payments |
Periodic Payments |
Bulk Payments |
endToEndIdentification | ✖ | ✖ | ✖ |
debtorId | ✖ | ✖ | ✖ |
debtorName | ✖ | ✖ | ✖ |
ultimateDebtor | ✖ | ✖ | ✖ |
currencyOfTransfer | ✖ | ✖ | ✖ |
instructionIdentification | ✖ | ✖ | ✖ |
exchangeRateInformation | ✖ | ✖ | ✖ |
creditorAgentName | ✖ | ✖ | ✖ |
creditorId | ✖ | ✖ | ✖ |
creditorNameAndAddress | ✖ | ✖ | ✖ |
ultimateCreditor | ✖ | ✖ | ✖ |
purposeCode | ✖ | ✖ | ✖ |
chargeBearer | ✖ | ✖ | ✖ |
remittanceInformationUnstructured | ✖ | ✖ | ✖ |
remittanceInformationUnstructuredArray | ✖ | ✖ | ✖ |
remittanceInformationStructured | ✖ | ✖ | ✖ |
remittanceInformationStructuredArray | ✖ | ✖ | ✖ |
paymentInformationId | ✖ | ✖ | ✖ |
requestedExecutionDate | ✖ | ✖ | ✖ |
requestedExecutionTime | ✖ |
Periodic payments options | Supported | |
---|---|---|
Support of Day Of Execution | ✔ | |
Supported Execution Rules | Following | ✔ |
Preceding | ✖ | |
Supported Frequencies | Daily | ✖ |
Weekly | ✖ | |
EveryTwoWeeks | ✖ | |
Monthly | ✔ | |
EveryTwoMonths | ✔ | |
Quarterly | ✔ | |
SemiAnnual | ✔ | |
Annual | ✔ | |
MonthlyVariable | ✖ |
Topic |
Subtopic |
Content |
Payment initiation |
Batch Booking Process |
On request for transactions/balances, only already booked and pre-booked (respectively booked) items will be displayed. |
Payment initiation |
Batch Booking Process |
Payments are not processed on weekends and bank holidays , respective payments are delayed until the next bank workday, based on SEPA Target2 calendar. |
Payment initiation |
Business information SEPA |
For SEPA payments pls. refer to the general SEPA regulations (e.g. http://www.ebics.de/spezifikation/dfue-abkommen-anlage-3-formatstandards/ https://www.europeanpaymentscouncil.eu/what-we-do/sepa-payment-schemes/sepa-credit-transfer/sepa-credit-transfer-rulebook-and) |
Payment initiation |
Business information SEPA |
For transaction status information, the Commerzbank AG applies the status model set out by ISO 20022 external code set and in compliance with the Berlin Group specification 1.3.12. For Sepa CT (single, bulk, future dated) Commerzbank applies batch booking processing. Hence, for those payments, the final status for a successfully processed payment in the XS2A interface is ACCP (AcceptedCustomerProfile), as the payment will be further processed in other backend systems. This is compliant with the Berling Group specification 1.3.12 (see figure “Statuses according applied checks” on page 46, Berlin Group Implementation Guidelines 1.3.12). For Instant Payments (single bulk), the final status for a successfully processed payment in the XS2A interface is ACCC (AcceptedSettlementCompleted), as for this payment method near time feedback about successful settlement can be processed. |
Payment initiation |
Business information SEPA |
The statement of ultimate creditor and / or debtor is not supported |
Payment initiation |
Business information SEPA |
The requested execution date must be in the future but not longer than 365 days |
Payment initiation |
Business information SEPA |
The transaction amount is subject to the customer’s transaction limit, which can be set in the online portal. Transaction attempts that exceed the limit will be rejected. |
Payment initiation |
Business information SEPA |
Commerzbank accepts IBAN-only (omitting the statement of the BIC) credit transfers according the SEPA standard. |
Payment initiation |
Business information SEPA |
The statement of the creditor’s address is optional for SEPA payments. Commerzbank recommends to not set this value, according SEPA regulations. |
Payment initiation |
Business information SEPA bulk |
All comments on SEPA single payments also apply for SEPA bulk payments. The maximum number of payments in a bulk is 15 |
Payment initiation |
Business information SEPA bulk |
The debtor account for bulk payments is always one single account for all payments. |
Payment initiation |
Business information SEPA bulk |
One single execution date for all payments in the bulk |
Payment initiation |
Business information SEPA standing order |
Standing orders are supported to german creditor accounts only. |
Payment initiation |
Business information cross border payments |
The account of the creditor may be specified using the IBAN or the BBAN, the statement of the currency is optional. |
Payment initiation |
Business information cross border payments |
In general, Commerzbank may use the “SHARE” fee option for cross-border payments if no specific instruction is given or due to regulation. Otherwise, the instructed fee option by customer will be used accordingly. |
Payment initiation |
Business information cross border payments |
Commerzbank does not support scheduled cross currency payments. A payment will be executed as soon as possible after the payment initiation. |
Payment initiation |
Business information cross border payments |
Cross currency payments may only contain one single payment. Bulk payments are not supported for cross-currency payments. |
Payment initiation |
Business information cross border payments |
Standing orders are not supported for cross currency transactions. |
Payment initiation |
Business information cross border payments |
Like to the Online Portal, not all combinations on currencies are allowed for cross currency payments due to business and regulatory restriction. |
Payment initiation |
Business information cross border payments |
• The PSU may specify a debtor account by IBAN and currency. The following rules apply: |
Payment initiation |
Business information cross border payments |
The debtor account may be stated by means of IBAN or BBAN |
Payment initiation |
Business information cross border payments |
The may be restrictions concerning country and currency combinations due to sanctions and/or business policy of Commerzbank. |
Payment initiation |
Business information cross border payments |
Domestic payments (DE-DE) that are authorized as cross-border pamyents without fee instructions or with fee instruction “SHARE” will be executed as SEPA payments (no charges). |
Payment initiation |
Business information cross border payments |
Transfer to China are currently not possible via the XS2A interface due to two restrictions. The Berlin Group Standard does not include a field to transfer the Chinese purpose code that are required by the Chinese National Bank (CNAPS2). Further, the interfae is limited to official currency codes (ISO4217) and can only process CNY (Onshore Renminbi) but not CNH (Offshore Renminbi). |
Payment initiation |
Multi-Authorizations |
If a transaction requires more than one authorisation, the first will be requested during the payment initiation. The second authorisation can be granted within the order book in the portal. |
Account Information retrieval |
Business information AIS |
Transactions will appear with a certain delay in the transaction list and be included in the balances. |
Account Information retrieval |
Business information AIS |
Accounts are described by account product name (e.g. PremiumKonto) and ISO20022 code (e.g. CACC) |
FCS |
Portal process for consent creation |
The consents for PIISP can be granted by the PSU using the Commerzbank Portal. The consent management for PSD2 consents (deletion of AISP consents, creation and deletion of PIISP and management of non-PSD2) can be found here. |
Consent creation for AIS |
Type of allowed consent |
AIS consents may be requested for all accounts or for a given set of IBANs only. |
Services | Supported | |
---|---|---|
Support of Funds Confirmation Endpoints | ✔ | |
Creation of Funds Confirmation consent by TPP | ✖ |
Topic |
Content |
Portal process for consent creation |
The consents for PIISP can be granted by the PSU using the Commerzbank Portal. The consent management for PSD2 consents (deletion of AISP consents, creation and deletion of PIISP and management of non-PSD2) can be found here. |
Fund confirmation request/p> |
A fund confirmation request can only be processed in the account currency. For instance, if an account is in EUR, funds can only be confirmed in EUR. |