Tinvio Bank Records API

Manage bank records and import bank statements.

Operations 4

POST /api/v1/bank-records/{accountResourceId} Add Bank Records #
POST /api/v1/bank-records/{accountResourceId}/archive Archive Bank Records #
POST /api/v1/bank-records/{accountResourceId}/search Search Bank Records #
POST /api/v1/bank-records/{accountResourceId}/unarchive Unarchive Bank Records #

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/tinvio-com:tinvio-com-bank-records-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

tinvio-com-bank-records-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tinvio Com Bank Records API
  version: '1.0'
  contact:
    email: build.with@jaz.ai
    name: API Support
    url: https://jaz.ai
  description: 'Operations tagged Bank Records across 2 of this provider''s published API definitions: tinvio-com-openapi-original.yaml, tinvio-com-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.getjaz.com
tags:
- description: Manage bank records and import bank statements.
  name: Bank Records
paths:
  /api/v1/bank-records/{accountResourceId}:
    post:
      description: Import bank statement entries into the bank account.
      operationId: create-bank-record
      parameters:
      - description: Resource ID of the bank account.
        in: path
        name: accountResourceId
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Add Bank Records
      tags:
      - Bank Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AddBankStatementEntriesRequest'
        description: The add bank statement entries request.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/bank-records/{accountResourceId}/archive:
    post:
      description: 'Archive bank records on the bank account. Archiving takes a record out of the account''s working set: it leaves the reconciliation list and stops being offered as a match suggestion. A reconciled record is unlinked first and then archived, and the invoice, bill, payment, or journal it was matched against is left in place. Records that are already archived, or that belong to a different bank account, are reported as skipped rather than rejected, so the same request can be retried safely. Use Unarchive Bank Records to reverse this.'
      operationId: create-bank-record-archive
      parameters:
      - description: Resource ID of the bank account.
        in: path
        name: accountResourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Archive Bank Records
      tags:
      - Bank Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArchiveBankStatementEntriesRequest'
        description: Bank records to archive.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/bank-records/{accountResourceId}/search:
    post:
      description: Search the bank account's statement entries with filters, sort, and pagination.
      operationId: search-bank-record
      parameters:
      - description: Resource ID of the bank account.
        in: path
        name: accountResourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Search Bank Records
      tags:
      - Bank Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchBankStatementEntriesRequest'
        description: Search filters, sort, and pagination.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/bank-records/{accountResourceId}/unarchive:
    post:
      description: Return archived bank records to the bank account's working set, so they appear in the reconciliation list again. Records that are not archived, or that belong to a different bank account, are reported as skipped rather than rejected, so the same request can be retried safely.
      operationId: create-bank-record-unarchive
      parameters:
      - description: Resource ID of the bank account.
        in: path
        name: accountResourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable Entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security:
      - ApiKeyAuth: []
      summary: Unarchive Bank Records
      tags:
      - Bank Records
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnarchiveBankStatementEntriesRequest'
        description: Bank records to restore.
        required: true
    servers:
    - url: https://api.getjaz.com
