Tinvio Bank Records API
Manage bank records and import bank statements.
Manage bank records and import bank statements.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/tinvio-com:tinvio-com-bank-records-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 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