Tink Account Check API

Verify that a bank account belongs to the consumer or business presenting it. Returns verified account, identity, balance, and user-match results as JSON or PDF. Includes Business Account Check and Tink Link session creation with user info for identity matching.

Tink Account Check API is one of 9 APIs that Tink publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 1 machine-runnable capability that can be deployed as REST, MCP, or Agent Skill surfaces via Naftiko and 1 JSON Schema definition.

Tagged areas include Account Check, Account Verification, KYC, and Onboarding. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, sample payloads, 1 Naftiko capability spec, and 1 JSON Schema.

OpenAPI Specification

tink-account-check-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Tink Account Check API
  description: >
    Tink Account Check verifies that a bank account belongs to the person or
    business presenting it. After a customer authenticates via Tink Link the
    Account Check report exposes verified account ownership, identity, IBAN
    or sort-code/account number, account type, balance, and holder match
    status. The report can be retrieved as JSON for programmatic use or as
    a PDF for compliance archives.
  version: '1.0'
  contact:
    name: Tink Developer Support
    url: https://docs.tink.com/resources/account-check
servers:
  - url: https://api.tink.com
    description: Tink EU Production
  - url: https://api.us.tink.com
    description: Tink US Production
security:
  - BearerAuth: []
tags:
  - name: AccountVerificationReports
    description: Account ownership verification reports.
  - name: BusinessAccountVerificationReports
    description: Business account ownership verification reports.
paths:
  /api/v1/account-verification-reports/{report_id}:
    get:
      summary: Tink Get An Account Verification Report
      description: >
        Retrieve a completed Account Check report as a JSON document.
        Includes verified account, identity, party, balance, and risk-signal
        sections for every account the user shared.
      operationId: getAccountVerificationReport
      tags:
        - AccountVerificationReports
      parameters:
        - $ref: '#/components/parameters/ReportIdParam'
      responses:
        '200':
          description: Verification report returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountVerificationReport'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /api/v1/account-verification-reports/{report_id}/pdf:
    get:
      summary: Tink Get An Account Verification Report As PDF
      description: >
        Retrieve a completed Account Check report rendered as a PDF using
        the specified report template. Useful for compliance, KYC, and
        underwriting archives.
      operationId: getAccountVerificationReportPdf
      tags:
        - AccountVerificationReports
      parameters:
        - $ref: '#/components/parameters/ReportIdParam'
        - in: query
          name: template
          required: false
          schema:
            type: string
            example: standard-1.0
      responses:
        '200':
          description: PDF report returned.
          content:
            application/pdf:
              schema:
                type: string
                format: binary
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /data/v1/business-account-verification-reports/{report_id}:
    get:
      summary: Tink Get A Business Account Verification Report
      description: >
        Retrieve a completed Business Account Check report verifying that a
        commercial bank account is owned by the business identified during
        the Tink Link session.
      operationId: getBusinessAccountVerificationReport
      tags:
        - BusinessAccountVerificationReports
      parameters:
        - $ref: '#/components/parameters/ReportIdParam'
      responses:
        '200':
          description: Business verification report returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessAccountVerificationReport'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /link/v1/session:
    post:
      summary: Tink Create A Tink Link Session
      description: >
        Create a Tink Link session pre-loaded with user information so the
        Account Check report can be matched against the supplied identity
        (name, date of birth, address). Returns the hosted Tink Link URL.
      operationId: createLinkSession
      tags:
        - AccountVerificationReports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLinkSessionRequest'
      responses:
        '200':
          description: Tink Link session created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LinkSessionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
  parameters:
    ReportIdParam:
      in: path
      name: report_id
      required: true
      schema:
        type: string
  schemas:
    AccountVerificationReport:
      type: object
      properties:
        id:
          type: string
        market:
          type: string
        locale:
          type: string
        timestamp:
          type: string
          format: date-time
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/VerifiedAccount'
        identities:
          type: array
          items:
            $ref: '#/components/schemas/Identity'
        userMatch:
          $ref: '#/components/schemas/UserMatch'
    BusinessAccountVerificationReport:
      type: object
      properties:
        id:
          type: string
        market:
          type: string
        timestamp:
          type: string
          format: date-time
        business:
          $ref: '#/components/schemas/Business'
        accounts:
          type: array
          items:
            $ref: '#/components/schemas/VerifiedAccount'
    VerifiedAccount:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
          enum: [CHECKING, SAVINGS, CREDIT_CARD, LOAN, INVESTMENT, OTHER]
        balance:
          $ref: '#/components/schemas/Money'
        identifiers:
          type: object
          properties:
            iban:
              type: string
            sortCodeAccountNumber:
              type: object
              properties:
                sortCode:
                  type: string
                accountNumber:
                  type: string
            bban:
              type: string
        holderName:
          type: string
        currency:
          type: string
    Identity:
      type: object
      properties:
        name:
          type: string
        dateOfBirth:
          type: string
          format: date
        emails:
          type: array
          items:
            type: string
        addresses:
          type: array
          items:
            $ref: '#/components/schemas/Address'
    Business:
      type: object
      properties:
        name:
          type: string
        registrationNumber:
          type: string
        country:
          type: string
        address:
          $ref: '#/components/schemas/Address'
    Address:
      type: object
      properties:
        country:
          type: string
        city:
          type: string
        postalCode:
          type: string
        addressLine:
          type: string
    Money:
      type: object
      properties:
        amount:
          type: string
        currencyCode:
          type: string
    UserMatch:
      type: object
      properties:
        matchedName:
          type: boolean
        matchedDateOfBirth:
          type: boolean
        matchedAddress:
          type: boolean
        matchScore:
          type: number
    CreateLinkSessionRequest:
      type: object
      properties:
        market:
          type: string
        locale:
          type: string
        user:
          type: object
          properties:
            name:
              type: string
            dateOfBirth:
              type: string
              format: date
            ssn:
              type: string
            address:
              $ref: '#/components/schemas/Address'
    LinkSessionResponse:
      type: object
      properties:
        sessionId:
          type: string
        url:
          type: string
          format: uri
    Error:
      type: object
      properties:
        errorMessage:
          type: string
        errorCode:
          type: string
  responses:
    BadRequest:
      description: Invalid request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Missing or invalid bearer token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Report not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'