Tinvio Claim Posting & Payouts API

Convert approved claims into journals and manage employee payouts.

Operations 4

POST /api/v1/claims/conversion/commit Convert Claims to Journal #
POST /api/v1/claims/conversion/preview Preview Claims Conversion #
POST /api/v1/claims/payouts/record Record Employee Payout #
POST /api/v1/claims/{resourceId}/unpost Un-post Claim #

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-claim-posting-payouts-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-claim-posting-payouts-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tinvio Com Claim Posting & Payouts API
  version: '1.0'
  contact:
    email: build.with@jaz.ai
    name: API Support
    url: https://jaz.ai
  description: 'Operations tagged Claim Posting & Payouts 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: Convert approved claims into journals and manage employee payouts.
  name: Claim Posting & Payouts
paths:
  /api/v1/claims/conversion/commit:
    post:
      description: Atomically convert an APPROVED claim batch into journals (and, when includeReimbursementPayout=true, reimbursement DCEs). Only APPROVED claims convert. Supply a stable idempotencyKey and reuse it on retries; it MUST NOT start with "CONV:" or "CONV-" (reserved). valueDate is the journal header date (YYYY-MM-DD).
      operationId: create-claim-conversion-commit
      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'
        '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: Convert Claims to Journal
      tags:
      - Claim Posting & Payouts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CommitClaimsToJournalRequest'
        description: The commit request.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/claims/conversion/preview:
    post:
      description: Preview the journals a claim batch would produce when converted, without writing anything. APPROVED claims are aggregated by the chosen (or organization-default) posting rule; non-APPROVED claims are returned under erroredClaims rather than failing the request. Set includeReimbursementPayout to see per-employee payout lines and DCE counts.
      operationId: create-claim-conversion-preview
      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'
        '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: Preview Claims Conversion
      tags:
      - Claim Posting & Payouts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewClaimsConversionRequest'
        description: The preview request.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/claims/payouts/record:
    post:
      description: Record a books-only reimbursement/advance Direct Cash Entry against an employee (no gateway transfer). The payment account must be ACTIVE, of Cash/Bank type, and match the settle currency. payoutFor is a label only (null → ADVANCE).
      operationId: create-claim-payout-record
      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'
        '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: Record Employee Payout
      tags:
      - Claim Posting & Payouts
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordEmployeePayoutRequest'
        description: The record payout request.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/claims/{resourceId}/unpost:
    post:
      description: 'Un-post a CONVERTED claim: voids its accrual journal and reverts the claim to APPROVED so it can be fixed and re-converted. Other states are rejected (CLAIM_NOT_UNPOSTABLE_ERROR). The one exception is an already-un-posted claim (APPROVED with unposted true), where re-calling un-post is a deliberate no-op that returns the claim unchanged with 200. Claim and payout lifecycles are decoupled: un-posting voids only this claim''s accrual and never checks for a linked payout, so a payout that already drew the employee balance down simply leaves it negative until the claim is re-converted or the payout is reversed independently. Aggregated claims un-post as a whole group, since one accrual journal can back many claims.'
      operationId: create-claim-unpost
      parameters:
      - description: Resource ID of the claim.
        in: path
        name: resourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BaseResponse'
        '402':
          description: Payment Required
          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: Un-post Claim
      tags:
      - Claim Posting & Payouts
    servers:
    - url: https://api.getjaz.com
