> Documentation index: [Saleor](/llms.txt) · [This section](/api-reference/checkout/llms.txt)
> Source: https://docs.saleor.io/api-reference/checkout/objects/checkout-complete

# CheckoutComplete Object

Completes the checkout. As a result a new order is created. The mutation allows to create the unpaid order when setting `orderSettings.allowUnpaidOrders` for given `Channel` is set to `true`. When `orderSettings.allowUnpaidOrders` is set to `false`, checkout can be completed only when attached `Payment`/`TransactionItem`s fully cover the checkout's total. When processing the checkout with `Payment`, in case of required additional confirmation step like 3D secure, the `confirmationNeeded` flag will be set to True and no order will be created until payment is confirmed with second call of this mutation.

Triggers the following webhook events:

-   SHIPPING\_LIST\_METHODS\_FOR\_CHECKOUT (sync): Optionally triggered when cached external shipping methods are invalid.
-   CHECKOUT\_FILTER\_SHIPPING\_METHODS (sync): Optionally triggered when cached filtered shipping methods are invalid.
-   CHECKOUT\_CALCULATE\_TAXES (sync): Optionally triggered when checkout prices are expired.
-   ORDER\_CREATED (async): Triggered when order is created.
-   NOTIFY\_USER (async): A notification for order placement.
-   NOTIFY\_USER (async): A staff notification for order placement.
-   ORDER\_UPDATED (async): Triggered when order received the update after placement.
-   ORDER\_PAID (async): Triggered when newly created order is paid.
-   ORDER\_FULLY\_PAID (async): Triggered when newly created order is fully paid.
-   ORDER\_CONFIRMED (async): Optionally triggered when newly created order are automatically marked as confirmed.

```graphql
type CheckoutComplete {
  order: Order
  confirmationNeeded: Boolean!
  confirmationData: JSONString
  checkoutErrors: [CheckoutError!]! @deprecated
  errors: [CheckoutError!]!
}
```

<a id="fields"></a>

### Fields

<a id="order"></a>

#### [`order`](#order) ● [`Order`](/api-reference/orders/objects/order.md)

Placed order.

<a id="confirmation-needed"></a>

#### [`confirmationNeeded`](#confirmation-needed) ● [`Boolean!`](/api-reference/miscellaneous/scalars/boolean.md)

Set to true if payment needs to be confirmed before checkout is complete.

<a id="confirmation-data"></a>

#### [`confirmationData`](#confirmation-data) ● [`JSONString`](/api-reference/miscellaneous/scalars/jsonstring.md)

Confirmation data used to process additional authorization steps.

<a id="errors"></a>

#### [`errors`](#errors) ● [`[CheckoutError!]!`](/api-reference/checkout/objects/checkout-error.md)

Show deprecatedHide deprecated

<a id="checkout-errors"></a>

#### [`checkoutErrors`](#checkout-errors) ● [`[CheckoutError!]!`](/api-reference/checkout/objects/checkout-error.md)

DEPRECATED

Use `errors` field instead.

<a id="returned-by"></a>

### Returned By

[`checkoutComplete`](/api-reference/checkout/mutations/checkout-complete.md) mutation
