> ## Documentation Index
> Fetch the complete documentation index at: https://developers.redo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CheckoutTreeDefinitionInput

> A whole checkout tree as steps and edges.

**edges** `[\[CheckoutTreeEdgeInput!\]!](/docs/api-reference/v3/reference/checkout/checkout-tree-edge-input)` *required*

Its edges. A port leads to at most one step.

**fields**

**from** `String!` *required*

The step it leaves, or `"trigger"` for the start.

**port** `String!` *required*

`next` from the start; `matching`, `nonMatching` or an edge id from a segment; a treatment id (or, before the split is saved, its name) from a split.

**to** `String!` *required*

The step it leads to.

**steps** `[\[CheckoutTreeStepInput!\]!](/docs/api-reference/v3/reference/checkout/checkout-tree-step-input)` *required*

Its steps.

**fields**

**config** `[JSON!](/docs/api-reference/v3/reference/common/json)` *required*

The step's settings, matching `configJsonSchema` on its `steps/<type>` page in `checkoutTreeCatalog`.

**id** `String!` *required*

The step's id, unique in the tree. Keep a saved step's id; a new step may use any word and gets an id when saved.

**title** `String`

A name for the step.

**type** `[CheckoutTreeStepType!](/docs/api-reference/v3/reference/checkout/checkout-tree-step-type)` *required*

What the step does.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.