Qwist Accesses API

The Accesses API from Qwist — 5 operation(s) for accesses.

Operations 8

POST /rest/accesses Add provider access #
GET /rest/accesses List provider accesses #
GET /rest/accesses/{access-id} Get provider access #
DELETE /rest/accesses/{access-id} Delete provider access #
GET /rest/accesses/{access-id}/credentials List credentials #
GET /rest/accesses/{access-id}/credentials/{credential-id} Get credential #
PATCH /rest/accesses/{access-id}/credentials/{credential-id} Revoke credential #
POST /rest/accesses/{access-id}/remove_pin Remove stored PIN #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/qwist:qwist-accesses-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qwist-accesses-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: nrich Accesses API
  version: '2.10'
  contact:
    name: Qwist GmbH
    email: partnersupport@qwist.com
    url: https://qwist.com
  description: This is the reference for Qwist's nrich API
servers:
- url: https://api.nrich.qwist.cloud
  description: Staging environment
tags:
- name: Accesses
paths:
  /rest/accesses:
    post:
      summary: Add provider access
      description: Attach a new provider access to the user's account. If the provider uses an authentication flow where customer credentials have to be presented, use the information from the catalog to identify available input fields. All mandatory (`is_optional=false`) public (`is_secret=false`) fields have to be provided when creating an access. All credentials that are sent with the request are securely stored in the finX backend.
      tags:
      - Accesses
      security:
      - user_auth: []
      operationId: addProviderAccess
      parameters:
      - $ref: '#/paths/~1rest~1accesses/get/parameters/0'
      - $ref: '#/paths/~1catalog/get/parameters/0'
      responses:
        '201':
          description: Provider access details.
          content:
            application/json:
              schema:
                $ref: '#/paths/~1rest~1accesses/get/responses/200/content/application~1json/schema/items'
        '400':
          $ref: '#/paths/~1rest~1user/put/responses/400'
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              type: object
              required:
              - access_method_id
              properties:
                access_method_id:
                  type: string
                  format: UUID
                  example: ae441170-b726-460c-af3c-b76756de00e0
                  description: nrich ID of the provider access method.
                credentials:
                  description: Credentials used for authentication with the financial service provider.
                  oneOf:
                  - type: object
                    additionalProperties:
                      type: string
                    description: Pairs of key/value-items as specified in the access-method of the service provider's catalog entry.
                    example:
                      login_id: user.name
                      password: hunter2
                  - type: object
                    properties:
                      type:
                        type: string
                        enum:
                        - encrypted
                      value:
                        type: string
                        description: Pairs of key/value-items as specified in the access-method of the service provider's catalog entry encrypted with JSON web encryption.
                        example: eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZDQkMtSFM1MTIifQ.aq_baOMnl2WPI7Lf..
                consent:
                  type: object
                  description: Configuration of the PSD2 consents. Is ignored for non-PSD2 accesses.
                  properties:
                    recurring:
                      type: boolean
                      default: true
                      description: Indicates whether the consent is for an ongoing use-case
                    period:
                      type: integer
                      minimum: 1
                      maximum: 180
                      default: 180
                      description: Specify the period in days for which the consent is valid. Ignored if recurring is set to false.
                    scopes:
                      type: array
                      description: 'Defines the requested consent scopes. The actual scopes granted are determined on a best-effort basis and may differ from the requested configuration depending on the capabilities and policies of the bank.

                        '
                      default:
                      - ACCOUNTS
                      - BALANCES
                      - TRANSACTIONS
                      items:
                        type: string
                        enum:
                        - ACCOUNTS
                        - BALANCES
                        - TRANSACTIONS
                        - PAYMENTS
                    accounts:
                      type: array
                      items:
                        $ref: '#/paths/~1onetime~1access/post/requestBody/content/application~1json/schema/allOf/1/properties/accounts/items'
                  required:
                  - recurring
                  - period
                  - scopes
                  - accounts
    get:
      summary: List provider accesses
      operationId: listProviderAccesses
      description: List all connected provider accesses of user.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - in: query
        name: embed
        schema:
          type: string
          example: (provider,access_method)
        description: The `embed` query parameter allows it to add additional information to the response. The format for the parameter value is a comma separated list of field names (that is optionally surrounded by parentheses). Currently supported fields to be embedded are "provider" and "access_method".
      - $ref: '#/paths/~1catalog/get/parameters/0'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  required:
                  - id
                  - created_at
                  - access_method_id
                  - auth_methods
                  - auto_sync
                  - credential
                  - save_pin
                  - status
                  properties:
                    id:
                      $ref: '#/paths/~1rest~1accesses~1{access-id}/get/parameters/0/schema'
                    access_method_id:
                      $ref: '#/paths/~1rest~1accesses/post/requestBody/content/application~1json/schema/properties/access_method_id'
                    consent:
                      $ref: '#/paths/~1rest~1accesses/post/requestBody/content/application~1json/schema/properties/consent'
                      deprecated: true
                      description: Will be removed in favor of `credential` in the future.
                    credential:
                      $ref: '#/paths/~1rest~1accesses~1{access-id}~1credentials~1{credential-id}/get/responses/200/content/application~1json/schema'
                      description: The current credential used to authenticate with the financial provider.
                    created_at:
                      description: Entity creation timestamp.
                      example: '2026-04-01T18:30:00.000+00:00'
                      type: string
                      format: date-time
                    auth_methods:
                      type: array
                      items:
                        type: object
                        properties:
                          id:
                            $ref: '#/paths/~1rest~1accesses~1{access-id}~1syncs~1{sync-id}~1challenges~1{challenge-id}~1response/post/requestBody/content/application~1json/schema/oneOf/0/properties/method_id'
                          type:
                            type: string
                            description: Type of authentication method.
                            enum:
                            - SMS_OTP
                            - PUSH_OTP
                            - CHIP_OTP
                            - PHOTO_OTP
                            - DECOUPLED
                          name:
                            type: string
                            example: mobileTAN
                            description: Name of the authentication method as used by the financial provider.
                        required:
                        - id
                        - type
                        - name
                      description: List of supported methods for payment initiation and authentication.
                    selected_auth_method:
                      $ref: '#/paths/~1rest~1accesses/get/responses/200/content/application~1json/schema/items/properties/auth_methods/items'
                      description: 'The method that was last selected for strong customer authentication. This method will be reused for subsequent synchronization or payment initiation operations by default.

                        '
                    auto_sync:
                      type: boolean
                      description: Indicates if the access is automatically synchronized.
                      example: false
                    save_pin:
                      type: boolean
                      default: false
                      description: Indicates if the provider credentials are saved for this access.
                      example: true
                    status:
                      type: object
                      description: Synchronization status
                      properties:
                        synced_at:
                          $ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
                          description: Time of last synchronization.
                        succeeded_at:
                          $ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
                          description: Time of last successful synchronization.
                        message:
                          type: string
                          description: Human-readable error message
                      required:
                      - synced_at
                      - succeeded_at
                    provider:
                      $ref: '#/paths/~1rest~1catalog~1banks/get/responses/200/content/application~1json/schema/items/allOf/0/allOf/1'
                      description: The details of the provider associated to this access. This field is only included if the query parameter `?embed=provider` is added to the request.
                    access_method:
                      $ref: '#/paths/~1rest~1catalog~1banks/get/responses/200/content/application~1json/schema/items/allOf/0/allOf/0/properties/access_methods/items'
                      description: The details of the access method associated to this access. This field is only included if the query parameter `?embed=access_method` is added to the request.
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
  /rest/accesses/{access-id}:
    get:
      summary: Get provider access
      operationId: getProviderAccess
      description: Retrieve the details of a specific provider access identified by its ID.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - name: access-id
        in: path
        required: true
        schema:
          type: string
          example: X12345.6
          description: nrich ID of the provider access.
      - $ref: '#/paths/~1rest~1accesses/get/parameters/0'
      - $ref: '#/paths/~1catalog/get/parameters/0'
      responses:
        '200':
          $ref: '#/paths/~1rest~1accesses/post/responses/201'
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
        '404':
          $ref: '#/paths/~1auth~1token/post/responses/404'
    delete:
      summary: Delete provider access
      operationId: deleteProviderAccess
      description: Delete a specific provider access identified by its ID.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - $ref: '#/paths/~1rest~1accesses~1{access-id}/get/parameters/0'
      responses:
        '204':
          $ref: '#/paths/~1rest~1user/delete/responses/204'
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
        '404':
          $ref: '#/paths/~1auth~1token/post/responses/404'
  /rest/accesses/{access-id}/credentials:
    get:
      summary: List credentials
      operationId: listCredentials
      description: List all credentials that have been used to access the provider sorted by the `created_at` field. The first credential in the list is the currently active one whereas the remaining ones are either revoked or expired.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - $ref: '#/paths/~1rest~1accesses~1{access-id}/get/parameters/0'
      - $ref: '#/paths/~1catalog/get/parameters/0'
      responses:
        '200':
          description: List of credentials.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/paths/~1rest~1accesses~1{access-id}~1credentials~1{credential-id}/get/responses/200/content/application~1json/schema'
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
        '404':
          $ref: '#/paths/~1auth~1token/post/responses/404'
  /rest/accesses/{access-id}/credentials/{credential-id}:
    get:
      summary: Get credential
      operationId: getCredential
      description: Retrieve the details of a specific credential of a provider access identified by its ID.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - $ref: '#/paths/~1rest~1accesses~1{access-id}/get/parameters/0'
      - name: credential-id
        in: path
        required: true
        schema:
          type: string
          format: UUID
          example: ae441170-b726-460c-af3c-b76756de00e0
          description: UUID of the credential.
      - $ref: '#/paths/~1catalog/get/parameters/0'
      responses:
        '200':
          description: Credential details.
          content:
            application/json:
              schema:
                type: object
                description: Customer credentials attached to the access.
                properties:
                  id:
                    $ref: '#/paths/~1rest~1accesses~1{access-id}~1credentials~1{credential-id}/get/parameters/1/schema'
                  type:
                    type: string
                    description: 'Type of the credential.

                      * BASIC: username/password pair

                      * CONSENT: PSD2 consent configuration as confirmed by the bank

                      * OAUTH: OAuth2 token'
                    enum:
                    - BASIC
                    - CONSENT
                    - OAUTH
                    example: CONSENT
                  status:
                    type: string
                    description: Validity status of the credential.
                    enum:
                    - ACTIVE
                    - REVOKED
                    - EXPIRED
                    - PENDING
                  config:
                    description: Configuration of the consent as returned by the financial provider.
                    $ref: '#/paths/~1rest~1accesses/post/requestBody/content/application~1json/schema/properties/consent'
                  created_at:
                    $ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
                    description: Credential creation timestamp.
                    example: '2023-08-31T00:00:00.000Z'
                  expires_at:
                    $ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
                    description: Credential expiration timestamp. Only applicable for credentials of type `CONSENT` and `OAUTH`.
                    example: '2023-08-31T00:00:00.000Z'
                  revoked_at:
                    $ref: '#/paths/~1uploads/post/responses/200/content/application~1json/schema/properties/ended_at'
                    description: Credential revocation timestamp.
                    example: '2023-08-31T00:00:00.000Z'
                required:
                - id
                - type
                - status
                - created_at
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
        '404':
          $ref: '#/paths/~1auth~1token/post/responses/404'
    patch:
      summary: Revoke credential
      operationId: patchCredential
      description: Revoke a specific credential of a provider access identified by its ID. Revoking a credential of type `CONSENT` will trigger a revocation call to the financial provider. The `status` field **must** be set to `REVOKED`.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - $ref: '#/paths/~1rest~1accesses~1{access-id}/get/parameters/0'
      - $ref: '#/paths/~1rest~1accesses~1{access-id}~1credentials~1{credential-id}/get/parameters/1'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - status
              properties:
                status:
                  type: string
                  description: Validity status of the credential.
                  enum:
                  - REVOKED
      responses:
        '200':
          description: Credential details.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/paths/~1rest~1accesses~1{access-id}~1credentials~1{credential-id}/get/responses/200/content/application~1json/schema'
                - type: object
                  properties:
                    status:
                      example: REVOKED
        '400':
          $ref: '#/paths/~1rest~1user/put/responses/400'
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
        '404':
          $ref: '#/paths/~1auth~1token/post/responses/404'
  /rest/accesses/{access-id}/remove_pin:
    post:
      summary: Remove stored PIN
      operationId: removePINFromProviderAccess
      deprecated: true
      description: Remove a PIN from the API backend that has been previously stored for automatic synchronization or ease of use. Will be removed in favor of the `PATCH /rest/accesses/{access-id}/credentials/{credential-id}` endpoint in the future.
      tags:
      - Accesses
      security:
      - user_auth: []
      parameters:
      - $ref: '#/paths/~1rest~1accesses~1{access-id}/get/parameters/0'
      responses:
        '200':
          $ref: '#/paths/~1rest~1accesses/post/responses/201'
        '401':
          $ref: '#/paths/~1catalog/get/responses/401'
        '404':
          $ref: '#/paths/~1auth~1token/post/responses/404'
