fireblocks Smart Transfers API

The Smart Transfers API from fireblocks — 15 operation(s) for smart transfers.

OpenAPI Specification

fireblocks-smart-transfers-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Blockchains and Assets Approval Requests Smart Transfers API
  description: 'Fireblocks provides a suite of applications to manage digital asset operations and a complete development platform to build your business on the blockchain.


    - Visit our website for more information: [Fireblocks Website](https://fireblocks.com)

    - Visit our developer docs: [Fireblocks DevPortal](https://developers.fireblocks.com)

    '
  version: 1.8.0
  contact:
    email: developers@fireblocks.com
servers:
- url: https://api.fireblocks.io/v1
  description: Fireblocks Production Environment Base URL
- url: https://sandbox-api.fireblocks.io/v1
  description: Fireblocks Sandbox Environment Base URL
security: []
tags:
- name: Smart Transfers
paths:
  /smart-transfers:
    post:
      operationId: createTicket
      summary: Create Ticket
      description: 'Creates a new Smart Transfer ticket. Learn more about Fireblocks Smart Transfers [here](https://developers.fireblocks.com/docs/execute-smart-transfers).


        **Note:** The `DVP` value is in Early Access and should only be used if Fireblocks has enabled it in your workspace. Contact your Customer Success Manager for more information.


        **Endpoint Permissions:** Admin, Non-Signing Admin, Signer, Approver, Editor.

        '
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.createTicket(smartTransferApiCreateTicketRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().createTicket(smartTransferCreateTicket, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTransferCreateTicket'
      responses:
        '201':
          description: Smart Transfer ticket was created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.createTicket(smartTransferApiCreateTicketRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().createTicket(smartTransferCreateTicket, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.create_ticket(smart_transfer_create_ticket, idempotency_key);
    get:
      operationId: searchTickets
      summary: Find Ticket
      description: "Finds Smart Transfer tickets that match the submitted criteria.\n</br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor,\n  Viewer."
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketFilteredResponse>> = fireblocks.smartTransfer.searchTickets(smartTransferApiSearchTicketsRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketFilteredResponse>> response = fireblocks.smartTransfer().searchTickets(q, statuses, networkId, createdByMe, expiresAfter, expiresBefore, type, externalRefId, after, limit);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.search_tickets(q, statuses, network_id, created_by_me, expires_after, expires_before, type, external_ref_id, after, limit);
          name: Fireblocks SDK Python example
      parameters:
      - name: q
        required: false
        in: query
        description: Search string - counterparty name or asset or ticketId. Optional
        schema:
          minLength: 1
          type: string
          example: BTC
      - name: statuses
        required: false
        in: query
        description: Ticket statuses for Smart Transfer tickets. Optional
        example:
        - DRAFT
        - OPEN
        schema:
          default: []
          type: array
          items:
            type: string
            enum:
            - DRAFT
            - PENDING_APPROVAL
            - OPEN
            - IN_SETTLEMENT
            - FULFILLED
            - EXPIRED
            - CANCELED
      - name: networkId
        required: false
        in: query
        description: "NetworkId that is used in the ticket\t. Optional"
        schema:
          type: string
          example: cf6c9e4b-916a-4dae-9421-8782b20a44ea
      - name: createdByMe
        required: false
        in: query
        description: Filter created tickets by created by self or by others. Optional
        schema:
          type: boolean
      - name: expiresAfter
        required: false
        in: query
        description: Lower bound of search range. Optional
        schema:
          format: date-time
          type: string
          example: '2017-07-21T17:32:28Z'
      - name: expiresBefore
        required: false
        in: query
        description: Upper bound of search range. Optional
        schema:
          format: date-time
          type: string
          example: '2017-07-21T17:32:28Z'
      - name: type
        required: false
        in: query
        description: Type of transfer. ASYNC executes transfers as they are funded, ATOMIC executes all terms (legs) as one atomic transfer
        schema:
          enum:
          - ASYNC
          - DVP
          type: string
      - name: externalRefId
        required: false
        in: query
        description: External ref. ID that workspace can use to identify ticket outside of Fireblocks system.
        schema:
          minLength: 1
          maxLength: 64
          type: string
          example: some-external-reference
      - name: after
        required: false
        in: query
        description: ID of the record after which to fetch $limit records
        schema:
          type: string
          example: aeda4201-7ec5-4276-a198-f0c62a5a8619
      - name: limit
        required: false
        in: query
        description: Number of records to fetch. By default, it is 100
        schema:
          minimum: 1
          type: number
          example: 20
      responses:
        '200':
          description: Smart Transfer tickets were returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketFilteredResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketFilteredResponse>> = fireblocks.smartTransfer.searchTickets(smartTransferApiSearchTicketsRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketFilteredResponse>> response = fireblocks.smartTransfer().searchTickets(q, statuses, networkId, createdByMe, expiresAfter, expiresBefore, type, externalRefId, after, limit);
      - lang: Python
        source: response = fireblocks.smart_transfer.search_tickets(q, statuses, network_id, created_by_me, expires_after, expires_before, type, external_ref_id, after, limit);
  /smart-transfers/{ticketId}:
    get:
      operationId: findTicketById
      summary: Search Ticket by ID
      description: 'Find Smart Transfer ticket by id.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.findTicketById(smartTransferApiFindTicketByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().findTicketById(ticketId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
          example: 118320d2-761f-46c7-96cf-65e71a370b36
      responses:
        '200':
          description: Smart Transfer ticket returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.findTicketById(smartTransferApiFindTicketByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().findTicketById(ticketId);
      - lang: Python
        source: response = fireblocks.smart_transfer.find_ticket_by_id(ticket_id);
  /smart-transfers/{ticketId}/expires-in:
    put:
      operationId: setTicketExpiration
      summary: Set expiration
      description: 'Set expiration date on Smart Transfer ticket.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.setTicketExpiration(smartTransferApiSetTicketExpirationRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().setTicketExpiration(smartTransferSetTicketExpiration, ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.set_ticket_expiration(smart_transfer_set_ticket_expiration, ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTransferSetTicketExpiration'
      responses:
        '200':
          description: Successfully set expiration date on Smart Transfer ticket
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.setTicketExpiration(smartTransferApiSetTicketExpirationRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().setTicketExpiration(smartTransferSetTicketExpiration, ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.set_ticket_expiration(smart_transfer_set_ticket_expiration, ticket_id, idempotency_key);
  /smart-transfers/{ticketId}/external-id:
    put:
      operationId: setExternalRefId
      summary: Add external ref. ID
      description: 'Set external id Smart Transfer ticket.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.setExternalRefId(smartTransferApiSetExternalRefIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().setExternalRefId(smartTransferSetTicketExternalId, ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.set_external_ref_id(smart_transfer_set_ticket_external_id, ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTransferSetTicketExternalId'
      responses:
        '200':
          description: Successfully set external id on Smart Transfer ticket
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.setExternalRefId(smartTransferApiSetExternalRefIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().setExternalRefId(smartTransferSetTicketExternalId, ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.set_external_ref_id(smart_transfer_set_ticket_external_id, ticket_id, idempotency_key);
  /smart-transfers/{ticketId}/submit:
    put:
      operationId: submitTicket
      summary: Submit ticket
      description: 'Submit Smart Transfer ticket - change status into ready for approval if auto approval is not turned on, or OPEN if auto approval is on.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.submitTicket(smartTransferApiSubmitTicketRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().submitTicket(smartTransferSubmitTicket, ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.submit_ticket(smart_transfer_submit_ticket, ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTransferSubmitTicket'
      responses:
        '200':
          description: Successfully submitted Smart Transfer ticket
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.submitTicket(smartTransferApiSubmitTicketRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().submitTicket(smartTransferSubmitTicket, ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.submit_ticket(smart_transfer_submit_ticket, ticket_id, idempotency_key);
  /smart-transfers/{ticketId}/fulfill:
    put:
      operationId: fulfillTicket
      summary: Fund ticket manually
      description: 'Manually fulfill ticket, in case when all terms (legs) are funded manually.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.fulfillTicket(smartTransferApiFulfillTicketRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().fulfillTicket(ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: Successfully fulfilled on Smart Transfer ticket
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.fulfillTicket(smartTransferApiFulfillTicketRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().fulfillTicket(ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.fulfill_ticket(ticket_id, idempotency_key);
  /smart_transfers/{ticketId}/dvp/fund:
    put:
      operationId: fundDvpTicket
      summary: Fund dvp ticket
      description: Create or fulfill DvP ticket order
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTransferFundDvpTicket'
      responses:
        '200':
          description: Successfully started creating or fulfilling order on dvp Smart Transfer ticket
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.fundDvpTicket(smartTransferApiFundDvpTicketRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().fundDvpTicket(smartTransferFundDvpTicket, ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.fund_dvp_ticket(smart_transfer_fund_dvp_ticket, ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.fundDvpTicket(smartTransferApiFundDvpTicketRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().fundDvpTicket(smartTransferFundDvpTicket, ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.fund_dvp_ticket(smart_transfer_fund_dvp_ticket, ticket_id, idempotency_key);
  /smart-transfers/{ticketId}/cancel:
    put:
      operationId: cancelTicket
      summary: Cancel Ticket
      description: 'Cancel Smart Transfer ticket.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.cancelTicket(smartTransferApiCancelTicketRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().cancelTicket(ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
          example: deea0e4a-c64d-41b5-b3c5-f7112369a7d4
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: Smart Transfer ticket successfully canceled
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketResponse>> = fireblocks.smartTransfer.cancelTicket(smartTransferApiCancelTicketRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketResponse>> response = fireblocks.smartTransfer().cancelTicket(ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.cancel_ticket(ticket_id, idempotency_key);
  /smart-transfers/{ticketId}/terms:
    post:
      operationId: createTicketTerm
      summary: Create leg (term)
      description: 'Creates new smart transfer ticket term (when the ticket status is DRAFT).

        Learn more about Fireblocks Smart Transfers in the following [guide](https://developers.fireblocks.com/docs/execute-smart-transfers).

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketTermResponse>> = fireblocks.smartTransfer.createTicketTerm(smartTransferApiCreateTicketTermRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketTermResponse>> response = fireblocks.smartTransfer().createTicketTerm(smartTransferCreateTicketTerm, ticketId, idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.create_ticket_term(smart_transfer_create_ticket_term, ticket_id, idempotency_key);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
          example: 900f04c3-83bc-428d-b681-aef682059637
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmartTransferCreateTicketTerm'
      responses:
        '201':
          description: Smart Transfer ticket term was created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketTermResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '422':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferBadRequestResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketTermResponse>> = fireblocks.smartTransfer.createTicketTerm(smartTransferApiCreateTicketTermRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketTermResponse>> response = fireblocks.smartTransfer().createTicketTerm(smartTransferCreateTicketTerm, ticketId, idempotencyKey);
      - lang: Python
        source: response = fireblocks.smart_transfer.create_ticket_term(smart_transfer_create_ticket_term, ticket_id, idempotency_key);
  /smart-transfers/{ticketId}/terms/{termId}:
    get:
      operationId: findTicketTermById
      summary: Get Smart Transfer ticket term
      description: 'Find a specific term of a specific Smart Transfer ticket.

        </br>Endpoint Permission: Admin, Non-Signing Admin, Signer, Approver, Editor, Viewer.'
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<SmartTransferTicketTermResponse>> = fireblocks.smartTransfer.findTicketTermById(smartTransferApiFindTicketTermByIdRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<SmartTransferTicketTermResponse>> response = fireblocks.smartTransfer().findTicketTermById(ticketId, termId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id, term_id);
          name: Fireblocks SDK Python example
      parameters:
      - name: ticketId
        required: true
        in: path
        schema:
          type: string
          example: 118320d2-761f-46c7-96cf-65e71a370b36
      - name: termId
        required: true
        in: path
        schema:
          type: string
          example: 88587a11-5a3e-4d90-8a63-5008d7a40fb4
      responses:
        '200':
          description: Smart Transfer ticket term returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferTicketTermResponse'
        '403':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferForbiddenResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmartTransferNotFoundResponse'
      tags:
      - Smart Transfers
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<SmartTransferTicketTermResponse>> = fireblocks.smartTransfer.findTicketTermById(smartTransferApiFindTicketTermByIdRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<SmartTransferTicketTermResponse>> response = fireblocks.smartTransfer().findTicketTermById(ticketId, termId);
      - lang: Python
        source: response = fireblocks.smart_transfer.find_ticket_term_by_id(ticket_id, term_id);
    put:
      operationId: updateTicketTerm
      summary: Update ticket leg (term)
      description: 'Update ticket term (when 

# --- truncated at 32 KB (72 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/fireblocks/refs/heads/main/openapi/fireblocks-smart-transfers-api-openapi.yml