---
updatedAt: 2026-06-29T20:36:51.000Z
---

Fetch the complete documentation index at: https://developers.pismo.io/pismo-docs/llms.txt. Use this file to discover all available pages before exploring further.

# Create transaction flow

Creates a configuration linking a transaction type with a processing code. 

See [Processing codes and transaction types](doc:processing-codes-and-transaction-types) and [Payments configurations](doc:payments-configurations) for information on processing codes and transaction types, how to create them, and map them to each other.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "tags": [
    {
      "name": "Transaction flows",
      "description": "Endpoints to manage the link between transaction types and processing codes."
    }
  ],
  "info": {
    "title": "Core platform - Transactions",
    "version": "1.0.0",
    "description": "API used to configure transactions domain and get transactions information.",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io/transactions-core",
      "description": "Sandbox API server for testing"
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Account access token. Tokens can expire quickly, which can result in an \"Unauthorized\" error.",
        "bearerFormat": "JWT"
      }
    },
    "schemas": {
      "TransactionTypeId": {
        "type": "integer",
        "format": "int64",
        "description": "Transaction type ID. Certain IDs are reserved by the platform and cannot be used.",
        "minimum": 1
      },
      "TransactionFlowPost": {
        "required": [
          "transaction_type_id",
          "processing_code",
          "key"
        ],
        "type": "object",
        "properties": {
          "transaction_type_id": {
            "$ref": "#/components/schemas/TransactionTypeId"
          },
          "processing_code": {
            "type": "string",
            "maximum": 6,
            "description": "Processing code that issues the transaction type."
          },
          "key": {
            "type": "string",
            "description": "The relation key that links transaction type and processing code.\n\n* `PRINCIPAL` uses principal amount.\n* `INSTALLMENT` uses installment amount.\n* `CONTRACT` uses contract amount.\n* `OTHER` uses any custom amount, such as fees, taxes, or other charges. When the key is OTHER, you must define the `custom_key` value.\n",
            "enum": [
              "PRINCIPAL",
              "INSTALLMENT",
              "CONTRACT",
              "OTHER"
            ]
          },
          "custom_key": {
            "type": "string",
            "maximum": 200,
            "description": "The customized relation between transaction type and processing code. This field is tied to the type or ID of a custom fee model that configures fees, taxes, or other charges. REQUIRED if the key is OTHER."
          }
        },
        "example": {
          "transaction_type_id": 7001,
          "processing_code": "00AB11",
          "key": "OTHER",
          "custom_key": "national_rate"
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "description": "Error description."
          },
          "error": {
            "type": "string",
            "description": "Error description."
          },
          "code": {
            "type": "string",
            "description": "Code description."
          }
        }
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/v1/transaction-flow": {
      "post": {
        "tags": [
          "Transaction flows"
        ],
        "summary": "Create transaction flow",
        "description": "Creates a configuration linking a transaction type with a processing code. \n\nSee [Processing codes and transaction types](https://developers.pismo.io/pismo-docs/docs/processing-codes-and-transaction-types) and [Payments configurations](https://developers.pismo.io/pismo-docs/docs/payments-configurations) for information on processing codes and transaction types, how to create them, and map them to each other.\n",
        "operationId": "PostTransactionFlow",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionFlowPost"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionFlowPost"
                }
              }
            }
          },
          "400": {
            "description": "Bad request",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    }
                  ]
                },
                "examples": {
                  "invalidRequestParameters": {
                    "summary": "Invalid request parameters",
                    "value": {
                      "message": "Invalid request parameters",
                      "error": "Invalid request parameters",
                      "code": "WTRC00003"
                    }
                  },
                  "invalidRequestBody": {
                    "summary": "Invalid request body",
                    "value": {
                      "message": "Invalid request body",
                      "error": "Invalid request body",
                      "code": "WTRC00005"
                    }
                  },
                  "invalidKey": {
                    "summary": "Key should be PRINCIPAL, INSTALLMENT, CONTRACT, or OTHER",
                    "value": {
                      "message": "Key should be PRINCIPAL, INSTALLMENT, CONTRACT, or OTHER",
                      "error": "Key should be PRINCIPAL, INSTALLMENT, CONTRACT, or OTHER",
                      "code": "WTRC04003"
                    }
                  },
                  "mandatoryCustomKey": {
                    "summary": "Custom key is mandatory when key is OTHER",
                    "value": {
                      "message": "custom_key is mandatory when key is OTHER",
                      "error": "custom_key is mandatory when key is OTHER",
                      "code": "WTRC04004"
                    }
                  },
                  "emptyCustomKey": {
                    "summary": "Custom key should not be empty when key is OTHER",
                    "value": {
                      "message": "custom_key should not be empty when key is OTHER",
                      "error": "custom_key should not be empty when key is OTHER",
                      "code": "WTRC04005"
                    }
                  },
                  "invalidCustomKey": {
                    "summary": "Custom key should only be provided when key is OTHER",
                    "value": {
                      "message": "custom_key should only be provided when key is OTHER",
                      "error": "custom_key should only be provided when key is OTHER",
                      "code": "WTRC04006"
                    }
                  },
                  "ttDoesntExist": {
                    "summary": "Transaction type doesn't exist",
                    "value": {
                      "message": "Transaction type doesn't exist",
                      "error": "Transaction type doesn't exist",
                      "code": "WTRC05003"
                    }
                  },
                  "pcDoesntExist": {
                    "summary": "Processing code doesn't exist",
                    "value": {
                      "message": "Processing code doesn't exist",
                      "error": "Processing code doesn't exist",
                      "code": "WTRC07001"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    }
                  ]
                },
                "examples": {
                  "invalidRequestParameters": {
                    "summary": "Relationship between transaction type and processing code already exists",
                    "value": {
                      "message": "Relationship between transaction type and processing code already exists",
                      "error": "Relationship between transaction type and processing code already exists",
                      "code": "WTRC04001"
                    }
                  },
                  "amountTypeAlreadyConfigured": {
                    "summary": "The provided amount type is already configured for the processing code",
                    "value": {
                      "message": "The provided amount type is already configured for the processing code",
                      "error": "The provided amount type is already configured for the processing code",
                      "code": "ETRC04003"
                    }
                  },
                  "transactionTypeAlreadyConfigured": {
                    "summary": "The provided transaction type is already configured for the processing code",
                    "value": {
                      "message": "The provided transaction type is already configured for the processing code",
                      "error": "The provided transaction type is already configured for the processing code",
                      "code": "ETRC04004"
                    }
                  },
                  "amountTypeConflicts": {
                    "summary": "The provided amount type conflicts with an existing configured amount type for the processing code. Please select either Principal or Contract",
                    "value": {
                      "message": "The provided amount type conflicts with an existing configured amount type for the processing code. Please select either Principal or Contract",
                      "error": "The provided amount type conflicts with an existing configured amount type for the processing code. Please select either Principal or Contract",
                      "code": "ETRC04005"
                    }
                  },
                  "isCreditBalanceImpactConflicts": {
                    "summary": "Transaction Type isCredit does not correspond to the processing code balance impact",
                    "value": {
                      "message": "Transaction Type isCredit does not correspond to the processing code balance impact",
                      "error": "Transaction Type isCredit does not correspond to the processing code balance impact",
                      "code": "ETRC04006"
                    }
                  },
                  "ttReservedByPlatform": {
                    "summary": "Transaction type ID is reserved by platform",
                    "value": {
                      "message": "The provided transaction_type_id is reserved by the platform and cannot be used",
                      "error": "The provided transaction_type_id is reserved by the platform and cannot be used",
                      "code": "WTRC08001"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    }
                  ]
                },
                "examples": {
                  "internalProcessingError": {
                    "summary": "Internal processing error",
                    "value": {
                      "message": "Internal processing error",
                      "error": "Internal processing error",
                      "code": "ETRC00001"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```