# Recurring Orders Automate the reordering process for frequently purchased products. Recurring Orders automate the reordering process for a Customer. You can define the Cart containing the products to be ordered, the reorder frequency, and the start and end dates. Once configured, orders are placed automatically for the Customer at the scheduled interval. Recurring Orders can be modified, paused, or canceled to accommodate changes in demand. ## Representations #### RecurringOrder [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrder). #### RecurringOrderDraft [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderDraft). #### RecurringOrderPagedQueryResponse [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderPagedQueryResponse). #### RecurringOrderReference [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderReference). #### RecurringOrderResourceIdentifier [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderResourceIdentifier). #### RecurringOrderState [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderState). #### RecurringOrderStateDraft Defines the new state for the Recurring Order—for possible values, see [RecurringOrderActive](/api/projects/recurring-orders.md#recurringorderactive), [RecurringOrderPaused](/api/projects/recurring-orders.md#recurringorderpaused), [RecurringOrderExpired](/api/projects/recurring-orders.md#recurringorderexpired), and [RecurringOrderCanceled](/api/projects/recurring-orders.md#recurringordercanceled). ##### RecurringOrderActive [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderActive). ##### RecurringOrderPaused [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderPaused). ##### RecurringOrderExpired [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderExpired). ##### RecurringOrderCanceled [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderCanceled). #### SkipConfiguration Generic type that shows how future orders will be skipped. Supported data types: - `Counter` ##### Counter [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:Counter). ##### SkipConfigurationDraft Generic type used to define how future orders will be skipped. Use with [CounterDraft](/api/projects/recurring-orders.md#counterdraft). ##### CounterDraft [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:CounterDraft). #### RecurringOrderScope A generic type that indicates the scope of a Cart Discount for a Recurring Order. ##### AnyOrder [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:AnyOrder). ##### NonRecurringOrdersOnly [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:NonRecurringOrdersOnly). ##### RecurringOrdersOnly [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrdersOnly). ##### ApplicableRecurrencePolicies [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:ApplicableRecurrencePolicies). #### RecurringOrderScopeDraft A generic type that defines the scope of a Cart Discount for a Recurring Order. ##### AnyOrderDraft [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:AnyOrderDraft). ##### NonRecurringOrdersOnlyDraft [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:NonRecurringOrdersOnlyDraft). ##### RecurringOrdersOnlyDraft [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrdersOnlyDraft). ##### ApplicableRecurrencePoliciesDraft [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:ApplicableRecurrencePoliciesDraft). #### PriceSelectionMode [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:PriceSelectionMode). ## Get RecurringOrder ### Get RecurringOrder by ID [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/\{id}:GET). ### Get RecurringOrder by Key [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/key=\{key}:GET). ## Query RecurringOrders [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders:GET). ## Check if RecurringOrder exists ### Check if RecurringOrder exists by ID [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/\{id}:HEAD). ### Check if RecurringOrder exists by Key [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/key=\{key}:HEAD). ### Check if RecurringOrder exists by Query Predicate [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders:HEAD). ## Create RecurringOrder [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders:POST). ## Update RecurringOrder ### Update RecurringOrder by ID [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/\{id}:POST). ### Update RecurringOrder by Key [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/key=\{key}:POST). ## Update actions #### Set Key [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetKeyAction). #### Transition State [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderTransitionStateAction). #### Set RecurringOrderState [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetStateAction). #### Set Order Skip Configuration [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetOrderSkipConfigurationAction). #### Set Starts At [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetStartsAtAction). #### Set Expires At [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetExpiresAtAction). #### Set Schedule [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetScheduleAction). #### Set Custom Type [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetCustomTypeAction). #### Set CustomField [type definition](/api/projects/recurring-orders.md?urn=ctp:api:type:RecurringOrderSetCustomFieldAction). ## Delete RecurringOrder Only Recurring Orders with `recurringOrderState` of `Expired` or `Canceled` can be deleted. ### Delete RecurringOrder by ID [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/\{id}:DELETE). ### Delete RecurringOrder by Key [endpoint definition](/api/projects/recurring-orders.md?urn=ctp:api:endpoint:/\{projectKey}/recurring-orders/key=\{key}:DELETE). ## Related pages - [Area overview page with navigation](/api.md) - [Previous page: Recurrence Policies](/api/projects/recurrence-policies.md)