> ## 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-payment-flow-configuration",
  "feedback": "Description of the issue"
}
```

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

</AgentInstructions>

# Create payment flow configuration

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



## OpenAPI

````yaml https://docs.fireblocks.com/api/v1/swagger.yaml post /payments/workflow_config
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_config:
    post:
      tags:
        - Payments - Flows
      summary: Create payment flow configuration
      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.
      operationId: createFlowConfiguration
      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'
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:
    CreateWorkflowConfigurationRequest:
      type: object
      x-internal: true
      properties:
        configName:
          type: string
        preScreening:
          $ref: '#/components/schemas/PreScreening'
        configOperations:
          type: array
          items:
            $ref: '#/components/schemas/CreateConfigOperationRequest'
        externalCorrelationData:
          $ref: '#/components/schemas/CorrelationData'
      required:
        - configName
        - configOperations
    WorkflowConfiguration:
      type: object
      x-internal: true
      properties:
        configId:
          type: string
        configName:
          type: string
        preScreening:
          $ref: '#/components/schemas/PreScreening'
        status:
          $ref: '#/components/schemas/WorkflowConfigStatus'
        createdAt:
          type: number
        configOperations:
          type: array
          items:
            $ref: '#/components/schemas/ConfigOperation'
        externalCorrelationData:
          $ref: '#/components/schemas/CorrelationData'
      required:
        - configId
        - configName
        - configOperations
        - createdAt
        - status
    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
    CreateConfigOperationRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateConversionConfigOperationRequest'
        - $ref: '#/components/schemas/CreateTransferConfigOperationRequest'
        - $ref: '#/components/schemas/CreateDisbursementConfigOperationRequest'
    CorrelationData:
      x-internal: true
      oneOf:
        - type: object
          additionalProperties:
            type: string
        - type: string
    WorkflowConfigStatus:
      type: string
      enum:
        - PENDING
        - VALIDATION_IN_PROGRESS
        - VALIDATION_FAILED
        - READY_FOR_EXECUTION
    ConfigOperation:
      oneOf:
        - $ref: '#/components/schemas/ConversionConfigOperation'
        - $ref: '#/components/schemas/TransferConfigOperation'
        - $ref: '#/components/schemas/DisbursementConfigOperation'
    CreateConversionConfigOperationRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/ConversionOperationType'
        params:
          $ref: '#/components/schemas/ConversionOperationConfigParams'
      required:
        - type
        - params
    CreateTransferConfigOperationRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransferOperationType'
        params:
          $ref: '#/components/schemas/TransferOperationConfigParams'
      required:
        - type
        - params
    CreateDisbursementConfigOperationRequest:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/DisbursementOperationType'
        params:
          $ref: '#/components/schemas/DisbursementOperationConfigParams'
      required:
        - type
        - params
    ConversionConfigOperation:
      type: object
      properties:
        operationId:
          type: string
        type:
          $ref: '#/components/schemas/ConversionOperationType'
        params:
          $ref: '#/components/schemas/ConversionOperationConfigParams'
        status:
          $ref: '#/components/schemas/ConfigOperationStatus'
        validationFailure:
          $ref: '#/components/schemas/ConversionValidationFailure'
      required:
        - operationId
        - type
        - params
        - status
    TransferConfigOperation:
      type: object
      properties:
        operationId:
          type: string
        type:
          $ref: '#/components/schemas/TransferOperationType'
        params:
          $ref: '#/components/schemas/TransferOperationConfigParams'
        status:
          $ref: '#/components/schemas/ConfigOperationStatus'
        validationFailure:
          $ref: '#/components/schemas/TransferValidationFailure'
      required:
        - operationId
        - type
        - params
        - status
    DisbursementConfigOperation:
      type: object
      properties:
        operationId:
          type: string
        type:
          $ref: '#/components/schemas/DisbursementOperationType'
        params:
          $ref: '#/components/schemas/DisbursementOperationConfigParams'
        status:
          $ref: '#/components/schemas/ConfigOperationStatus'
        validationFailure:
          $ref: '#/components/schemas/DisbursementValidationFailure'
      required:
        - operationId
        - type
        - params
        - status
    ConversionOperationType:
      type: string
      enum:
        - CONVERSION
    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
    TransferOperationType:
      type: string
      enum:
        - TRANSFER
    TransferOperationConfigParams:
      type: object
      properties:
        amount:
          type: string
        assetId:
          type: string
        source:
          $ref: '#/components/schemas/Account'
        destination:
          $ref: '#/components/schemas/Destination'
      required:
        - destination
    DisbursementOperationType:
      type: string
      enum:
        - DISBURSEMENT
    DisbursementOperationConfigParams:
      type: object
      properties:
        paymentAccount:
          $ref: '#/components/schemas/Account'
        instructionSet:
          type: array
          items:
            $ref: '#/components/schemas/DisbursementInstruction'
      required:
        - instructionSet
    ConfigOperationStatus:
      type: string
      enum:
        - PENDING
        - VALIDATION_IN_PROGRESS
        - READY_FOR_EXECUTION
        - VALIDATION_FAILED
    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
    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
    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
    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'
    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

````