openapi: 3.2.0 info: version: 2.0.0 x-stet-version: 1.4.0.47 title: Account Information (PSD2 STET Mock) AISP API x-generate-global-scope: true description: '## Overview Third Party Providers can consume the PSD2 AISP API to retrieve account information from Connexis Cash.' servers: - url: https://api.sandbox.cib.bnpparibas.com/gb-account-information-psd2-stet-mock description: PROD_INTERNET tags: - name: AISP paths: /v2/accounts: get: operationId: accountsGet tags: - AISP summary: Retrieval of the PSU accounts (AISP) description: '### Description This call returns all payment accounts that are relevant to the PSU on behalf of whom the AISP is connected. *This requests makes available all the accounts which are available today in the Reporting module of Connexis Cash. The returned accounts might differ from the ones used for payment, and should therefore not be used for Payment Initiation.* Thanks to HYPERMEDIA, each account is returned with the links aiming to ease access to the relevant transactions and balances. The result may be subject to pagination (i.e. retrieving a partial result in case of having too many results) through a set of pages by the ASPSP. Thereafter, the AISP may ask for the first, next, previous or last page of results. *Attention : the « name » account field is not necessarily an IBAN, this name is customizable by the client. Furthermore, some optional fields present in the STET documentation are not communicated through the API because they are currently not transmitted to our clients or they are specific to the retail segment (psuStatus, linkedAccount, product)* ### Prerequisites - The TPP has been registered by the Registration Authority for the AISP role. (not mandatory for Sandbox) - The TPP and the PSU have a contract that has been enrolled by the ASPSP (not mandatory for Sandbox) - At this step, Connexis Cash has delivered an OAUTH2 access token to the TPP via OAuth2 flow : Authorization Code Grant (for production) or Client Credential (for sandbox). For more details about OAuth2 flow, please click on the links below : - Authorization Code Grant flow : https://developers.cib.bnpparibas.com/docs/auth2-ac-psd2 - Client Credential flow : https://developers.cib.bnpparibas.com/docs/auth2-cc - The TPP and the ASPSP have successfully processed a mutual check and authentication - The TPP has presented its OAUTH2 access token - Connexis Cash takes into account the access token that establishes the link between the PSU and the AISP. ### Business Flow - The TPP sends a request to the ASPSP for retrieving the list of the PSU payment accounts. The ASPSP computes the relevant PSU accounts and builds the answer as an accounts list. - The result may be subject to pagination in order to avoid an excessive result set. Each payment account will be provided with its characteristics. ### Specific for the Sandbox - For this sandbox, **the data is fictive**, we put the account lists of a fictive user “ User 1” at TPP’s disposal. - The « User 1 » owns 5 accounts : one Dutch account in EUR, one Polish account in EUR, one Greek account in EUR and 2 Danish accounts in DKK. - The “Signature” and “X Request ID” parameters will not be verified by our sandbox for the test. They must be not null.' security: - OAuth2: - aisp parameters: - $ref: '#/components/parameters/PsuIpAddressHeader' - $ref: '#/components/parameters/PsuIpPortHeader' - $ref: '#/components/parameters/PsuHttpMethodHeader' - $ref: '#/components/parameters/PsuDateHeader' - $ref: '#/components/parameters/PsuGeoLocation' - $ref: '#/components/parameters/PsuUserAgentHeader' - $ref: '#/components/parameters/PsuRefererHeader' - $ref: '#/components/parameters/PsuAcceptHeader' - $ref: '#/components/parameters/PsuAcceptCharsetHeader' - $ref: '#/components/parameters/PsuAcceptEncodingHeader' - $ref: '#/components/parameters/PsuAcceptLanguageHeader' - $ref: '#/components/parameters/PsuDeviceId' - $ref: '#/components/parameters/DigestHeader' - $ref: '#/components/parameters/SignatureHeader' - $ref: '#/components/parameters/Correlation' responses: '200': description: 'The ASPSP return a PSU context - listing the accounts that have been made available to the AISP by the PSU and, - for each of these accounts, the further transactions that have been enabled by the PSU through HYPERMEDIA links. ' headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: application/json: schema: $ref: '#/components/schemas/HalAccounts' '204': $ref: '#/components/responses/204' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '408': $ref: '#/components/responses/408' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '503': $ref: '#/components/responses/503' /v2/accounts/{accountResourceId}/balances: get: operationId: accountsBalancesGet description: '### Description This call returns a set of balances for a given PSU account that is specified by the AISP through an account resource Identification. The answer to this request will provide the account balance but also other balances which are currently made available for clients through the Connexis Cash platform. On the Connexis Cash platform the client can access Ledger (booked or available) and Value (booked, without intraday or available, with intraday) balances. Those balances will be provided in the answer to the request while complying with STET standards. For more information, please find below the corresponding table: STET Balances code Connexis Balances CLBD Accounting Balance Ledger Booked XPCD Instant Balance Ledger available VALU Value-date balance Value Booked (without intraday) OTHR Other Balance Value available (with intraday) *Furthermore, some optional fields present in the STET documentation are not communicated through the API because they are currently not transmitted to our clients or they are specific to the retail segment (lastChangeDateTime and lastCommittedTransaction).* ### Prerequisites - The TPP has been registered by the Registration Authority for the AISP role. (not mandatory for Sandbox) - The TPP and the PSU have a contract that has been enrolled by the ASPSP (not mandatory for Sandbox) - At this step, Connexis Cash has delivered an OAUTH2 access token to the TPP via OAuth2 flow : Authorization Code Grant (for production) or Client Credential (for sandbox). For more details about OAuth2 flow, please click on the links below : - Authorization Code Grant flow : https://developers.cib.bnpparibas.com/docs/auth2-ac-psd2 - Client Credential flow : https://developers.cib.bnpparibas.com/docs/auth2-cc - The TPP and the ASPSP have successfully processed a mutual check and authentication - The TPP has presented its OAUTH2 access token - Connexis Cash takes into account the access token that establishes the link between the PSU and the AISP. - The TPP has previously retrieved the list of available accounts for the PSU ### Business Flow - The AISP requests the ASPSP on one of the PSU’s accounts. The ASPSP answers by providing a list of balances on this account. ### Specific for the Sandbox - To get positive results (200 response), i.e. accessing the fake data provided by Connexis Cash, it is necessary to indicate a valid accountResourceId. In case an invalid "accountResourceId" is present, an error message will be displayed. - The list of valid accountResourceId can be obtained via the get/accounts request in the resourceId field or below: - 1306171745 - 1306171845 - 1987376645 - 19737006845 - 19737007345 - The “Signature” and “X Request ID” parameters will not be verified by our sandbox for the test. They must be not null.' summary: Retrieval of an account balances report (AISP) tags: - AISP security: - OAuth2: - aisp parameters: - $ref: '#/components/parameters/AccountResourceIdentification' - $ref: '#/components/parameters/PsuIpAddressHeader' - $ref: '#/components/parameters/PsuIpPortHeader' - $ref: '#/components/parameters/PsuHttpMethodHeader' - $ref: '#/components/parameters/PsuDateHeader' - $ref: '#/components/parameters/PsuGeoLocation' - $ref: '#/components/parameters/PsuUserAgentHeader' - $ref: '#/components/parameters/PsuRefererHeader' - $ref: '#/components/parameters/PsuAcceptHeader' - $ref: '#/components/parameters/PsuAcceptCharsetHeader' - $ref: '#/components/parameters/PsuAcceptEncodingHeader' - $ref: '#/components/parameters/PsuAcceptLanguageHeader' - $ref: '#/components/parameters/PsuDeviceId' - $ref: '#/components/parameters/DigestHeader' - $ref: '#/components/parameters/SignatureHeader' - $ref: '#/components/parameters/Correlation' responses: '200': description: The ASPSP answers with a list of account balances headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: application/json: schema: $ref: '#/components/schemas/HalBalances' '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '408': $ref: '#/components/responses/408' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '503': $ref: '#/components/responses/503' /v2/accounts/{accountResourceId}/transactions: get: operationId: accountsTransactionsGet description: '### Description This call returns transactions for an account for a given PSU account that is specified by the AISP through an account resource identification. The request may use some filter parameter in order to restrict the query, on a given imputation date range *As Connexis Cash does not permit its clients to filter on a given technical incremental identifier (optional filter AfterEntryReference proposed by STET), our API does not support this type of filter.* The maximum transaction history range returned is 13 months. (Note : there are no error messages if the query parameter “entryDateTo” of the request contains a date older than 13 months) .In the absence of query Parameters (entryDateFrom and entryDateTo), the period returned by default is 8 days : (fromdate is -2 days and To date is + 5days). The result may be subject to pagination (i.e. retrieving a partial result in case of having too many results) through a set of pages by the ASPSP. Optional parameters can be added by the TPP: PageSize and Page Number (by default, in the absence of value, the parameters are PageSize = 10 and Page Number = 0) *All fields specified by STET will be made available for a TPP, except the optional fields « RessourceID » and « entryReference ».* *Moreover, there is currently a technical identification attribute of the transaction but this one is for internal use only and cannot be passed to the clients.* *The “status” field is converted in order to comply with STET standards. You will find below the information:* - BOOK: (ISO20022 ClosingBooked) Accounted transaction : “B” - PDNG: (ISO20022 Expected) Instant Balance Transaction : “I” ### Prerequisites - The TPP has been registered by the Registration Authority for the AISP role. (not mandatory for Sandbox) - The TPP and the PSU have a contract that has been enrolled by the ASPSP (not mandatory for Sandbox) - At this step, Connexis Cash has delivered an OAUTH2 access token to the TPP via OAuth2 flow : Authorization Code Grant (for production) or Client Credential (for sandbox). For more details about OAuth2 flow, please click on the links below : - Authorization Code Grant flow : https://developers.cib.bnpparibas.com/docs/auth2-ac-psd2 - Client Credential flow : https://developers.cib.bnpparibas.com/docs/auth2-cc - The TPP and the ASPSP have successfully processed a mutual check and authentication - The TPP has presented its OAUTH2 access token - Connexis Cash takes into account the access token that establishes the link between the PSU and the AISP. - The TPP has previously retrieved the list of available accounts for the PSU ### Business Flow The AISP requests the ASPSP on one of the PSU’s accounts. It may specify some selection criteria (Date From / Date To). The ASPSP answers by a set of transactions that matches the query. The result may be subject to pagination in order to avoid an excessive result set. ### Specific for the Sandbox - To get positive results (200 response) i.e. accessing the fake data provided by Connexis Cash, it is necessary to indicate a valid accountResourceId. In case of invalid accountResourceId, un error message is displayed. - The list of valid accountResourceId can be retrieved via the get/accounts request in the resourceId field or below : Account Ressource ID Transactions 1306171745 00 1306171845 10 1987376645 02 19737006845 00 19737007345 09 - Among the proposed accounts, 19737007345 and 1987376645 have an associated transactions list (10 transactions for 1306171845 and 2 transactions for 1987376645). - For the sandbox, there will be no pagination in the result. - The “Signature” and “X Request ID” parameters will not be verified by our sandbox for the test. They must be not null. - The date format is yyyy-mm-dd' summary: Retrieval of an account transaction set (AISP) security: - OAuth2: - aisp tags: - AISP parameters: - $ref: '#/components/parameters/AccountResourceIdentification' - $ref: '#/components/parameters/FromImputationDate' - $ref: '#/components/parameters/ToImputationDate' - $ref: '#/components/parameters/pageNumber' - $ref: '#/components/parameters/pageSize' - $ref: '#/components/parameters/PsuIpAddressHeader' - $ref: '#/components/parameters/PsuIpPortHeader' - $ref: '#/components/parameters/PsuHttpMethodHeader' - $ref: '#/components/parameters/PsuDateHeader' - $ref: '#/components/parameters/PsuGeoLocation' - $ref: '#/components/parameters/PsuUserAgentHeader' - $ref: '#/components/parameters/PsuRefererHeader' - $ref: '#/components/parameters/PsuAcceptHeader' - $ref: '#/components/parameters/PsuAcceptCharsetHeader' - $ref: '#/components/parameters/PsuAcceptEncodingHeader' - $ref: '#/components/parameters/PsuAcceptLanguageHeader' - $ref: '#/components/parameters/PsuDeviceId' - $ref: '#/components/parameters/DigestHeader' - $ref: '#/components/parameters/SignatureHeader' - $ref: '#/components/parameters/Correlation' responses: '200': description: Complete transactions response headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: application/json: schema: $ref: '#/components/schemas/HalTransactions' '204': $ref: '#/components/responses/204' '400': $ref: '#/components/responses/400' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '408': $ref: '#/components/responses/408' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' '503': $ref: '#/components/responses/503' /v2/trusted-beneficiaries: get: operationId: trustedBeneficiariesGet tags: - AISP summary: Retrieval of the trusted beneficiaries list (AISP) description: '### Description The trusted counterparties list is considered as the authorized counterparties list so that a payment could be initiated without SCA. The list, if provided by an ASPSP, should be put at the AISP’s disposal as he is currently able to visualize it via the ASPSP online interface. In Connexis Cash, an entity can register a counterparty in a list of usual counterparties. However for payment authorization, strong authentication (SCA) is systematically requested. **The list of counterparties is not a trusted list of counterparties as described in the RTS, this is why this request will not return any result, (200 empty Response []).** - The “Signature” and “X Request ID” parameters will not be verified by our sandbox for the test. They must be not null. ### Prerequisites - The TPP has been registered by the Registration Authority for the AISP role. (not mandatory for Sandbox) - The TPP and the PSU have a contract that has been enrolled by the ASPSP (not mandatory for Sandbox) - At this step, Connexis Cash has delivered an OAUTH2 access token to the TPP via OAuth2 flow : Authorization Code Grant (for production) or Client Credential (for sandbox). For more details about OAuth2 flow, please click on the links below : - Authorization Code Grant flow : https://developers.cib.bnpparibas.com/docs/auth2-ac-psd2 - Client Credential flow : https://developers.cib.bnpparibas.com/docs/auth2-cc - The TPP and the ASPSP have successfully processed a mutual check and authentication - The TPP has presented its OAUTH2 access token' security: - OAuth2: - aisp parameters: - $ref: '#/components/parameters/PsuIpAddressHeader' - $ref: '#/components/parameters/PsuIpPortHeader' - $ref: '#/components/parameters/PsuHttpMethodHeader' - $ref: '#/components/parameters/PsuDateHeader' - $ref: '#/components/parameters/PsuGeoLocation' - $ref: '#/components/parameters/PsuUserAgentHeader' - $ref: '#/components/parameters/PsuRefererHeader' - $ref: '#/components/parameters/PsuAcceptHeader' - $ref: '#/components/parameters/PsuAcceptCharsetHeader' - $ref: '#/components/parameters/PsuAcceptEncodingHeader' - $ref: '#/components/parameters/PsuAcceptLanguageHeader' - $ref: '#/components/parameters/PsuDeviceId' - $ref: '#/components/parameters/DigestHeader' - $ref: '#/components/parameters/SignatureHeader' - $ref: '#/components/parameters/Correlation' responses: '200': description: 'The ASPSP returns the list of whitelisted beneficiaries ' headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: application/json: schema: $ref: '#/components/schemas/HalBeneficiaries' '204': $ref: '#/components/responses/204' '401': $ref: '#/components/responses/401' '403': $ref: '#/components/responses/403' '404': $ref: '#/components/responses/404' '405': $ref: '#/components/responses/405' '406': $ref: '#/components/responses/406' '429': $ref: '#/components/responses/429' '500': $ref: '#/components/responses/500' components: schemas: TransactionStatus: description: 'Type of Transaction - BOOK: (ISO20022 ClosingBooked) Accounted transaction - PDNG: (ISO20022 Expected) Instant Balance Transaction - OTHR: Other ' type: string enum: - BOOK - PDNG - OTHR AccountResource: description: 'PSU account that is made available to the TPP ' type: object required: - name - cashAccountType - currency - _links properties: resourceId: $ref: '#/components/schemas/ResourceId' bicFi: description: 'ISO20022: Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 "Banking - Banking telecommunication messages - Business identification code (BIC)". ' type: string pattern: ^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$ accountId: $ref: '#/components/schemas/AccountIdentification' name: description: 'Label of the PSU account In case of a delayed debit card transaction set, the name shall specify the holder name and the imputation date ' type: string maxLength: 70 details: description: 'Specifications that might be provided by the ASPSP - characteristics of the account - characteristics of the relevant card ' type: string maxLength: 140 linkedAccount: description: Case of a set of pending card transactions, the APSP will provide the relevant cash account the card is set up on. type: string maxLength: 70 usage: description: 'Specifies the usage of the account - PRIV: private personal account - ORGA: professional account ' type: string enum: - PRIV - ORGA cashAccountType: description: 'Specifies the type of the account - CACC: Cash account - CARD: List of card based transactions ' type: string enum: - CACC - CARD product: description: 'Product Name of the Bank for this account, proprietary definition ' type: string maxLength: 35 currency: description: Currency used for the account type: string maxLength: 3 balances: description: list of balances provided by the ASPSP type: array items: $ref: '#/components/schemas/BalanceResource' minItems: 1 psuStatus: description: Relationship between the PSU and the account - Account Holder - Co-account Holder - Attorney type: string maxLength: 35 _links: $ref: '#/components/schemas/AccountLinks' example: resourceId: '1306171745' bicFi: BNPAPLPXXXX name: TXW PXXXKX XP. Z X.X. usage: ORGA accountId: iban: PL97-2350-0002-0110-0099-0018-9978 other: null cashAccountType: CACC currency: EUR psuStatus: '' _links: balances: href: v1/accounts/1306171745/balances transactions: href: v1/accounts/1306171745/transactions GenericIdentification: description: 'ISO20022: Unique identification of an account, a person or an organisation, as assigned by an issuer. API: The ASPSP will document which account reference type it will support. ' type: object properties: identification: description: 'API: Identifier ' type: string maxLength: 70 schemeName: description: 'Name of the identification scheme. Possible values for the scheme name, partially based on ISO20022 external code list, are the following: - BANK (BankPartyIdentification): Unique and unambiguous assignment made by a specific bank or similar financial institution to identify a relationship as defined between the bank and its client. - COID (CountryIdentificationCode) : Country authority given organisation identification (e.g., corporate registration number) - SREN (SIREN): The SIREN number is a 9 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation in France. - SRET (SIRET): The SIRET number is a 14 digit code assigned by INSEE, the French National Institute for Statistics and Economic Studies, to identify an organisation unit in France. It consists of the SIREN number, followed by a five digit classification number, to identify the local geographical unit of that entity. - NIDN (NationalIdentityNumber): Number assigned by an authority to identify the national identity number of a person. Other values are also permitted, for instance: - OAUT (OAUTH2): OAUTH2 access token that is owned by the PISP being also an AISP and that can be used in order to identify the PSU - CPAN (CardPan): Card PAN ' type: string maxLength: 70 issuer: description: 'ISO20022: Entity that assigns the identification. this could a country code or any organisation name or identifier that can be recognized by both parties ' type: string maxLength: 35 example: identification: 12FR5 schemeName: COID issuer: FR AccountLinks: description: 'links that can be used for further navigation when browsing Account Information at one account level - balances: link to the balances of a given account - transactions: link to the transactions of a given account ' type: object readOnly: true properties: balances: $ref: '#/components/schemas/GenericLink' transactions: $ref: '#/components/schemas/GenericLink' example: balances: href: v1/accounts/Alias1/balances-report transactions: href: v1/accounts/Alias1/transactions BalanceStatus: description: 'Type of balance - CLBD: (ISO20022 ClosingBooked) Accounting Balance - XPCD: (ISO20022 Expected) Instant Balance - VALU: Value-date balance - OTHR: Other Balance ' type: string enum: - CLBD - XPCD - VALU - OTHR FinancialInstitutionIdentification: description: 'ISO20022: Unique and unambiguous identification of a financial institution, as assigned under an internationally recognised or proprietary identification scheme. ' type: object required: - bicFi properties: bicFi: description: 'ISO20022: Code allocated to a financial institution by the ISO 9362 Registration Authority as described in ISO 9362 "Banking - Banking telecommunication messages - Business identification code (BIC)". ' type: string pattern: ^[A-Z]{6,6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3,3}){0,1}$ clearingSystemMemberId: $ref: '#/components/schemas/ClearingSystemMemberIdentification' name: type: string description: Name of the financial institution maxLength: 140 postalAddress: $ref: '#/components/schemas/PostalAddress' example: bicFi: BNKAFRPPXXX PartyIdentification: description: 'API : Description of a Party which can be either a person or an organization. ' type: object required: - name properties: name: description: 'ISO20022: Name by which a party is known and which is usually used to identify that party. ' type: string maxLength: 140 postalAddress: $ref: '#/components/schemas/PostalAddress' organisationId: description: Unique and unambiguous way to identify an organisation. $ref: '#/components/schemas/GenericIdentification' privateId: description: Unique and unambiguous identification of a person. $ref: '#/components/schemas/GenericIdentification' example: name: MyPreferedPisp postalAddress: country: FR addressLine: - 18 rue de la DSP2 - 75008 PARIS ClearingSystemMemberIdentification: description: 'ISO20022: Information used to identify a member within a clearing system. API: to be used for some specific international credit transfers in order to identify the beneficiary bank ' type: object properties: clearingSystemId: description: 'ISO20022: Specification of a pre-agreed offering between clearing agents or the channel through which the payment instruction is processed. ' type: string maxLength: 35 memberId: description: 'ISO20022: Identification of a member of a clearing system. ' type: string maxLength: 35 example: "{\n \"clearingSystemId\" : \"NZNCC\",\n \"memberId\" : \"020368\"\n}\n" PsuContextLinks: description: 'Links that can be used for further navigation when browsing Account Information at top level - self: link to the list of all available accounts ' type: object readOnly: true required: - self properties: self: $ref: '#/components/schemas/GenericLink' beneficiaries: $ref: '#/components/schemas/GenericLink' first: $ref: '#/components/schemas/GenericLink' last: $ref: '#/components/schemas/GenericLink' next: $ref: '#/components/schemas/GenericLink' prev: $ref: '#/components/schemas/GenericLink' example: self: href: v1/accounts?page=2 first: href: v1/accounts last: href: v1/accounts?page=last templated: true next: href: v1/accounts?page=3 templated: true prev: href: v1/accounts templated: true TransactionsLinks: description: 'links that can be used for further navigation when browsing Account Information at one account level - self: link to the transactions of a given account - parent-list: link to the list of all available accounts - balances: link to the balances of a given account - first: link to the first page of the transactions result - last: link to the last page of the transactions result - next: link to the next page of the transactions result - prev: link to the previous page of the transactions result ' type: object readOnly: true required: - self properties: self: $ref: '#/components/schemas/GenericLink' parent-list: $ref: '#/components/schemas/GenericLink' balances: $ref: '#/components/schemas/GenericLink' first: $ref: '#/components/schemas/GenericLink' last: $ref: '#/components/schemas/GenericLink' next: $ref: '#/components/schemas/GenericLink' prev: $ref: '#/components/schemas/GenericLink' example: self: href: v1/accounts/19737007345/transactions parent-list: href: v1/accounts balances: href: v1/accounts/19737007345/balances last: href: v1/accounts/19737007345/transactions?page=last next: href: v1/accounts/19737007345/transactions?page=3 BalanceResource: description: Structure of an account balance type: object required: - name - balanceAmount - balanceType properties: name: description: Label of the balance type: string maxLength: 70 balanceAmount: $ref: '#/components/schemas/AmountType' balanceType: $ref: '#/components/schemas/BalanceStatus' lastChangeDateTime: description: Timestamp of the last change of the balance amount type: string format: date-time referenceDate: description: Reference date for the balance type: string format: date lastCommittedTransaction: description: 'Identification of the last committed transaction. This is actually useful for instant balance. ' type: string maxLength: 40 example: name: Ledger Booked 2018-06-20 balanceAmount: currency: EUR amount: '12002' balanceType: CLBD lastCommittedTransaction: null referenceDate: '2018-06-20' HalBeneficiaries: description: HYPERMEDIA structure used for returning the list of the whitelisted beneficiaries type: object required: - beneficiaries - _links properties: beneficiaries: type: array description: List of trusted beneficiaries items: $ref: '#/components/schemas/Beneficiary' _links: $ref: '#/components/schemas/BeneficiariesLinks' AmountType: description: 'ISO20022: structure aiming to carry either an instructed amount or equivalent amount. Both structures embed the amount and the currency to be used. API: only instructed amount can be used ' type: object required: - currency - amount properties: currency: description: 'Specifies the currency of the amount. A code allocated to a currency by a Maintenance Agency under an international identification scheme, as described in the latest edition of the international standard ISO 4217 "Codes for the representation of currencies and funds". ' type: string pattern: ^[A-Z]{3,3}$ amount: description: 'ISO20022: Amount of money to be moved between the debtor and creditor, before deduction of charges, expressed in the currency as ordered by the initiating party. ' type: string pattern: ^\-{0,1}[0-9]{1,13}(\.[0-9]{0,5}){0,1}$ example: currency: EUR amount: '12.25' Beneficiary: description: Specification of a beneficiary type: object required: - creditor - creditorAgent properties: id: type: string description: Id of the beneficiary pattern: ^([a-zA-Z0-9 \/\-?:\()\.,']{1,35})$ isTrusted: description: 'The ASPSP having not implemented the trusted beneficiaries list must not set this flag. Otherwise, the ASPSP indicates whether or not the beneficiary has been registered by the PSU within the trusted beneficiaries list. - true: the beneficiary is actually a trusted beneficiary (when set by ASPSP) - false: the beneficiary is not a trusted beneficiary The PISP may set this flag to "true" to indicate that the PSU considers the beneficiary as trusted and to be inserted within the trusted beneficiaries list, as far as this feature was implemented by the ASPSP. - true: the beneficiary should be registered as a trusted beneficiary (when set by PISP) ' type: boolean creditorAgent: $ref: '#/components/schemas/FinancialInstitutionIdentification' creditor: $ref: '#/components/schemas/PartyIdentification' creditorAccount: $ref: '#/components/schemas/AccountIdentification' example: null ErrorModel: description: Generic error report structure type: object required: - status - message properties: timestamp: description: current timestamp type: string format: date-time status: description: HTTP error code type: integer format: int32 error: description: HTTP error text type: string maxLength: 140 message: description: HTTP textual reason phrase type: string maxLength: 140 path: description: Relevant path that was used type: string maxLength: 140 example: timestamp: 2019-01-01T00:00:00.000+0000 status: 4XX or 5XX error: Standard HTTP Status error code message: 'The reason why, for example, error code 404, you will get massage: Not found, no request available.' path: /v1/(this request path) HalBalances: description: HYPERMEDIA structure used for returning the list of the relevant balances for a given account to the AISP type: object required: - balances - _links properties: balances: description: List of account balances type: array items: $ref: '#/components/schemas/BalanceResource' minItems: 1 _links: $ref: '#/components/schemas/BalancesLinks' HalAccounts: description: HYPERMEDIA structure used for returning the list of the available accounts to the AISP type: object required: - accounts - _links properties: connectedPsu: description: 'Last name and first name that has granted access to the AISP on the accounts data This information can be retrieved based on the PSU''s authentication that occurred during the OAUTH2 access token initialisation. ' type: string maxLength: 70 example: User 1 accounts: description: 'List of PSU account that are made available to the TPP ' type: array items: $ref: '#/components/schemas/AccountResource' _links: $ref: '#/components/schemas/PsuContextLinks' BeneficiariesLinks: description: 'links that can be used for further navigation when browsing Account Information at one account level - self: link to the beneficiaries - parent-list: link to the list of all available accounts - first: link to the first page of the beneficiaries result - last: link to the last page of the beneficiaries result - next: link to the next page of the beneficiaries result - prev: link to the previous page of the beneficiaries result ' type: object readOnly: true required: - self properties: self: $ref: '#/components/schemas/GenericLink' parent-list: $ref: '#/components/schemas/GenericLink' first: $ref: '#/components/schemas/GenericLink' last: $ref: '#/components/schemas/GenericLink' next: $ref: '#/components/schemas/GenericLink' prev: $ref: '#/components/schemas/GenericLink' example: self: href: v1/trusted-beneficiaries parent-list: href: v1/accounts last: href: v1/trusted-beneficiaries?page=last next: href: v1/trusted-beneficiaries?page=1 AccountIdentification: description: Unique and unambiguous identification for the account between the account owner and the account servicer. type: object required: - iban properties: iban: description: 'ISO20022: International Bank Account Number (IBAN) - identification used internationally by financial institutions to uniquely identify the account of a customer. Further specifications of the format and content of the IBAN can be found in the standard ISO 13616 "Banking and related financial services - International Bank Account Number (IBAN)" version 1997-10-01, or later revisions. ' type: string pattern: ^[A-Z]{2,2}[0-9]{2,2}[a-zA-Z0-9]{1,30}$ other: $ref: '#/components/schemas/GenericIdentification' example: Iban: YY64COJH41059545330222956960771321 Transaction: description: structure of a transaction type: object required: - transactionAmount - status - creditDebitIndicator - bookingDate - remittanceInformation properties: resourceId: $ref: '#/components/schemas/ResourceId' entryReference: type: string description: 'Technical incremental identification of the transaction. ' maxLength: 40 transactionAmount: $ref: '#/components/schemas/AmountType' creditDebitIndicator: description: 'Accounting flow of the transaction - CRDT: Credit type transaction - DBIT: Debit type transaction ' type: string enum: - CRDT - DBIT status: $ref: '#/components/schemas/TransactionStatus' bookingDate: description: Booking date of the transaction on the account type: string format: date valueDate: description: Value date of the transaction on the account type: string format: date transactionDate: description: 'Date used for specific purposes: - for card transaction: date of the transaction - for credit transfer: acquiring date of the transaction - for direct debit: receiving date of the transaction ' type: string format: date remittanceInformation: $ref: '#/components/schemas/UnstructuredRemittanceInformation' example: resourceId: null entryReference: '' transactionAmount: currency: DKK amount: '500' creditDebitIndicator: DBIT status: BOOK bookingDate: '2018-11-22' valueDate: '2018-11-22' transactionDate: '2018-11-22' remittanceInformation: /BENM/ANGULAR HalTransactions: description: HYPERMEDIA structure used for returning the list of the transactions for a given account to the AISP type: object required: - transactions - _links properties: transactions: description: List of transactions type: array items: $ref: '#/components/schemas/Transaction' _links: $ref: '#/components/schemas/TransactionsLinks' GenericLink: description: hypertext reference type: object required: - href properties: href: description: URI to be used type: string maxLength: 140 templated: description: specifies "true" if href is a URI template, i.e. with parameters. Otherwise, this property is absent or set to false type: boolean example: href: v1/accounts/Alias1/balances BalancesLinks: description: 'links that can be used for further navigation when browsing Account Information at one account level - self: link to the balances of a given account - parent-list: link to the list of all available accounts - transactions: link to the transactions of a given account ' type: object readOnly: true required: - self properties: self: $ref: '#/components/schemas/GenericLink' parent-list: $ref: '#/components/schemas/GenericLink' transactions: $ref: '#/components/schemas/GenericLink' example: self: href: v1/accounts/1306171745/balances parent-list: href: v1/accounts transactions: href: v1/accounts/1306171745/transactions gatewayErrors: type: string properties: title: type: string detail: type: string UnstructuredRemittanceInformation: description: 'ISO20022: Information supplied to enable the matching of an entry with the items that the transfer is intended to settle, such as commercial invoices in an accounts'' receivable system. API: Only one occurrence is allowed ' type: array items: type: string description: Relevant information to the transaction title: remittanceLine maxLength: 140 PostalAddress: description: 'ISO20022 : Information that locates and identifies a specific address, as defined by postal services. ' type: object required: - country - addressLine properties: country: description: 'ISO20022: Country in which a person resides (the place of a person''s home). In the case of a company, it is the country from which the affairs of that company are directed. ' type: string pattern: ^([A-Z]{2,2})$ addressLine: description: Unstructured address. The two lines must embed zip code and town name type: array items: description: Address line type: string maxItems: 2 maxLength: 70 example: country: FR addressLine: - 18 rue de la DSP2 - 75008 PARIS ResourceId: description: 'API: Identifier assigned by the ASPSP for further use of the created resource through API calls ' type: string pattern: ^([a-zA-Z0-9 \/\-?:\()\.,']{1,35})$ readOnly: true responses: '204': description: No content. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string '500': description: Internal server error. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '403': description: Forbidden, authentication successful but access to resource is not allowed. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '400': description: Invalid status value headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '405': description: Method Not Allowed. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '401': description: Unauthorized, Access token is missing or invalid. headers: x-correlation-id: $ref: '#/components/headers/correlationIdHeader' content: application/json: schema: $ref: '#/components/schemas/gatewayErrors' '429': description: Too many requests. headers: x-correlation-id: $ref: '#/components/headers/correlationIdHeader' content: application/json: schema: $ref: '#/components/schemas/gatewayErrors' '408': description: Request Timeout. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '503': description: Service unavailable. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '406': description: Not Acceptable. headers: X-Request-ID: description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string content: '*/*': schema: $ref: '#/components/schemas/ErrorModel' '404': description: Not found, no resource available. headers: x-correlation-id: $ref: '#/components/headers/correlationIdHeader' content: application/json: schema: $ref: '#/components/schemas/gatewayErrors' parameters: PsuAcceptCharsetHeader: name: PSU-Accept-Charset in: header description: '"Accept-Charset" header field sent by the PSU terminal when connecting to the TPP ' schema: type: string PsuDateHeader: name: PSU-Date in: header description: Timestamp of the most relevant PSU’s terminal request to the TTP schema: type: string PsuHttpMethodHeader: name: PSU-HTTP-Method in: header description: Http method for the most relevant PSU’s terminal request to the TTP schema: type: string PsuDeviceId: name: PSU-Device-ID in: header description: 'UUID (Universally Unique Identifier) for a device, which is used by the PSU, if available. UUID identifies either a device or a device dependant application installation. In case of installation identification this ID need to be unaltered until removal from device. ' schema: type: string AccountResourceIdentification: name: accountResourceId in: path description: Identification of account resource to fetch required: true schema: type: string pattern: ^([a-zA-Z0-9 \/\-?:\()\.,']{1,35})$ PsuIpAddressHeader: name: PSU-IP-Address in: header description: IP address used by the PSU's terminal when connecting to the TPP schema: type: string pageNumber: name: pageNumber in: query description: 'Specifies a page number in case of a pagination ' required: false schema: type: integer format: int32 Correlation: name: X-Request-ID in: header required: true description: 'Correlation header to be set in a request and retrieved in the relevant response ' schema: type: string maxLength: 70 PsuUserAgentHeader: name: PSU-User-Agent in: header description: '"User-Agent" header field sent by the PSU terminal when connecting to the TPP ' schema: type: string ToImputationDate: name: entryDateTo in: query description: 'Exclusive maximal imputation date of the transactions. Transactions having an imputation date equal to this parameter are not included within the result. ' required: false schema: type: string format: date-time SignatureHeader: name: Signature in: header required: true description: 'http-signature of the request. The keyId must specify the way to get the relevant qualified certificate. It is requested that this identifier is an URL aiming to provide the relevant Qualified Certificate. ' schema: type: string PsuAcceptLanguageHeader: name: PSU-Accept-Language in: header description: '"Accept-Language" header field sent by the PSU terminal when connecting to the TPP ' schema: type: string PsuIpPortHeader: name: PSU-IP-Port in: header description: IP port used by the PSU's terminal when connecting to the TPP schema: type: string DigestHeader: name: Digest in: header required: false description: Digest of the body schema: type: string PsuAcceptEncodingHeader: name: PSU-Accept-Encoding in: header description: '"Accept-Encoding" header field sent by the PSU terminal when connecting to the TPP ' schema: type: string PsuRefererHeader: name: PSU-Referer in: header description: '"Referer" header field sent by the PSU terminal when connecting to the TPP. Notice that an initial typo in RFC 1945 specifies that "referer" (incorrect spelling) is to be used. The correct spelling "referrer" can be used but might not be understood. ' schema: type: string pageSize: name: pageSize in: query description: 'Specifies the number of transactions to be displayed in the page in case of pagination ' required: false schema: type: integer format: int32 PsuGeoLocation: name: PSU-GEO-Location in: header description: Geographical location of the PSU as provided by the PSU mobile terminal if any to the TPP schema: type: string PsuAcceptHeader: name: PSU-Accept in: header description: '"Accept" header field sent by the PSU terminal when connecting to the TPP ' schema: type: string FromImputationDate: name: entryDateFrom in: query description: 'Inclusive minimal imputation date of the transactions. Transactions having an imputation date equal to this parameter are included within the result. ' required: false schema: type: string format: date-time headers: correlationIdHeader: description: Correlation header to be set in a request and retrieved in the relevant response schema: type: string securitySchemes: OAuth2: description: 'In order to access each of the 3 scopes in Production environment, the TPP needs to get an authorization code grant OAUTH2 token. The client_id field within the token request must be filled with the value of the organization identifier attribute that has been set in the distinguished name of eIDAS certificate of the TPP, according to ETSI recommandations. (cf §5.2.1 of https://docbox.etsi.org/ESI/Open/Latest_Drafts/ts_119495v000003_for-public-review.pdf) ' type: oauth2 flows: clientCredentials: tokenUrl: https://api.sandbox.cib.bnpparibas.com/oauth2/v1/token scopes: aisp: Access by an AISP to one given PSU's account cib-gb-account-information-psd2-stet-mock:pisp: Access by a PISP to payments resources cib-gb-account-information-psd2-stet-mock:piisp: Access by a PIISP to one given PSU's account to check payment coverage