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

# fulfillmentAutomationCheck

> Check a fulfillment automation as saving would, without saving it. For an editor that changes `FulfillmentAutomation.definition` and saves it with `fulfillmentAutomationDefinitionUpdate`.

**Required scopes:** [`shipping_read`](https://developers.redo.com/docs/api-reference/v3/reference/scopes#scope-shipping_read)

## Arguments

**definition** `[FulfillmentAutomationDefinitionInput!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-definition-input)` *required*

The whole automation to check.

**fields**

**description** `String`

A note on the rule.

**edges** `[\[FulfillmentAutomationEdgeInput!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-edge-input)` *required*

How fulfillments move from the trigger through the steps.

**fields**

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

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

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

The port: `next`, or a condition's `true` or `false`.

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

The step it leads to.

**name** `String!` *required*

The rule's name.

**rulesVersion** `String`

The checker rules to hold it to, one of 2026-11. Omitted: the newest, 2026-11.

**steps** `[\[FulfillmentAutomationStepInput!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-step-input)` *required*

The steps, at most 200.

**fields**

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

The kind's settings, matching its `configJsonSchema` in `fulfillmentAutomationKinds`.

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

The step's id, unique in the automation. Not `"trigger"` or `"end"`.

**kind** `String`

The condition or action, such as `ORDER_TAG` or `SET_PARCEL`; omit for a code step.

**title** `String`

The step's name in the editor.

**type** `[FulfillmentAutomationStepType!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-step-type)` *required*

What the step does.

**trigger** `[FulfillmentAutomationTrigger!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-trigger)` *required*

What starts it. An existing automation's trigger can't change: create a new one instead.

## Returns

**fulfillmentAutomationCheck** `[\[FulfillmentAutomationDiagnostic!\]!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-diagnostic)` *required*

A problem found checking a fulfillment automation. `diagnostics/<code>` in `fulfillmentAutomationCatalog` explains it.

**fields**

**code** `String!` *required*

A stable code, such as FA0202.

**edgeIndex** `Int`

The edge it concerns, by its index in the definition's `edges`; null when it isn't about one edge.

**message** `String!` *required*

What's wrong.

**rulesVersion** `String!` *required*

The rules version the rule arrived in.

**severity** `[FulfillmentAutomationDiagnosticSeverity!](/docs/api-reference/v3/reference/shipping/fulfillment-automation-diagnostic-severity)` *required*

How much it matters.

**stepId** `String`

The step it concerns; null for the whole automation.

## Example

```graphql theme={null}
query {
  fulfillmentAutomationCheck(definition: { ... }) {
    code
    edgeIndex
    message
    rulesVersion
    severity
    stepId
  }
}
```


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