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

# CheckoutTreeDefinition

> A checkout tree as steps and the edges between them.

**edges** `[\[CheckoutTreeEdge!\]!](/docs/api-reference/v3/pagination)` *required*

Its edges, in port order.

**fields**

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

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

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

The port it leaves by: `next` from the start; `matching`, `nonMatching` or an edge id from a segment; a treatment id from a split.

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

The step it leads to.

**steps** `[\[CheckoutTreeStep!\]!](/docs/api-reference/v3/reference/checkout/checkout-tree-step)` *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. It is also the id node analytics are reported under, so keep it when you edit the step.

**title** `String`

A name the merchant gave 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.