Tinvio Custom Fields API

Create and manage custom fields across entities.

Operations 7

GET /api/v1/custom-fields List Custom Fields #
POST /api/v1/custom-fields Create Custom Field #
POST /api/v1/custom-fields/search Search Custom Fields #
DELETE /api/v1/custom-fields/{resourceId} Delete Custom Field #
GET /api/v1/custom-fields/{resourceId} Get Custom Field #
PUT /api/v1/custom-fields/{resourceId} Update Custom Field #
GET /api/v1/custom-fields/{resourceId}/options List Custom Field Options #

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-custom-fields-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-custom-fields-api-openapi.yml Raw ↑
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