components:
  schemas:
    ErrorResponse:
      properties:
        error:
          allOf:
          - $ref: '#/components/schemas/ErrorResponseData'
          description: Error details.
      type: object
    BaseResponse:
      properties:
        data:
          description: The response object.
      type: object
    CommitClaimsToJournalRequest:
      properties:
        bankAccountResourceIdOverride:
          description: Source bank account for the reimbursement DCEs (UUIDv4). Overrides the rule default.
          type: string
        claimPostCurrencies:
          description: Per-claim MCA post currency + rate (optional).
          items:
            $ref: '#/components/schemas/ClaimPostCurrency'
          type: array
        claimResourceIds:
          description: Claims to convert (UUIDv4 each). Only APPROVED claims are convertible.
          items:
            type: string
          maxItems: 500
          minItems: 1
          type: array
        contactResourceId:
          description: Resource ID of the clearing contact for the reimbursement cash-out. A contact, not an employee.
          type: string
        idempotencyKey:
          description: 'Caller idempotency key for safe retries. MUST NOT start with "CONV:" or "CONV-"

            (reserved). Pass a raw UUID/opaque token; reuse it on every retry of the same batch.'
          maxLength: 255
          type: string
        includeReimbursementPayout:
          description: Create reimbursement DCEs for employees with a positive projected balance.
          type: boolean
        postingRuleResourceId:
          description: Resource ID of the posting rule to apply. Omitted means the organization's default rule.
          type: string
        valueDate:
          description: Journal header value date in YYYY-MM-DD format (organization timezone). Required.
          example: '2026-06-20'
          type: string
      required:
      - claimResourceIds
      - valueDate
      type: object
    PreviewClaimsConversionRequest:
      properties:
        bankAccountResourceId:
          description: Optional bank account for preview-time validation (UUIDv4).
          type: string
        claimPostCurrencies:
          description: Per-claim MCA post currency + rate (optional).
          items:
            $ref: '#/components/schemas/ClaimPostCurrency'
          type: array
        claimResourceIds:
          description: Claims to preview (UUIDv4 each). Non-APPROVED claims come back under erroredClaims.
          items:
            type: string
          maxItems: 500
          minItems: 1
          type: array
        disbursementProfileResourceId:
          description: Resource ID of the disbursement profile. Required for a POST_AND_DISBURSE eligibility check.
          type: string
        includeReimbursementPayout:
          description: Include per-employee payout lines + DCE counts in the preview.
          type: boolean
        payoutFlow:
          description: Payout flow this preview is for. Only POST_AND_DISBURSE runs source-of-funds eligibility.
          enum:
          - POST
          - POST_AND_RECORD
          - POST_AND_DISBURSE
          type: string
        postingRuleResourceId:
          description: Resource ID of the posting rule to apply. Omitted means the organization's default rule.
          type: string
      required:
      - claimResourceIds
      type: object
    RecordEmployeePayoutRequest:
      properties:
        amount:
          description: Payout amount (> 0), in currencyCode.
          example: 250
          type: number
        currencyCode:
          description: 'Settlement currency (ISO 4217): the employee balance reduced by the payout. Omitted means the payment account''s currency.'
          example: SGD
          type: string
        description:
          description: Optional line description on the DCE entries.
          maxLength: 1000
          type: string
        employeeResourceId:
          description: Employee to pay (UUIDv4).
          type: string
        internalNotes:
          description: Internal notes shown in the DCE view modal.
          maxLength: 1000
          type: string
        paymentAccountResourceId:
          description: Bank/cash account the DCE credits (UUIDv4). Required.
          type: string
        payoutFor:
          description: Classification label only (sets payout_type). Null → ADVANCE.
          enum:
          - REIMBURSEMENT
          - ADVANCE
          type: string
        reference:
          description: Free-text payout reference shown on the journal. Required.
          example: ''
          maxLength: 255
          type: string
        valueDate:
          description: Value date in YYYY-MM-DD format (organization timezone). Required.
          example: '2026-06-20'
          type: string
      required:
      - amount
      - employeeResourceId
      - paymentAccountResourceId
      - reference
      - valueDate
      type: object
    ClaimPostCurrency:
      properties:
        claimResourceId:
          description: The claim being posted (UUIDv4).
          type: string
        journalAmount:
          description: 'Absolute journal amount the claim posts as, in journalCurrencyCode. Required (> 0)

            when the claim currency and journalCurrencyCode differ; omit for a same-currency post.'
          type: number
        journalCurrencyCode:
          description: 'Currency the claim posts in: the journal and employee balance currency (ISO 4217).'
          example: SGD
          type: string
      required:
      - claimResourceId
      - journalCurrencyCode
      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