---
title: "Create payment flow configuration"
method: POST
path: "/payments/workflow_config"
tags: ["Payments - Flows"]
---

# Create payment flow configuration

`POST /payments/workflow_config`

## Request

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

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.

## Headers

- `Idempotency-Key` string

## Request body

- CreateWorkflowConfigurationRequest
  - `configName` string, required
  - `preScreening` PreScreening
    - `enabled` boolean, required
  - `configOperations` CreateConfigOperationRequest[], required
    - union
      - CreateConversionConfigOperationRequest
        - `type` 'CONVERSION', required
        - `params` ConversionOperationConfigParams, required
          - `amount` string
          - `accountId` string
          - `srcAssetId` string
          - `destAssetId` string, required
          - `slippageBasisPoints` integer
      - CreateTransferConfigOperationRequest
        - `type` 'TRANSFER', required
        - `params` TransferOperationConfigParams, required
          - `amount` string
          - `assetId` string
          - `source` Account
            - `accountId` string, required
            - `accountType` 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'VAULT_ACCOUNT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT', required
          - `destination` union, required
            - Account
              - …
            - OneTimeAddressAccount
              - …
      - CreateDisbursementConfigOperationRequest
        - `type` 'DISBURSEMENT', required
        - `params` DisbursementOperationConfigParams, required
          - `paymentAccount` Account
            - `accountId` string, required
            - `accountType` 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'VAULT_ACCOUNT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT', required
          - `instructionSet` DisbursementInstruction[], required
            - union
              - …
  - `externalCorrelationData` union
    - object
    - string

## Response `202`

Configuration is being generated

- WorkflowConfiguration
  - `configId` string, required
  - `configName` string, required
  - `preScreening` PreScreening
    - `enabled` boolean, required
  - `status` 'PENDING' | 'VALIDATION_IN_PROGRESS' | 'VALIDATION_FAILED' | 'READY_FOR_EXECUTION', required
  - `createdAt` number, required
  - `configOperations` ConfigOperation[], required
    - union
      - ConversionConfigOperation
        - `operationId` string, required
        - `type` 'CONVERSION', required
        - `params` ConversionOperationConfigParams, required
          - `amount` string
          - `accountId` string
          - `srcAssetId` string
          - `destAssetId` string, required
          - `slippageBasisPoints` integer
        - `status` 'PENDING' | 'VALIDATION_IN_PROGRESS' | 'READY_FOR_EXECUTION' | 'VALIDATION_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
      - TransferConfigOperation
        - `operationId` string, required
        - `type` 'TRANSFER', required
        - `params` TransferOperationConfigParams, required
          - `amount` string
          - `assetId` string
          - `source` Account
            - `accountId` string, required
            - `accountType` 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'VAULT_ACCOUNT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT', required
          - `destination` union, required
            - Account
              - …
            - OneTimeAddressAccount
              - …
        - `status` 'PENDING' | 'VALIDATION_IN_PROGRESS' | 'READY_FOR_EXECUTION' | 'VALIDATION_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
      - DisbursementConfigOperation
        - `operationId` string, required
        - `type` 'DISBURSEMENT', required
        - `params` DisbursementOperationConfigParams, required
          - `paymentAccount` Account
            - `accountId` string, required
            - `accountType` 'EXCHANGE_ACCOUNT' | 'UNMANAGED_WALLET' | 'VAULT_ACCOUNT' | 'NETWORK_CONNECTION' | 'FIAT_ACCOUNT', required
          - `instructionSet` DisbursementInstruction[], required
            - union
              - …
        - `status` 'PENDING' | 'VALIDATION_IN_PROGRESS' | 'READY_FOR_EXECUTION' | 'VALIDATION_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
  - `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)
