Tinvio Custom Fields API
Create and manage custom fields across entities.
Create and manage custom fields across entities.
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-custom-fields-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 Custom Fields API
version: '1.0'
contact:
email: build.with@jaz.ai
name: API Support
url: https://jaz.ai
description: 'Operations tagged Custom Fields 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: Create and manage custom fields across entities.
name: Custom Fields
paths:
/api/v1/custom-fields:
get:
description: List the organization's custom fields, paginated.
operationId: list-custom-fields
parameters:
- description: Maximum number of results per page (max 1000).
in: query
name: limit
schema:
type: integer
default: 100
- description: Zero-indexed row offset into the result set.
in: query
name: offset
schema:
type: integer
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: List Custom Fields
tags:
- Custom Fields
post:
description: Create a custom field.
operationId: create-custom-field
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: Create Custom Field
tags:
- Custom Fields
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCustomFieldClientRequest'
description: The custom field to create.
required: true
servers:
- url: https://api.getjaz.com
/api/v1/custom-fields/search:
post:
description: Search custom fields with filters, sort, and pagination.
operationId: search-custom-field
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 Custom Fields
tags:
- Custom Fields
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SearchCustomFieldRequest'
description: Search filters, sort, and pagination.
required: true
servers:
- url: https://api.getjaz.com
/api/v1/custom-fields/{resourceId}:
delete:
description: Delete the custom field.
operationId: delete-custom-field
parameters:
- description: Resource ID of the custom field.
in: path
name: resourceId
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: Delete Custom Field
tags:
- Custom Fields
get:
description: Get a single custom field by its resource ID.
operationId: get-custom-field
parameters:
- description: Resource ID of the custom field.
in: path
name: resourceId
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: Get Custom Field
tags:
- Custom Fields
put:
description: Update an existing custom field.
operationId: update-custom-field
parameters:
- description: Resource ID of the custom field.
in: path
name: resourceId
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: Update Custom Field
tags:
- Custom Fields
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCustomFieldClientRequest'
description: The custom field fields to update.
required: true
servers:
- url: https://api.getjaz.com
/api/v1/custom-fields/{resourceId}/options:
get:
description: 'List the options a custom field offers, paginated. Serves both kinds of field:
one with typed list options returns them as names with no resource ID, and one
drawing on a record list returns records as entityResourceId, which is the value
to store on the transaction.'
operationId: list-custom-field-options
parameters:
- description: Resource ID of the custom field.
in: path
name: resourceId
required: true
schema:
type: string
- description: Filter options by name. Matches anywhere in the name and ignores case.
in: query
name: search
schema:
type: string
- description: Maximum number of results per page (max 1000).
in: query
name: limit
schema:
type: integer
default: 100
- description: Number of results to skip. This is a row offset, not a page number.
in: query
name: offset
schema:
type: integer
default: 0
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageableResponse'
'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: List Custom Field Options
tags:
- Custom Fields
servers:
- url: https://api.getjaz.com
components:
schemas:
ErrorResponse:
properties:
error:
allOf:
- $ref: '#/components/schemas/ErrorResponseData'
description: Error details.
type: object
UpdateCustomFieldAppliesTo:
properties:
bills:
description: 'Applicability for bills: NULL, SHOW, or PRINT.'
type: boolean
contacts:
description: Applicability for contacts. Omit to leave unchanged.
type: boolean
customerCredits:
description: 'Applicability for customer credit notes: NULL, SHOW, or PRINT.'
type: boolean
employeeClaims:
description: Applicability for employee claims. Omit to leave unchanged.
type: boolean
fixedAssets:
description: Applicability for fixed assets. Omit to leave unchanged.
type: boolean
invoices:
description: 'Applicability for invoices: NULL, SHOW, or PRINT.'
type: boolean
items:
description: Applicability for items. Omit to leave unchanged.
type: boolean
payments:
description: Payments to record against the custom field at creation.
type: boolean
purchaseOrders:
description: Applicability for purchase orders. Omit to leave unchanged.
type: boolean
saleOrders:
description: Applicability for sale orders. Omit to leave unchanged.
type: boolean
supplierCredits:
description: 'Applicability for supplier credit notes: NULL, SHOW, or PRINT.'
type: boolean
required:
- bills
- customerCredits
- invoices
- payments
- supplierCredits
type: object
BaseResponse:
properties:
data:
description: The response object.
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
CreateCustomFieldClientRequest:
properties:
appliesTo:
allOf:
- $ref: '#/components/schemas/CreateCustomFieldAppliesTo'
description: Filter by the transaction types the account applies to.
description:
description: Custom field description.
type: string
format:
default: CUSTOM
description: 'Where the field''s options come from. CUSTOM means the options are typed by hand. Any other
value draws them from that record list and makes the field a pick from that list.
Defaults to CUSTOM.'
enum:
- CUSTOM
- ALL_CUSTOMERS
- ALL_SUPPLIERS
- ALL_CONTACTS
- ALL_EMPLOYEES
- ALL_USERS
type: string
name:
description: Custom field name.
type: string
printOnDocuments:
description: Whether this field appears on printed documents.
type: boolean
required:
- name
- printOnDocuments
type: object
CustomFieldFilter:
properties:
and:
description: Combine with another filter using AND.
type: object
appliesToFixedAssets:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by fixed-asset applicability.
appliesToItems:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by item applicability.
applyToContacts:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by contact applicability.
applyToCreditNote:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by credit note applicability.
applyToPayment:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by payment applicability.
applyToPurchase:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by purchase applicability.
applyToPurchaseCreditNote:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by supplier credit note applicability.
applyToSaleCreditNote:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by customer credit note applicability.
applyToSales:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by sales applicability.
customFieldName:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by custom field name.
datatypeCode:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: 'Filter by data type: TEXT, LIST, or DATE.'
not:
description: Exclude records matching these conditions.
type: object
or:
description: Combine with another filter using OR.
type: object
organizationResourceId:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by organization resource ID.
resourceId:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by custom field resource ID.
status:
allOf:
- $ref: '#/components/schemas/StringExpression'
description: Filter by status.
type: object
PageableResponse:
properties:
data:
description: Result rows for the requested page.
totalElements:
description: Total number of records matching the query.
type: integer
totalPages:
description: Total number of pages.
type: integer
type: object
UpdateCustomFieldClientRequest:
properties:
appliesTo:
allOf:
- $ref: '#/components/schemas/UpdateCustomFieldAppliesTo'
description: Filter by the transaction types the account applies to.
description:
description: Custom field description.
type: string
format:
description: 'Where the field''s options come from. CUSTOM means the options are typed by hand. Any other
value draws them from that record list and makes the field a pick from that list.'
enum:
- CUSTOM
- ALL_CUSTOMERS
- ALL_SUPPLIERS
- ALL_CONTACTS
- ALL_EMPLOYEES
- ALL_USERS
type: string
name:
description: Custom field name.
type: string
printOnDocuments:
description: Whether this field appears on printed documents.
type: boolean
resourceId:
description: Custom field resource ID (UUIDv4).
type: string
required:
- appliesTo
- name
- printOnDocuments
- resourceId
type: object
SearchCustomFieldRequest:
properties:
filter:
allOf:
- $ref: '#/components/schemas/CustomFieldFilter'
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/CustomFieldSortFilter'
description: Sort order. Required when offset is set.
type: object
CustomFieldSortFilter:
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: 14
type: array
uniqueItems: true
required:
- order
- sortBy
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
CreateCustomFieldAppliesTo:
properties:
bills:
description: 'Applicability for bills: NULL, SHOW, or PRINT.'
type: boolean
contacts:
description: Applicability for contacts.
type: boolean
customerCredits:
description: 'Applicability for customer credit notes: NULL, SHOW, or PRINT.'
type: boolean
employeeClaims:
description: Applicability for employee claims.
type: boolean
fixedAssets:
description: Applicability for fixed assets.
type: boolean
invoices:
description: 'Applicability for invoices: NULL, SHOW, or PRINT.'
type: boolean
items:
description: Applicability for items.
type: boolean
payments:
description: Payments to record against the custom field at creation.
type: boolean
purchaseOrders:
description: Applicability for purchase orders.
type: boolean
saleOrders:
description: Applicability for sale orders.
type: boolean
supplierCredits:
description: 'Applicability for supplier credit notes: NULL, SHOW, or PRINT.'
type: boolean
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