---
title: "Create workflow execution"
method: POST
path: "/payments/workflow_execution"
tags: ["Payments - Flows"]
---

# Create workflow execution

`POST /payments/workflow_execution`

## Request

- Base URL: `https://api.fireblocks.io/v1`
- URL: `https://api.fireblocks.io/v1/payments/workflow_execution`
- Auth: none declared
- TypeScript: <https://skmtc.dev/fireblocks/apis/fireblocks-api/docs/payments/workflow_execution/post.ts> (a function with typed inputs; its response is checked against the schema)

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

## Headers

- `Idempotency-Key` string

## Request body

- CreateWorkflowExecutionRequest
  - `configId` string, required
  - `preScreening` PreScreening
    - `enabled` boolean, required
  - `params` union[], required
    - union
      - ConversionOperationExecutionParams
        - `configOperationId` string, required
        - `executionParams` object
          - `amount` string
          - `accountId` string
          - `srcAssetId` string
          - `destAssetId` string
          - `slippageBasisPoints` integer
      - TransferOperationExecutionParams
        - `configOperationId` string, required
        - `executionParams` object
          - `amount` string
          - `assetId` string
          - `source` Account
            - `accountId` string, required
            - `accountType` 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'VAULT_ACCOUNT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT', required
          - `destination` union
            - Account
              - …
            - OneTimeAddressAccount
              - …
      - DisbursementOperationExecutionParams
        - `configOperationId` string, required
        - `executionParams` object
          - `amount` string
          - `paymentAccount` Account
            - `accountId` string, required
            - `accountType` 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'VAULT_ACCOUNT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT', required
          - `instructionSet` DisbursementInstruction[]
            - union
              - …
  - `externalCorrelationData` union
    - object
    - string

## Response `200`

Workflow execution entity has been created successfully.

