Tinvio Capsule Recipes API

Discover, preview, trigger, and recover IFRS capsule recipes. Trigger a recipe by attaching it to a base transaction (invoice, bill, journal, or cash entry), then poll the resulting job with Search Background Jobs.

Operations 5

GET /api/v1/capsule-recipes List Capsule Recipes #
POST /api/v1/capsule-recipes/preview Preview Capsule Recipe #
POST /api/v1/capsule-recipes/resume/{capsuleResourceId} Resume Capsule Recipe Job #
POST /api/v1/capsule-recipes/rollback/{capsuleResourceId} Roll Back Capsule Recipe #
GET /api/v1/capsule-recipes/{name} Get Capsule Recipe #

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-capsule-recipes-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-capsule-recipes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Tinvio Com Capsule Recipes API
  version: '1.0'
  contact:
    email: build.with@jaz.ai
    name: API Support
    url: https://jaz.ai
  description: 'Operations tagged Capsule Recipes 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: Discover, preview, trigger, and recover IFRS capsule recipes. Trigger a recipe by attaching it to a base transaction (invoice, bill, journal, or cash entry), then poll the resulting job with Search Background Jobs.
  name: Capsule Recipes
paths:
  /api/v1/capsule-recipes:
    get:
      description: List all registered IFRS capsule recipes with their per-version input JSON Schemas.
      operationId: list-capsule-recipes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/BaseResponse'
                - properties:
                    data:
                      items:
                        $ref: '#/components/schemas/CapsuleRecipeDescriptor'
                      type: array
                  type: object
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          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 Capsule Recipes
      tags:
      - Capsule Recipes
    servers:
    - url: https://api.getjaz.com
  /api/v1/capsule-recipes/preview:
    post:
      description: Preview the blueprint a capsule recipe would build for the given inputs without persisting anything. Optionally supply the base transaction triplet (baseTransactionResourceId, baseTransactionType, organizationResourceId) to auto-fill totalAmount, currency, and anchor dates from the base transaction.
      operationId: create-capsule-recipe-preview
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/BaseResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/CapsuleRecipeBlueprint'
                  type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          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 Capsule Recipe
      tags:
      - Capsule Recipes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PreviewCapsuleRecipeClientRequest'
        description: The preview request request.
        required: true
    servers:
    - url: https://api.getjaz.com
  /api/v1/capsule-recipes/resume/{capsuleResourceId}:
    post:
      description: Resume a FAILED recipe job from the leg that failed. After 3 same-leg failures the job is terminally marked FAILED.
      operationId: create-capsule-recipe-resume
      parameters:
      - description: Resource ID of the capsule, from the original trigger's capsuleRecipeJob.capsuleResourceId.
        in: path
        name: capsuleResourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/BaseResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/CapsuleRecipeJobResponse'
                  type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          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: Resume Capsule Recipe Job
      tags:
      - Capsule Recipes
    servers:
    - url: https://api.getjaz.com
  /api/v1/capsule-recipes/rollback/{capsuleResourceId}:
    post:
      description: Delete every scheduler atom posted by this capsule's recipe. Does not delete the capsule entity itself. Pass dryRun=true to preview impact without deleting.
      operationId: create-capsule-recipe-rollback
      parameters:
      - description: Resource ID of the capsule, from the original trigger's capsuleRecipeJob.capsuleResourceId.
        in: path
        name: capsuleResourceId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/BaseResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/RollbackCapsuleRecipeResult'
                  type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '402':
          description: Payment Required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          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: Roll Back Capsule Recipe
      tags:
      - Capsule Recipes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RollbackCapsuleRecipeClientRequest'
        description: Optional rollback options (dryRun).
    servers:
    - url: https://api.getjaz.com
  /api/v1/capsule-recipes/{name}:
    get:
      description: Get one capsule recipe descriptor by enum name. Unknown names return 404.
      operationId: get-capsule-recipe
      parameters:
      - description: Name of the recipe.
        in: path
        name: name
        required: true
        schema:
          type: string
          enum:
          - LOAN_AMORTIZATION
          - ACCRUAL_REVERSAL
          - PREPAID_AMORTIZATION
          - DEFERRED_REVENUE
          - IFRS16_LEASE
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/BaseResponse'
                - properties:
                    data:
                      $ref: '#/components/schemas/CapsuleRecipeDescriptor'
                  type: object
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          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 Capsule Recipe
      tags:
      - Capsule Recipes
    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
    CapsuleRecipeBlueprintRun:
      properties:
        rollingBalance:
          description: Rolling balance after this occurrence (cumulative across the leg). Nullable for legs that don't track balance.
          type: number
        runOrdinal:
          description: 1-based occurrence ordinal within the leg.
          type: integer
        valueDate:
          description: Run date, in YYYY-MM-DD format.
          example: '2026-06-15'
          type: string
      type: object
    CapsuleRecipeDescriptor:
      properties:
        allowedBaseTransactionTypes:
          description: Base-transaction types the recipe can attach to (SALE, PURCHASE, JOURNAL_MANUAL, JOURNAL_DIRECT_CASH_IN, JOURNAL_DIRECT_CASH_OUT, JOURNAL_CASHFLOW).
          items:
            type: string
          type: array
        capsuleType:
          description: Capsule type the recipe builds (links to c_system_capsule_types row).
          example: LOAN
          type: string
        defaultVersion:
          description: Default version used when the partner does not pin one explicitly.
          example: 2
          type: integer
        description:
          description: Long-form recipe semantics with IFRS/IAS references for AI agents / docs surfaces.
          type: string
        displayName:
          description: Short, user-facing display name (e.g. "Loan Amortization").
          example: Loan Amortization
          type: string
        expectedAtomTypes:
          description: Atom types the engine creates per leg (JOURNAL_SCHEDULER for all v1 recipes).
          items:
            type: string
          type: array
        name:
          description: Recipe enum name. One of LOAN_AMORTIZATION, ACCRUAL_REVERSAL, PREPAID_AMORTIZATION, DEFERRED_REVENUE, IFRS16_LEASE.
          example: LOAN_AMORTIZATION
          type: string
        requiresBaseTransaction:
          description: Whether the recipe requires a base transaction to attach to. Always true in v1.
          example: true
          type: boolean
        shortDescription:
          description: Subtext for the partner recipe-picker (one sentence).
          example: Amortize a loan over its term.
          type: string
        versions:
          description: Available recipe versions. Older capsules keep their pinned version.
          items:
            $ref: '#/components/schemas/CapsuleRecipeVersion'
          type: array
      type: object
    CapsuleRecipeVersion:
      properties:
        exampleInputs:
          description: Optional canonical example payload showing a valid `inputs` object.
          type: object
        inputSchema:
          description: JSON Schema Draft 7 describing the `inputs` shape for this recipe version.
          type: object
        status:
          description: 'Version status: ACTIVE | DEPRECATED.'
          example: ACTIVE
          type: string
        templateSlots:
          description: Customizable string slots the recipe engine emits (title, schedule descriptions, posts labels, line memos, scheduler reference). Drives the Customize Recipe panel. Empty when a recipe has no customization.
          items:
            $ref: '#/components/schemas/TemplateSlot'
          type: array
        version:
          description: Version number. Bumps on input-schema changes; older versions stay registered for in-flight capsules.
          example: 2
          type: integer
      type: object
    TemplateSlot:
      properties:
        category:
          description: 'UI grouping hint: CAPSULE | LEG | LINE | SCHEDULER.'
          type: string
        defaultTemplate:
          description: What the engine emits when no override is supplied. Contains `{{variable}}` tokens that resolve from the recipe input + computed schedule data.
          type: string
        description:
          description: Optional tooltip / help copy explaining what this slot is and where its value surfaces.
          type: string
        groupDescription:
          description: 'Optional firing-pattern subtitle on the accordion header. Example: "recurring, per period".'
          type: string
        groupKey:
          description: Sub-group identifier within the recipe. Slots sharing a `groupKey` render in the same accordion section. Null when the recipe renders flat.
          type: string
        groupLabel:
          description: 'Accordion header title shown above the grouped slots. Example: "Lease recognition".'
          type: string
        nullable:
          description: True when the user can remove the slot (engine emits blank). False for structural slots (e.g. capsule title).
          type: boolean
        slotKey:
          description: 'Stable wire key for template overrides on the trigger payload. Examples: `capsule.title`, `leg.description.payment`, `line.description.principal`, `scheduler.reference`.'
          type: string
        supportedVariables:
          description: Variable names allowed inside this slot's template (without braces). Validator rejects any `{{var}}` not in this list.
          items:
            type: string
          type: array
        uiLabel:
          description: Human-readable label shown above the editor in the Customize Recipe panel.
          type: string
        visibilityCondition:
          allOf:
          - $ref: '#/components/schemas/SlotVisibilityCondition'
          description: Optional conditional-visibility rule. When set, the Customize Recipe panel shows this slot only when the named recipe input fields satisfy the operator; null means always visible. Used by Prepaid/Deferred to toggle the straight-line vs pro-rata variant slots based on whether both coverage dates are set.
      type: object
    RollbackCapsuleRecipeResult:
      properties:
        blockedAtomResourceIds:
          description: Scheduler-atom resourceIds whose delete was rejected (typically reconciled to a bank-statement entry). Un-reconcile before retrying.
          items:
            type: string
          type: array
        capsuleResourceId:
          description: Capsule the rollback targeted.
          type: string
        deletedAtomResourceIds:
          description: Scheduler-atom resourceIds successfully deleted (or, on DRY_RUN, candidates that would be deleted).
          items:
            type: string
          type: array
        status:
          description: Rollback outcome.
          enum:
          - SUCCESS
          - BLOCKED
          - PARTIAL_ROLLBACK
          - DRY_RUN
          type: string
        terminalReason:
          description: Job terminal reason after rollback. Set to USER_ROLLED_BACK on SUCCESS; null on BLOCKED / PARTIAL_ROLLBACK / DRY_RUN.
          type: string
      type: object
    CapsuleRecipeBlueprint:
      properties:
        capsuleDescription:
          description: Optional human-readable capsule description.
          type: string
        capsuleTitle:
          description: Capsule title that will be used when the recipe triggers (e.g. "Loan <reference>").
          example: Loan REF-001
          type: string
        capsuleType:
          description: Capsule type the recipe builds.
          type: string
        computedVariables:
          description: Recipe-specific computed values for the Customize Recipe preview. Resolves `{{var}}` tokens that aren't form inputs (totalInterest, presentValue, totalDays, etc.). Per-recipe keys vary.
          type: object
        currency:
          description: Currency code (ISO 4217) for all amounts in this blueprint.
          example: SGD
          type: string
        expectedOutput:
          description: Flattened, date-sorted journal postings across all legs. Display-only; `legs` is the source of truth.
          items:
            $ref: '#/components/schemas/CapsuleRecipeExpectedEntry'
          type: array
        finalPeriodAdjustment:
          description: Adjustment applied to the final period to absorb rounding drift. Zero for variable-amount recipes.
          type: number
        grandTotal:
          description: Total amount across all blueprint runs.
          type: number
        legs:
          description: Scheduler atoms the engine creates. One per leg.
          items:
            $ref: '#/components/schemas/CapsuleRecipeBlueprintLeg'
          type: array
        perPeriodAmount:
          description: Per-period amount for constant-amount recipes (null for variable-amount recipes like loan repayments / IFRS 16 unwinding).
          type: number
        previewMarkdown:
          description: Pre-rendered Markdown for a one-click human-readable preview.
          type: string
        recipeName:
          description: Recipe enum name.
          type: string
        recipeVersion:
          description: Version pinned for this preview.
          type: integer
        warnings:
          description: Engine warnings (e.g. pro-rata N-1 distribution flagged).
          items:
            type: string
          type: array
      type: object
    CapsuleRecipeExpectedEntry:
      properties:
        atomType:
          description: Atom type. JOURNAL_SCHEDULER for all v1 recipes.
          type: string
        description:
          description: Optional long-form entry description.
          type: string
        legOrdinal:
          description: Owning leg ordinal.
          type: integer
        lines:
          description: Per-line debit/credit postings.
          items:
            $ref: '#/components/schemas/CapsuleRecipeBlueprintLine'
          type: array
        rollingBalance:
          description: Rolling balance after this entry. Nullable for recipes that don't track balance.
          type: number
        runOrdinal:
          description: Owning leg's run ordinal that this entry represents.
          type: integer
        valueDate:
          description: Run date, in YYYY-MM-DD format.
          example: '2026-06-15'
          type: string
      type: object
    SlotVisibilityCondition:
      properties:
        dependsOn:
          description: Recipe input field keys whose presence/absence the rule tests (e.g. coverageStartDate, coverageEndDate). These are input-schema field names, not template variable tokens.
          items:
            type: string
          type: array
        operator:
          description: How dependsOn is evaluated. ALL_PRESENT shows the slot when every field is filled; NONE_PRESENT when none are; ANY_PRESENT when at least one is.
          enum:
          - ALL_PRESENT
          - ANY_PRESENT
          - NONE_PRESENT
          type: string
      type: object
    CapsuleRecipeBlueprintLeg:
      properties:
        atomType:
          description: Atom type. JOURNAL_SCHEDULER for all v1 recipes.
          example: JOURNAL_SCHEDULER
          type: string
        description:
          description: Optional long-form leg description.
          type: string
        firstDate:
          description: First run date, in YYYY-MM-DD format.
          example: '2026-06-15'
          type: string
        frequency:
          description: MONTHLY | QUARTERLY | YEARLY. Null for ONE_TIME.
          enum:
          - MONTHLY
          - QUARTERLY
          - YEARLY
          type: string
        lastDate:
          description: Last run date, in YYYY-MM-DD format. Equals firstDate for ONE_TIME.
          example: '2027-05-15'
          type: string
        legRangeLabel:
          description: 'Period label for numbered ONE_TIME legs (for example "3/12" for the third of twelve lease payments).

            Null on legs that don''t carry a period number (recognition, RECURRING straight-line, NC→Current reclass, etc.).

            Lets a client render a collapsed "payment 3/12 to 12/12" range row without parsing the description.'
          example: 3/12
          type: string
        occurrences:
          description: Number of occurrences (== 1 for ONE_TIME).
          type: integer
        ordinal:
          description: 1-based leg ordinal within the blueprint.
          type: integer
        postsLabel:
          description: Recipe-specific short action label per leg, e.g. "Revenue recognition", "Loan repayment", "ROU depreciation".
          example: Loan repayment
          type: string
        runs:
          description: Per-occurrence expansion. Size equals `occurrences`.
          items:
            $ref: '#/components/schemas/CapsuleRecipeBlueprintRun'
          type: array
        scheduleKind:
          description: ONE_TIME | RECURRING.
          enum:
          - ONE_TIME
          - RECURRING
          example: RECURRING
          type: string
        templateLines:
          description: Template journal lines posted on each occurrence.
          items:
            $ref: '#/components/schemas/CapsuleRecipeBlueprintLine'
          type: array
      type: object
    RollbackCapsuleRecipeClientRequest:
      properties:
        dryRun:
          description: When true, return the would-delete list without actually deleting anything.
          example: true
          type: boolean
      type: object
    TemplateOverrideClientRequest:
      properties:
        slotKey:
          description: Stable wire key identifying which slot to override (e.g. `capsule.title`, `leg.description.payment`, `scheduler.reference`). Must appear in the recipe's templateSlots[].
          maxLength: 128
          type: string
        template:
          description: User-supplied template string with `{{variable}}` tokens. Max 2000 chars. Null or empty removes a nullable slot.
          maxLength: 2000
          type: string
      required:
      - slotKey
      type: object
    CapsuleRecipeBlueprintLine:
      properties:
        accountResourceId:
          description: Chart-of-accounts resourceId that the line posts to.
          type: string
        credit:
          description: Credit amount. One of debit / credit will be 0.
          type: number
        debit:
          description: Debit amount. One of debit / credit will be 0.
          type: number
        description:
          description: Optional line-level description.
          type: string
      type: object
    PreviewCapsuleRecipeClientRequest:
      properties:
        baseTransactionResourceId:
          description: Optional base transaction resourceId. Supply with baseTransactionType and organizationResourceId to auto-fill totalAmount, currency, and anchor dates from the base transaction. All three triplet fields are required together.
          type: string
        baseTransactionType:
          description: Base transaction type. Required when either of the other two triplet fields is supplied.
          enum:
          - SALE
          - PURCHASE
          - JOURNAL_MANUAL
          - JOURNAL_DIRECT_CASH_IN
          - JOURNAL_DIRECT_CASH_OUT
          - JOURNAL_CASHFLOW
          type: string
        inputs:
          description: Recipe inputs object. Per-recipe shape, see the `inputSchema` field on GET /api/v1/capsule-recipes. Must be non-null.
          type: object
        organizationResourceId:
          description: Owning organization. Required when either of the other two triplet fields is supplied.
          type: string
        recipeName:
          description: Recipe enum name to preview. Must be one of the allowed values. Unknown values return 422.
          enum:
          - LOAN_AMORTIZATION
          - ACCRUAL_REVERSAL
          - PREPAID_AMORTIZATION
          - DEFERRED_REVENUE
          - IFRS16_LEASE
          type: string
        recipeVersion:
          description: Optional version pin. Omit to use the latest registered version.
          minimum: 1
          type: integer
        templateOverrides:
          description: Customize Recipe overrides to apply at preview render time. Send only the slots the user touched. Server validates each slotKey is registered for the recipe and every `{{var}}` token is in the slot's supportedVariables palette; first failure returns 422 with an ERR_RECIPE_OVERRIDE_* code so the panel can highlight the offending slot.
          items:
            $ref: '#/components/schemas/TemplateOverrideClientRequest'
          type: array
      required:
      - inputs
      - recipeName
      type: object
    CapsuleRecipeJobResponse:
      properties:
        baseTransactionResourceId:
          description: Base transaction that triggered the recipe.
          type: string
        baseTransactionType:
          description: Type of the transaction the recipe was triggered from.
          type: string
        capsuleResourceId:
          description: Capsule the job builds. Nullable until intake completes.
          type: string
        createdAt:
          description: Created at (epoch ms).
          type: integer
        errorReason:
          description: Engine-supplied human-readable error reason on the failed leg.
          type: string
        failedAtLeg:
          description: 1-based leg ordinal that last failed (nullable).
          type: integer
        failedCount:
          description: Number of atoms that failed so far.
          type: integer
        organizationResourceId:
          description: Owning organization.
          type: string
        processedCount:
          description: Number of atoms successfully posted so far.
          type: integer
        recipeKey:
          description: 'Grouping key: "<baseTransactionType>_<recipeName>".'
          type: string
        recipeName:
          description: Recipe enum name. Nullable when the request_payload row is corrupt.
          type: string
        recipeVersion:
          description: Version pinned for this job.
          type: integer
        replacesJobId:
          description: Predecessor FAILED job that this one replaces (nullable).
          type: string
        resourceId:
          description: Background job resourceId.
          type: string
        resumeAttempts:
          description: Number of times this job has been resumed (max 3 before BLOCKED_AFTER_3_RESUME_ATTEMPTS).
          type: integer
        status:
          description: 'Job status: QUEUED | PROCESSING | SUCCESS | FAILED | PARTIAL_SUCCESS.'
          enum:
          - QUEUED
          - PROCESSING
          - SUCCESS
          - FAILED
          - PARTIAL_SUCCESS
          type: string
        subscriptionFBPath:
          description: Firestore subscription path for the job tracking doc.
          type: string
        terminalReason:
          description: 'Terminal reason on FAILED jobs: USER_ROLLED_BACK | BLOCKED_AFTER_3_RESUME_ATTEMPTS | DLQ_POISON_EVENT | ATOM_VALIDATION_FAILED_LEG_N | AUTO_ROLLED_BACK. Null on non-terminal jobs.'
          type: string
        totalRecords:
          description: Total scheduler atoms (= blueprint leg count).
          type: integer
        updatedAt:
          description: Updated at (epoch ms).
          type: integer
      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