> ## Documentation Index
> Fetch the complete documentation index at: https://developers.fireblocks.com/llms.txt
> Use this file to discover all available pages before exploring further.

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://developers.fireblocks.com/feedback

```json
{
  "path": "/api-reference/payments--flows/create-workflow-execution",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Create workflow execution

> 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".



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml post /payments/workflow_execution
openapi: 3.0.0
info:
  title: Fireblocks 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.6.2
  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: []
paths:
  /payments/workflow_execution:
    post:
      tags:
        - Payments - Flows
      summary: Create workflow execution
      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".
      operationId: createFlowExecution
      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'
components:
  parameters:
    X-Idempotency-Key:
      name: Idempotency-Key
      in: header
      description: >-
        A unique identifier for the request. If the request is sent multiple
        times with the same idempotency key, the server will return the same
        response as the first request. The idempotency key is valid for 24
        hours.
      required: false
      schema:
        type: string
  schemas:
    CreateWorkflowExecutionRequest:
      type: object
      x-internal: true
      properties:
        configId:
          type: string
        preScreening:
          $ref: '#/components/schemas/PreScreening'
        params:
          type: array
          items:
            anyOf:
              - $ref: '#/components/schemas/ConversionOperationExecutionParams'
              - $ref: '#/components/schemas/TransferOperationExecutionParams'
              - $ref: '#/components/schemas/DisbursementOperationExecutionParams'
        externalCorrelationData:
          $ref: '#/components/schemas/CorrelationData'
      required:
        - configId
        - params
    WorkflowExecution:
      type: object
      x-internal: true
      properties:
        executionId:
          type: string
        preScreening:
          $ref: '#/components/schemas/PreScreening'
        configSnapshot:
          $ref: '#/components/schemas/WorkflowConfigurationSnapshot'
        executionOperations:
          type: array
          items:
            $ref: '#/components/schemas/WorkflowExecutionOperation'
        status:
          type: string
          enum:
            - PENDING
            - VALIDATION_IN_PROGRESS
            - VALIDATION_FAILED
            - VALIDATION_COMPLETED
            - PREVIEW_IN_PROGRESS
            - PREVIEW_FAILED
            - READY_FOR_LAUNCH
            - EXECUTION_IN_PROGRESS
            - EXECUTION_COMPLETED
            - EXECUTION_FAILED
        triggeredBy:
          type: string
        triggeredAt:
          type: number
        finishedAt:
          type: number
        externalCorrelationData:
          $ref: '#/components/schemas/CorrelationData'
      required:
        - executionId
        - status
        - executionOperations
        - configSnapshot
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
                - INTERNAL
                - AUTHENTICATION
                - AUTHORIZATION
                - VALIDATION
                - NOT_FOUND
                - UNPROCESSABLE_ENTITY
                - FORBIDDEN
            message:
              type: string
          required:
            - type
            - message
      required:
        - error
    PreScreening:
      type: object
      properties:
        enabled:
          type: boolean
      required:
        - enabled
    ConversionOperationExecutionParams:
      type: object
      properties:
        configOperationId:
          type: string
        executionParams:
          type: object
          properties:
            amount:
              type: string
            accountId:
              type: string
            srcAssetId:
              type: string
            destAssetId:
              type: string
            slippageBasisPoints:
              type: integer
              minimum: 0
              maximum: 10000
      required:
        - configOperationId
    TransferOperationExecutionParams:
      type: object
      properties:
        configOperationId:
          type: string
        executionParams:
          type: object
          properties:
            amount:
              type: string
            assetId:
              type: string
            source:
              $ref: '#/components/schemas/Account'
            destination:
              $ref: '#/components/schemas/Destination'
      required:
        - configOperationId
    DisbursementOperationExecutionParams:
      type: object
      properties:
        configOperationId:
          type: string
        executionParams:
          type: object
          properties:
            amount:
              type: string
            paymentAccount:
              $ref: '#/components/schemas/Account'
            instructionSet:
              type: array
              items:
                $ref: '#/components/schemas/DisbursementInstruction'
      required:
        - configOperationId
    CorrelationData:
      x-internal: true
      oneOf:
        - type: object
          additionalProperties:
            type: string
        - type: string
    WorkflowConfigurationSnapshot:
      type: object
      x-internal: true
      properties:
        configId:
          type: string
        configName:
          type: string
        createdAt:
          type: number
        configOperations:
          type: array
          items:
            $ref: '#/components/schemas/ConfigOperationSnapshot'
        externalCorrelationData:
          $ref: '#/components/schemas/CorrelationData'
      required:
        - configId
        - configName
        - configOperations
        - createdAt
    WorkflowExecutionOperation:
      oneOf:
        - $ref: '#/components/schemas/ExecutionScreeningOperation'
        - $ref: '#/components/schemas/ExecutionConversionOperation'
        - $ref: '#/components/schemas/ExecutionTransferOperation'
        - $ref: '#/components/schemas/ExecutionDisbursementOperation'
    Account:
      type: object
      properties:
        accountId:
          type: string
        accountType:
          $ref: '#/components/schemas/AccountType'
      required:
        - accountId
        - accountType
    Destination:
      oneOf:
        - $ref: '#/components/schemas/Account'
        - $ref: '#/components/schemas/OneTimeAddressAccount'
    DisbursementInstruction:
      oneOf:
        - $ref: '#/components/schemas/DisbursementAmountInstruction'
        - $ref: '#/components/schemas/DisbursementPercentageInstruction'
    ConfigOperationSnapshot:
      oneOf:
        - $ref: '#/components/schemas/ConfigConversionOperationSnapshot'
        - $ref: '#/components/schemas/ConfigTransferOperationSnapshot'
        - $ref: '#/components/schemas/ConfigDisbursementOperationSnapshot'
    ExecutionScreeningOperation:
      type: object
      properties:
        operationId:
          type: string
        status:
          $ref: '#/components/schemas/ExecutionOperationStatus'
        operationType:
          $ref: '#/components/schemas/ScreeningOperationType'
        validationFailure:
          $ref: '#/components/schemas/ScreeningValidationFailure'
        execution:
          $ref: '#/components/schemas/ScreeningOperationExecution'
      required:
        - operationId
        - status
        - operationType
    ExecutionConversionOperation:
      type: object
      properties:
        operationId:
          type: string
        status:
          $ref: '#/components/schemas/ExecutionOperationStatus'
        validationFailure:
          $ref: '#/components/schemas/ConversionValidationFailure'
        operationType:
          $ref: '#/components/schemas/ConversionOperationType'
        preview:
          $ref: '#/components/schemas/ConversionOperationPreview'
        execution:
          $ref: '#/components/schemas/ConversionOperationExecution'
      required:
        - operationId
        - status
        - operationType
    ExecutionTransferOperation:
      type: object
      properties:
        operationId:
          type: string
        status:
          $ref: '#/components/schemas/ExecutionOperationStatus'
        validationFailure:
          $ref: '#/components/schemas/TransferValidationFailure'
        operationType:
          $ref: '#/components/schemas/TransferOperationType'
        preview:
          $ref: '#/components/schemas/TransferOperationPreview'
        execution:
          $ref: '#/components/schemas/TransferOperationExecution'
      required:
        - operationId
        - status
        - operationType
    ExecutionDisbursementOperation:
      type: object
      properties:
        operationId:
          type: string
        status:
          $ref: '#/components/schemas/ExecutionOperationStatus'
        validationFailure:
          $ref: '#/components/schemas/DisbursementValidationFailure'
        operationType:
          $ref: '#/components/schemas/DisbursementOperationType'
        preview:
          $ref: '#/components/schemas/DisbursementOperationPreview'
        execution:
          $ref: '#/components/schemas/DisbursementOperationExecution'
      required:
        - operationId
        - status
        - operationType
    AccountType:
      type: string
      enum:
        - EXCHANGE_ACCOUNT
        - UNMANAGED_WALLET
        - VAULT_ACCOUNT
        - NETWORK_CONNECTION
        - FIAT_ACCOUNT
    OneTimeAddressAccount:
      type: object
      properties:
        oneTimeAddress:
          type: string
        tag:
          type: string
      required:
        - oneTimeAddress
    DisbursementAmountInstruction:
      type: object
      properties:
        payeeAccount:
          $ref: '#/components/schemas/Destination'
        assetId:
          type: string
        amount:
          type: string
      required:
        - payeeAccount
        - assetId
        - amount
    DisbursementPercentageInstruction:
      type: object
      properties:
        payeeAccount:
          $ref: '#/components/schemas/Destination'
        assetId:
          type: string
        percentage:
          type: string
      required:
        - payeeAccount
        - assetId
        - percentage
    ConfigConversionOperationSnapshot:
      type: object
      properties:
        operationId:
          type: string
        type:
          $ref: '#/components/schemas/ConversionOperationType'
        params:
          $ref: '#/components/schemas/ConversionOperationConfigParams'
      required:
        - operationId
        - type
        - params
    ConfigTransferOperationSnapshot:
      type: object
      properties:
        operationId:
          type: string
        type:
          $ref: '#/components/schemas/TransferOperationType'
        params:
          $ref: '#/components/schemas/TransferOperationConfigParams'
      required:
        - operationId
        - type
        - params
    ConfigDisbursementOperationSnapshot:
      type: object
      properties:
        operationId:
          type: string
        type:
          $ref: '#/components/schemas/DisbursementOperationType'
        params:
          $ref: '#/components/schemas/DisbursementOperationConfigParams'
      required:
        - operationId
        - type
        - params
    ExecutionOperationStatus:
      type: string
      enum:
        - PENDING
        - VALIDATION_IN_PROGRESS
        - VALIDATION_FAILED
        - VALIDATION_COMPLETED
        - PREVIEW_REQUESTED
        - PREVIEW_IN_PROGRESS
        - PREVIEW_FAILED
        - READY_FOR_LAUNCH
        - EXECUTION_REQUESTED
        - EXECUTION_IN_PROGRESS
        - EXECUTION_COMPLETED
        - EXECUTION_FAILED
    ScreeningOperationType:
      type: string
      enum:
        - SCREENING
    ScreeningValidationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - SCREENING_DISABLED_IN_TENANT
        data:
          type: object
          additionalProperties: {}
      required:
        - reason
    ScreeningOperationExecution:
      type: object
      properties:
        output:
          $ref: '#/components/schemas/ScreeningOperationExecutionOutput'
        startedAt:
          type: number
        finishedAt:
          type: number
        failure:
          $ref: '#/components/schemas/ScreeningOperationFailure'
      required:
        - startedAt
    ConversionValidationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - ACCOUNT_NOT_FOUND
            - ACCOUNT_TYPE_NOT_SUPPORTED
            - INSUFFICIENT_BALANCE
            - ASSET_NOT_FOUND
            - ASSETS_CONTINUITY_MISMATCH
            - EXCHANGE_BASKETS_MISMATCH
            - ACCOUNTS_CONTINUITY_MISMATCH
            - ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED
            - EQUAL_ACCOUNTS_NOT_ALLOWED
            - EQUAL_ASSETS_NOT_ALLOWED
            - INVALID_AMOUNT
            - UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED
            - MANAGED_OPERATION_PARAMS_INVALID_SCHEMA
            - ACCOUNT_IS_NOT_EXCHANGE
            - UNSUPPORTED_TRADING_METHOD
            - ASSETS_CAN_NOT_CONVERTED
        data:
          type: object
          additionalProperties: {}
      required:
        - reason
    ConversionOperationType:
      type: string
      enum:
        - CONVERSION
    ConversionOperationPreview:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/ConversionOperationConfigParams'
        output:
          $ref: '#/components/schemas/ConversionOperationPreviewOutput'
        failure:
          $ref: '#/components/schemas/ConversionOperationFailure'
      required:
        - input
    ConversionOperationExecution:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/ConversionOperationConfigParams'
        output:
          $ref: '#/components/schemas/ConversionOperationExecutionOutput'
        startedAt:
          type: number
        finishedAt:
          type: number
        failure:
          $ref: '#/components/schemas/ConversionOperationFailure'
      required:
        - input
        - startedAt
    TransferValidationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - ACCOUNT_NOT_FOUND
            - ACCOUNT_TYPE_NOT_SUPPORTED
            - INSUFFICIENT_BALANCE
            - ASSET_NOT_FOUND
            - ASSETS_CONTINUITY_MISMATCH
            - EXCHANGE_BASKETS_MISMATCH
            - ACCOUNTS_CONTINUITY_MISMATCH
            - ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED
            - EQUAL_ACCOUNTS_NOT_ALLOWED
            - EQUAL_ASSETS_NOT_ALLOWED
            - INVALID_AMOUNT
            - UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED
            - MANAGED_OPERATION_PARAMS_INVALID_SCHEMA
        data:
          type: object
          additionalProperties: true
      required:
        - reason
    TransferOperationType:
      type: string
      enum:
        - TRANSFER
    TransferOperationPreview:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/TransferOperationConfigParams'
        output:
          $ref: '#/components/schemas/TransferOperationPreviewOutput'
        failure:
          $ref: '#/components/schemas/TransferOperationFailure'
      required:
        - input
    TransferOperationExecution:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/TransferOperationConfigParams'
        output:
          $ref: '#/components/schemas/TransferOperationExecutionOutput'
        txId:
          type: string
        startedAt:
          type: number
        finishedAt:
          type: number
        failure:
          $ref: '#/components/schemas/TransferOperationFailure'
      required:
        - input
        - startedAt
    DisbursementValidationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - ACCOUNT_NOT_FOUND
            - ACCOUNT_TYPE_NOT_SUPPORTED
            - INSUFFICIENT_BALANCE
            - ASSET_NOT_FOUND
            - ASSETS_CONTINUITY_MISMATCH
            - EXCHANGE_BASKETS_MISMATCH
            - ACCOUNTS_CONTINUITY_MISMATCH
            - ONE_TIME_ADDRESS_CONTINUITY_NOT_ALLOWED
            - EQUAL_ACCOUNTS_NOT_ALLOWED
            - EQUAL_ASSETS_NOT_ALLOWED
            - INVALID_AMOUNT
            - UNMANAGED_WALLET_AS_SOURCE_NOT_ALLOWED
            - MANAGED_OPERATION_PARAMS_INVALID_SCHEMA
            - INSTRUCTIONS_EXCEED_HUNDRED_PERCENT
            - INSTRUCTIONS_ARRAY_EMPTY
        data:
          type: object
          additionalProperties: {}
      required:
        - reason
    DisbursementOperationType:
      type: string
      enum:
        - DISBURSEMENT
    DisbursementOperationPreview:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/DisbursementOperationInput'
        output:
          $ref: '#/components/schemas/DisbursementOperationPreviewOutput'
        failure:
          $ref: '#/components/schemas/OperationExecutionFailure'
      required:
        - input
    DisbursementOperationExecution:
      type: object
      properties:
        input:
          $ref: '#/components/schemas/DisbursementOperationInput'
        output:
          $ref: '#/components/schemas/DisbursementOperationExecutionOutput'
        payoutId:
          type: string
        startedAt:
          type: number
        finishedAt:
          type: number
        failure:
          $ref: '#/components/schemas/OperationExecutionFailure'
      required:
        - input
        - startedAt
    ConversionOperationConfigParams:
      type: object
      properties:
        amount:
          type: string
        accountId:
          type: string
        srcAssetId:
          type: string
        destAssetId:
          type: string
        slippageBasisPoints:
          type: integer
          minimum: 0
          maximum: 10000
      required:
        - destAssetId
    TransferOperationConfigParams:
      type: object
      properties:
        amount:
          type: string
        assetId:
          type: string
        source:
          $ref: '#/components/schemas/Account'
        destination:
          $ref: '#/components/schemas/Destination'
      required:
        - destination
    DisbursementOperationConfigParams:
      type: object
      properties:
        paymentAccount:
          $ref: '#/components/schemas/Account'
        instructionSet:
          type: array
          items:
            $ref: '#/components/schemas/DisbursementInstruction'
      required:
        - instructionSet
    ScreeningOperationExecutionOutput:
      type: object
      properties:
        verdicts:
          type: array
          items:
            $ref: '#/components/schemas/ScreeningVerdict'
      required:
        - verdicts
    ScreeningOperationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - AML_PROCESS_FAILED
            - SCREENING_REJECTED
        data:
          $ref: '#/components/schemas/ScreeningOperationExecutionOutput'
      required:
        - reason
    ConversionOperationPreviewOutput:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AssetAmount'
        fee:
          $ref: '#/components/schemas/AssetAmount'
        conversionRate:
          type: string
        timeSeconds:
          type: number
      required:
        - amount
        - fee
        - conversionRate
        - timeSeconds
    ConversionOperationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - INVALID_AMOUNT
            - SLIPPAGE_EXCEEDED
            - AMOUNT_TOO_SMALL
            - INSUFFICIENT_FUNDS
        data:
          type: object
          additionalProperties: {}
      required:
        - reason
    ConversionOperationExecutionOutput:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AssetAmount'
        fee:
          $ref: '#/components/schemas/AssetAmount'
        conversionRate:
          type: string
      required:
        - amount
        - fee
        - conversionRate
    TransferOperationPreviewOutput:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AssetAmount'
        fee:
          $ref: '#/components/schemas/AssetAmount'
        isSignRequired:
          type: boolean
        timeSeconds:
          type: number
      required:
        - amount
        - fee
        - isSignRequired
        - timeSeconds
    TransferOperationFailure:
      type: object
      properties:
        reason:
          type: string
          enum:
            - INVALID_AMOUNT
            - SUBMISSION_FAILED
            - TRANSACTION_FAILED
        data:
          type: object
          properties:
            txId:
              type: string
            txStatus:
              type: string
            txSubStatus:
              type: string
          required:
            - txId
            - txStatus
      required:
        - reason
    TransferOperationExecutionOutput:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AssetAmount'
        fee:
          $ref: '#/components/schemas/AssetAmount'
      required:
        - amount
        - fee
    DisbursementOperationInput:
      type: object
      properties:
        amount:
          type: string
        paymentAccount:
          $ref: '#/components/schemas/Account'
        instructionSet:
          type: array
          items:
            $ref: '#/components/schemas/DisbursementInstruction'
      required:
        - paymentAccount
        - instructionSet
    DisbursementOperationPreviewOutput:
      type: object
      properties:
        instructionSet:
          type: array
          items:
            allOf:
              - $ref: '#/components/schemas/DisbursementInstructionOutput'
              - type: object
                properties:
                  timeSeconds:
                    type: number
                required:
                  - timeSeconds
      required:
        - instructionSet
    OperationExecutionFailure:
      type: object
      properties:
        reason:
          type: string
        data:
          type: object
          additionalProperties: {}
      required:
        - reason
    DisbursementOperationExecutionOutput:
      type: object
      properties:
        instructionSet:
          type: array
          items:
            $ref: '#/components/schemas/DisbursementInstructionOutput'
      required:
        - instructionSet
    ScreeningVerdict:
      type: object
      properties:
        verdict:
          type: string
          enum:
            - PASSED
            - PASSED_WITH_ALERT
            - REJECTED
            - FAILED
            - BYPASSED
        executionOperationId:
          type: string
        account:
          $ref: '#/components/schemas/Destination'
        assetId:
          type: string
        amount:
          type: string
        matchedRule:
          type: object
          properties:
            action:
              type: string
            category:
              type: array
              items:
                type: string
      required:
        - executionOperationId
        - account
        - verdict
        - assetId
        - amount
    AssetAmount:
      type: object
      properties:
        amount:
          type: string
        assetId:
          type: string
      required:
        - amount
        - assetId
    DisbursementInstructionOutput:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/AssetAmount'
        fee:
          $ref: '#/components/schemas/AssetAmount'
        payeeAccount:
          $ref: '#/components/schemas/Destination'
      required:
        - amount
        - fee
        - payeeAccount

````