components:
  schemas:
    ErrorResponse:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/ErrorResponseData'
          description: Error details.
      type: object
    DateExpression:
      properties:
        between:
          description: Match dates between these two dates (exactly two, in YYYY-MM-DD format).
          items:
            type: string
          type: array
        eq:
          description: Match dates equal to this, in YYYY-MM-DD format.
          type: string
        gt:
          description: Match dates after this, in YYYY-MM-DD format.
          type: string
        gte:
          description: Match dates on or after this, in YYYY-MM-DD format.
          type: string
        isNotNull:
          description: Match records where the date is set. Pass the placeholder date "0001-01-01".
          example: '0001-01-01'
          type: string
        isNull:
          description: Match records where the date is not set. Pass the placeholder date "0001-01-01".
          example: '0001-01-01'
          type: string
        lt:
          description: Match dates before this, in YYYY-MM-DD format.
          type: string
        lte:
          description: Match dates on or before this, in YYYY-MM-DD format.
          type: string
        notBetween:
          description: Match dates outside these two dates (exactly two, in YYYY-MM-DD format).
          items:
            type: string
          type: array
      required:
      - between
      type: object
    BigDecimalExpression:
      properties:
        eq:
          description: Match values equal to this.
          type: number
        gt:
          description: Match values greater than this.
          type: number
        gte:
          description: Match values greater than or equal to this.
          type: number
        in:
          description: Match values equal to any of these.
          items:
            type: number
          maxItems: 100
          type: array
        inRange:
          description: Match values within this inclusive range (exactly two, low then high).
          items:
            type: number
          type: array
        lt:
          description: Match values less than this.
          type: number
        lte:
          description: Match values less than or equal to this.
          type: number
        neq:
          description: Match values not equal to this.
          type: number
        notInRange:
          description: Match values outside this inclusive range (exactly two, low then high).
          items:
            type: number
          type: array
      type: object
    BaseResponse:
      properties:
        data:
          description: The response object.
      type: object
    UserNestedFilter:
      properties:
        deleted:
          allOf:
          - $ref: '#/components/schemas/BooleanExpression'
          description: Filter by whether the user record is deleted.
        email:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by email address.
        firstName:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by first name.
        lastName:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by last name.
        phoneRegistered:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by registered phone number.
        resourceId:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by user resource ID.
        status:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: 'Filter by user status: ACTIVE or INACTIVE.'
      type: object
    UnarchiveBankStatementEntriesRequest:
      properties:
        accountResourceId:
          description: Resource ID of the bank account, from the URL path.
          type: string
        resourceIds:
          description: Bank records to restore. Maximum 500 per request.
          items:
            type: string
          maxItems: 500
          minItems: 1
          type: array
          uniqueItems: true
      required:
      - accountResourceId
      - resourceIds
      type: object
    SearchBankStatementEntriesRequest:
      properties:
        accountResourceId:
          description: Resource ID of the bank account, from the URL path.
          type: string
        filter:
          allOf:
          - $ref: '#/components/schemas/BankStatementEntryFilter'
          description: Filter conditions. Combine with and and or for complex queries.
        limit:
          default: 100
          description: Maximum number of results per page (max 1000).
          maximum: 1000
          minimum: 1
          type: integer
        offset:
          default: 0
          description: Zero-indexed row offset into the result set. Sort is required when offset is set.
          maximum: 65536
          minimum: 0
          type: integer
        query:
          description: 'Structured search query using Jaz search operators. Parsed automatically into filter fields.

            Explicit filter fields override query results on conflict.

            Example: "status:unpaid AND $500+".'
          maxLength: 1000
          type: string
        sort:
          allOf:
          - $ref: '#/components/schemas/BankStatementEntrySort'
          description: Sort order. Required when offset is set.
      required:
      - accountResourceId
      type: object
    BooleanExpression:
      properties:
        eq:
          description: Match values equal to this.
          type: boolean
      type: object
    ArchiveBankStatementEntriesRequest:
      properties:
        accountResourceId:
          description: Resource ID of the bank account, from the URL path.
          type: string
        archiveNotes:
          description: Note stored against each archived record.
          maxLength: 1000
          type: string
        resourceIds:
          description: Bank records to archive. Maximum 500 per request.
          items:
            type: string
          maxItems: 500
          minItems: 1
          type: array
          uniqueItems: true
      required:
      - accountResourceId
      - resourceIds
      type: object
    AddBankStatementEntriesRecord:
      properties:
        amount:
          description: Entry amount. Positive for money in, negative for money out.
          type: number
        description:
          description: Bank record description.
          maxLength: 65536
          type: string
        metadata:
          description: Additional metadata for the entry.
          items:
            $ref: '#/components/schemas/AddBankStatementEntriesRecordMetadata'
          maxItems: 100
          type: array
        payerOrPayee:
          description: Payer or payee shown on the statement.
          maxLength: 65536
          type: string
        reference:
          description: Bank record reference or number.
          maxLength: 65536
          type: string
        transactionDate:
          description: Transaction date, in YYYY-MM-DD format.
          type: string
      required:
      - amount
      - transactionDate
      type: object
    BankStatementEntrySort:
      properties:
        order:
          description: Sort direction, ASC or DESC.
          enum:
          - ASC
          - asc
          - DESC
          - desc
          type: string
        sortBy:
          description: Fields to sort by, in priority order.
          items:
            type: string
          maxItems: 9
          type: array
          uniqueItems: true
      required:
      - order
      - sortBy
      type: object
    StringExpression:
      properties:
        contains:
          description: Match values containing this substring.
          type: string
        endWith:
          description: Match values ending with this term (case sensitive).
          type: string
        eq:
          description: Match values equal to this.
          type: string
        in:
          description: Match values equal to any of these.
          items:
            type: string
          maxItems: 100
          type: array
        isBlank:
          description: Match records where the field is null or empty ("true") or neither ("false").
          type: string
        isNotBlank:
          description: Match records where the field is neither null nor empty ("true").
          type: string
        isNull:
          description: Match records where the field is null ("true") or not null ("false").
          type: string
        likeIn:
          description: Match values containing any of these substrings.
          items:
            type: string
          maxItems: 100
          type: array
        neq:
          description: Match values not equal to this.
          type: string
        notContains:
          description: Match values not containing this substring.
          type: string
        notEndWith:
          description: Match values not ending with this term (case sensitive).
          type: string
        notStartWith:
          description: Match values not starting with this term (case sensitive).
          type: string
        reg:
          description: Match values containing any of these terms. This is a substring match, not a regular expression, despite the name.
          items:
            type: string
          maxItems: 100
          type: array
        startWith:
          description: Match values starting with this term (case sensitive).
          type: string
      required:
      - in
      - likeIn
      - reg
      type: object
    AddBankStatementEntriesRequest:
      properties:
        accountResourceId:
          description: Resource ID of the bank account, from the URL path.
          type: string
        records:
          description: Statement entries to import.
          items:
            $ref: '#/components/schemas/AddBankStatementEntriesRecord'
          maxItems: 100
          minItems: 1
          type: array
      required:
      - accountResourceId
      - records
      type: object
    BankStatementEntryFilter:
      properties:
        and:
          description: Combine with another filter using AND.
          type: object
        description:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Bank record description.
        extAccountNumber:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by the external account number.
        extContactName:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by the contact name on the statement.
        extReference:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by the external reference.
        netAmount:
          allOf:
          - $ref: '#/components/schemas/BigDecimalExpression'
          description: Filter by net amount.
        or:
          description: Combine with another filter using OR.
          type: object
        reconciledBy:
          allOf:
          - $ref: '#/components/schemas/UserNestedFilter'
          description: Filter by who reconciled the entry.
        resourceId:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by bank record resource ID.
        status:
          allOf:
          - $ref: '#/components/schemas/StringExpression'
          description: Filter by status.
        valueDate:
          allOf:
          - $ref: '#/components/schemas/DateExpression'
          description: Value date, in YYYY-MM-DD format (organization timezone).
      type: object
    AddBankStatementEntriesRecordMetadata:
      properties:
        index:
          description: Position of the entry within the import.
          maximum: 100
          minimum: 0
          type: integer
        name:
          description: Metadata field name.
          maxLength: 65536
          type: string
        value:
          description: Field value.
          maxLength: 65536
          type: string
      type: object
    ErrorResponseData:
      properties:
        error_type:
          description: Error category, for example validation_error, invalid_request_body, or internal_server_error.
          example: validation_error
          type: string
        errors:
          description: Error messages describing what went wrong.
          items:
            type: string
          type: array
      type: object
  securitySchemes:
    ApiKeyAuth:
      description: Organization API key. Pass it in the x-jk-api-key header on every request.
      in: header
      name: x-jk-api-key
      type: apiKey
x-refined-from:
- tinvio-com-openapi-original.yaml
- tinvio-com-openapi.yml