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.

More about this service you can find here

16561656

 

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
          description: Party identity type - unknown indeed, it can be PERSON/ORGANIZATION
          enum:
            - PARTY
      additionalProperties: false
    IdentityOrganization:
      type: object
      properties:
        name:
          type: string
          description: Organization name
        nip:
          type: string
          description: Organization NIP number
        regon:
          type: string
          description: Organization REGON number
        addresses:
          type: object
          description: Address details
          properties:
            registry:
              $ref: '#/components/schemas/Address'
        resourceType:
          type: string
          description: Organization resource type
          enum:
            - ORGANIZATION
      additionalProperties: false
    IdentityPerson:
      type: object
      properties:
        firstName:
          type: string
          description: First name
        lastName:
          type: string
          description: Last name
        personalIdentityNumber:
          type: string
          description: Identity number
        personAddresses:
          type: object
          description: Address details
          properties:
            registry:
              $ref: '#/components/schemas/Address'
        gender:
          type: string
          description: Gender
        birthDate:
          type: string
          format: date
          description: Date of birth
        resourceType:
          type: string
          description: Person resource type
          enum:
            - PERSON
      additionalProperties: false
    Account:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier
        number:
          type: string
          descripiton: Account number (IBAN)
        name:
          type: string
          description: Account name
        openedAt:
          type: string
          format: date-time
                    description: Account open date
          example: '2017-10-15T15:26:26.752Z'
        currency:
          type: string
          description: Account currency (ISO 4217)
        availableBalance:
          type: number
          format: double
          description: Account available balance
        bookingBalance:
          type: number
          format: double
          description: Account booked balance
        overdraftLimit:
          type: number
          format: double
          description: Account overdraft limit
        bic:
          type: string
          description: BIC - Bank Identifier Code
        bankName:
          type: string
          description: Bank name
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
    Address:
      type: object
      properties:
        city:
          type: string
          description: City
        country:
          type: string
          description: Country
        postalCode:
          type: string
          description: Postal code
        street:
          type: string
          description: Street
    Transaction:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of transaction
        accountId:
          type: string
          description: Unique identifier of related account to this transaction
        amount:
          type: number
          format: double
          description: Transaction amount
        currency:
          type: string
          description: Transaction currency (ISO 4217)
        title:
          type: string
          description: Transaction title
        tradedAt:
          type: string
          format: date-time
          example: '2017-10-15T15:26:26.752Z'
                    description: Transaction trade date
        status:
          type: string
          description: Transaction status
          enum:
            - DONE
            - PENDING
            - REJECTED
        accountNumber:
          type: string
          description: Account number (IBAN) of related account to transaction
        description:
          type: string
          description: Transaction description
        bookedAt:
          type: string
          format: date-time
          example: '2017-10-15T15:26:26.752Z'
                  description: Transaction booking date
        counterpartyAccount:
          type: string
          description: Accont number of counterparty
        counterpartyName:
          type: string
          description: Counterparty name
        counterpartyBic:
          type: string
          description: Coutnerparty BIC (Bank Identifier Code)
        counterpartyBankName:
          type: string
          description: Counterparty bank name
        category:
          type: string
          description: Transaction category type
          enum:
            - CARDPAYMENT
            - TRANSFER
            - GOOGLEPAY
            - APPLEPAY
            - BLIK
            - OTHER
        postTransactionBalance:
          description: Balance after processing this transaction
          type: number
          format: double

What’s Next