---
title: "Execute the payments workflow"
method: POST
path: "/payments/workflow_execution/{workflowExecutionId}/actions/execute"
tags: ["Payments - Flows"]
---

# Execute the payments workflow

`POST /payments/workflow_execution/{workflowExecutionId}/actions/execute`

## Request

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

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.

## Path parameters

- `workflowExecutionId` string, required

## Headers

- `Idempotency-Key` string

## Response `200`

Workflow execution has been executed

- 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)
