TransactionLink AIS

Verify your user's identity with their bank accounts

How does it work?

Upon your user consent, TransactionLink connects to their bank to download their data.

 

Configuration: Redirect and embedded

The AIS app can be configured to follow two different flows.
Every flow returns different data, and it's up to you to decide which one suits your use-case.

The redirect flow

In this flow the user is redirected to the bank's website, where he consents for the data download.
This flow is the most common choice as it provides more robustness and allows you to subscribe to the future account updates including new transactions for up to 90 days.
However, it doesn't provide detailed personal data like personal identity number, so it's KYC capabilities are limited.

The embedded flow

In this flow all the interactions happen within TransactionLink's widget.
The data download happens only once and transactions history is limited to three months.
On the other hand you're able to get more of the personal data for example identity number.

Supported banks

To check the list of supported banks please go to this section.

Response content

{
    "ais": {
        "identity": {
            "firstName": "Anna",
            "lastName": "Nowak",
            "personalIdentityNumber": "81021118350",
            "personAddresses": {
                "registry": {
                    "city": "Pcim",
                    "country": "Poland",
                    "postalCode": "32-432",
                    "street": "Pcim 143"
                }
            },
            "citizenship": "Poland",
            "gender": "M",
            "birthDate": "1981-02-11",
            "resourceType": "PERSON"
        },
        "accounts": [
            {
                "id": "ad09b363-8614-4b4a-820a-e9f325043932",
                "number": "PL28114020040000330279698727",
                "name": "Konto Firmowe",
                "openedAt": "2017-10-15T15:26:26.752Z",
                "currency": "PLN",
                "availableBalance": 18965887,
                "bookingBalance": 18965887,
                "overdraftLimit": 0,
                "bic": "IEEAPLPAXXX",
                "bankName": "Idea Bank S.A.",
                "transactions": [
                    {
                        "id": "e2867fc8-fddf-4157-ab64-aba306e9674e",
                        "accountId": "ad09b363-8614-4b4a-820a-e9f325043932",
                        "amount": 7795,
                        "currency": "PLN",
                        "title": "Faktura za wynajem",
                        "tradedAt": "2022-04-20T19:47:12.966Z",
                        "status": "DONE",
                        "accountNumber": "PL28114020040000330279698727",
                        "description": "additional info",
                        "bookedAt": "2022-04-20T19:47:12.966Z",
                        "counterpartyAccount": "PL23116022600319418058981335",
                        "counterpartyName": "Sklep Alexander",
                        "counterpartyBic": "IEEAPLPAXXX",
                        "counterpartyBankName": "Bank Millenium SA",
                        "category": "TRANSFER",
                        "postTransactionBalance": 6613.29
                    },
                ]
            }
        ]
    }
}
openapi: 3.0.1
info:
  title: Transactionlink AIS model definition
  version: v1s
paths: {}
components:
  schemas:
    ais:
      type: object
      properties:
        identity:
          oneOf:
           - $ref: '#/components/schemas/IdentityOrganization'
           - $ref: '#/components/schemas/IdentityParty'
           - $ref: '#/components/schemas/IdentityPerson'
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/Account'
    IdentityParty:
      type: object
      properties:
        resourceType:
          type: string
          enum:
            - PERSON
            - PARTY
            - ORGANIZATION
      additionalProperties: false
    IdentityOrganization:
      type: object
      properties:
        name:
          type: string
        nip:
          type: string
        regon:
          type: string
        addresses:
          type: object
          properties:
            registry:
              $ref: '#/components/schemas/Address'
        resourceType:
          type: string
          enum:
            - PERSON
            - PARTY
            - ORGANIZATION
      additionalProperties: false
    IdentityPerson:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        personalIdentityNumber:
          type: string
        personAddresses:
          type: object
          properties:
            registry:
              $ref: '#/components/schemas/Address'
        citizenship:
          type: string
        gender:
          type: string
        birthDate:
          type: string
          format: date
        resourceType:
          type: string
          enum:
            - PERSON
            - PARTY
            - ORGANIZATION
      additionalProperties: false
    Account:
      type: object
      properties:
        id:
          type: string
        number:
          type: string
        name:
          type: string
        openedAt:
          type: string
          format: date-time
          example: '2017-10-15T15:26:26.752Z'
        currency:
          type: string
          description: ISO
        availableBalance:
          type: number
          format: double
        bookingBalance:
          type: number
          format: double
        overdraftLimit:
          type: number
          format: double
        bic:
          type: string
        bankName:
          type: string
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
    Address:
      type: object
      properties:
        city:
          type: string
        country:
          type: string
        postalCode:
          type: string
        street:
          type: string
    Transaction:
      type: object
      properties:
        id:
          type: string
        accountId:
          type: string
        amount:
          type: number
          format: double
        currency:
          type: string
          description: ISO
        title:
          type: string
        tradedAt:
          type: string
          format: date-time
          example: '2017-10-15T15:26:26.752Z'
        status:
          type: string
          enum:
            - DONE
            - PENDING
            - REJECTED
        accountNumber:
          type: string
        description:
          type: string
        bookedAt:
          type: string
          format: date-time
          example: '2017-10-15T15:26:26.752Z'
        counterpartyAccount:
          type: string
        counterpartyName:
          type: string
        counterpartyBic:
          type: string
        counterpartyBankName:
          type: string
        category:
          type: string
          enum:
            - CARDPAYMENT
            - TRANSFER
            - GOOGLEPAY
            - APPLEPAY
            - BLIK
            - OTHER
        postTransactionBalance:
          type: number
          format: double