components:
  securitySchemes:
    user_auth:
      type: http
      description: 'In order to access any information belonging to a user, a client has to authenticate with a token linking itself to the user.  This token is called an `access token` and contains information on the client, the user and the level of access the client has to the users data. In order to authenticate using such an access token the HTTP header `Authorization` is set to `Bearer <access token>`. The  `access token` is formatted

        as a JSON Web Token according to [RFC7519](https://tools.ietf.org/html/rfc7519)


        Such an `access token` is either returned when


        * exchanging an authorization code after a successful OAuth login flow

        * logging in with the user''s credentials

        * exchanging a refresh token, which is returned at either of the aforementioned points


        **Authentication errors**


        In case of an authentication error a HTTP code 401 response is returned containing further

        details on the kind of error in the `WWW-Authenticate` header.


        In addition to the below listed scope the flags are used for simple boolean permissions.


        | Flag            | Description                                  |

        | --              | --                                           |

        | submit_payments | Allow submission of payments to bank server  |

        | offline         | Access finX API when the user is not present |

        | create_user     | Allow creation of finX accounts              |


        **Example**


        The string `"accounts=rw submit_payments"` is URL-encoded and passed as the URL

        parameter `scope`.'
      scheme: bearer
      bearerFormat: JWT
      x-bearerInfoFunc: app.decode_token
      x-scopes:
        accounts=rw: Modify accounts
        accounts=ro: Read accounts
        balance=ro: Read account balance
        securities=ro: Read securities
        transactions=ro: Read transactions
        transactions=rw: Modify transactions
        payments=ro: Read payments
        payments=rw: Create/modify payments
        submit_payments: Submit payment to service provider
        user=ro: Read user information
        user=rw: Modify user information
    client_auth:
      x-basicInfoFunc: app.basic_auth
      type: http
      scheme: basic
      description: Client authentication is performed via [HTTP Basic Auth](https://en.wikipedia.org/wiki/Basic_access_authentication) with client ID as username and client secret as password.
x-provenance:
  method: searched
  source: https://docs.qwist.com/reference
  harvested: '2026-10-21'
  tool: harvest-readme-openapi.py
  note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
  assembled_from:
  - https://docs.qwist.com/reference/addprovideraccess.md
  - https://docs.qwist.com/reference/categorizetransactions.md
  - https://docs.qwist.com/reference/createaccesstoken.md
  - https://docs.qwist.com/reference/createaccountverification.md
  - https://docs.qwist.com/reference/createcontract.md
  - https://docs.qwist.com/reference/createincomereport.md
  - https://docs.qwist.com/reference/createmanualsync.md
  - https://docs.qwist.com/reference/createnotification.md
  - https://docs.qwist.com/reference/createonetimeaccess.md
  - https://docs.qwist.com/reference/createonetimeincomereport.md
  - https://docs.qwist.com/reference/createonetimepayment.md
  - https://docs.qwist.com/reference/createonetimeriskreport.md
  - https://docs.qwist.com/reference/createongoingaccess.md
  - https://docs.qwist.com/reference/createongoingpayment.md
  - https://docs.qwist.com/reference/createongoingriskreport.md
  - https://docs.qwist.com/reference/createpayment.md
  - https://docs.qwist.com/reference/createpaymentfromaccount.md
  - https://docs.qwist.com/reference/createqwistlink.md
  - https://docs.qwist.com/reference/createriskreport.md
  - https://docs.qwist.com/reference/createsync.md
  - https://docs.qwist.com/reference/createupload.md
  - https://docs.qwist.com/reference/createuser.md
  - https://docs.qwist.com/reference/createverifyandpay.md
  - https://docs.qwist.com/reference/deleteaccount.md
  - https://docs.qwist.com/reference/deleteclientuser.md
  - https://docs.qwist.com/reference/deletecontract.md
  - https://docs.qwist.com/reference/deletenotification.md
  - https://docs.qwist.com/reference/deletepayment.md
  - https://docs.qwist.com/reference/deleteprovideraccess.md
  - https://docs.qwist.com/reference/deleteuser.md
  - https://docs.qwist.com/reference/getaccount.md
  - https://docs.qwist.com/reference/getaccountbalance.md
  - https://docs.qwist.com/reference/getaccountverificationreceipt.md
  - https://docs.qwist.com/reference/getandgenerateincomereport.md
  - https://docs.qwist.com/reference/getartifact.md
  - https://docs.qwist.com/reference/getcategories.md
  - https://docs.qwist.com/reference/getcategoriesforaccess.md
  - https://docs.qwist.com/reference/getcategoriesforaccount.md
  - https://docs.qwist.com/reference/getcategorytree.md
  - https://docs.qwist.com/reference/getcontract.md
  - https://docs.qwist.com/reference/getcredential.md
  - https://docs.qwist.com/reference/getincomereport.md
  - https://docs.qwist.com/reference/getinsurance.md
  - https://docs.qwist.com/reference/getloan.md
  - https://docs.qwist.com/reference/getnotification.md
  - https://docs.qwist.com/reference/getpaymentchallenge.md
  - https://docs.qwist.com/reference/getpaymentchallengeofaccount.md
  - https://docs.qwist.com/reference/getpaymentinitstatus.md
  - https://docs.qwist.com/reference/getpaymentinitstatusofaccount.md
  - https://docs.qwist.com/reference/getpaymentofaccount.md
  - https://docs.qwist.com/reference/getpaymentpartners.md
  - https://docs.qwist.com/reference/getpaymentpartnersforaccess.md
  - https://docs.qwist.com/reference/getpaymentpartnersforaccount.md
  - https://docs.qwist.com/reference/getpaymentreceipt.md
  - https://docs.qwist.com/reference/getprovideraccess.md
  - https://docs.qwist.com/reference/getriskreport.md
  - https://docs.qwist.com/reference/getsecurityofaccount.md
  - https://docs.qwist.com/reference/getsyncchallenge.md
  - https://docs.qwist.com/reference/getsyncstatus.md
  - https://docs.qwist.com/reference/gettimeline.md
  - https://docs.qwist.com/reference/gettimelineforaccess.md
  - https://docs.qwist.com/reference/gettimelineforaccount.md
  - https://docs.qwist.com/reference/gettransaction.md
  - https://docs.qwist.com/reference/gettransactionofaccount.md
  - https://docs.qwist.com/reference/getuploadstatus.md
  - https://docs.qwist.com/reference/getuser.md
  - https://docs.qwist.com/reference/getversion.md
  - https://docs.qwist.com/reference/initpayment.md
  - https://docs.qwist.com/reference/initpaymentofaccount.md
  - https://docs.qwist.com/reference/listaccounts.md
  - https://docs.qwist.com/reference/listaccountsofaccess.md
  - https://docs.qwist.com/reference/listbanks.md
  - https://docs.qwist.com/reference/listcatalog.md
  - https://docs.qwist.com/reference/listcatalogclientauth.md
  - https://docs.qwist.com/reference/listclientusers.md
  - https://docs.qwist.com/reference/listcontracts.md
  - https://docs.qwist.com/reference/listcontractsofaccess.md
  - https://docs.qwist.com/reference/listcontractsofaccount.md
  - https://docs.qwist.com/reference/listcredentials.md
  - https://docs.qwist.com/reference/listinsurances.md
  - https://docs.qwist.com/reference/listinsurancesofaccess.md
  - https://docs.qwist.com/reference/listloans.md
  - https://docs.qwist.com/reference/listloansofaccess.md
  - https://docs.qwist.com/reference/listnotifications.md
  - https://docs.qwist.com/reference/listpaymentchallenges.md
  - https://docs.qwist.com/reference/listpaymentchallengesofaccount.md
  - https://docs.qwist.com/reference/listpayments.md
  - https://docs.qwist.com/reference/listpaymentsofaccount.md
  - https://docs.qwist.com/reference/listprovideraccesses.md
  - https://docs.qwist.com/reference/listsecurities.md
  - https://docs.qwist.com/reference/listsecuritiesofaccount.md
  - https://docs.qwist.com/reference/listservices.md
  - https://docs.qwist.com/reference/listsyncchallenges.md
  - https://docs.qwist.com/reference/listtransactions.md
  - https://docs.qwist.com/reference/listtransactionsofaccount.md
  - https://docs.qwist.com/reference/patchcredential.md
  - https://docs.qwist.com/reference/removepinfromprovideraccess.md
  - https://docs.qwist.com/reference/replacenotifications.md
  - https://docs.qwist.com/reference/revokeoauthtoken.md
  - https://docs.qwist.com/reference/solvepaymentchallenge.md
  - https://docs.qwist.com/reference/solvepaymentchallengeofaccount.md
  - https://docs.qwist.com/reference/solvesyncchallenge.md
  - https://docs.qwist.com/reference/updatecontract.md
  - https://docs.qwist.com/reference/updatenotification.md
  - https://docs.qwist.com/reference/updateuser.md
  merge:
    pages: 105
    deduped: 1107
    conflicts_kept_first: 0