- WorkflowExecution
  - `executionId` string, required
  - `preScreening` PreScreening
    - `enabled` boolean, required
  - `configSnapshot` WorkflowConfigurationSnapshot, required
    - `configId` string, required
    - `configName` string, required
    - `createdAt` number, required
    - `configOperations` ConfigOperationSnapshot[], required
      - union
        - ConfigConversionOperationSnapshot
          - `operationId` string, required
          - `type` 'CONVERSION', required
          - `params` ConversionOperationConfigParams, required
            - `amount` string
            - `accountId` string
            - `srcAssetId` string
            - `destAssetId` string, required
            - `slippageBasisPoints` integer
        - ConfigTransferOperationSnapshot
          - `operationId` string, required
          - `type` 'TRANSFER', required
          - `params` TransferOperationConfigParams, required
            - `amount` string
            - `assetId` string
            - `source` Account
              - …
            - `destination` union, required
              - …
        - ConfigDisbursementOperationSnapshot
          - `operationId` string, required
          - `type` 'DISBURSEMENT', required
          - `params` DisbursementOperationConfigParams, required
            - `paymentAccount` Account
              - …
            - `instructionSet` DisbursementInstruction[], required
              - …
    - `externalCorrelationData` union
      - object
      - string
  - `executionOperations` WorkflowExecutionOperation[], required
    - union
      - ExecutionScreeningOperation
        - `operationId` string, required
        - `status` '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', required
        - `operationType` 'SCREENING', required
        - `validationFailure` ScreeningValidationFailure
          - `reason` 'SCREENING_DISABLED_IN_TENANT', required
          - `data` object
        - `execution` ScreeningOperationExecution
          - `output` ScreeningOperationExecutionOutput
            - `verdicts` ScreeningVerdict[], required
              - …
          - `startedAt` number, required
          - `finishedAt` number
          - `failure` ScreeningOperationFailure
            - `reason` 'AML_PROCESS_FAILED' | 'SCREENING_REJECTED', required
            - `data` ScreeningOperationExecutionOutput
              - …
      - ExecutionConversionOperation
        - `operationId` string, required
        - `status` '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', required
        - `validationFailure` ConversionValidationFailure
          - `reason` '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', required
          - `data` object
        - `operationType` 'CONVERSION', required
        - `preview` ConversionOperationPreview
          - `input` ConversionOperationConfigParams, required
            - `amount` string
            - `accountId` string
            - `srcAssetId` string
            - `destAssetId` string, required
            - `slippageBasisPoints` integer
          - `output` ConversionOperationPreviewOutput
            - `amount` AssetAmount, required
              - …
            - `fee` AssetAmount, required
              - …
            - `conversionRate` string, required
            - `timeSeconds` number, required
          - `failure` ConversionOperationFailure
            - `reason` 'INVALID_AMOUNT' | 'SLIPPAGE_EXCEEDED' | 'AMOUNT_TOO_SMALL' | 'INSUFFICIENT_FUNDS', required
            - `data` object
        - `execution` ConversionOperationExecution
          - `input` ConversionOperationConfigParams, required
            - `amount` string
            - `accountId` string
            - `srcAssetId` string
            - `destAssetId` string, required
            - `slippageBasisPoints` integer
          - `output` ConversionOperationExecutionOutput
            - `amount` AssetAmount, required
              - …
            - `fee` AssetAmount, required
              - …
            - `conversionRate` string, required
          - `startedAt` number, required
          - `finishedAt` number
          - `failure` ConversionOperationFailure
            - `reason` 'INVALID_AMOUNT' | 'SLIPPAGE_EXCEEDED' | 'AMOUNT_TOO_SMALL' | 'INSUFFICIENT_FUNDS', required
            - `data` object
      - ExecutionTransferOperation
        - `operationId` string, required
        - `status` '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', required
        - `validationFailure` TransferValidationFailure
          - `reason` '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', required
          - `data` object
        - `operationType` 'TRANSFER', required
        - `preview` TransferOperationPreview
          - `input` TransferOperationConfigParams, required
            - `amount` string
            - `assetId` string
            - `source` Account
              - …
            - `destination` union, required
              - …
          - `output` TransferOperationPreviewOutput
            - `amount` AssetAmount, required
              - …
            - `fee` AssetAmount, required
              - …
            - `isSignRequired` boolean, required
            - `timeSeconds` number, required
          - `failure` TransferOperationFailure
            - `reason` 'INVALID_AMOUNT' | 'SUBMISSION_FAILED' | 'TRANSACTION_FAILED', required
            - `data` object
              - …
        - `execution` TransferOperationExecution
          - `input` TransferOperationConfigParams, required
            - `amount` string
            - `assetId` string
            - `source` Account
              - …
            - `destination` union, required
              - …
          - `output` TransferOperationExecutionOutput
            - `amount` AssetAmount, required
              - …
            - `fee` AssetAmount, required
              - …
          - `txId` string
          - `startedAt` number, required
          - `finishedAt` number
          - `failure` TransferOperationFailure
            - `reason` 'INVALID_AMOUNT' | 'SUBMISSION_FAILED' | 'TRANSACTION_FAILED', required
            - `data` object
              - …
      - ExecutionDisbursementOperation
        - `operationId` string, required
        - `status` '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', required
        - `validationFailure` DisbursementValidationFailure
          - `reason` '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', required
          - `data` object
        - `operationType` 'DISBURSEMENT', required
        - `preview` DisbursementOperationPreview
          - `input` DisbursementOperationInput, required
            - `amount` string
            - `paymentAccount` Account, required
              - …
            - `instructionSet` DisbursementInstruction[], required
              - …
          - `output` DisbursementOperationPreviewOutput
            - `instructionSet` object[], required
              - …
          - `failure` OperationExecutionFailure
            - `reason` string, required
            - `data` object
        - `execution` DisbursementOperationExecution
          - `input` DisbursementOperationInput, required
            - `amount` string
            - `paymentAccount` Account, required
              - …
            - `instructionSet` DisbursementInstruction[], required
              - …
          - `output` DisbursementOperationExecutionOutput
            - `instructionSet` DisbursementInstructionOutput[], required
              - …
          - `payoutId` string
          - `startedAt` number, required
          - `finishedAt` number
          - `failure` OperationExecutionFailure
            - `reason` string, required
            - `data` object
  - `status` 'PENDING' | 'VALIDATION_IN_PROGRESS' | 'VALIDATION_FAILED' | 'VALIDATION_COMPLETED' | 'PREVIEW_IN_PROGRESS' | 'PREVIEW_FAILED' | 'READY_FOR_LAUNCH' | 'EXECUTION_IN_PROGRESS' | 'EXECUTION_COMPLETED' | 'EXECUTION_FAILED', required
  - `triggeredBy` string
  - `triggeredAt` number
  - `finishedAt` number
  - `externalCorrelationData` union
    - object
    - string

## Other responses

- `401`: Unauthorized. Missing / invalid JWT token in Authorization header.
- `404`: Not found

---

[API](https://skmtc.dev/fireblocks/apis/fireblocks-api.md) - [All operations](https://skmtc.dev/fireblocks/apis/fireblocks-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fireblocks/apis/fireblocks-api/revisions/4eba9965659a?raw)
