Powens Documentation
DocumentationChangelogConsoleWebsite
  • Documentation
  • Integration guides
    • Quick Start
      • API Overview
      • Add a first user and connection
    • ➖Bank
      • Introduction to Bank
      • Bank integration guide
    • ➖Check
    • ➖Wealth
    • ➖Pay
      • Getting started with Pay
      • Initiating a one-time payment with the Webview
      • Initiating a bulk payment with the Webview
      • Initiating a recurring payment with the Webview
      • Cancelling a payment
      • Validating your implementation with the test connector
      • Advanced
        • Listing connectors with Pay enabled programmatically
        • Implementing your own payment validation webview
        • Confirming payments manually
        • Changing the manual expiration time
        • Changing the maximum amounts for payments
    • ➖Trust
    • ➖Advisory (obsolete)
    • ➖Indicators
    • SCA & connection states
    • Webhooks
    • Advanced
      • Custom connection implementation
      • End-to-end encryption
      • Response signature
  • SDK
    • Connect SDK
    • Powens Connect iOS
  • Reference
    • API Reference
    • Console & Webview documentation
  • Ressources
    • Tools
      • Institutions & capabilities
      • Demo integration
      • Demo product
    • Glossary
  • Changelog
  • Legal notice
Powered by GitBook
On this page
  • Banking data
  • Advanced: Connection sources

Was this helpful?

  1. Integration guides
  2. Bank

Bank integration guide

PreviousIntroduction to BankNextCheck

Last updated 10 months ago

Was this helpful?

This section guides you on how to interact with our API to access banking data of your users. You must have followed the steps in “” section.

Our banking connectors are subject to the revised Payment Service Directive (PSD2) that requires a new user consent every 180 days to access the web banking platform or the bank's API. You must implement proper handling of SCA-related connection states (SCARequired and webauthRequired) .

Banking data

The Bank product exposes bank accounts and transactions.

Bank accounts

GET /users/me/accounts 
GET /users/me/connections/{connectionId}/accounts
{
  "accounts": [
    {
      "id": 12345,
      "name": "Compte de dépôt",
      "number": "0212366548",
      "iban": "FR1221954549412158521",
      "type": "checking",
      "balance": 1452.56,
      "coming": null,
      "currency": { "id": "EUR", … },
      …
    },
    …
  ]
}

Bank accounts are linked to a connection (they are deleted with the connection).

The accounts list reflect the set of accounts found when synchronizing with a bank, using a safe archiving rule:

  • when a new bank account is discovered, it is added;

Transactions

GET /users/me/transactions?limit={limit}
GET /users/me/accounts/{accountId}/transactions?limit={limit}
{
  "transactions": [
    {
      "id": 56789,
      "wording": "Paiement facture Acme",
      "date": "2020-09-15",
      "rdate": "2020-09-16",
      "value": -56.78,
      "type": "card",
      …
    },
    …
  ],
  "first_date": "2017-02-14",
  "last_date": "2020-09-15",
  "result_min_date": "2020-08-30",
  "result_max_date": "2020-09-30"
}

Transactions are linked to a bank account (they are deleted with the bank account).

Advanced: Connection sources

Some banking connectors support connecting to the bank plateform both through their web interface and their PSD2-compliant API. While the connection resource exposes an abstraction above these two sources of data, we also support fine grained access to each source and expose the individual synchronization state of each source. Our Connect webview properly takes care of managing the sources, so handling them is optional when using it.

  • You can get the list of the supported sources of a connector:

GET /connectors?expand=sources
{
  "connectors": [
    {
      "id": 1,
      "name": "Bank name",
      "sources": [
        {
          "name": "openapi",
          "priority": 1,
          "account_types": [ … ],
          "disabled": null
          …
        },
        {
          "name": "directaccess",
          "priority": 2,
          "account_types": [ … ],
          "disabled": null
          …
        }
      ],
      …
    },
    …
  ]
}

Make sure the disabled property of a source is null before interacting with it. Also, you must honor the priority order of sources when adding them sequentially.

  • On a connection, you can access the specific state or last_update of a connection source:

GET /users/me/connections?expand=sources
{
  "connections": [
    {
      "id": 27,
      "last_update": "2019-09-07 16:09:40",
      "state": "SCARequired",
      "sources": [
        {
          "id": 45,
          "last_update": "2019-09-07 16:09:40",
          "state": "SCARequired",
          "source": {
            "name": "openapi",
            "priority": 1,
            …
          },
          …
        },
        {
          "id": 46,
          "state": null,
          "source": {
            "auth_mechanism": "credentials",
            "name": "directaccess",
            "priority": 2,
            …
          },
          …
        }
      ]
    }
  ]
}

We provide a view to the bank accounts of a user with :

when a bank account is no more found, it is marked with a and is not listed by default, but it can still be accessed by its ID or with the .

GDPR enforcement requires an explicit end-user approval before fully synchronizing a bank account. By defaut, bank accounts are disabled when discovered and have a very limited set of values available (name), and no transactions. The webview takes care of activating them, or you can build your own user-consent interface and .

We provide a view to the history of transactions of a user with , which are .

➖
Add a first user and connection
as explained in the dedicated guide
/accounts endpoints
deleted flag
?all parameter
update the flag
/transactions endpoints
paginated