Fireblocks Payments API

Run institutional crypto payment flows — payment configs, payout instruction sets, and Smart Transfer tickets (atomic multi-leg asset transfers between two counterparties). Powers cross-border B2B settlement, OTC desks, PSP rails, and the Fireblocks Agentic Payments Suite.

OpenAPI Specification

fireblocks-payments-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Fireblocks Payments 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: [email protected]
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: []
paths:
  /payments/payout:
    post:
      tags:
      - Payments - Payout
      description: '**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine
        endpoints include APIs available only for customers with Payments Engine enabled on their accounts. </br>

        </br>These endpoints are currently in beta and might be subject to changes.</br>

        </br>If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager
        or email [email protected]. </br>

        </br> <b u>Create a payout instruction set.</b> </u></br>

        A payout instruction set is a set of instructions for distributing payments from a single payment account to a list
        of payee accounts. </br>

        The instruction set defines: </br>

        <ul>

        <li>the payment account and its account type (vault, exchange, or fiat). </li>

        <li>the account type (vault account, exchange account, whitelisted address, network connection, fiat account, or merchant
        account), the amount, and the asset of payment for each payee account.</li>

        </ul>

        Learn more about Fireblocks Payments - Payouts in the following [guide](https://developers.fireblocks.com/docs/create-payouts).

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Create a payout instruction set
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePayoutRequest'
            example:
              paymentAccount:
                id: EX_SUB1
                type: EXCHANGE_ACCOUNT
              instructionSet:
              - payeeAccount:
                  id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3
                  type: EXTERNAL_WALLET
                amount:
                  amount: '43'
                  assetId: USDC
              - payeeAccount:
                  id: 3adc1f92-e791-44a8-9aee-7f31c2108b78
                  type: NETWORK_CONNECTION
                amount:
                  amount: '4423'
                  assetId: USDC
      responses:
        '200':
          description: The payout instruction set creation succeeded and returns the generated instruction set with a unique
            payout IDThe payout ID will be used for executing the payout and checking the payout status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              example:
                payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
                paymentAccount:
                  id: EX_SUB2
                  type: EXCHANGE_ACCOUNT
                createdAt: 1645365800
                state: REQUESTED
                status: REGISTERED
                initMethod: API
                instructionSet:
                - id: 6ea4a016-536b-49af-b1a0-40b343ccf879
                  name: payee-wallet-name
                  payeeAccount:
                    id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3
                    type: EXTERNAL_WALLET
                  amount:
                    amount: '43'
                    assetId: USDC
                  state: NOT_STARTED
                  transactions: []
                - id: e783a79b-6acc-4d18-885d-ed533cad8eeb
                  name: payee-by-network
                  payeeAccount:
                    id: 3adc1f92-e791-44a8-9aee-7f31c2108b78
                    type: NETWORK_CONNECTION
                  amount:
                    amount: '4423.23'
                    assetId: USDC
                  state: NOT_STARTED
                  transactions: []
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        5XX:
          description: Internal error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: createPayout
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<PayoutResponse>> = fireblocks.paymentsPayout.createPayout(paymentsPayoutApiCreatePayoutRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<PayoutResponse>> response = fireblocks.paymentsPayout().createPayout(createPayoutRequest,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.payments_payout.create_payout(create_payout_request, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<PayoutResponse>> = fireblocks.paymentsPayout.createPayout(paymentsPayoutApiCreatePayoutRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<PayoutResponse>> response = fireblocks.paymentsPayout().createPayout(createPayoutRequest,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.payments_payout.create_payout(create_payout_request, idempotency_key);
  /payments/payout/{payoutId}/actions/execute:
    post:
      tags:
      - Payments - Payout
      summary: Execute a payout instruction set
      description: '**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine
        endpoints include APIs available only for customers with Payments Engine enabled on their accounts. </br>

        </br>These endpoints are currently in beta and might be subject to changes.</br>

        </br>If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager
        or email [email protected]. </br>

        </br><b u>Execute a payout instruction set.</b> </u> </br>

        </br>The instruction set will be verified and executed.</br>

        <b><u>Source locking</br></b> </u>

        If you are executing a payout instruction set from a payment account with an already active payout the active payout
        will complete before the new payout instruction set can be executed. </br>

        You cannot execute the same payout instruction set more than once.

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      parameters:
      - name: payoutId
        description: the payout id received from the creation of the payout instruction set
        in: path
        schema:
          type: string
        required: true
        example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: Executed the payout instruction set
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DispatchPayoutResponse'
              example:
                payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        5XX:
          description: Internal error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: executePayoutAction
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<DispatchPayoutResponse>> = fireblocks.paymentsPayout.executePayoutAction(paymentsPayoutApiExecutePayoutActionRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<DispatchPayoutResponse>> response = fireblocks.paymentsPayout().executePayoutAction(payoutId,
            idempotencyKey);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.payments_payout.execute_payout_action(payout_id, idempotency_key);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<DispatchPayoutResponse>> = fireblocks.paymentsPayout.executePayoutAction(paymentsPayoutApiExecutePayoutActionRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<DispatchPayoutResponse>> response = fireblocks.paymentsPayout().executePayoutAction(payoutId,
          idempotencyKey);
      - lang: Python
        source: response = fireblocks.payments_payout.execute_payout_action(payout_id, idempotency_key);
  /payments/payout/{payoutId}:
    get:
      tags:
      - Payments - Payout
      summary: Get the status of a payout instruction set
      description: '**Note:** The reference content in this section documents the Payments Engine endpoint. The Payments Engine
        endpoints include APIs available only for customers with Payments Engine enabled on their accounts. </br>

        </br>These endpoints are currently in beta and might be subject to changes.</br>

        </br>If you want to learn more about Fireblocks Payments Engine, please contact your Fireblocks Customer Success Manager
        or email [email protected]. </br>

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      parameters:
      - name: payoutId
        description: the payout id received from the creation of the payout instruction set
        in: path
        schema:
          type: string
        required: true
        example: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
      responses:
        '200':
          description: Returns the current status of the payout instruction set, including the status of each payout instruction
            and the transactions created in the process.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutResponse'
              example:
                payoutId: 1fe3b61f-7e1f-4a19-aff0-4f0a524d44d7
                paymentAccount:
                  id: EX_SUB3
                  type: EXCHANGE_ACCOUNT
                createdAt: 1645365800
                state: FINALIZED
                status: DONE
                initMethod: API
                instructionSet:
                - id: 6ea4a016-536b-49af-b1a0-40b343ccf879
                  name: payee-wallet-name
                  payeeAccount:
                    id: bef85a1c-b605-4b2e-bdb5-2d400f4d0bf3
                    type: EXTERNAL_WALLET
                  amount:
                    amount: '4312'
                    assetId: USDC
                  state: COMPLETED
                  transactions:
                  - id: 35a4b10c-1f83-4f0b-ba2a-da0e73be2d6e
                    state: COMPLETED
                    timestamp: 1645367429
                - id: e783a79b-6acc-4d18-885d-ed533cad8eeb
                  name: payee-by-network
                  payeeAccount:
                    id: 3adc1f92-e791-44a8-9aee-7f31c2108b78
                    type: NETWORK_CONNECTION
                  amount:
                    amount: '4423.23'
                    assetId: USDC
                  state: COMPLETED
                  transactions:
                  - id: 4505e7d9-bfc7-41bc-9750-54311fcbbf26
                    state: COMPLETED
                    timestamp: 1645367449
                reportUrl: https://some-url.com/reports/cc5777c1-75a9-4337-aebd-f1f5a40a9391
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: No payout with the given payout ID exists.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        5XX:
          description: Internal error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getPayout
      x-readme:
        code-samples:
        - language: typescript
          code: 'const response: Promise<FireblocksResponse<PayoutResponse>> = fireblocks.paymentsPayout.getPayout(paymentsPayoutApiGetPayoutRequest);'
          name: Fireblocks SDK TypeScript example
        - language: java
          code: CompletableFuture<ApiResponse<PayoutResponse>> response = fireblocks.paymentsPayout().getPayout(payoutId);
          name: Fireblocks SDK Java example
        - language: python
          code: response = fireblocks.payments_payout.get_payout(payout_id);
          name: Fireblocks SDK Python example
      x-codeSamples:
      - lang: TypeScript
        source: 'const response: Promise<FireblocksResponse<PayoutResponse>> = fireblocks.paymentsPayout.getPayout(paymentsPayoutApiGetPayoutRequest);'
      - lang: Java
        source: CompletableFuture<ApiResponse<PayoutResponse>> response = fireblocks.paymentsPayout().getPayout(payoutId);
      - lang: Python
        source: response = fireblocks.payments_payout.get_payout(payout_id);
  /payments/workflow_config:
    post:
      x-internal: true
      tags:
      - Payments - Flows
      description: 'Generate a new configuration ID to be used for initiating executions in subsequent phases. This configuration
        should include the operations you intend to incorporate into the workflow, such as TRANSFER, CONVERT, and DISBURSE,
        in addition to your pre-screening preferences, which are disabled by default.

        Learn more about Fireblocks Payments - Flows in the following [guide](https://developers.fireblocks.com/docs/payment-flows-copy).

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Create payment flow configuration
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowConfigurationRequest'
      responses:
        '202':
          description: Configuration is being generated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowConfiguration'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: createFlowConfiguration
  /payments/workflow_config/{configId}:
    get:
      x-internal: true
      tags:
      - Payments - Flows
      description: 'Retrieve a previously created workflow configuration using the specified "configId".

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Retrieve workflow configuration
      parameters:
      - name: configId
        in: path
        schema:
          type: string
          description: The created configuration unique identifier
          example: 98822424-15ad-498c-9ef4-19c7430b4b6e
        required: true
      responses:
        '200':
          description: Returns a workflow configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowConfiguration'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getFlowConfiguration
    delete:
      x-internal: true
      tags:
      - Payments - Flows
      description: 'Delete a configuration using the specified "configId".

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Delete workflow configuration
      parameters:
      - name: configId
        in: path
        schema:
          type: string
          description: The created configuration unique identifier
          example: 98822424-15ad-498c-9ef4-19c7430b4b6e
        required: true
      responses:
        '200':
          description: The specified configuration has been deleted successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowConfigurationId'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: deleteFlowConfiguration
  /payments/workflow_execution:
    post:
      x-internal: true
      tags:
      - Payments - Flows
      description: 'Validate the "workflow-config" previously created by utilizing the unique "configId". This step requires
        the mandatory field amount, and allows for modifications to other fields defined via the "workflow-config" endpoint,
        including pre-screening preferences. A response containing the "workflowExecutionId" and detailing the validation
        status will be provided. Execution is ready when the "workflow-execution" status is READY_FOR_LAUNCH, at which point
        it can be initiated with "POST /workflow-execution/{workflowExecutionId}/actions/execute".

        Learn more about Fireblocks Payments - Flows in the following [guide](https://developers.fireblocks.com/docs/payment-flows-copy).

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Create workflow execution
      parameters:
      - $ref: '#/components/parameters/X-Idempotency-Key'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWorkflowExecutionRequest'
      responses:
        '200':
          description: Workflow execution entity has been created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecution'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: createFlowExecution
  /payments/workflow_execution/{workflowExecutionId}:
    get:
      x-internal: true
      tags:
      - Payments - Flows
      description: 'Retrieve details of a previously initiated workflow execution by specifying the "workflowExecutionId"

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Get workflow execution details
      parameters:
      - name: workflowExecutionId
        in: path
        schema:
          type: string
        required: true
      responses:
        '200':
          description: Returns workflow execution by id with preview info
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecution'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: getFlowExecution
  /payments/workflow_execution/{workflowExecutionId}/actions/execute:
    post:
      x-internal: true
      tags:
      - Payments - Flows
      description: 'Launch the execution of a pre-configured workflow, identified by "workflowExecutionId", once it reaches
        the READY_FOR_LAUNCH state. The workflow undergoes several phases during execution - EXECUTION_IN_PROGRESS - Marks
        the start of the workflow execution. EXECUTION_COMPLETED or EXECUTION_FAILED - Indicates the execution has reached
        a final state.

        </br>Endpoint Permission: Admin, Non-Signing Admin.'
      summary: Execute the payments workflow
      parameters:
      - name: workflowExecutionId
        in: path
        schema:
          type: string
        required: true
      - $ref: '#/components/parameters/X-Idempotency-Key'
      responses:
        '200':
          description: Workflow execution has been executed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkflowExecution'
        '401':
          description: Unauthorized. Missing / invalid JWT token in Authorization header.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      operationId: launchFlowExecution
  /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:
      

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